{"version":3,"sources":["../node_modules/react/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/prop-types/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/draw2d/dist/draw2d.js","../node_modules/recharts/es6/util/DataUtils.js","../node_modules/primereact/button.js","../node_modules/primereact/dropdown.js","../../node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/react-is/cjs/react-is.development.js","../../node_modules/object-assign/index.js","../../node_modules/react-is/index.js","../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../node_modules/prop-types/checkPropTypes.js","../../node_modules/prop-types/factoryWithTypeCheckers.js","../../node_modules/prop-types/factoryWithThrowingShims.js","../../node_modules/prop-types/index.js","../../node_modules/style-inject/dist/style-inject.es.js","../../src/components/Box/Box.jsx","../../src/components/Box/BoxTitle.jsx","../../src/components/Box/BoxBody.jsx","../../src/components/Button/Button.jsx","../../src/components/Card/CardHeader.jsx","../../src/components/Card/CardImage.jsx","../../src/components/Card/CardFooter.jsx","../../src/components/Card/Card.jsx","../../src/components/Card/CardBody.jsx","../../src/components/Checkbox/Checkbox.jsx","../../src/components/Content/ContentHeader.jsx","../../src/components/Content/Content.jsx","../../node_modules/react-feather/dist/icons/chevron-down.js","../../src/components/Content/ContentActions.jsx","../../src/components/Content/ContentInfo.jsx","../../src/components/Content/ContentBody.jsx","../../src/components/Content/ContentFooter.jsx","../../node_modules/react-feather/dist/icons/info.js","../../node_modules/react-feather/dist/icons/minus.js","../../node_modules/react-feather/dist/icons/plus.js","../../node_modules/react-feather/dist/icons/x-square.js","../../node_modules/react-feather/dist/icons/x.js","../../src/components/Input/InputNumeric.jsx","../../src/components/Input/InputPassword.jsx","../../src/components/Input/InputText.jsx","../../src/components/Input/InputTextArea.jsx","../../src/components/Input/Input.jsx","../../src/components/Portal/Portal.jsx","../../src/components/Overlay/Overlay.jsx","../../src/components/Modal/ModalHeader.jsx","../../src/components/Modal/ModalTitle.jsx","../../src/components/Modal/ModalBody.jsx","../../src/components/Modal/ModalFooter.jsx","../../src/components/Modal/Modal.jsx","../../src/components/Panel/PanelHeader.jsx","../../src/components/Panel/Panel.jsx","../../src/components/Panel/PanelBody.jsx","../../src/components/Panel/PanelFooter.jsx","../../src/components/Panel/PanelGroup.jsx","../../src/components/Question/QuestionTitle.jsx","../../src/components/Question/QuestionImage.jsx","../../src/components/Question/Question.jsx","../../src/components/Question/QuestionBody.jsx","../../src/components/Question/QuestionInfo.jsx","../../src/components/Radio/Radio.jsx","../../src/components/Select/Select.jsx","../../src/components/SelectGroup/SelectGroup.jsx","../../src/components/SelectGroup/SelectGroupItemTitle.jsx","../../src/components/SelectGroup/SelectGroupItem.jsx","../../src/components/SelectGroup/SelectGroupItemDescription.jsx","../../src/components/SelectGroup/SelectGroupItemImage.jsx","../../src/components/Steps/Steps.jsx","../../src/components/Steps/Step.jsx","../../src/components/Subheader/Subheader.jsx","../../src/components/Table/Table.jsx","../node_modules/primereact/components/button/Button.js","../node_modules/prismic-reactjs/dist/prismic-reactjs.js","../node_modules/lodash/isNil.js","../node_modules/primereact/toast.js","../node_modules/recharts-scale/es6/util/utils.js","../node_modules/recharts-scale/es6/util/arithmetic.js","../node_modules/recharts-scale/es6/getNiceTickValues.js","../node_modules/d3-shape/src/offset/none.js","../node_modules/d3-shape/src/order/none.js","../node_modules/d3-shape/src/stack.js","../node_modules/recharts/es6/util/ChartUtils.js","../node_modules/d3-shape/src/offset/expand.js","../node_modules/d3-shape/src/offset/silhouette.js","../node_modules/d3-shape/src/offset/wiggle.js","../node_modules/recharts/es6/util/types.js","../node_modules/lodash/isFunction.js","../node_modules/primereact/dialog.js","../node_modules/primereact/column.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/recharts/node_modules/classnames/index.js","../node_modules/primereact/components/utils/ClassNames.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/primereact/inputtext.js","../node_modules/lodash/isArray.js","../node_modules/recharts/es6/util/ReactUtils.js","../node_modules/primereact/card.js","../node_modules/d3-scale/src/init.js","../node_modules/decimal.js-light/decimal.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/d3-shape/src/constant.js","../node_modules/d3-scale/src/continuous.js","../node_modules/d3-scale/src/constant.js","../node_modules/primereact/fileupload.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/react-dom/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../modules/createNamedContext.js","../../modules/HistoryContext.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/generatePath.js","../../modules/Redirect.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/withRouter.js","../../modules/hooks.js","../node_modules/primereact/toolbar.js","../node_modules/primereact/datatable.js","../node_modules/recharts/es6/util/PolarUtils.js","../node_modules/recharts/es6/container/Layer.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/primereact/components/utils/DomHandler.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/primereact/components/ripple/Ripple.js","../node_modules/primereact/components/utils/ObjectUtils.js","../node_modules/lodash/get.js","../node_modules/react-ga/dist/esm/utils/console/warn.js","../node_modules/react-ga/dist/esm/components/OutboundLink.js","../node_modules/react-ga/dist/esm/utils/redactEmail.js","../node_modules/react-ga/dist/esm/utils/mightBeEmail.js","../node_modules/react-ga/dist/esm/utils/trim.js","../node_modules/react-ga/dist/esm/utils/toTitleCase.js","../node_modules/react-ga/dist/esm/utils/loadGA.js","../node_modules/react-ga/dist/esm/utils/console/log.js","../node_modules/react-ga/dist/esm/utils/testModeAPI.js","../node_modules/react-ga/dist/esm/core.js","../node_modules/react-ga/dist/esm/utils/format.js","../node_modules/react-ga/dist/esm/utils/removeLeadingSlash.js","../node_modules/react-ga/dist/esm/index.js","../node_modules/lodash/isObject.js","../node_modules/d3-scale/src/linear.js","../../build/platforms.js","../../build/util.js","../../build/global.js","../../build/runtime.js","../../build/web-plugin.js","../node_modules/primereact/components/column/Column.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/recharts/es6/util/Events.js","../node_modules/recharts/es6/util/IfOverflowMatches.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../node_modules/axios/lib/utils.js","../node_modules/primereact/components/datatable/DataTable.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/webpack/buildin/global.js","../node_modules/primereact/components/tooltip/Tooltip.js","../node_modules/recharts/es6/util/DOMUtils.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/primereact/radiobutton.js","../node_modules/recharts/es6/component/Label.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/lodash/_root.js","../node_modules/recharts/es6/util/Global.js","../node_modules/d3-format/src/exponent.js","../node_modules/recharts/es6/util/LogUtils.js","../node_modules/recharts/es6/util/CartesianUtils.js","../node_modules/primereact/checkbox.js","../node_modules/primereact/multiselect.js","../node_modules/d3-format/src/formatDecimal.js","../node_modules/recharts/es6/util/ShallowEqual.js","../node_modules/xlsx/xlsx.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/_baseIteratee.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-transition-group/esm/CSSTransition.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/react-transition-group/esm/ReplaceTransition.js","../node_modules/react-transition-group/esm/SwitchTransition.js","../node_modules/@monaco-editor/loader/lib/es/_virtual/_rollupPluginBabelHelpers.js","../node_modules/state-local/lib/es/state-local.js","../node_modules/@monaco-editor/loader/lib/es/config/index.js","../node_modules/@monaco-editor/loader/lib/es/utils/isObject.js","../node_modules/@monaco-editor/loader/lib/es/validators/index.js","../node_modules/@monaco-editor/loader/lib/es/utils/curry.js","../node_modules/@monaco-editor/loader/lib/es/utils/compose.js","../node_modules/@monaco-editor/loader/lib/es/utils/deepMerge.js","../node_modules/@monaco-editor/loader/lib/es/utils/makeCancelable.js","../node_modules/@monaco-editor/loader/lib/es/loader/index.js","../node_modules/@monaco-editor/react/lib/es/_virtual/_rollupPluginBabelHelpers.js","../node_modules/@monaco-editor/react/lib/es/Loading/Loading.js","../node_modules/@monaco-editor/react/lib/es/MonacoContainer/styles.js","../node_modules/@monaco-editor/react/lib/es/MonacoContainer/MonacoContainer.js","../node_modules/@monaco-editor/react/lib/es/MonacoContainer/index.js","../node_modules/@monaco-editor/react/lib/es/hooks/useMount/index.js","../node_modules/@monaco-editor/react/lib/es/hooks/useUpdate/index.js","../node_modules/@monaco-editor/react/lib/es/utils/index.js","../node_modules/@monaco-editor/react/lib/es/DiffEditor/DiffEditor.js","../node_modules/@monaco-editor/react/lib/es/hooks/usePrevious/index.js","../node_modules/@monaco-editor/react/lib/es/Editor/Editor.js","../node_modules/@monaco-editor/react/lib/es/Editor/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/lodash/isString.js","../node_modules/react-smooth/es6/setRafTimeout.js","../node_modules/react-smooth/es6/AnimateManager.js","../node_modules/react-smooth/es6/util.js","../node_modules/react-smooth/es6/easing.js","../node_modules/react-smooth/es6/configUpdate.js","../node_modules/react-smooth/es6/Animate.js","../node_modules/react-smooth/es6/AnimateGroupChild.js","../node_modules/react-smooth/es6/AnimateGroup.js","../node_modules/react-smooth/es6/index.js","../node_modules/i18next-http-backend/esm/utils.js","../node_modules/primereact/components/utils/UniqueComponentId.js","../node_modules/lodash/_getNative.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../node_modules/jspdf/dist/jspdf.es.min.js","../node_modules/lodash/upperFirst.js","../node_modules/d3-scale/src/number.js","../node_modules/recharts/es6/component/Text.js","../node_modules/primereact/tabview.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/identity.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/lodash/sortBy.js","../node_modules/d3-array/src/ascending.js","../node_modules/d3-shape/src/array.js","../node_modules/recharts/es6/shape/Dot.js","../node_modules/lodash/range.js","../node_modules/lodash/isNaN.js","../node_modules/lodash/uniqBy.js","../node_modules/recharts/es6/cartesian/CartesianAxis.js","../node_modules/primereact/fieldset.js","../node_modules/primereact/components/utils/ConnectedOverlayScrollHandler.js","../node_modules/primereact/components/inputtext/InputText.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/isArrayLike.js","../node_modules/d3-scale/src/ordinal.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.js","../node_modules/recharts/es6/container/Surface.js","../node_modules/d3-array/src/number.js","../node_modules/d3-interpolate/src/number.js","../node_modules/recharts/es6/shape/Rectangle.js","../node_modules/d3-shape/src/noop.js","../node_modules/d3-shape/src/curve/basis.js","../node_modules/d3-shape/src/curve/basisClosed.js","../node_modules/d3-shape/src/curve/basisOpen.js","../node_modules/d3-shape/src/curve/linearClosed.js","../node_modules/d3-shape/src/curve/linear.js","../node_modules/d3-shape/src/curve/monotone.js","../node_modules/d3-shape/src/curve/natural.js","../node_modules/d3-shape/src/curve/step.js","../node_modules/d3-shape/src/point.js","../node_modules/d3-shape/src/line.js","../node_modules/d3-shape/src/area.js","../node_modules/recharts/es6/shape/Curve.js","../node_modules/d3-shape/src/math.js","../node_modules/d3-shape/src/symbol/circle.js","../node_modules/d3-shape/src/symbol/cross.js","../node_modules/d3-shape/src/symbol/diamond.js","../node_modules/d3-shape/src/symbol/square.js","../node_modules/d3-shape/src/symbol/star.js","../node_modules/d3-shape/src/symbol/triangle.js","../node_modules/d3-shape/src/symbol/wye.js","../node_modules/recharts/es6/shape/Symbols.js","../node_modules/d3-shape/src/symbol.js","../node_modules/recharts/es6/component/DefaultLegendContent.js","../node_modules/recharts/es6/component/Legend.js","../node_modules/fflate/esm/browser.js","../node_modules/lodash/max.js","../node_modules/lodash/min.js","../node_modules/react-i18next/dist/es/unescape.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/recharts/es6/component/DefaultTooltipContent.js","../node_modules/recharts/es6/component/Tooltip.js","../node_modules/react-draggable/build/cjs/utils/shims.js","../node_modules/lodash/keys.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_isIterateeCall.js","../node_modules/react-is/index.js","../node_modules/d3-scale/src/tickFormat.js","../node_modules/d3-format/src/precisionPrefix.js","../node_modules/d3-format/src/precisionRound.js","../node_modules/d3-format/src/precisionFixed.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/lodash/every.js","../node_modules/lodash/isEqual.js","../node_modules/react-smooth/node_modules/react-transition-group/index.js","../node_modules/primereact/messages.js","../node_modules/primereact/inputnumber.js","../node_modules/d3-scale/src/identity.js","../node_modules/d3-scale/src/nice.js","../node_modules/d3-scale/src/log.js","../node_modules/d3-scale/src/symlog.js","../node_modules/d3-scale/src/pow.js","../node_modules/d3-scale/src/radial.js","../node_modules/d3-array/src/max.js","../node_modules/d3-array/src/min.js","../node_modules/d3-array/src/quickselect.js","../node_modules/d3-array/src/quantile.js","../node_modules/d3-scale/src/quantile.js","../node_modules/d3-scale/src/quantize.js","../node_modules/d3-scale/src/threshold.js","../node_modules/d3-time/src/interval.js","../node_modules/d3-time/src/millisecond.js","../node_modules/d3-time/src/second.js","../node_modules/d3-time/src/duration.js","../node_modules/d3-time/src/minute.js","../node_modules/d3-time/src/hour.js","../node_modules/d3-time/src/day.js","../node_modules/d3-time/src/week.js","../node_modules/d3-time/src/month.js","../node_modules/d3-time/src/year.js","../node_modules/d3-time/src/utcMinute.js","../node_modules/d3-time/src/utcHour.js","../node_modules/d3-time/src/utcDay.js","../node_modules/d3-time/src/utcWeek.js","../node_modules/d3-time/src/utcMonth.js","../node_modules/d3-time/src/utcYear.js","../node_modules/d3-time/src/ticks.js","../node_modules/d3-time-format/src/locale.js","../node_modules/d3-time-format/src/defaultLocale.js","../node_modules/d3-scale/src/time.js","../node_modules/d3-scale/src/utcTime.js","../node_modules/d3-scale/src/sequential.js","../node_modules/d3-scale/src/sequentialQuantile.js","../node_modules/d3-interpolate/src/piecewise.js","../node_modules/d3-scale/src/diverging.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/i18next/dist/esm/i18next.js","../node_modules/i18next-http-backend/esm/getFetch.cjs","../node_modules/reduce-css-calc/dist/index.js","../node_modules/primereact/autocomplete.js","../node_modules/react-detect-offline/dist/index.js","webpack:///../../src/index.ts?0e3e","../node_modules/recharts/es6/util/CssPrefixUtils.js","../node_modules/recharts/es6/cartesian/Brush.js","../node_modules/recharts/es6/cartesian/ReferenceArea.js","../node_modules/recharts/es6/util/DetectReferenceElementsDomain.js","../node_modules/process/browser.js","../node_modules/object-assign/index.js","../node_modules/primereact/components/utils/FilterUtils.js","../node_modules/react-draggable/build/cjs/utils/domFns.js","../node_modules/buffer/index.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/isLength.js","../node_modules/lodash/eq.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/_arrayMap.js","../node_modules/d3-array/src/range.js","../node_modules/d3-scale/src/band.js","../node_modules/lodash/debounce.js","../node_modules/lodash/isNumber.js","../node_modules/jquery/dist/jquery.js","../node_modules/path-to-regexp/index.js","../node_modules/d3-format/src/formatSpecifier.js","../node_modules/d3-array/src/bisector.js","../node_modules/primereact/components/dropdown/Dropdown.js","../node_modules/primereact/components/datatable/RowCheckbox.js","../node_modules/primereact/components/messages/Messages.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/react-draggable/build/cjs/utils/positionFns.js","../node_modules/react-draggable/build/cjs/utils/log.js","../node_modules/primereact/components/checkbox/Checkbox.js","../node_modules/xlsx/dist/cpexcel.js","../node_modules/timers-browserify/main.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/isBuffer.js","../node_modules/webpack/buildin/module.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/toString.js","../node_modules/lodash/_baseFindIndex.js","../node_modules/lodash/toFinite.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/_baseFlatten.js","../node_modules/lodash/_baseMap.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_hasUnicode.js","../node_modules/lodash/_baseExtremum.js","../node_modules/reduce-css-calc/dist/lib/reducer.js","../node_modules/react-smooth/node_modules/react-transition-group/Transition.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-smooth/node_modules/react-transition-group/utils/PropTypes.js","../node_modules/react-smooth/node_modules/react-transition-group/TransitionGroup.js","../../src/web.ts","../node_modules/jquery-ui-bundle/jquery-ui.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","../node_modules/i18next-http-backend/esm/index.js","../node_modules/i18next-http-backend/esm/request.js","../node_modules/react-cookie-consent/build/index.js","../../src/FileSaver.js","../node_modules/axios/index.js","../node_modules/react-dom/server.browser.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/react-draggable/build/cjs/cjs.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/recharts/es6/chart/generateCategoricalChart.js","../node_modules/lodash/find.js","../node_modules/lodash/throttle.js","../node_modules/lodash/isBoolean.js","../node_modules/lodash/flatMap.js","../node_modules/recharts/es6/cartesian/ReferenceLine.js","../node_modules/lodash/some.js","../node_modules/lodash/mapValues.js","../node_modules/recharts/es6/cartesian/ReferenceDot.js","../../src/utils.ts","../../src/comparator.ts","../../src/index.ts","../node_modules/recharts/es6/shape/Cross.js","../node_modules/recharts/es6/shape/Sector.js","../node_modules/eventemitter3/index.js","../node_modules/lodash/last.js","../node_modules/recharts/es6/cartesian/XAxis.js","../node_modules/recharts/es6/cartesian/YAxis.js","../../node_modules/tslib/tslib.es6.js","../../node_modules/lodash/isObject.js","../../node_modules/lodash/_root.js","../../node_modules/lodash/_freeGlobal.js","../../node_modules/lodash/now.js","../../node_modules/lodash/_trimmedEndIndex.js","../../node_modules/lodash/_baseTrim.js","../../node_modules/lodash/_Symbol.js","../../node_modules/lodash/_getRawTag.js","../../node_modules/lodash/_objectToString.js","../../node_modules/lodash/_baseGetTag.js","../../node_modules/lodash/isObjectLike.js","../../node_modules/lodash/isSymbol.js","../../node_modules/lodash/toNumber.js","../../node_modules/lodash/debounce.js","../../node_modules/lodash/throttle.js","../../src/ResizeDetector.tsx","../../src/useResizeDetector.ts","../node_modules/primereact/tabmenu.js","../node_modules/primereact/menu.js","../node_modules/primereact/tristatecheckbox.js","../node_modules/primereact/message.js","../node_modules/primereact/togglebutton.js","../node_modules/primereact/chips.js","../node_modules/primereact/organizationchart.js","../node_modules/primereact/inputtextarea.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-interpolate/src/basis.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/basisClosed.js","../node_modules/d3-interpolate/src/numberArray.js","../node_modules/d3-interpolate/src/array.js","../node_modules/d3-interpolate/src/date.js","../node_modules/d3-interpolate/src/object.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-interpolate/src/value.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/recharts/es6/component/LabelList.js","../node_modules/recharts/es6/cartesian/ErrorBar.js","../node_modules/recharts/es6/cartesian/Line.js","../node_modules/d3-array/src/ticks.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/primereact/components/utils/PrimeReact.js","../node_modules/primereact/components/card/Card.js","../node_modules/primereact/components/paginator/Paginator.js","../node_modules/primereact/components/paginator/FirstPageLink.js","../node_modules/primereact/components/paginator/NextPageLink.js","../node_modules/primereact/components/paginator/PrevPageLink.js","../node_modules/primereact/components/paginator/LastPageLink.js","../node_modules/primereact/components/paginator/PageLinks.js","../node_modules/primereact/components/paginator/RowsPerPageDropdown.js","../node_modules/primereact/components/dropdown/DropdownPanel.js","../node_modules/primereact/components/dropdown/DropdownItem.js","../node_modules/primereact/components/paginator/CurrentPageReport.js","../node_modules/primereact/components/datatable/ScrollableView.js","../node_modules/primereact/components/datatable/TableBody.js","../node_modules/primereact/components/datatable/BodyRow.js","../node_modules/primereact/components/datatable/BodyCell.js","../node_modules/primereact/components/datatable/RowRadioButton.js","../node_modules/primereact/components/datatable/RowTogglerButton.js","../node_modules/primereact/components/datatable/TableFooter.js","../node_modules/primereact/components/datatable/FooterCell.js","../node_modules/primereact/components/datatable/TableHeader.js","../node_modules/primereact/components/datatable/HeaderCell.js","../node_modules/primereact/components/keyfilter/KeyFilter.js","../node_modules/primereact/components/datatable/TableLoadingBody.js","../node_modules/primereact/components/dialog/Dialog.js","../node_modules/primereact/components/fileupload/FileUpload.js","../node_modules/primereact/components/messages/UIMessage.js","../node_modules/primereact/components/progressbar/ProgressBar.js","../node_modules/primereact/components/toast/Toast.js","../node_modules/primereact/components/toast/ToastMessage.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/react-draggable/build/cjs/Draggable.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/react-draggable/build/cjs/utils/getPrefix.js","../node_modules/react-draggable/build/cjs/DraggableCore.js","../node_modules/primereact/components/multiselect/MultiSelect.js","../node_modules/primereact/components/multiselect/MultiSelectHeader.js","../node_modules/primereact/components/multiselect/MultiSelectItem.js","../node_modules/primereact/components/multiselect/MultiSelectPanel.js","../node_modules/path-to-regexp/node_modules/isarray/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/isarray/index.js","../node_modules/xlsx/jszip.js","../node_modules/setimmediate/setImmediate.js","../node_modules/lodash/_arrayEvery.js","../node_modules/lodash/_baseEvery.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_createBaseEach.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/memoize.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/property.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_createFind.js","../node_modules/lodash/findIndex.js","../node_modules/lodash/toInteger.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/now.js","../node_modules/lodash/_isFlattenable.js","../node_modules/lodash/_baseOrderBy.js","../node_modules/lodash/_baseSortBy.js","../node_modules/lodash/_compareMultiple.js","../node_modules/lodash/_compareAscending.js","../node_modules/lodash/_baseRest.js","../node_modules/lodash/_overRest.js","../node_modules/lodash/_apply.js","../node_modules/lodash/_setToString.js","../node_modules/lodash/_baseSetToString.js","../node_modules/lodash/constant.js","../node_modules/lodash/_shortOut.js","../node_modules/lodash/_createRange.js","../node_modules/lodash/_baseRange.js","../node_modules/lodash/_createCaseFirst.js","../node_modules/lodash/_castSlice.js","../node_modules/lodash/_baseSlice.js","../node_modules/lodash/_stringToArray.js","../node_modules/lodash/_asciiToArray.js","../node_modules/lodash/_unicodeToArray.js","../node_modules/lodash/_baseGt.js","../node_modules/lodash/_baseLt.js","../node_modules/lodash/map.js","../node_modules/lodash/_baseUniq.js","../node_modules/lodash/_arrayIncludes.js","../node_modules/lodash/_baseIndexOf.js","../node_modules/lodash/_baseIsNaN.js","../node_modules/lodash/_strictIndexOf.js","../node_modules/lodash/_arrayIncludesWith.js","../node_modules/lodash/_createSet.js","../node_modules/lodash/noop.js","../node_modules/lodash/_baseSome.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/postcss-value-parser/lib/index.js","../node_modules/postcss-value-parser/lib/parse.js","../node_modules/postcss-value-parser/lib/walk.js","../node_modules/postcss-value-parser/lib/stringify.js","../node_modules/postcss-value-parser/lib/unit.js","../node_modules/reduce-css-calc/dist/parser.js","../node_modules/reduce-css-calc/dist/lib/convert.js","../node_modules/css-unit-converter/index.js","../node_modules/reduce-css-calc/dist/lib/stringifier.js","../node_modules/react-smooth/node_modules/react-transition-group/CSSTransition.js","../node_modules/react-smooth/node_modules/dom-helpers/class/addClass.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/react-smooth/node_modules/dom-helpers/class/hasClass.js","../node_modules/react-smooth/node_modules/dom-helpers/class/removeClass.js","../node_modules/react-smooth/node_modules/react-transition-group/ReplaceTransition.js","../node_modules/react-smooth/node_modules/react-transition-group/utils/ChildMapping.js","../node_modules/primereact/components/tabmenu/TabMenu.js","../node_modules/primereact/components/toolbar/Toolbar.js","../node_modules/primereact/components/menu/Menu.js","../node_modules/primereact/components/radiobutton/RadioButton.js","../node_modules/primereact/components/tristatecheckbox/TriStateCheckbox.js","../node_modules/primereact/components/inputnumber/InputNumber.js","../node_modules/primereact/components/message/Message.js","../node_modules/primereact/components/togglebutton/ToggleButton.js","../node_modules/primereact/components/autocomplete/AutoComplete.js","../node_modules/primereact/components/autocomplete/AutoCompletePanel.js","../node_modules/primereact/components/chips/Chips.js","../node_modules/primereact/components/fieldset/Fieldset.js","../node_modules/primereact/components/organizationchart/OrganizationChart.js","../node_modules/primereact/components/tabview/TabView.js","../node_modules/primereact/components/inputtextarea/InputTextarea.js","../node_modules/react-feather/dist/icons/x.js","../node_modules/react-feather/dist/icons/upload-cloud.js","../node_modules/react-feather/dist/icons/message-circle.js","../node_modules/recharts/es6/chart/LineChart.js","../node_modules/d3-path/src/path.js","../node_modules/d3-array/src/bisect.js","../node_modules/d3-interpolate/src/round.js","../node_modules/recharts/es6/component/ResponsiveContainer.js","../node_modules/react-feather/dist/icons/chevron-left.js","../node_modules/react-feather/dist/icons/file-text.js","../node_modules/react-feather/dist/icons/send.js","../node_modules/react-feather/dist/icons/fast-forward.js","../node_modules/react-feather/dist/icons/chevron-right.js","../node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/d3-format/src/defaultLocale.js","../node_modules/d3-format/src/formatRounded.js","../node_modules/d3-format/src/formatTypes.js","../node_modules/d3-format/src/identity.js","../node_modules/d3-format/src/locale.js","../node_modules/d3-format/src/formatGroup.js","../node_modules/d3-format/src/formatNumerals.js","../node_modules/d3-format/src/formatTrim.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/useTranslation.js","../node_modules/react-i18next/dist/es/withTranslation.js"],"names":["module","exports","require","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","_inherits","subClass","superClass","create","constructor","value","_createSuper","Derived","result","Super","NewTarget","this","Reflect","construct","arguments","apply","_createForOfIteratorHelper","o","Symbol","iterator","Array","isArray","F","s","n","done","e","_e","f","it","err","normalCompletion","didErr","step","next","_e2","factory","window","modules","installedModules","__webpack_require__","moduleId","l","call","m","c","d","name","getter","get","r","toStringTag","t","mode","__esModule","ns","bind","object","property","hasOwnProperty","p","RGBColor","stackblur","canvg","opts","document","getElementById","svg","stop","matchesSelector","Element","matches","node","selector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","jQuery","Zepto","$","is","Sizzle","getMatchesSelector","CanvasRenderingContext2D","drawSvg","dx","dy","dw","dh","cOpts","ignoreMouse","ignoreAnimation","ignoreDimensions","ignoreClear","offsetX","offsetY","scaleWidth","scaleHeight","prop","canvas","FRAMERATE","MAX_VIRTUAL_PIXELS","log","msg","console","init","ctx","uniqueId","UniqueId","Definitions","Styles","StylesSpecificity","Animations","Images","ViewPort","viewPorts","Clear","SetCurrent","width","height","push","RemoveCurrent","pop","Current","ComputeSize","Math","sqrt","pow","ImagesLoaded","loaded","trim","replace","compressSpaces","ajax","url","AJAX","XMLHttpRequest","ActiveXObject","open","send","responseText","parseXml","xml","Windows","Data","Xml","xmlDoc","Dom","XmlDocument","settings","XmlLoadSettings","prohibitDtd","loadXml","DOMParser","parseFromString","async","loadXML","Property","getValue","hasValue","numValue","parseFloat","match","valueOrDefault","def","numValueOrDefault","addOpacity","opacityProp","newValue","color","ok","g","b","getDefinition","isUrlDefinition","indexOf","getFillStyleDefinition","createGradient","createPattern","getHrefAttribute","pt","attribute","getDPI","viewPort","getEM","em","fontSize","Font","Parse","font","toPixels","getUnits","processPercent","toMilliseconds","toRadians","PI","textBaselineMapping","toTextBaseline","Variants","Weights","CreateFont","fontStyle","fontVariant","fontWeight","fontFamily","inherit","toString","join","that","split","set","ff","ToNumberArray","a","Point","x","y","angleTo","atan2","applyTransform","v","xp","yp","CreatePoint","CreatePath","path","BoundingBox","x1","y1","x2","y2","Number","NaN","addPoint","isNaN","addX","addY","addBoundingBox","bb","addQuadraticCurve","p0x","p0y","p1x","p1y","p2x","p2y","cp1x","cp1y","cp2x","cp2y","addBezierCurve","p3x","p3y","p0","p1","p2","p3","b2ac","t1","t2","isPointInBox","Transform","Type","translate","unapply","applyToPoint","rotate","angle","cx","cy","cos","sin","scale","matrix","transform","det","SkewBase","base","skewX","tan","skewY","transforms","data","type","transformType","AspectRatio","aspectRatio","desiredWidth","desiredHeight","minX","minY","refX","refY","align","meetOrSlice","scaleX","scaleY","scaleMin","min","scaleMax","max","EmptyProperty","ElementBase","attributes","styles","stylesSpecificity","children","createIfNotExists","style","skipAncestors","parent","ps","render","save","mask","filter","setContext","renderChildren","clearContext","restore","addChild","childNode","child","CreateElement","addStylesFromStyleDefinition","specificity","existingSpecificity","nodeType","nodeName","childNodes","captureTextNodes","text","textContent","tspan","RenderedElementBase","fs","fillStyle","strokeStyle","newLineWidth","lineWidth","lineCap","lineJoin","miterLimit","gaps","setLineDash","webkitLineDash","mozDash","offset","lineDashOffset","webkitLineDashOffset","mozDashOffset","clip","globalAlpha","PathElementBase","beginPath","Mouse","checkPath","fill","stroke","markers","getMarkers","marker","getBoundingBox","baseClearContext","baseSetContext","getComputedStyle","getPropertyValue","root","moveTo","lineTo","closePath","viewBox","rect","rx","ry","quadraticCurveTo","circle","arc","ellipse","KAPPA","bezierCurveTo","line","getPoints","points","polyline","polygon","basePath","PathParser","tokens","reset","command","previousCommand","start","control","current","angles","isEnd","isCommandOrEnd","isRelativeCommand","getToken","getScalar","nextCommand","getPoint","makeAbsolute","getAsControlPoint","getAsCurrentPoint","getReflectedControlPoint","toLowerCase","addMarker","from","priorTo","addMarkerAngle","getMarkerPoints","getMarkerAngles","j","pp","newP","curr","cntrl","cp","xAxisRotation","largeArcFlag","sweepFlag","currp","cpp","centp","u","acos","a1","ad","dir","ah","halfWay","sx","sy","pattern","element","tempSvg","createElement","cctx","getContext","baseRender","point","defs","GradientBase","stops","getGradient","gradientUnits","attributesToInherit","inheritStopContainer","stopsContainer","attributeToInherit","parentOpacityProp","addParentOpacity","addColorStop","rootView","group","tempCtx","linearGradient","createLinearGradient","radialGradient","fx","fy","createRadialGradient","stopColor","AnimateBase","duration","begin","maxDuration","getProperty","attributeType","attributeName","initialValue","initialUnits","removed","calcValue","update","delta","frozen","animationFrozen","animationFrozenValue","updated","to","values","progress","ret","lb","floor","ub","ceil","animate","animateColor","parseInt","animateTransform","horizAdvX","isRTL","isArabic","fontFace","missingGlyph","glyphs","arabicForm","unicode","fontface","ascent","descent","unitsPerEm","missingglyph","glyph","textBaseline","getText","getAnchorDelta","renderChild","startI","textAnchor","measureTextRecursive","textParent","measureText","TextElementBase","getGlyph","customFont","fillText","strokeText","reverse","lw","measure","textToMeasure","tref","hasText","baseRenderChildren","checkBoundingBox","onclick","onmousemove","cursor","image","href","isSvg","img","crossOrigin","self","onload","onerror","src","drawImage","symbol","css","cssDefs","cssDef","cssClasses","cssProps","cssClass","k","substr","getSelectorSpecificity","srcs","urlStart","urlEnd","fonts","getElementsByTagName","use","oldParent","cMask","maskCtx","globalCompositeOperation","fillRect","clipPath","oldBeginPath","oldClosePath","px","py","efd","extraFilterDistance","feMorphology","feComposite","feColorMatrix","m1","m2","m3","imGet","rgba","imSet","val","mi","srcData","getImageData","clearRect","putImageData","feGaussianBlur","blurRadius","canvasRGBA","id","display","body","appendChild","removeChild","title","desc","MISSING","className","load","loadXmlDoc","dom","mapXY","offsetLeft","offsetTop","offsetParent","scrollX","scrollY","clientX","event","clientY","documentElement","isFirstRender","draw","parentNode","clientWidth","clientHeight","cWidth","cHeight","xRatio","yRatio","waitingForImages","intervalID","setInterval","needUpdate","hasEvents","runEvents","clearInterval","events","run","eventElements","isPointInPath","build","svgTags","querySelectorAll","svgTag","insertBefore","div","innerHTML","typeCount","findMatch","regex","useSourceMap","list","map","item","content","sourceMap","cssMapping","btoa","sourceMapping","unescape","encodeURIComponent","JSON","stringify","sourceURLs","sources","source","sourceRoot","concat","cssWithMappingToString","mediaQuery","alreadyImportedModules","color_string","alpha","charAt","simple_colors","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","color_defs","re","example","process","bits","processor","exec","channels","toRGB","toRGBA","toHex","getHelpXML","examples","sc","setAttribute","list_item","list_color","example_div","cssText","createTextNode","list_item_value","error","execScript","attachEvent","addEventListener","eval","default","Tweenable","composeEasingObject","tweenProps","clone","each","tween","tweenable","h","cancelAnimationFrame","webkitCancelAnimationFrame","oCancelAnimationFrame","msCancelAnimationFrame","mozCancelRequestAnimationFrame","clearTimeout","_","requestAnimationFrame","webkitRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","mozRequestAnimationFrame","setTimeout","keys","forEach","w","O","M","_currentState","_configured","_scheduleFunction","setConfig","filters","_filterArgs","_delay","_duration","_step","_targetState","_timestamp","now","isPlaying","_attachment","_scheduleId","_timeoutHandler","_applyFilter","_originalState","_easing","_isTweening","_start","resume","attachment","_pausedAtTime","delay","easing","promise","Promise","_promise","_resolve","_reject","catch","_isPaused","pause","formulas","token","Date","getOwnPropertySymbols","propertyIsEnumerable","assign","String","getOwnPropertyNames","fromCharCode","unsetBezierFunction","setBezierFunction","displayName","interpolate","Function","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeOutBounce","easeInBack","easeOutBack","easeInOutBack","elastic","swingFromTo","swingFrom","swingTo","bounce","bouncePast","easeFromTo","easeFrom","easeTo","tweenCreated","_tokenData","beforeTween","P","afterTween","S","RegExp","unshift","formatString","chunkNames","toFixed","mul_table","shg_table","BlurStack","pixels","radius","yi","yw","r_sum","g_sum","b_sum","a_sum","r_out_sum","g_out_sum","b_out_sum","a_out_sum","r_in_sum","g_in_sum","b_in_sum","a_in_sum","pr","pg","pb","pa","rbs","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","stack","stackEnd","stackIn","stackOut","mul_sum","shg_sum","stylesInDom","isOldIE","fn","memo","memoize","all","atob","getTarget","querySelector","getElement","styleTarget","HTMLIFrameElement","contentDocument","head","singleton","singletonCounter","stylesInsertedAtTop","fixUrls","addStylesToDom","options","domStyle","refs","parts","addStyle","listToStyles","newStyles","part","media","insertStyleElement","insertInto","Error","lastStyleElementInsertedAtTop","insertAt","nextSibling","firstChild","before","removeStyleElement","idx","splice","createStyleElement","undefined","attrs","addAttrs","el","obj","remove","styleIndex","applyToSingletonTag","URL","createObjectURL","revokeObjectURL","Blob","link","rel","createLinkElement","updateLink","applyToTag","newObj","DEBUG","newList","mayRemove","replaceText","textStore","index","replacement","Boolean","styleSheet","cssNode","autoFixUrls","convertToAbsoluteUrls","blob","oldSrc","location","baseUrl","protocol","host","currentDir","pathname","fullMatch","origUrl","newUrl","unquotedOrigUrl","$1","test","locator","DOMHandler","cdata","position","lineNumber","columnNumber","_locator","systemId","_toString","chars","java","lang","appendElement","hander","currentElement","doc","mimeType","sax","XMLReader","domBuilder","errorHandler","defaultNSMap","xmlns","entityMap","setDocumentLocator","errorImpl","isCallback","buildErrorHandler","nbsp","copy","parse","startDocument","DOMImplementation","createDocument","documentURI","startElement","namespaceURI","localName","qName","createElementNS","len","getURI","attr","getQName","createAttributeNS","getLocator","nodeValue","setAttributeNode","endElement","tagName","startPrefixMapping","prefix","uri","endPrefixMapping","processingInstruction","ins","createProcessingInstruction","ignorableWhitespace","ch","characters","charNode","createCDATASection","skippedEntity","endDocument","normalize","comment","comm","createComment","startCDATA","endCDATA","startDTD","publicId","impl","implementation","createDocumentType","dt","warning","warn","fatalError","XMLSerializer","dest","_extends","Class","ppt","__proto__","NodeType","ELEMENT_NODE","ATTRIBUTE_NODE","TEXT_NODE","CDATA_SECTION_NODE","ENTITY_REFERENCE_NODE","ENTITY_NODE","PROCESSING_INSTRUCTION_NODE","COMMENT_NODE","DOCUMENT_NODE","DOCUMENT_TYPE_NODE","DOCUMENT_FRAGMENT_NODE","NOTATION_NODE","ExceptionCode","ExceptionMessage","HIERARCHY_REQUEST_ERR","INDEX_SIZE_ERR","DOMSTRING_SIZE_ERR","NOT_FOUND_ERR","WRONG_DOCUMENT_ERR","INVALID_CHARACTER_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","INUSE_ATTRIBUTE_ERR","NOT_SUPPORTED_ERR","DOMException","code","message","captureStackTrace","NodeList","LiveNodeList","refresh","_node","_refresh","_updateLiveList","inc","_inc","ownerDocument","ls","__set__","NamedNodeMap","_findNodeIndex","_addNamedNode","newAttr","oldAttr","ownerElement","_onRemoveAttribute","_nsMap","_onAddAttribute","_removeNamedNode","lastIndex","features","_features","feature","Node","_xmlEncoder","charCodeAt","_visitNode","callback","Document","_onUpdateChild","newChild","cs","_removeChild","previous","previousSibling","lastChild","_insertBefore","nextChild","newFirst","newLast","pre","Attr","CharacterData","Text","Comment","CDATASection","DocumentType","Notation","Entity","EntityReference","DocumentFragment","ProcessingInstruction","nodeSerializeToString","isHtml","nodeFilter","buf","refNode","lookupPrefix","visibleNamespaces","namespace","serializeToString","needNamespaceDefine","isHTML","pubid","sysid","sub","internalSubset","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","getNamedItem","setNamedItem","_ownerElement","setNamedItemNS","getNamedItemNS","removeNamedItem","removeNamedItemNS","hasFeature","version","versions","qualifiedName","doctype","refChild","replaceChild","oldChild","hasChildNodes","cloneNode","deep","node2","attrs2","appendData","isSupported","hasAttributes","lookupNamespaceURI","isDefaultNamespace","importNode","importedNode","rtv","getAttribute","createDocumentFragment","createAttribute","specified","createEntityReference","pl","hasAttribute","getAttributeNode","removeAttribute","removeAttributeNode","_appendSingleChild","setAttributeNodeNS","removeAttributeNS","old","getAttributeNodeNS","hasAttributeNS","getAttributeNS","setAttributeNS","getElementsByTagNameNS","substringData","count","substring","insertData","replaceData","deleteData","splitText","newText","newNode","$$length","getTextContent","nameStartChar","nameChar","slice","tagNamePattern","copyLocator","parseElementStartPart","currentNSMap","entityReplacer","attrName","add","setTagName","closed","localNSMap","nsp","nsPrefix","_copy","parseHtmlSpecialContent","elStartEnd","elEndStart","fixSelfClosed","closeMap","pos","lastIndexOf","parseDCC","end","matchs","reg","lastMatch","endDTD","parseInstruction","ElementAttributes","_set_proto_","thiz","defaultNSMapCopy","surrogate1","surrogate2","fixedFromCharCode","appendText","xt","lineEnd","linePattern","lineStart","parseStack","tagStart","config","endMatch","locator2","getLocalName","_packages","_packages2","_toConsumableArray","arr","arr2","Canvas","extend","NAME","canvasId","_this","setScrollArea","html","initialWidth","getWidth","initialHeight","getHeight","droppable","accept","over","ui","onDragEnter","draggable","out","onDragLeave","drop","_getEvent","helperPos","helper","fromDocumentToCanvasCoordinate","onDrop","getX","left","getY","top","shiftKey","ctrlKey","appendTo","zIndex","drag","onDrag","addClass","paper","Raphael","zoomPolicy","zoomFactor","selection","Selection","currentDropTarget","currentHoverFigure","regionDragDropConstraint","policy","figure","RegionEditPolicy","eventSubscriptions","editPolicy","util","ArrayList","figures","lines","commonPorts","resizeHandles","commandStack","CommandStack","linesToRepaintAfterDragDrop","lineIntersections","installEditPolicy","WheelZoomPolicy","DefaultKeyboardPolicy","BoundingboxSelectionPolicy","DropInterceptorPolicy","connection","ComposedConnectionCreatePolicy","DragConnectionCreatePolicy","ClickConnectionCreatePolicy","isPostChangeEvent","calculateConnectionIntersection","svgPathString","repaint","mouseDown","mouseDownX","mouseDownY","mouseDragDiffX","mouseDragDiffY","onMouseUp","hover","getBestFigure","onMouseLeave","fireEvent","onMouseEnter","exc","onMouseMove","hoverFigure","diffXAbs","diffYAbs","onMouseDrag","which","preventDefault","onMouseDown","stopPropagation","onRightMouseDown","on","onDoubleClick","onClick","originalEvent","wheelDelta","detail","onMouseWheel","keyupCallback","KeyboardPolicy","onKeyUp","keyCode","keydownCallback","onKeyDown","destroy","clear","unbind","markSaveLocation","hideDecoration","showDecoration","_this2","getLines","_loop","l1","removeElementAt","ii","l2","partInter","intersection","getSize","other","_this3","SelectionPolicy","getSelection","getAll","unselect","grep","stay","onUninstall","ZoomPolicy","ConnectionCreatePolicy","uninstallEditPolicy","onInstall","getDropInterceptorPolicies","setZoom","animated","getZoom","getDimension","geo","Rectangle","setDimension","dim","widths","getFigures","getAbsoluteX","heights","getAbsoluteY","asArray","setSize","getScrollLeft","getScrollTop","fromCanvasToDocumentCoordinate","getHtmlContainer","touches","changedTouches","elementSelector","scrollArea","getScrollArea","scrollLeft","scrollTop","setScrollLeft","setScrollTop","scrollTo","getCanvas","shape","basic","Line","setPosition","setCanvas","getShapeElement","PolyLine","_this4","contains","Connection","disconnect","getLine","getId","getFigure","getIntersection","entry","justTouching","snapToHelper","_this5","orig","SnapToEditPolicy","snap","registerPort","port","unregisterPort","getAllPorts","getCommandStack","getPrimarySelection","getPrimary","setCurrentSelection","_this6","addSelection","_this7","select","blacklist","whitelist","testFigure","isInList","considering","isInBlacklist","isInWhitelist","checkRecursive","isVisible","hitTest","_i","_len","_i2","figureResult","childResult","lineResult","getBestLine","_i3","array","sort","lineToIgnore","Figure","inArray","draggedDomNode","droppedDomNode","relX","relY","onContextMenu","returnValue","args","subscribers","off","eventOrFunction","Configuration","i18n","move","assignShape","groupShapes","ungroupShapes","deleteShape","moveShape","moveLine","addShape","moveVertex","moveVertices","deleteVertex","resizeShape","rotateShape","collection","addVertex","changeAttributes","connectPorts","menu","deleteSegment","addSegment","dialog","filenamePrompt","createResizeHandle","owner","ResizeHandle","createConnection","sourcePort","targetPort","dropTarget","createInputPort","relatedFigure","InputPort","createOutputPort","OutputPort","createHybridPort","HybridPort","_interopRequireDefault","_extend","_extend2","setter","oldPoint","sourceDecorator","targetDecorator","sourceDecoratorNode","targetDecoratorNode","isMoving","moveListener","setStartPoint","setEndPoint","_super","setSourceDecorator","setTargetDecorator","setSource","setTarget","getSourceDecorator","getTargetDecorator","getSource","connections","onDisconnect","fireSourcePortRouteEvent","fireTargetPortRouteEvent","reconnect","onConnect","routingRequired","isResizeable","isDraggable","layout","ConnectionLocator","decorator","setParent","calculatePath","routingHints","getZOrder","toBack","repaintBlocked","paint","getVertices","first","getStartAngle","opacity","getColor","lineColor","hex","last","getEndAngle","postProcess","postProcessCache","router","dx2","dy2","updateVertices","DragDropEditPolicy","moved","toFront","insertAfter","getStartPoint","refPoint","getStartPosition","getConnectionAnchorLocation","getConnectionAnchorReferencePoint","getEndPoint","getEndPosition","sharingPorts","notiCanvas","lineSegments","SplineConnectionRouter","asin","abs","getConnections","conn","createCommand","request","getPolicy","CommandType","MOVE","CommandMoveVertices","MOVE_BASEPOINT","CommandReconnect","getPersistentAttributes","memento","getParent","getName","decoration","setPersistentAttributes","_JSONUtil","_JSONUtil2","_UUID","_UUID2","_defineProperty","MIN_TIMER_INTERVAL","setterWhitelist","setId","setX","setY","setWidth","setHeight","boundingBox","setBoundingBox","minWidth","setMinWidth","minHeight","setMinHeight","setCssClass","userData","setUserData","setDraggable","resizeable","setResizeable","selectable","setSelectable","setRotationAngle","setAlpha","glow","setGlow","visible","setVisible","keepAspectRatio","setKeepAspectRatio","getterWhitelist","getRotationAngle","getUserData","isSelectable","getAlpha","isResizeHandle","deleteable","canSnapToHelper","snapToGridAnchor","timerId","timerInterval","composite","rotationAngle","getMinWidth","getMinHeight","isInDragDrop","ox","oy","lastAppliedAttributes","selectionHandles","panningDelegate","relocateChildrenEventCallback","relocate","defaultSelectionAdapter","selectionAdapter","RectangleSelectionFeedbackPolicy","isPlainObject","func","param","_key","pick","var_keys","asPrimarySelection","onSelect","onUnselect","setSelectionAdapter","adapter","getSelectionAdapter","isSelected","newId","getCssClass","hasCssClass","addCssClass","removeCssClass","newClass","toggleCssClass","stopTimer","startTimer","milliSeconds","onTimer","StrongComposite","getTopLevelShapeElement","_figures","_lines","insertElementAt","handle","SelectionFeedbackPolicy","removedPolicy","debug","getChildren","resetChildren","createShapeElement","hide","visibleDuration","fadeOut","show","fadeIn","flatDiff","applyTransformation","flag","getHandleBBox","onDragStart","bbox","getAbsolutePosition","getBestChild","canStartDrag","_newPos","adjustPosition","newPos","getCanSnapToHelper","onPanning","onPanningEnd","onDragEnd","execute","delegateTarget","draggedFigure","_this8","delegate","onCatch","droppedFigure","percent","_this9","getKeepAspectRatio","setCanSnapToHelper","getSnapToGridAnchor","setSnapToGridAnchor","getAbsoluteBounds","_this10","oldPos","getPosition","_this11","newDim","adjustDimension","getOuterBoundingBox","parentBB","childBB","merge","iX","iY","corona","isMemberDraggable","isMemberSelectable","isStrechable","isDeleteable","setDeleteable","containedFigure","getRoot","setComposite","getComposite","_inEvent","context","___originalCallback","figureToIgnore","CommandMove","DELETE","CommandDelete","RESIZE","CommandResize","cloneMetaData","excludeChildren","initialId","HeadlessCanvas","Port","InputPortLocator","CONNECT","CommandConnect","OutputPortLocator","Circle","DEFAULT_BORDER_COLOR","Color","lighterBgColor","coronaWidth","bgColor","diameter","setCoronaWidth","semanticGroup","setSemanticGroup","getCoronaWidth","getSemanticGroup","useGradient","preferredConnectionDirection","emitter","connectionAnchor","anchor","ConnectionAnchor","maxFanOut","MAX_SAFE_INTEGER","IntrusivePortsFeedbackPolicy","portSelectionAdapter","setMaxFanOut","getMaxFanOut","setConnectionAnchor","setOwner","referencePoint","inquiringConnection","getLocation","getReferencePoint","getConnectionDirection","peerPort","getDirection","setConnectionDirection","direction","setLocator","setBackgroundColor","lighter","setValue","onPortValueChanged","hash","_oldstroke","getStroke","setStroke","setName","iX2","iY2","Corona","setDiameter","CommandMovePort","ports","setColor","zoomCallback","origWidth","origHeight","origRadius","origStroke","blockEvent","setType","getOwner","getType","commandMove","commandResize","getSnapToDirection","SnapToHelper","NORTH_WEST","NORTH","NORTH_EAST","EAST","SOUTH_EAST","SOUTH","SOUTH_WEST","WEST","NSEW","updateCursor","oldX","oldY","diffX","diffY","objPosX","objPosY","objWidth","objHeight","newX","newY","corrPos","isTouchDevice","offset2","bgGradient","darker","supportsSnapToHelper","ctrl","SVGFigure","SetFigure","setSVG","getSVG","createSet","importSVG","svgNodes","newSVGNodes","oldSVG","rawSVG","svgDOM","_dimensionReadFromJSON","findStyle","$2","subShape","subAttr","getBBox","alert","primary","setPrimary","checkDescendant","figureToCheck","expand","addRecursive","addAll","getAssignedFigures","originalWidth","originalHeight","strokeScale","applyAlpha","rs","getPorts","VectorFigure","dasharray","strokeBeforeGlow","glowIsActive","setDashArray","setRadius","getDashArray","getRadius","getBackgroundColor","dashPattern","ensureDefault","Command","label","getLabel","canExecute","cancel","undo","redo","CommandAdd","CommandAddVertex","newPoint","removeVertexAt","insertVertexAt","CommandAssignFigure","assignedConnections","isNode","oldBoundingBox","assignFigure","oldComposite","unassignFigure","stickFigures","CommandAttr","newAttributes","oldAttributes","CommandBoundingBox","newBoundingBox","equals","CommandCollection","commandLabel","commands","labels","unique","canExec","cmd","setConnection","getConnection","optionalCallback","removedParentEntry","indexOfChild","CommandDeleteGroup","batchDelete","CommandUngroup","CommandGroup","Group","isEmpty","setStartPosition","CommandMoveConnection","setTranslation","CommandMoveLine","CommandMoveVertex","setIndex","origPoint","updatePosition","setVertex","oldVertices","newVertices","setVertices","con","oldSourcePort","oldTargetPort","setNewPorts","newSourcePort","newTargetPort","CommandRemoveVertex","CommandReplaceVertices","originalVertices","oldWidth","oldHeight","newWidth","newHeight","CommandRotate","oldAngle","newAngle","portRelayoutRequired","undostack","redostack","maxundo","transactionCommand","eventListeners","setUndoLimit","notifyListeners","POST_EXECUTE","PRE_EXECUTE","startTransaction","isInTransaction","commitTransaction","PRE_UNDO","POST_UNDO","PRE_REDO","POST_REDO","getRedoLabel","getUndoLabel","canRedo","canUndo","listener","CommandStackEventListener","stackChanged","removeEventListener","state","action","CommandStackEvent","size","POST_INIT","POST_MASK","PRE_MASK","details","getStack","getCommand","getDetails","isPreChangeEvent","MOVE_VERTEX","MOVE_VERTICES","MOVE_GHOST_VERTEX","RESET","ROTATE","locals","ArrowDecorator","Decorator","st","backgroundColor","BarDecorator","CircleDecorator","_Color2","DiamondDecorator","inverseLerp","X1","Y1","X2","Y2","nenner","zaehler","pointProjection","minx","maxx","miny","maxy","U","distance","dotprod","projlenSq","lenSq","bx","by","bw","bh","setBoundary","adjustBoundary","PositionConstants","getDistance","translated","factor","scaled","getScaled","subtract","dot","cross","lerp","Ray","isHorizontal","similarity","otherRay","getAveraged","resize","setBounds","getLeft","getRight","getTop","getBottom","getTopLeft","getTopCenter","getTopRight","getCenterLeft","getCenterRight","getBottomLeft","getBottomCenter","getCenter","getBottomRight","moveInside","newRect","pointOrRectangle","cw","ow","oh","oct","determineOctant","r2","HISTERESE","DIRECTION_UP","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_DOWN","isInside","intersects","x11","y11","x12","y12","x21","y21","x22","y22","intersectionWithLine","toJSON","Util","insetPoint","distanceFromStart","vx","vy","localDistance","io","Reader","unmarshal","Writer","marshal","resultCallback","formatXml","formatted","pad","indent","padding","json","createFigureFromElement","createFigureFromType","getPort","base64Content","Base64","encode","png","cropBoundingBox","canvasState","origPos","outerHTML","zoom","find","canvasDomNode","append","fullSizeCanvas","renderCallback","sourceX","sourceY","sourceWidth","sourceHeight","croppedCanvas","dataUrl","toDataURL","base64Image","CenterEdgeConnectionAnchor","ref","center","getBox","ChopboxConnectionAnchor","reference","FanConnectionAnchor","separation","ray","xSeparation","ySeparation","intersections","reduce","ShortesPathConnectionAnchor","Oval","CircuitConnectionRouter","ManhattanConnectionRouter","setBridgeRadius","setVertexRadius","abortRoutingOnFirstVertexNode","LineSelectionFeedbackPolicy","vertexNodes","vertexRadius","setJunctionRadius","bridgeRadius","bridge_LR","bridge_RL","route","fromPt","fromDir","toPt","toDir","_route","intersectionsASC","intersectionsDESC","intersectionForCalc","oldP","bridgeWidth","bridgeCode","lastVertexNode","interP","hit","otherZ","vertexNode","exclude","ConnectionRouter","_paint","inset","lastP","canRemoveVertexAt","canRemoveSegmentAt","verticesSet","DirectRouter","invalidate","FanConnectionRouter","routeCollision","midPoint","bendPoint","InteractiveManhattanConnectionRouter","OrthogonalSelectionFeedbackPolicy","_routingMetaData","routedByUserInteraction","halfRoute","MINDIST","vertexCount","vertex","startMoved","endMoved","_p","_p2","segmentCount","tmpConn","vertices","draggedSegment","getSegments","lp0","lp1","getVertex","routingMetaData","ManhattanBridgedConnectionRouter","BRIDGE_HORIZONTAL_LR","BRIDGE_HORIZONTAL_RL","TOL","TOLxTOL","TOGGLE_DIST","UP","RIGHT","DOWN","LEFT","xDiff","yDiff","_typeof","ROUTER_RECTS","MazeConnectionRouter","useSpline","useSimplify","useSimplifyValue","useDebug","useShift","portOutletOffset","finder","PF","JumpPointFinder","allowDiagonal","dontCrossCorners","shift","oldToPt","oldFromPt","getAdjustedPoint","grid","generateNoGoGrid","findPath","isWalkableAt","svgPathBefore","adjustPath","_svgPathBefore","spline","CubicSpline","splinePoints","generate","simplify","_svgPathBefore2","oneShift2","canvasWidth","canvasHeight","Grid","box","r_orig","b_orig","_i4","setWalkableAt","_j","_i5","_y","_b_orig","_i6","_j2","_x","_r_orig","_j3","_i7","adjustment","getSquareDistance","getSquareSegmentDistance","simplifyRadialDistance","sqTolerance","prevPoint","newPoints","simplifyDouglasPeucker","Uint8Array","maxSqDist","sqDist","firstStack","lastStack","tolerance","highestQuality","MuteableManhattanConnectionRouter","rowsUsed","colsUsed","constraints","reservedInfo","startPoint","endPoint","average","startNormal","getStartDirection","endNormal","getEndDirection","positions","horizontal","isCycle","trial","findFirstFigureAtStraightLine","EMPTY_LIST","_figure","getExcludingFigures","adjust","processPositions","getColumnNear","proximity","reserveColumn","getRowNear","reserveRow","removeReservedLines","prev","rInfo","reservedRows","reservedCols","column","info","row","getConstraint","setConstraint","constraint","excluding","col","getMidpoint","RubberbandRouter","thickness","uv","uv2","strength","second","third","start90","start270","first90","first270","second90","second270","third90","third270","end90","end270","SketchConnectionRouter","VertexRouter","VertexSelectionFeedbackPolicy","startAnchor","endAnchor","BottomLocator","Locator","targetBoundingBox","CenterLocator","DraggableLocator","PortLocator","dividerFactor","thisNAME","portIndex","applyConsiderRotation","LeftLocator","margin","ManhattanMidpointLocator","segmentIndex","ParallelMidpointLocator","setDistance","nx","ny","radian","rotAnchor","rotCenterOfLabel","xm","ym","PolylineMidpointLocator","halfW","halfH","rotAngle","ratio","RightLocator","SmartDraggableLocator","boundedCorners","dist","xOffset","yOffset","calcBoundingCorner","parentVertices","childVertices","i_parent","i_child","TopLocator","XYAbsPortLocator","XYRelPortLocator","mesh","ExplodeLayouter","MeshLayouter","MIN_MARGIN","figureToAdd","changes","dis","currentOctChanges","ProposedMeshChange","r1","uid","autoResize","resizableFilterSelector","AutoResizer","defaults","previousScrollTop","maxWidth","maxHeight","overflowY","complete","onAfterResize","onResize","onBeforeResize","extraSpace","cloneCSSProperties","cloneCSSValues","overflow","check","proxy","createClone","removeAttr","whiteSpace","immediate","injectClone","prevValue","cloneWidth","currentWidth","removeData","cloneContainer","support","htmlMenuitem","htmlCommand","eventSelectstart","widget","_cleanData","cleanData","elems","elem","triggerHandler","$currentTrigger","initialized","$win","counter","namespaces","menus","types","trigger","autoHide","reposition","determinePosition","$menu","my","at","of","collision","outerHeight","outerWidth","opt","bottom","right","positionSubmenu","animation","noop","items","hoveract","timer","pageX","pageY","abortevent","stopImmediatePropagation","contextmenu","$this","hasClass","built","isEmptyObject","$trigger","op","click","Event","mousedown","button","mouseup","mouseenter","$related","relatedTarget","$document","closest","mousemove","mouseleave","layerClick","$window","triggerAction","elementFromPoint","$layer","has","one","contextMenu","keyStop","isInput","$selected","blur","$parent","itemdata","toUpperCase","accesskeys","$node","prevItem","$s","$children","$prev","$round","itemMouseleave","itemMouseenter","$input","focus","nextItem","$next","focusInput","contextMenuRoot","blurInput","menuMouseenter","hovering","menuMouseleave","itemClick","contextMenuKey","isFunction","callbacks","inputClick","hideMenu","force","focusItem","siblings","blurItem","removeClass","$t","zin","$tt","zindex","layer","$label","accesskey","ak","aks","splitAccesskey","_name","hasTypes","inputs","selected","prependTo","radio","icon","nested","andSelf","$item","disabled","fixedPosition","inputLabel","operation","$context","_hasContext","$visibleMenu","fromMenu","setInputValues","getInputValues","menuChildren","dimetric","arrow","note","diagram","flowchart","analog","pert","navigator","platform","EditPolicy","SingleSelectionPolicy","isInsideMode","rect1","rect2","intersectsMode","decision","boundingBoxFigure1","boundingBoxFigure2","canDrawBoundingBox","oldSelection","setDecisionMode","useIntersectionMode","currentSelection","mouseMovedDuringMouseDown","canDragStart","delegated","mouseDraggingElement","mouseDownElement","draggingLineCommand","draggingLine","fakeDragX","fakeDragY","handleRect","dash","LineResizeHandle","selectionRect","CanvasPolicy","mouseX","mouseY","createMonochromGif","gif","bit","byte_","writeBit","chunklen","CoronaDecorationPolicy","DecorationPolicy","startDragX","startDragY","diameterToBeFullVisible","diameterToBeVisible","sumDiameter","setDiameterToBeVisible","setDiameterToBeFullVisible","getDiameterToBeVisible","getDiameterToBeFullVisible","__origAlpha","updatePorts","connectInquirer","connectIntent","Hub","getHybridPort","ExtendedKeyboardPolicy","FadeoutDecorationPolicy","DEFAULT_FADEOUT_DURATION","DEFAULT_ALPHA_DECREMENT","alphaDec","hidePortsCounter","portDragging","duringHide","GhostMoveSelectionPolicy","ghostRectangle1","ghostRectangle2","sel","resetPorts","draggingElement","redrawConnection","inter","PanningSelectionPolicy","area","ReadOnlySelectionPolicy","ShowChessboardEditPolicy","GRID_COLOR","GRID_WIDTH","oldBg","setGrid","onZoomCallback","emitterFigure","zoomData","gridColor","background","backgroundSize","backgroundPosition","ShowDimetricGridEditPolicy","shapes","setGridColor","angle26","atan","angle153","cos30","sin30","cos150","sin150","setStart","setFinish","ShowDotEditPolicy","DOT_COLOR","DOT_RADIUS","DOT_DISTANCE","dotDistance","dotRadius","dotColor","ShowGridEditPolicy","GRID_STOKE","gridDistance","gridStroke","gridWidth","SnapToCenterEditPolicy","SNAP_THRESHOLD","FADEOUT_DURATION","centers","horizontalGuideLines","verticalGuideLines","hideHorizontalGuides","hideVerticalGuides","modifiedPos","originalPos","allowXChanges","allowYChanges","inputCenter","snapHorizontal","snapped","showHorizontalGuides","diff","vertical","snapVertical","showVerticalGuides","populateCenters","candidates","snappedPoint","causedFigure","fast","SnapToDimetricGridEditPolicy","snapPoint","CENTER_H","CENTER_V","NORTH_SOUTH","EAST_WEST","setLineColor","getLineColor","SnapToGeometryEditPolicy","rows","cols","vline","hline","hideVerticalLine","hideHorizontalLine","snapDirections","edge","showVerticalLine","showHorizontalLine","inputBounds","snapRectangle","bounds","resultBounds","topLeft","bottomRight","snapOrientation","inputPoint","resultPoint","populateRowsAndCols","rightCorrection","getCorrectionFor","leftCorrection","bottomCorrection","topCorrection","entries","side","resultMag","magnitude","removeAll","causedBox","causedCenter","fromY","maxLength","yLength","snappedBox","fromX","xLength","SnapToGridEditPolicy","showGrid","renderer","SnapToInBetweenEditPolicy","populateBounds","intersectionPoint","leftIntersections","leftInputPoint","causedBBox","rightIntersections","rightInputPoint","snappedRect","leftSide","rightSide","topIntersections","topInputPoint","bottomIntersections","bottomInputPoint","topSide","bottomSide","snapTopLeft","snapTopRight","snapBottomRight","SnapToVerticesEditPolicy","VertexResizeHandle","correction","vertexResizeHandle","diffx","diffy","SNAP","snappedPos","_shifty","debouncedZoomedCallback","_debounce","__wheelZoom","newZoom","client","_zoom","scrollWidth","centerY","centerX","params","finish","setViewBox","coordsAfter","wait","_arguments","timeout","callNow","z","viewBoxWidth","viewBoxHeight","port1","beeline","pulse","tempConnection","ripple","setEndPosition","setRouter","policies","_arg","anim","circle1","circle2","anim1","repeat","Infinity","anim2","currentTarget","de","ct","PortFeedbackPolicy","onHoverLeave","onHoverEnter","OrthogonalConnectionCreatePolicy","getRouter","beforeVertex","lastVertex","portPos","lastSegmentDir","orthogonal","xDist","AntSelectionFeedbackPolicy","isPrimarySelection","_updateBeeLine","projection","center1","center2","BigRectangleSelectionFeedbackPolicy","BusSelectionFeedbackPolicy","r4","r6","r8","xPos","yPos","FigureEditPolicy","moveCallback","originalAlpha","GlowSelectionFeedbackPolicy","HBusSelectionFeedbackPolicy","HorizontalEditPolicy","dashArray","r3","r5","r7","constRect","diffW","diffH","ResizeSelectionFeedbackPolicy","RoundRectangleSelectionFeedbackPolicy","SlimSelectionFeedbackPolicy","VBusSelectionFeedbackPolicy","_handle","GhostVertexResizeHandle","VerticalEditPolicy","WidthSelectionFeedbackPolicy","LineStartResizeHandle","LineEndResizeHandle","_p3","p_m1","_p4","_p5","_p6","resizeWidthHalf","resizeHeightHalf","removeSegment","_newX","splitSegment","newSegLength","np1","np2","np3","np4","_np","_np2","_newSegLength","_np3","_np4","_np5","_np6","_np7","_np8","segment","hitSegment","_originalVertices","_newVertices","startHandle","endHandle","ElasticStrapFeedbackPolicy","connectionLine","hoverFiger","growFactor","allPorts","__beforeInflate","dispose","OpAmp","MyInputPortLocator","calcY","inputLocator","createPort","ResistorBridge","MyOutputPortLocator","outputLocator","ResistorVertical","VoltageSupplyHorizontal","VoltageSupplyVertical","CalligrapherArrowDownLeft","CalligrapherArrowLeft","Arc","startAngle","endAngle","a2","w2","h2","getDiameter","setCenter","Diamond","Polygon","resetVertices","precursorIndex","maxOpacity","Image","setPath","getPath","Label","FONT_FALLBACK","cachedWidth","cachedHeight","cachedMinWidth","cachedMinHeight","fontColor","outlineStroke","outlineColor","bold","editor","setText","installEditor","setOutlineStroke","setOutlineColor","setFontFamily","setFontSize","setFontColor","setPadding","setBold","getOutlineStroke","getOutlineColor","getFontFamily","getFontSize","getFontColor","getPadding","isBold","lastAppliedLabelRotation","lastAppliedTextAttributes","clearCache","lattr","calculateTextAttr","attrDiff","ts","polySides","oddNodes","pi","pj","DEFAULT_COLOR","isGlowing","outlineVisible","startX","setStartX","startY","setStartY","endX","setEndX","endY","setEndY","setCorona","getCorona","isFaked","_lineColor","_stroke","getStartX","getStartY","getEndX","getEndY","getLength","getAngle","percentage","segments1","segments2","s1","s2","b1","b2","ua_t","ub_t","u_b","ua","getRelatedPort","getOppositePort","objPos","getIndex","origin","mDir","mDiff","t_a","t_b","removedPoint","lastDist","_segment","lastValidLength","maxX","maxY","_length","modStart","modEnd","updateBoundingBox","fracWidth","fracHeight","thisX","thisY","rot","cachedWrappedAttr","wrappedTextAttr","longestWord","arg1","arg2","svgText","words","abc","letterWidth","LINE_COLOR","isDead","getEnclosingAngle","trans","Composite","assignedFigures","Jailhouse","Raft","WeakComposite","aboardFigures","getAboardFigures","dontApplyToChildren","aboardedFigures","recalculate","raftBoundingBox","getNextComposite","figureToTest","nextComposite","Diagram","cache","setData","getData","Pie","COLORS","TWO_PI","d2","sum","_sum","pie","offsetAngle","seg","drawSegment","polarPath","theta","rotation","resolution","Sparkline","pathString","prev_pt","toCoords","amplitude","calcPath","w4","Acw","Icon","Alarm","Anonymous","Apple","Apps","ArrowDown","ArrowLeft","ArrowLeft2","ArrowRight","ArrowRight2","ArrowUp","Aumade","BarChart","BioHazard","Book","Bookmark","Books","Bubble","Bug","Calendar","Cart","Ccw","Chat","Check","Chrome","Clip","Clock","Cloud","Cloud2","CloudDown","CloudUp","Cloudy","Code","CodeTalk","CommandLine","Connect","Contract","Crop","Cross","Cube","Customer","Db","Detour","Disconnect","DockBottom","DockLeft","DockRight","DockTop","Download","Dry","Employee","End","Ethernet","Exchange","Expand","Export","Fave","Feed","Ff","Firefox","Flag","Flickr","Folder","Fork","ForkAlt","FullCube","Future","GRaphael","Gear","Gear2","GitHub","GitHubAlt","Glasses","Globe","GlobeAlt","GlobeAlt2","Hail","Hammer","HammerAndScrewDriver","HangUp","Help","History","Home","IMac","Icons","Ie","Ie9","Import","InkScape","Ipad","Iphone","JQuery","Jigsaw","Key","Lab","Lamp","Lamp_alt","Landing","Landscape1","Landscape2","LineChart","Link","LinkedIn","Linux","List","Location","Lock","Locked","Magic","Magnet","Mail","Man","Merge","Mic","MicMute","Minus","NewWindow","No","NoMagnet","NodeJs","Notebook","Noview","Opera","Package","Page","Page2","Pallete","Palm","Paper","Parent","Pc","Pen","Pensil","People","Phone","Photo","Picker","Picture","PieChart","Plane","Plugin","Plus","Power","Ppt","Printer","Quote","Rain","ReflectH","ReflectV","Refresh","Resize2","Rotate","Ruler","Run","Rw","Safari","ScrewDriver","Search","Sencha","Settings","SettingsAlt","Shuffle","Skull","Skype","SlideShare","Smile","Smile2","Snow","Split","Star","Star2","Star2Off","Star3","Star3Off","StarOff","Start","Sticker","Stop","StopWatch","Sun","Svg","TShirt","Tag","TakeOff","Talke","Talkq","Thunder","Trash","Twitter","TwitterBird","Umbrella","Undo","Unlock","Usb","User","Users","Video","View","Vim","Volume0","Volume1","Volume2","Volume3","Warning","WheelChair","Woman","Wrench","Wrench2","Wrench3","ZoomIn","ZoomOut","FlexGridLayout","Layout","cellLocator","gridDef","layoutRequired","_layout","cell","__cellConstraint","valign","debugLines","def_cols","def_rows","min_height","min_width","minGridWidth","minGridHeight","hResizeable","vResizeable","resizeListener","columns","cellWidthFromDef","cellConstraint","rowspan","colspan","paintDebugGrid","eHeight","cellHeight","_getGridWidth","_getGridHeight","gridHeight","_cell","cellWidth","cellX","cellY","posX","posY","newLine","_newLine","HorizontalLayout","gap","setGap","getGap","markup","StackLayout","visibleLayer","setVisibleLayer","getVisibleLayer","_recursiveWidth","_recursiveHeight","TableLayout","DUMMY_CELL","__cell","getCellLayout","widthOffset","layoutInfos","setCellPadding","calculateLayout","getCellPadding","removeRow","removedRow","addRow","figuresToAdd","columnCount","missingColumns","setCellVerticalAlign","getCellVerticalAlign","setCellAlign","getCellAlign","layouts","rowCount","newLayoutInfos","layoutWidths","layoutHeights","_column","_row","_column2","VerticalLayout","Between","Fulcrum","_orig_hitTest","setConnectionDirStrategy","HorizontalBus","BACKGROUND_COLOR","setLabel","_port","CONNECTION_DIR_STRATEGY","strategy","dirStrategy","inputPorts","outputPorts","hybridPorts","persistPorts","cachedPorts","setPersistPorts","getPersistPorts","__initialVisibilityState","recursive","getInputPorts","getOutputPorts","excludePorts","clonePort","addPort","portName","getInputPort","portNameOrIndex","getOutputPort","removePort","newPort","c_size","oldCanvas","layoutPorts","relatedPort","locatorAttr","VerticalBus","labelString","mustAdjustTheAngel","PostIt","Activity","mementoValues","darkerBgColor","earlyStartLabel","createLabel","durationLabel","LabelEditor","onCommit","setDuration","earlyEndLabel","activityLabel","LabelInplaceEditor","inputPort","getActivity","anyValue","outputPort","lateStartLabel","stackLabel","lateEndLabel","getEarlyStart","lateFinish","setLateFinish","getEarlyEnd","latestEarlyEnd","parentActivity","lateStart","txt","innerCircle","State","Slider","Widget","DEFAULT_COLOR_THUMB","DEFAULT_COLOR_BG","currentValue","slideBoundingBox","panning","thumbGrow","thumb","onValueChange","panningX","panningY","grow","sliderWidth","figurePos","sliderPos","thumbX","configuration","onCancel","onStart","prompt","commitCallback","commit","_data","avoidDuplicates","elements","newVector","overwriteElementAt","byteToCharMap_","charToByteMap_","byteToCharMapWebSafe_","charToByteMapWebSafe_","ENCODED_VALS_BASE","ENCODED_VALS","ENCODED_VALS_WEBSAFE","encodeByteArray","input","opt_webSafe","byteToCharMap","output","byte1","haveByte2","byte2","haveByte3","byte3","outByte1","outByte2","outByte3","outByte4","stringToByteArray","decode","charToByteMap","byte4","str","hashString","hex2rgb","getHTMLStyle","getRed","getGreen","getBlue","getIdealTextColor","temp_elem","int2hex","round","fraction","fadeTo","pc","callback_func","callback_force","aps","log_level","log_methods","pass_methods","logs","method","level","log_arr","exec_callback","is_level","firebug","setLevel","setCallback","pathList","parentKey","grandParent","grandParentKey","addObj","paths","obj1","obj2","v1","v2","ontouchmove","pointString","poly","UUID","random","global","extended","BezierSpline","Spline","controlPoints","blend","CatmullRomSpline","mathSign","isPercent","_isString","isNumber","_isNumber","_isNaN","isNumOrStr","idCounter","getPercentValue","totalValue","defaultValue","validate","getAnyElementOfObject","hasDuplicate","ary","_isArray","interpolateNumber","numberA","numberB","findEntryInArray","specifiedKey","specifiedValue","_get","for","q","$$typeof","A","require$$0","propIsEnumerable","toObject","test1","test2","test3","letter","shouldUseNative","checkPropTypes","typeSpecs","componentName","resetWarningCache","emptyFunction","emptyFunctionWithReset","shim","propName","propFullName","secret","ReactPropTypesSecret","getShim","isRequired","ReactPropTypes","bool","number","string","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","exact","PropTypes","require$$2","styleInject","BoxContext","createContext","useBoxContext","useContext","Box","activeStyles","useAccent","Button","variant","block","classNames","useState","useEffect","CardImage","useCardContext","backgroundImage","CardContext","Card","setClassNames","Checkbox","checkbox","useRef","indeterminate","checked","onChange","ContentContext","useContentContext","Content","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","ChevronDown","_ref","_ref$color","_ref$size","rest","strokeWidth","strokeLinecap","strokeLinejoin","propTypes","Info","XSquare","X","InputNumeric","setTimer","nativeInputValueSetter","increment","bubbles","decrement","startAction","interval","stopAction","onBlur","autoComplete","tabIndex","required","InputPassword","main","legend","placeholder","InputText","InputTextArea","Input","Portal","container","createPortal","Overlay","overlay","ModalHeader","onHide","useModalContext","header","closeButton","ModalBody","spacer","ModalContext","Modal","footer","PanelContext","usePanelContext","Panel","noPadding","QuestionImage","useQuestionContext","QuestionContext","Question","React","question","Radio","Select","description","valueProperty","displayProperty","isMulti","isClearable","selectedItems","setSelectedItems","coords","setCoords","expanded","setExpanded","controlRef","optionsRef","isMultiSelect","canClear","handleClickOutsideSelect","handleEscapeKey","handleWindowEvents","renderItem","onClickSelectBox","multiselect_items","multiselect_item","onRemoveSelectedItem","controls","onClickSelectItem","renderOptions","SelectGroupContext","useSelectGroupContext","initialSelection","active","setActive","onItemClicked","SelectGroup","SelectGroupItem","alt","StepsContext","activeStep","steps","isCompleted","trySetActive","Steps","Subheader","subheader","Table","_react","_getRequireWildcardCache","hasPropertyDescriptor","getOwnPropertyDescriptor","_interopRequireWildcard","_propTypes","_ClassNames","_Tooltip","_ObjectUtils","_Ripple","WeakMap","_setPrototypeOf","setPrototypeOf","hasNativeReflectConstruct","sham","Proxy","_isNativeReflectConstruct","_getPrototypeOf","_possibleConstructorReturn","ReferenceError","_assertThisInitialized","getPrototypeOf","_Component","tooltip","renderTooltip","prevProps","updateContent","tip","tooltipOptions","iconPos","dangerouslySetInnerHTML","__html","badge","badgeClassName","renderIcon","renderLabel","renderBadge","buttonProps","findDiffKeys","defaultProps","Ripple","Component","__WEBPACK_EXTERNAL_MODULE_react__","symbols","link_type","_linkType","linkType","some","includes","PRIORITIES","NODE_TYPES","heading1","heading2","heading3","heading4","heading5","heading6","paragraph","preformatted","strong","listItem","oListItem","oList","embed","hyperlink","span","isParentOf","elected","others","lower","upper","TextNode","inner","outer","SpanNode","setChildren","boundaries","RichTextBlock","isEmbedBlock","isImageBlock","BlockNode","spans","isListItem","ListBlockNode","ListItemBlockNode","isOrderedListItem","OrderedListBlockNode","OrderedListItemBlockNode","emptyList","emptyOrderedList","getTime","asText","asTree","fromRichText","serialize","Elements","printWarning","loggedTypeFailures","typeSpecName","ex","ReactIs","emptyFunctionThatReturnsNull","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","createPrimitiveTypeChecker","createChainableTypeChecker","typeChecker","PropTypeError","propValue","getPropType","isValidElementType","expectedClass","expectedClassName","propType","expectedValues","valuesString","getPreciseType","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","shapeTypes","allKeys","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","cacheKey","chainedCheckType","expectedType","every","iteratorFn","maybeIterable","getIteratorFn","isSymbol","isElement","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","format","argIndex","lowPriorityWarning$1","condition","_len2","_key2","typeOf","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","ForwardRef","Fragment","Lazy","Memo","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isConcurrentMode","isAsyncMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","__webpack_exports__","prop_types__WEBPACK_IMPORTED_MODULE_1__","prismic_richtext__WEBPACK_IMPORTED_MODULE_2__","_richtext__WEBPACK_IMPORTED_MODULE_3__","RichText","_ref2","htmlSerializer","linkResolver","serializeHyperlink","renderAsText","maybeSerializer","serializers","processors","acc","createHtmlSerializer","createScript","js","fjs","ready","embeds","twttr","widgets","Facebook","FB","XFBML","Instagram","instgrm","Embeds","PrismicHelpers","PrismicRichText","renderRichText","react__WEBPACK_IMPORTED_MODULE_0__","prismic_richtext__WEBPACK_IMPORTED_MODULE_1__","prismic_richtext__WEBPACK_IMPORTED_MODULE_1___default","prismic_helpers__WEBPACK_IMPORTED_MODULE_2__","_embeds__WEBPACK_IMPORTED_MODULE_3__","ownKeys","enumerableOnly","sym","getOwnPropertyDescriptors","defineProperties","_objectSpread","serializeElement","serializeStandardTag","linkUrl","linkTo","linkTarget","relAttr","propsWithUniqueKey","serializeImage","oembed","provider_name","embed_url","embedHtml","serializeEmbed","targetAttr","serializeLabel","brIndex","br","serializeSpan","tag","structuredText","richText","serializedChildren","0","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","minLen","_unsupportedIterableToArray","_nonIterableSpread","identity","PLACE_HOLDER","isPlaceHolder","curry0","_curried","curry","curryN","argsLength","arg","restArgs","newArgs","range","compose","_len3","_key3","fns","firstFn","tailsFn","res","lastArgs","lastResult","_len4","_key4","rangeStep","num","Decimal","lt","toNumber","getDigitCount","newA","uninterpolateNumber","uninterpolateTruncation","_slicedToArray","_arrayWithHoles","_arr","_n","_d","_s","_iterableToArrayLimit","_nonIterableRest","getValidInterval","validMin","validMax","getFormatStep","roughStep","allowDecimals","correctionFactor","lte","digitCount","Arithmetic","digitCountValue","stepRatio","stepRatioScale","formatStep","mul","getTickOfSingleValue","tickCount","middle","isint","absVal","middleIndex","calculateStep","isFinite","tickMin","tickMax","mod","belowCount","upCount","scaleCount","getNiceTickValues","_ref3","_ref4","_getValidInterval","_getValidInterval2","cormin","cormax","_values","_calculateStep","getTickValuesFixedDomain","_ref5","_ref6","_getValidInterval3","_getValidInterval4","_ref7","_ref8","_getValidInterval5","_getValidInterval6","series","order","s0","stackValue","stackSeries","getValueByDataKey","dataKey","_isNil","_isFunction","getDomainOfDataByKey","filterNil","flattenData","_flatMap","domain","_min","_max","calculateActiveTickIndex","coordinate","_ticks$length","ticks","unsortedTicks","axis","axisType","cur","after","sameDirectionCoord","diffInterval","curInRange","afterInRange","sameInterval","getMainColorOfGraphicItem","_item$props","getLegendProps","legendData","formattedGraphicalItems","legendWidth","legendContent","legendItem","findChildByType","Legend","payload","sectors","iconType","legendType","_item$props2","inactive","getWithHeight","getBarSizeList","globalSize","barSize","_ref5$stackGroups","stackGroups","numericAxisIds","sgs","stackIds","sLen","_sgs$stackIds$j","cateAxisId","barItems","getDisplayName","selfSize","cateId","stackList","getBarPosition","barGap","barCategoryGap","bandSize","_ref6$sizeList","sizeList","maxBarSize","realBarGap","useFull","fullBarSize","newRes","_offset","originalSize","appendOffsetOfLegend","legendBox","legendProps","newOffset","verticalAlign","getDomainOfErrorBars","errorBars","findAllByType","errorBarChild","isErrorBarRelevantForAxis","entryValue","mainValue","errorDomain","prevErrorArr","errorValue","lowerValue","upperValue","parseErrorBarsOfAxis","domains","getDomainOfItemsWithSameAxis","isCategoricalAxis","getCoordinatesOfGrid","hasMin","hasMax","getTicksOfAxis","isGrid","isAll","duplicateDomain","offsetForBand","realScaleType","bandwidth","niceTicks","scaleContent","isCategorical","categoricalDomain","combineEventHandlers","defaultHandler","parentHandler","childHandler","customizedHandler","arg3","arg4","parseScale","chartType","hasBar","d3Scales","_upperFirst","checkDomainOfScale","STACK_OFFSET_MAP","sign","positive","negative","none","stackOffsetNone","silhouette","wiggle","si","sij0","s3","sk","getStackedData","stackItems","offsetType","dataKeys","constant","orderNone","offsetNone","oz","sz","shapeStack","stackOrderNone","getStackGroupsByAxisId","_items","numericAxisId","reverseStackOrder","_item$props3","stackId","axisId","parentGroup","hasStack","childGroup","stackedData","getTicksOfScale","originalDomain","scaleType","tickValues","calculateDomainOfTicks","_domain","getCateCoordinateOfLine","allowDuplicatedCategory","matchedTick","getStackedDataOfItem","itemIndex","getDomainOfStackGroups","startIndex","endIndex","MIN_VALUE_REG","MAX_VALUE_REG","parseSpecifiedDomain","specifiedDomain","dataDomain","allowDataOverflow","_value","getBandSizeOfAxis","isBar","bandWidth","orderedTicks","_sortBy","parseDomainOfCategoryAxis","calculatedDomain","axisChild","_isEqual","getTooltipItem","graphicalItem","_graphicalItem$props","unit","formatter","tooltipType","filterProps","SVGContainerPropKeys","SVGElementPropKeys","EventKeys","includeEvents","inputProps","_isObject","adaptEventHandlers","newHandler","adaptEventsOfChild","originalHandler","getEventHandlerOfChild","baseGetTag","isObject","_objectSpread2","hasOwn","classes","argType","_classes","asyncGeneratorStep","gen","resolve","reject","_next","_throw","then","_asyncToGenerator","REACT_BROWSER_EVENT_MAP","mouseover","mouseout","touchcancel","touchend","touchmove","touchstart","Comp","lastChildren","toArray","Children","childType","validateWidthHeight","_el$props","SVG_TAGS","isSvgElement","isChildrenEqual","nextChildren","prevChildren","isSingleChildEqual","prevChild","nextProps","shallowEqual","renderByOrder","renderMap","record","handler","once","results","getReactEventByType","parseChildIndex","initRange","initInterpolator","interpolator","globalScope","ONE","precision","rounding","toExpNeg","toExpPos","LN10","external","decimalError","invalidArgument","exponentOutOfRange","mathfloor","mathpow","isDecimal","BASE","MAX_E","carry","xd","yd","Ctor","checkInt32","digitsToString","ws","indexOfLastWord","getZeroString","absoluteValue","comparedTo","cmp","xdL","ydL","decimalPlaces","dp","dividedBy","divide","dividedToIntegerBy","idiv","eq","exponent","getBase10Exponent","greaterThan","gt","greaterThanOrEqualTo","gte","isInteger","isNegative","isneg","isPositive","ispos","isZero","lessThan","lessThanOrEqualTo","logarithm","wpr","ln","minus","modulo","times","naturalExponential","exp","naturalLogarithm","negated","neg","plus","sd","squareRoot","toExponential","rL","toDecimalPlaces","todp","rm","toInteger","toint","toPower","yIsInt","yn","truncate","toPrecision","toSignificantDigits","tosd","valueOf","multiplyInteger","temp","compare","aL","bL","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","denominator","getLn10","zs","c0","numerator","parseDecimal","search","rd","doRound","xdi","xe","xLTy","isExp","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","define","unsupportedIterableToArray","bimap","d0","d1","r0","polymap","bisect","clamp","unknown","transformer","untransform","piecewise","interpolateValue","rescale","clamper","invert","rangeRound","interpolateRound","continuous","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","arrayLikeToArray","createNamedContext","historyContext","Router","computeRootMatch","isExact","componentDidMount","history","listen","_pendingLocation","componentWillUnmount","RouterContext","staticContext","HistoryContext","Lifecycle","onMount","componentDidUpdate","onUpdate","onUnmount","cacheCount","generatePath","generator","pathToRegexp","compilePath","pretty","Redirect","computedMatch","createLocation","prevLocation","locationsAreEqual","matchPath","strict","sensitive","matched","pathCache","regexp","Route","component","isEmptyChildren","addLeadingSlash","stripBasename","basename","createURL","createPath","staticHandler","methodName","invariant","Switch","withRouter","C","wrappedComponentRef","remainingProps","hoistStatics","useHistory","useLocation","RADIAN","radianToDegree","angleInRadian","polarToCartesian","getAngleOfPoint","anotherPoint","distanceBetweenPoints","reverseFormatAngleOfSetor","startCnt","endCnt","inRangeOfSector","sector","_getAngleOfPoint","innerRadius","outerRadius","inRange","_formatAngleOfSector","formatAngleOfSector","formatAngle","Layer","forwardRef","layerClass","_inheritsLoose","allowArrayLike","return","DomHandler","offsetWidth","paddingLeft","paddingRight","pageYOffset","clientTop","pageXOffset","clientLeft","marginLeft","marginRight","offsetHeight","marginTop","marginBottom","win","innerWidth","innerHeight","getBoundingClientRect","classList","_styles","paddingTop","paddingBottom","borderTopWidth","borderBottomWidth","borderLeftWidth","borderRightWidth","elementDimensions","getHiddenElementDimensions","elementOuterHeight","elementOuterWidth","targetOuterHeight","targetOuterWidth","targetOffset","windowScrollTop","getWindowScrollTop","windowScrollLeft","getWindowScrollLeft","viewport","getViewport","transformOrigin","targetHeight","myArr","atArr","getPositionValue","isOffset","myOffset","getOuterWidth","getOuterHeight","alignWithAt","myXPosition","parents","getParents","scrollableParents","overflowRegex","overflowCheck","styleDeclaration","_iterator","scrollSelectors","dataset","_step2","_iterator2","findSingle","visibility","elementHeight","elementWidth","dimensions","tick","ms","fading","userAgent","nativeElement","HTMLElement","borderTopValue","borderTop","paddingTopValue","containerRect","scroll","itemHeight","empty","removeAllRanges","rangeCount","getRangeAt","getClientRects","calculatedScrollbarWidth","scrollDiv","scrollbarWidth","browser","resolveUserAgent","_step3","visibleFocusableElements","_iterator3","focusableElement","_DomHandler","_PrimeReact","ink","parentElement","getOffset","bindEvents","unbindEvents","onAnimationEnd","ObjectUtils","field","resolveFieldData","deepEquals","arrA","arrB","dateA","dateB","regexpA","regexpB","fields","baseGet","_excluded","OutboundLink","_this$props","eventLabel","trackerNames","eventMeta","sameTarget","normalClick","metaKey","trackLink","_this$props2","handleClick","redactEmail","smallWords","toTitleCase","isLoaded","gaCalls","calls","ga","resetCalls","_isNotBrowser","_debug","_titleCase","_testMode","_alwaysSendToDefaultTracker","_redactEmail","internalGa","_window","TestModeAPI","_format","titleCase","redactingEmail","_str","_gaCommand","_initialize","gaTrackingID","useExistingGa","gaOptions","addTrackers","configsOrTrackingId","trackingId","initialize","testMode","standardImplementation","gaAddress","loadGA","alwaysSendToDefaultTracker","fieldsObject","fieldObject","pageview","rawPath","extraFields","hitType","page","extraLog","modalview","rawModalName","modalName","timing","category","variable","timingCategory","timingVar","timingValue","timingLabel","nonInteraction","transport","eventCategory","eventAction","eventValue","exception","fatal","exDescription","exFatal","plugin","rawName","trackerName","requireString","pluginName","actionType","outboundLink","hitCallback","safetyCallbackCalled","testModeAPI","UnboundOutboundLink","origTrackLink","Defaults","linearish","tickFormat","specifier","nice","prestep","i0","i1","maxIter","tickIncrement","CapacitorPlatforms","defaultPlatformMap","Map","capPlatforms","currentPlatform","platforms","addPlatform","setPlatform","createCapacitorPlatforms","initPlatforms","globalThis","CapacitorException","Capacitor","_a","_b","_c","capCustomPlatform","CapacitorCustomPlatform","cap","Plugins","getPlatform","androidBridge","webkit","messageHandlers","bridge","getPlatformId","isNativePlatform","isPluginAvailable","registeredPlugins","getPluginHeader","PluginHeaders","registerPlugin","jsImplementations","registeredPlugin","jsImplementation","pluginHeader","loadPluginImplementation","createPluginMethod","Unimplemented","methodHeader","methods","rtype","nativePromise","nativeCallback","createPluginMethodWrapper","wrapper","addListener","removeListener","addListenerNative","eventName","callbackId","Set","convertFileSrc","filePath","handleError","pluginMethodNoop","_target","Exception","isLoggingEnabled","isNative","createCapacitor","initCapacitorGlobal","WebPlugin","listeners","windowListeners","listenerFunc","windowListener","registered","addWindowListener","removeWindowListener","windowEventName","pluginEventName","Unavailable","Column","columnKey","sortField","filterField","loadingBody","sortable","sortFunction","filterMatchMode","filterPlaceholder","filterType","filterMaxLength","filterElement","filterFunction","filterHeaderStyle","filterHeaderClassName","headerStyle","headerClassName","bodyStyle","bodyClassName","footerStyle","footerClassName","expander","selectionMode","colSpan","rowSpan","editorValidator","editorValidatorEvent","onEditorInit","onEditorSubmit","onEditorCancel","excludeGlobalFilter","rowReorder","rowReorderIcon","rowEditor","exportable","reorderable","receiver","eventCenter","EventEmitter","setMaxListeners","SYNC_EVENT","ifOverflowMatches","alwaysShow","ifOverflow","isAbsolute","spliceOne","resolvePathname","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","valueEqual","aValue","bValue","stripLeadingSlash","hasBasename","stripTrailingSlash","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","createTransitionManager","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","isActive","canUseDOM","getConfirmation","confirm","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_window$location","createKey","transitionManager","setState","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","fromLocation","toLocation","toIndex","fromIndex","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","unblock","unlisten","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","allPaths","baseTag","pushHashPath","nextPaths","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","nextIndex","nextEntries","canGo","isUndefined","isArrayBuffer","isBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","product","assignValue","thisArg","stripBOM","DataTable","_Paginator","_FilterUtils","_ScrollableView","_TableBody","_TableFooter","_TableHeader","_TableLoadingBody","onPage","onSort","sortOrder","multiSortMeta","onFilter","isStateful","restoreState","onPageChange","onColumnResizeStart","onHeaderCheckboxClick","onColumnDragStart","onColumnDragOver","onColumnDragLeave","onColumnDrop","onVirtualScroll","frozenSelectionMode","stateStorage","localStorage","sessionStorage","stateKey","isCustomStateStorage","paginator","getFirst","getRows","getSortField","getSortOrder","getMultiSortMeta","hasFilter","getFilters","resizableColumns","saveColumnWidths","reorderableColumns","columnOrder","expandedRows","onSelectionChange","customSaveState","storage","getStorage","setItem","onStateSave","removeItem","restoredState","customRestoreState","stateString","getItem","columnWidthsState","columnWidths","tableWidthState","tableWidth","onRowToggle","onStateRestore","columnResizeMode","scrollable","table","setScrollableItemsWidthOnExpandResize","headerCols","bodyCols","totalRecords","Paginator","pageLinkSize","template","paginatorTemplate","rowsPerPageOptions","currentPageReportTemplate","leftContent","paginatorLeft","rightContent","paginatorRight","alwaysShowPaginator","dropdownAppendTo","paginatorDropdownAppendTo","defaultSortOrder","columnSortable","columnSortFunction","columnField","sortMode","sortMeta","getCalculatedSortOrder","newMetaData","addSortMeta","removableSort","removeSortMeta","processData","currentOrder","meta","data1","data2","value1","value2","localeCompare","numeric","multisortField","matchMode","currentFilters","newFilters","isFilterBlank","globalFilter","footerColumnGroup","hasChildrenFooter","hasFooter","containerLeft","resizeColumn","columnEl","resizeColumnProps","columnProps","columnResizing","lastResizerHelperX","bindColumnResizeEvents","resizerHelper","columnWidth","newColumnWidth","nextColumn","nextElementSibling","nextColumnWidth","scrollableView","findParentScrollableView","scrollableBodyTable","scrollableHeaderTable","scrollableFooterTable","resizeColumnIndex","resizeColGroup","onColumnResizeEnd","saveState","unbindColumnResizeEvents","scrollableBody","scrollableHeader","scrollableFooter","scrollableBodyTableWidth","scrollableHeaderTableWidth","isContainerInViewport","calculateScrollbarWidth","colGroup","nextCol","documentColumnResizeListener","onColumnResize","documentColumnResizeEndListener","iconWidth","getHiddenElementOuterWidth","reorderIndicatorUp","iconHeight","getHiddenElementOuterHeight","draggedColumn","findParentHeader","dataTransfer","dropHeader","containerOffset","dropHeaderOffset","targetLeft","columnCenter","reorderIndicatorDown","dropPosition","dragIndex","dropIndex","allowDrop","getColumns","reorderArray","onColReorder","virtualScrollTimer","virtualScroll","virtualScrollDelay","csv","csvSeparator","cellData","exportFunction","msSaveOrOpenBlob","exportFilename","download","encodeURI","editMode","localFilters","filteredValue","localMatch","globalMatch","filterMeta","filterValue","dataFieldValue","filterLocale","localState","lazy","sortSingle","sortMultiple","filterLocal","visibleData","frozenColumns","scrollableColumns","_step4","_iterator4","columnGroup","TableHeader","headerCheckboxSelected","isAllSelected","TableBody","compareSelectionBy","metaKeySelection","onRowClick","onRowDoubleClick","onRowSelect","onRowUnselect","contextMenuSelection","onContextMenuSelectionChange","rowExpansionTemplate","onRowExpand","onRowCollapse","emptyMessage","virtualRowHeight","loading","groupField","rowGroupMode","rowGroupHeaderTemplate","rowGroupFooterTemplate","rowClassName","onRowReorder","rowEditorValidator","onRowEditInit","onRowEditSave","onRowEditCancel","expandableRowGroups","showRowReorderElement","showSelectionElement","TableLoadingBody","TableFooter","headerColumnGroup","ScrollableView","createTableHeader","createTableBody","createTableLoadingBody","frozenBody","frozenValue","createTableFooter","tableStyle","tableClassName","scrollHeight","frozenWidth","_step5","orderedColumns","_iterator5","findColumnByKey","resetColumnOrder","_step6","_iterator6","iconClassName","loadingIcon","restoreColumnWidths","loader","getTotalRecords","autoLayout","rowHover","paginatorTop","paginatorPosition","createPaginator","paginatorBottom","headerFacet","footerFacet","resizeHelper","tableContent","resizeIndicatorUp","resizeIndicatorDown","renderLoader","getFrozenSelectionModeInColumn","frozenView","getFrozenColumns","getScrollableColumns","createScrollableView","frozenHeaderColumnGroup","frozenFooterColumnGroup","tableHeader","tableBody","tableFooter","role","tooltipWrapper","tooltipEl","Tooltip","_reactDom","unmountComponentAtNode","cloneElement","_ConnectedOverlayScrollHandler","showEvent","hideEvent","mouseTrack","tooltipTextEl","updateTooltipState","updateText","autoZIndex","containerEl","baseZIndex","generateZIndex","applyDelay","sendCallback","onBeforeShow","onShow","bindDocumentResizeListener","bindScrollListener","clearTimeouts","onBeforeHide","unbindDocumentResizeListener","unbindScrollListener","scrollHandler","mouseTrackLeft","mouseTrackTop","findCollisionPosition","flipfitCollision","currentPosition","_currentPosition$at","documentResizeListener","_this$getEvents","getEvents","_this$getEvents2","delayProp","showDelayTimeout","updateDelayTimeout","hideDelayTimeout","bindTargetEvent","setEvent","loadTargetEvents","prevState","unbindTargetEvent","tooltipClass","renderElement","showDelay","updateDelay","hideDelay","stringCache","widthCache","SPAN_STYLE","border","STYLE_LIST","getStyleString","getStringSize","Global","isSsr","styleString","measurementSpan","measurementSpanStyle","styleKey","calculateChartCoordinate","chartX","chartY","renderRadialLabel","labelProps","labelAngle","clockWise","deltaAngle","getDeltaAngle","dominantBaseline","xlinkHref","_props$className","textBreakAll","isPolarLabel","isPolar","positionAttrs","midAngle","_polarToCartesian","verticalAnchor","_polarToCartesian2","getAttrsOfPolarLabel","parentViewBox","verticalSign","verticalOffset","verticalEnd","verticalStart","horizontalSign","horizontalOffset","horizontalEnd","horizontalStart","_attrs2","_attrs3","sizeAttrs","getAttrsOfCartesianLabel","breakAll","parseViewBox","labelViewBox","parseLabel","renderCallByParent","parentProps","checkPropsLabel","explicitChildren","implicitLabel","freeGlobal","freeSelf","formatDecimalParts","formatAxisMap","axisMap","chartName","ids","leftMirror","rightMirror","topMirror","bottomMirror","calculatedPadding","needSpace","orientation","_axis$padding","mirror","reversed","offsetKey","smallestDistanceBetweenValues","sortedValues","smallestDistanceInPercent","rangeWidth","halfBand","_parseScale","finalAxis","rectWithPoints","rectWithCoords","ScaleHelper","bandAware","_offset2","EPS","createLabeledScales","scales","coord","_mapValues","isInRange","_every","coefficient","toLocaleString","XLSX","current_codepage","current_ansi","cptable","VALID_ANSI","CS2CP","1","2","77","128","129","130","134","136","161","162","163","177","178","186","204","222","238","255","69","set_ansi","set_cp","reset_cp","char_codes","debom","c1","c2","utf16leread","utf16beread","_getchar","_getansi","utils","c3","e1","e2","e3","e4","has_buf","Buffer","Buffer_from","nbfs","enc","alloc","allocUnsafe","new_raw_buf","new_unsafe_buf","s2a","s2ab","view","a2s","ab2a","bconcat","bufs","chr0","chr1","SSF","make_ssf","_strrev","pad0","pad_","rpad_","p2_32","pad0r","pad0r1","pad0r2","isgeneral","days","months","init_table","table_fmt","default_map","defi","default_str","frac","D","mixed","sgn","B","P_2","P_1","Q_2","Q_1","Q","parse_date_code","date","time","dow","dout","T","H","date1904","setDate","getDate","getFullYear","getMonth","getDay","fix_hijri","basedate","dnthresh","base1904","datenum_local","epoch","getTimezoneOffset","_general_int","general_fmt_num","trailing_zeroes_and_decimal","strip_decimal","mantissa_zeroes_and_decimal","exp_with_single_digit","V","LOG10E","small_exp","large_exp","normalize_exp","general_fmt","write_date","fmt","ss0","ss","tt","outl","commaify","_general_num","_general","write_num","pct1","frac1","dec1","closeparen","phone","hashq","cc","rnd","dd","dec","_frac","write_num_flt","ffmt","write_num_cm","sfmt","write_num_pct","write_num_exp","period","ee","fakee","$$","$3","ri","aval","den","rr","myn","myd","write_num_f1","oa","lres","rres","flr","write_num_int","write_num_cm2","write_num_pct2","write_num_exp2","write_num_f2","split_fmt","in_str","_split","abstime","fmt_is_date","eval_fmt","flen","lst","hr","ssm","bt","jj","nstr","myv","ostr","vv","decpt","lasti","retval","is_date","_eval","cfregex","cfregex2","chkcond","thresh","dateNF","lat","choose_fmt","load_entry","_table","get_table","load_table","tbl","CRC32","XLMLFormatMap","SSFImplicit","dateNFregex","Int32Array","signed_crc_table","bstr","seed","L","crc32_buf_8","_fs","CFB","dirname","filename","write_dos_date","hms","getHours","getMinutes","getSeconds","write_shift","ymd","parse_extra_field","prep_blob","flags","read_shift","tgt","mtime","atime","ctime","mt","get_fs","file","parse_zip","mver","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","ssz","fat_addrs","mv","chk","HEADER_SIGNATURE","check_get_mver","check_shifts","dir_cnt","nsectors","sectorify","sleuth_fat","cnt","ENDOFCHAIN","__readInt32LE","sector_list","sl","chkd","buf_chain","modulus","seen","addr","nodes","__toBuffer","make_sector_list","Paths","FileIndex","FullPaths","files","mini","minifat_store","namelen","__utf16le","R","clsid","read_date","get_sector_list","get_mfat_entry","read_directory","FI","FP","dad","build_full_paths","raw","MSSZ","new_buf","__readUInt32LE","init_cfb","cfb","CLSID","nm","rebuild_cfb","seed_cfb","gc","_file","HEADER_CLSID","Z","namecmp","elt","_write","_opts","fileType","cdirs","compression","start_cd","fcnt","fp","fi","crcs","sz_cd","namebuf","outbuf","_zlib","deflateRawSync","_deflate","write_zip","mini_size","fat_size","mfat_cnt","fat_base","fat_cnt","difat_cnt","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","_nm","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","CLEN_ORDER","LEN_LN","DST_LN","bit_swap_8","use_typed_arrays","bitswap8","bit_swap_n","rev","read_bits_2","bl","read_bits_3","read_bits_5","read_bits_7","read_bits_n","realloc","zero_fill_array","_deflateRaw","boff","build_tree","clens","cmap","MAX","maxlen","ccode","bl_count","Uint16Array","ctree","cleni","fix_lmap","fix_dmap","dlens","dyn_lmap","dyn_dmap","dyn_cmap","dyn_len_1","dyn_len_2","dyn","_HLIT","_HDIST","_HCLEN","read_bits_4","next_code","hcodes","h1","_inflate","usz","woff","OL","max_len_1","max_len_2","len_eb","dst_eb","dst","inflate","warn_or_throw","wrn","csz","efsz","fcsz","EF","parse_local_file","meth","setMilliseconds","setFullYear","setMonth","setHours","setMinutes","setSeconds","parse_dos_date","crc32","_csz","_usz","ef","InflRaw","InflateRaw","_processChunk","_finishFlushFlag","bytesRead","_inflateRawSync","_crc32","cfb_add","unsafe","fpath","cfb_gc","UCFullPaths","UCPaths","UCPath","read","readFileSync","read_file","write","writeFileSync","writeFile","cfb_new","cfb_del","cfb_mov","old_name","new_name","ReadShift","CheckField","use_zlib","zlib","_inflateRaw","blobify","a2u","write_dl","fname","utf8write","IE_SaveFile","msSaveBlob","saveAs","chrome","downloads","File","encoding","close","ks","o2","evert_key","K","evert","evert_num","datenum","refdate","refoffset","numdate","setTime","parse_isodur","sec","good_pd_date","good_pd","parseDate","fixdate","cc2str","dup","fuzzynum","wt","fuzzydate","getYear","jszip","safe_split_regex","getdatastr","asNodeBuffer","asBinary","getContent","getdata","getdatabin","safegetzipfile","zip","getzipfile","getzipdata","safe","getzipstr","zip_add_file","zip_new","resolve_path","JSZipSync","XML_HEADER","attregexg","tagregex","nsregex","nsregex2","parsexmltag","skip_root","skip_LC","quot","strip_ns","encodings","rencoding","unescapexml","encregex","coderegex","decregex","charegex","escapexml","escapexmltag","htmlcharegex","escapehtml","xlml_fixstr","entregex","entrepl","xlml_unfixstr","parsexmlbool","utf8read","utf8readb","ww","corpus","utf8readc","matchtag","mtcache","htmldecode","entities","vtregex","vt_cache","vtvregex","vtmregex","parseVector","baseType","WTF","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","__lpp4","___lpp4","XMLNS","XLMLNS","___toBuffer","__readUInt16LE","___utf16le","__hexlify","___hexlify","__utf8","__readUInt8","___utf8","__lpstr","___lpstr","__cpstr","___cpstr","__lpwstr","___lpwstr","__double","___double","__8lpp4","___8lpp4","read_double_le","is_buf","readUInt32LE","readDoubleLE","__readInt16LE","__readInt32BE","oI","oR","loc","oo","lens","__writeUInt16LE","WriteShift","cppayload","__writeUInt32LE","bs","av","LN2","write_double_le","__writeInt32LE","hexstr","fld","parsenoop","recordhopper","cb","tmpbyte","cntbyte","RT","XLSBRecordEnum","buf_array","blksz","newblk","curbuf","endbuf","_bufs","write_record","ba","XLSBRE","shift_cell_xls","cRel","rRel","biff","shift_range_xls","encode_cell_xls","encode_cell","cstr","fix_row","encode_range_xls","encode_row","encode_col","decode_row","rowstr","decode_col","colstr","decode_cell","decode_range","encode_range","ce","safe_decode_range","safe_format_cell","XF","numFmtId","format_cell","sheet_to_workbook","sheet","sheets","SheetNames","Sheets","sheet_add_aoa","_ws","dense","_R","_C","_origin","_range","__R","__C","sheetStubs","cellDates","cell_ref","aoa_to_sheet","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","parse_RichStr","rgsStrRun","dwSizeStrRun","_crypto","crypto","rc4","md5","createHash","digest","make_offcrypto","parse_BrtCommentText","write_BrtCommentText","write_StrRun","parse_XLSBCell","iStyleRef","write_XLSBCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","parse_RfX","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","write_BrtColor","auto","theme","nTS","tint","rgb","parse_ClipboardFormatOrString","3","8","14","VT_CUSTOM","DocSummaryPIDDSI","VT_VECTOR","SummaryPIDSI","SpecialProperties","DocSummaryRE","SummaryRE","CountryEnum","XLSFillPattern","XLSIcv","BErr","RBErr","ct2type","CT_LIST","workbooks","xlsx","xlsm","xlsb","xlam","xltx","strs","comments","charts","dialogs","macros","type2ct","evert_arr","CT","CTYPE_XML_ROOT","xsd","xsi","CTYPE_DEFAULTS","rels","RELS","WB","SHEET","HLINK","VML","XPATH","XMISS","XLINK","CXML","CXMLP","VBA","get_rels_path","parse_rels","currentFilePath","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","RELS_EXTERN","add_rels","rId","relobj","targetmode","write_rdf_type","write_meta_ods","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","CORE_PROPS_XML_ROOT","dc","dcterms","dcmitype","cp_doit","EXT_PROPS","load_props_pairs","HP","TOP","hp","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","EXT_PROPS_XML_ROOT","vt","CUST_PROPS","custregex","CUST_PROPS_XML_ROOT","write_cust_props","pid","write_vt","XLMLDocPropsMap","Title","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","Application","LastPrinted","CreatedDate","ModifiedDate","Category","Manager","Company","AppVersion","ContentStatus","Identifier","Language","evert_XLMLDPM","xlml_set_prop","Props","parse_FILETIME","dwLowDateTime","dwHighDateTime","parse_lpstr","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtVecUnalignedLpstr","parse_VtVecUnalignedLpstrValue","parse_VtHeadingPair","parse_TypedPropertyValue","parse_VtVecHeadingPair","cElements","parse_VtVecHeadingPairValue","parse_dictionary","CodePage","dict","parse_BLOB","bytes","Size","parse_ClipboardData","parse_VtUnalignedString","write_TypedPropertyValue","write_FILETIME","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","fail","piddsi","oldpos","parsebool","XLSPSSkip","guess_property_type","write_PropertySet","RE","hdr","piao","pio","pinfo","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","SystemIdentifier","PSet1","PSet0","rval","FMTID","write_PropertySetStream","entries2","clsid2","ps0","ps1","parsenoop2","writebool","parseuint16","writeuint16","parseuint16a","parslurp","parse_ShortXLUnicodeString","cch","parse_XLUnicodeRichExtendedString","cbExtRst","fExtSt","fRichSt","cRun","write_XLUnicodeRichExtendedString","xlstr","otext","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","write_XLUnicodeString","parse_HyperlinkMoniker","extra","parse_URLMoniker","ansiPath","parse_FileMoniker","parse_HyperlinkString","write_Hyperlink","hl","parse_LongRGBA","parse_LongRGB","parse_XLSCell","ixfe","write_XLSCell","parse_XTI","parse_RkRec","parse_Ref8U","rwFirst","rwLast","write_Ref8U","parse_RefU","parse_Ref","parse_FtCmo","ot","parse_FtSkip","FtTab","cf","fSharedNote","parse_BOF","BIFFVer","write_BOF","wb","bookType","write_BoundSheet8","hs","parse_DefaultRowHeight","miyRw","Unsynced","DyZero","ExAsc","ExDsc","write_Format","b5","parse_BIFF2Format","parse_Dimensions","write_XF","ixfeP","parse_BoolErr","parse_Bes","write_BoolErr","os","write_Bes","parse_XLHeaderFooter","parse_ExternName","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","sbcch","udfName","parse_AddinUdf","Name","XLSLblBuiltIn","parse_Lbl","chKey","cce","itab","npflen","rgce","rgcb","parse_Rgce","parse_RgbExtra","parse_NameParsedFormula","parse_ExternSheet","parse_BIFF5ExternSheet","parse_Array","parse_ArrayParsedFormula","parse_BIFF5OT","write_HLink","write_HLinkTooltip","TT","parse_ColInfo","cellStyles","colFirst","colLast","coldx","cchName","parse_Blank","parse_Scl","parse_String","DBF","dbf_codepage_map","dbf_reverse_map","dbf_to_sheet","ft","vfp","l7","nrow","fpos","rlen","current_cp","hend","sheetRows","dbf_to_aoa","_RLEN","to_workbook","to_sheet","from_sheet","codepage","aoa","sheet_to_json","headers","hcnt","coltypes","guess","_guess","hf","_f","hb","rout","SYLK","sylk_escapes","AA","BA","CA","DA","HA","JA","AE","BE","CE","HE","AI","BI","CI","HI","AO","BO","CO","DO","HO","AU","BU","CU","HU","Aa","Ba","Ca","Da","Ha","Ja","Ae","Be","Ce","He","Ai","Bi","Ci","Hi","Ao","Bo","Co","Do","Ho","Au","Bu","Cu","Hu","KC","Kc","DN","Dn","Hy","5","6","7","sylk_char_regex","sylk_char_fn","decode_sylk_char","newcc","sylk_to_aoa_str","records","rj","formats","next_cell_format","sht","rowinfo","colinfo","Mval","rstr","C_seen_K","C_seen_X","formula","rc_to_a1","F_seen","hidden","wch","process_col","hpt","hpx","pt2px","sylk_to_sheet","aoasht","sylk_to_aoa","write_ws_cell_sylk","a1_to_rc","preamble","RS","rec","wpx","width2px","px2char","px2pt","write_ws_rows_sylk","DIF","dif_to_aoa_str","metadata","dif_to_sheet","dif_to_aoa","push_field","topic","push_value","ETH","eth_to_sheet","eth_to_aoa","sep","sheet_to_eth_data","PRN","set_text_arr","guess_seps","guess_sep_weights","dsv_to_sheet_str","instr","guess_sep","sepcc","_re","dateNF_regex","finish_cell","Y","datestr","timestr","dateNF_fix","cellText","cellNF","prn_to_sheet_str","prn_to_aoa_str","prn_to_sheet","firstbyte","WK_","lotus_to_workbook_buf","sidx","snames","refguess","Enum","WK1Enum","WK3Enum","qpro","lotushopper","Rn","vers","parse_cell","parse_LABEL","parse_cell_3","parse_NUMBER_17","parse_NUMBER_27","parse_rs","tregex","rpregex","parse_r","rpr","pass","shadow","outline","strike","uval","family","parse_rpr","rregex","rend","rs_to_html","nlregex","r_to_html","terms","intro","outro","parse_rpr2","sitregex","sirregex","sirphregex","parse_si","cellHTML","sstr0","sstr1","sstr2","SST","straywsregex","write_sst_xml","sst","bookSST","Count","uniqueCount","Unique","sitag","write_BrtSSTItem","write_sst_bin","write_BrtBeginSst","_JS2ANSI","parse_CRYPTOVersion","Major","Minor","parse_DataSpaceMapEntry","comps","parse_Primary","W","parse_TransformInfoHeader","ename","cmode","parse_EncryptionHeader","Flags","AlgID","valid","AlgIDHash","KeySize","ProviderType","CSPName","parse_EncryptionVerifier","Salt","Verifier","VerifierHash","parse_EncInfoStd","parse_EncInfoExt","parse_EncInfoAgl","KeyData","encryptedHmacKey","encryptedHmacValue","encs","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","PasswordDecoded","crypto_CreateXorArray_Method1","PadArray","InitialCode","XorMatrix","XorRor","Byte","password","Temp","PasswordLastChar","PadIndex","XorKey","CurrentElement","Char","CreateXorKey_Method1","Index","ObfuscationArray","crypto_MakeXorDecryptor","XorArrayIndex","XorArray","Value","crypto_DecryptData_Method1","parse_FilePassHeader","EncryptionVersionInfo","EncryptedVerifier","EncryptedVerifierHash","parse_RC4Header","EncryptionHeader","EncryptionVerifier","parse_RC4CryptoHeader","RTF","rtf_to_sheet","rtf_to_sheet_str","rgb2Hex","rgb_tint","hsl","G","H6","L2","rgb2HSL","hex2RGB","h6","hsl2RGB","MDW","char2width","chr","cycle_width","collw","find_mdw_colw","_MDW","coll","customWidth","XLMLPatternTypeMap","cellXF_uint","cellXF_bool","parse_sty_xml","numFmtRegex","cellXfRegex","fillsRegex","fontsRegex","bordersRegex","themes","NumberFmt","formatCode","parse_numFmts","Fonts","italic","underline","condense","vertAlign","scheme","indexed","icv","themeElements","clrScheme","parse_fonts","Fills","patternType","fgColor","parse_fills","Borders","diagonalUp","diagonalDown","parse_borders","xf","CellXf","alignment","textRotation","wrapText","parse_cellXfs","STYLES_XML_ROOT","write_sty_xml","NF","write_numFmts","cellXfs","write_cellXfs","write_BrtFmt","write_BrtFont","grbit","write_FontFlags","sss","charset","STY","rev_XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","write_BrtXF","write_Blxf","parse_BrtBorder","write_BORDERS_bin","write_STYLES_bin","xfId","builtinId","write_TABLESTYLES_bin","defTableStyle","defPivotStyle","write_BrtBeginTableStyles","write_sty_bin","write_FMTS_bin","write_FONTS_bin","write_FILLS_bin","fontId","fillId","borderId","write_CELLSTYLEXFS_bin","write_CELLXFS_bin","write_DXFS_bin","THEME","XLSXThemeClrScheme","parse_clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","themeltregex","parse_theme_xml","write_theme","parse_themeElements","Themes","themeXLSX","parse_FullColorExt","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_ColorTheme","parse_ExtProp","extType","parse_XFExtGradient","IMG","DRAW","_shapeid","write_comments_vml","csize","joinstyle","gradientshapeok","coordsize","fillopts","fillparm","fillxml","fillcolor","strokecolor","CMNT","CMNT_XML_ROOT","write_comments_xml","iauthor","parse_BrtCommentAuthor","write_comments_bin","write_BrtCommentAuthor","write_BrtBeginComment","VBAFMTS","DS","MS","rcregex","rcbase","rcfunc","fstr","crefregex","$0","$4","$5","shift_formula_xlsx","shift_formula_str","_xlfn","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","fQuoted","parse_PtgAttrSpaceType","parse_SerAr","parse_PtgExtraMem","parse_PtgExtraArray","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfCol","parse_PtgElfColS","parse_PtgElfColSV","parse_PtgElfColV","parse_PtgElfLel","parse_PtgElfRadical","parse_PtgElfRadicalLel","parse_PtgElfRadicalS","parse_PtgElfRw","parse_PtgElfRwV","PtgListRT","PtgTypes","iftab","FtabArgc","Ftab","cparams","tab","parsetab","Cetab","nameindex","rl","parse_RgceLocRel_BIFF2","cl","parse_RgceLocRel","parse_RgceAreaRel","ixti","parse_PtgNameX_BIFF5","PtgDupes","Ptg18","coltype","rt","Ptg19","bitSemi","bitIf","bitGoto","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","quoteCharacters","get_ixti_raw","supbooks","XTI","SID","get_ixti","sname","formula_quote_sheet_name","stringify_formula","nameidx","last_sp","sp","fflen","argc","lbl","names","XLSXFutureFunctions","externbook","bookidx","ixtidata","lp","rp","sharedf","parsedf","fnd","arrayf","_left","parse_SharedParsedFormula","parse_Formula","parse_FormulaValue","cbf","parse_XLSCellParsedFormula","shared","write_Formula","o1","write_FormulaValue","o3","bf","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","ods_to_csf_formula","ods_to_csf_3D","_ssfopts","WS","browser_has_Map","get_sst_id","revarr","col_obj_w","default_margins","margins","get_cell_style","revssf","ssf","applyNumberFormat","safe_format","fmtid","fillid","raw_rgb","check_ws","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","afregex","marginregex","sheetprregex","svsregex","parse_ws_xml","mtch","sheetPr","parse_ws_xml_sheetpr","ridx","parse_ws_xml_dim","svs","Views","sviewregex","rightToLeft","RTL","parse_ws_xml_sheetviews","seencol","coli","colm","colM","parse_ws_xml_cols","parse_ws_xml_data","afilter","parse_ws_xml_autofilter","merges","_merge","hlink","Rel","rng","parse_ws_xml_hlinks","parse_ws_xml_margins","tmpref","codeName","CodeName","sheetprot_deffalse","sheetprot_deftrue","write_ws_xml_cell","oldt","oldv","Strings","revStrings","cellregex","rowregex","isregex","refregex","match_v","match_f","sdata","sstr","ftag","cells","cref","tagr","tagc","do_format","rowobj","rowrite","marr","marrlen","xlen","ht","outlineLevel","rslice","cellFormula","xlfn","___f","_tag","_r","WS_XML_ROOT","write_ws_xml","rdata","_drawing","needed","vbaraw","cname","Workbook","outlineprops","summaryBelow","summaryRight","above","write_ws_xml_sheetpr","sview","workbookViewId","write_ws_xml_sheetviews","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","write_ws_xml_cols","customHeight","write_ws_xml_data","write_ws_xml_protection","Names","Sheet","Ref","write_ws_xml_autofilter","write_ws_xml_merges","relc","ignoreEC","numberStoredAsText","sqref","write_row_header","ncolspan","lcs","caddr","write_BrtRowHdr","parse_BrtWsDim","write_BrtWsDim","write_BrtCellRk","ncell","d100","write_RkNumber","parse_BrtMergeCell","write_BrtMergeCell","BrtMarginKeys","write_ws_bin_cell","write_BrtCellIsst","write_BrtCellSt","write_BrtCellReal","write_BrtCellBool","write_BrtCellBlank","write_MERGECELLS","write_COLINFOS","write_BrtColInfo","write_IGNOREECS","write_BrtCellIgnoreEC","write_HLINKS","locidx","write_BrtHLink","write_WSVIEWS2","write_BrtBeginWsView","write_SHEETPROTECT","write_ws_bin","write_BrtWsProp","write_CELLTABLE","write_AUTOFILTER","write_LEGACYDRAWING","parse_chart","csheet","nc","nf","parse_Cache","CHART","CHARTEX","CS","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","push_defaults_array","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","badchars","check_ws_name","_good","check_wb","N","codes","cn","wbnsregex","WB_XML_ROOT","write_wb_xml","write_names","workbookPr","Hidden","sheetId","localSheetId","write_BOOKVIEWS","vistab","write_wb_bin","write_BrtFileVersion","filterPrivacy","write_BrtWbProp","iTabID","strRelID","write_BrtBundleSh","write_BUNDLESHS","parse_wb","R_n","Ptg","parse_wb_bin","dname","dnstart","parse_wb_xml","parse_ws","ai","af","aii","relId","rfx","parse_ws_bin","parse_cs","parse_cs_bin","parse_cs_xml","parse_sty","parse_sty_bin","parse_sst","parse_sst_bin","parse_sst_xml","parse_cmnt","authors","author","parse_comments_bin","commentList","authtag","cmnttag","cm","authorId","guid","textMatch","parse_comments_xml","parse_cc","parse_cc_bin","parse_cc_xml","parse_xlink","parse_xlink_bin","write_wb","write_ws","write_sst","write_cmnt","attregexg2","attregex2","xlml_parsexmltag","xlml_parsexmltagobj","xlml_set_custprop","Custprops","oval","safe_format_xlml","xlml_format","process_style_xlml","stag","Interior","I","Pattern","ID","parse_xlml_data","csty","sid","StyleID","interiors","UTC","Formula","ArrayRange","xlml_clean_comment","xlml_normalize","xlmlregex","parse_xlml_xml","opening","ishtml","HTML_","tmp","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","wsprops","raw_Rn3","HRef","HRefScreenTip","MergeAcross","MergeDown","cma","AutoFitHeight","Height","Format","ssfidx","Width","_col","Span","_NamedRange","_DefinedName","RefersTo","AutoFilter","Range","parse_fods","Margin","pagemargins","Top","Left","Right","Bottom","bookSheets","bookProps","parse_xlml","fix_read_opts","write_props_xlml","xlml_write_docprops","BLACKLIST","xlml_write_custprops","write_name_xlml","write_ws_xlml_cell","_v","write_ws_xlml_row","write_ws_xlml","write_ws_xlml_names","skip","write_ws_xlml_table","objects","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_wsopts","write_xlml","write_sty_xlml","write_names_xlml","parse_compobj","AnsiUserType","AnsiClipboardFormat","parse_ClipboardFormatOrAnsiString","Reserved1","UnicodeClipboardFormat","parse_ClipboardFormatOrUnicodeString","Reserved2","slurp","insitu","XLSRecordEnum","ll","safe_format_xf","make_cell","parse_workbook","lastcell","cmnt","rngC","rngR","temp_val","country","Directory","last_formula","cur_sheet","Preamble","last_cell","cell_valid","XFs","palette","get_rgb","addcell","file_depth","xfd","icvFore","icvBack","process_cell_style","afi","rrtabid","lastuser","winlocked","wtf","last_lbl","last_Rn","BIFF2Fmt","BIFF2FmtTable","FilterDatabases","seen_codepage","RecordType","Date1904","WriteProtect","cpval","CalcRefMode","FullCalc","fDialog","ExternCount","tmpri","fakebs8","rknum","rkrec","_fr","_fc","_fe","_arraystart","isst","_ixfe","b4idx","b2idx","cmo","lastobj","TxO","ImData","noteobj","ext","xfe","Encryption","Metadata","Country","PSCLSID","parse_xlscfb","CompObj","WorkbookP","bookVBA","newcfb","newpath","make_vba_xls","DSI","DocSummary","SI","Summary","HeadingPairs","TitlesOfParts","parse_xls_props","bookFiles","write_xlscfb","wbpath","write_biff_buf","Keys","DSEntries","SEntries","CEntries","CEntries2","write_xls_props","vba","fill_vba_xls","ArchID","fBold","fItalic","fUnderline","fStrikeout","fOutline","fShadow","fCondense","fExtend","parse_FontFlags","bCharSet","xColorType","bR","bG","bB","parse_BrtColor","ixfeParent","ifmt","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","fAlwaysCalc","idObj","stAuthor","parse_NoteSh","verificationBytes","verifier","parse_XORObfuscation","dyHeight","fl","Pos","Dim","CurTab","FirstTab","Selected","TabRatio","UserName","fts","parse_BIFF5Obj","parse_FtArray","ccv","rw","rkrecs","lastcol","ixfes","fStyle","alc","fWrap","alcV","fJustLast","trot","cIndent","fShrinkToFit","iReadOrder","fAtrNum","fAtrFnt","fAtrAlc","fAtrBdr","fAtrPat","fAtrProt","dgLeft","dgRight","dgTop","dgBottom","icvLeft","icvRight","grbitDiag","icvTop","icvBottom","icvDiag","dgDiag","fsxButton","parse_CellStyleXF","cmcs","ucnt","extsst","dsst","ctab","virtPath","rgst","texts","accel","parse_ControlInfo","cchText","sVer","targetFrameName","moniker","oleMoniker","fileTime","Loc","parse_Hyperlink","xnum","cUse","wzTooltip","cxfs","crc","cexts","cchComment","themeXML","parse_frtHeader","env","lcb","XLSRE","write_biff_rec","write_BIFF2Cell","write_ws_biff2_cell","write_BIFF2INT","write_BIFF2NUM","write_BIFF2BERR","write_BIFF2LABEL","write_biff2_buf","write_ws_biff2","write_FONTS_biff8","write_Font","write_ws_biff8_cell","write_Number","write_LabelSst","b8","write_Label","write_ws_biff8","_WB","_sheet","MAX_ROWS","guts","write_Guts","write_Dimensions","write_Window2","write_MergeCells","HL","write_ws_biff8_hlinks","write_FEAT","write_biff8_global","_sheets","_wb","writezeroes","write_WriteAccess","write_RRTabId","write_Window1","safe1904","write_FMTS_biff8","write_CELLXFS_biff8","write_biff_continue","write_SST","blen","fix_write_opts","write_biff8_buf","html_to_sheet","mtch2","split_regex","hd","midx","_t","make_html_row","editable","make_html_preamble","_BEGIN","_END","BEGIN","END","_preamble","sheet_add_dom","or_R","or_C","is_dom_element_hidden","elts","parse_dom_table","get_computed_style","defaultView","get_get_computed_style_function","parse_content_xml","parse_text_p","fixed","number_formats","day","month","year","hours","minutes","seconds","era","quarter","sheetag","rowtag","NFtag","ctag","textp","textpidx","textR","row_ol","number_format_map","mrange","rowpeat","colpeat","atag","_Ref","creator","creatoridx","isstub","intable","rptR","rpt","nrange","ptp","parse_ods","ods","FEtag","parse_manifest","write_styles_ods","write_content_ods","null_cell_xml","_Fref","text_p","_tgt","fods","write_automatic_styles_ods","write_ods","manifest","rdf","write_rdf","write_manifest","write_obj_str","write_sheet_index","write_htm_str","write_csv_str","sheet_to_csv","write_slk_str","write_dif_str","write_prn_str","write_rtf_str","write_txt_str","sheet_to_txt","write_dbf_buf","write_eth_str","fix_opts_func","safe_parse_sheet","relsPath","sheetRels","stype","dfile","drelsp","chartp","parse_drawing","crelsp","parse_ds","encoded","sheet_insert_comments","strip_front_slash","binname","zipentries","links","coreprops","extprops","custprops","calcchains","drawings","TODO","ctext","Extension","ContentType","PartName","calcchain","parse_ct","parse_theme","propdata","parse_ext_props","toks","parse_cust_props","deps","bookDeps","wbsheets","wbext","wbrelsi","wbrelsfile","wbrels","safe_parse_wbrels","nmode","wsloop","snjseen","snj","Deps","bin","parse_xlsxcfb","parse_DataSpaceVersionInfo","dsm","parse_DataSpaceMap","seds","parse_DataSpaceDefinition","einfo","parse_EncryptionInfo","decrypt_agile","decrypt_std76","foo","vbafmt","write_core_props","_sn","write_ext_props","wsrels","need_vml","rId1","write_sty","f1","f2","f3","write_ct","read_zip","base64","zip_read","read_plaintext","read_prn","readSync","infile","read_binary","bstrify","ab","vu","read_cfb","OLD_WTF","read_wb_ID","read_utf16","read_plaintext_raw","write_cfb_ctr","write_string_type","bom","write_binary_type","writeSync","write_stxt_type","write_cfb_type","oopts","encrypt_agile","write_zip_type","resolve_book_type","make_json_row","defval","isempty","__rowNum__","rawNumbers","outi","CC","blankrows","qreg","make_csv_row","FS","forceQuotes","endregex","skipHidden","strip","sheet_to_formulae","cmds","sheet_add_json","skipHeader","JS","sheet_get_cell","split_cell","get_formulae","make_csv","make_json","make_formulae","json_to_sheet","table_to_sheet","table_to_book","sheet_to_html","sheet_to_row_object_array","get_default","ws_get_cell_stub","RC","book_new","book_append_sheet","book_set_sheet_visibility","sh","vis","wb_sheet_idx","cell_set_number_format","cell_set_hyperlink","cell_set_internal_link","cell_add_comment","sheet_set_array_formula","rngstr","Readable","stream","to_json","objectMode","_read","to_html","to_csv","BOM","readFile","writeFileAsync","_cb","make_xlsx_lib","getRawTag","objectToString","symToStringTag","baseMatches","baseMatchesProperty","replaceClassName","origClass","classToRemove","ENTERING","ENTERED","Transition","_React$Component","initialStatus","appear","isMounting","enter","appearStatus","in","unmountOnExit","mountOnEnter","status","nextCallback","getDerivedStateFromProps","_proto","updateStatus","nextStatus","cancelNextCallback","getTimeouts","exit","mounting","performEnter","performExit","appearing","nodeRef","ReactDOM","findDOMNode","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","onExit","onExiting","onExited","setNextCallback","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","childProps","TransitionGroupContext","Provider","only","contextType","UNMOUNTED","EXITED","EXITING","baseVal","CSSTransition","appliedClasses","_this$resolveArgument","resolveArguments","removeClasses","_this$resolveArgument2","_this$resolveArgument3","getClassNames","isStringClassNames","baseClassName","activeClassName","doneClassName","phase","_addClass","_this$appliedClasses$","getChildMapping","mapFn","mapper","getProp","getNextChildMapping","prevChildMapping","nextChildMapping","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","mergeChildMappings","hasPrev","hasNext","isLeaving","TransitionGroup","handleExited","contextValue","firstRender","mounted","currentChildMapping","childFactory","ReplaceTransition","_args","handleEnter","handleLifecycle","handleEntering","handleEntered","handleExit","_len5","_key5","handleExiting","_len6","_key6","_len7","_key7","originalArgs","_child$props","inProp","_React$Children$toArr","_leaveRenders","_enterRenders","modes","callHook","_element$props","leaveRenders","changeState","enterRenders","SwitchTransition","appeared","oldChildren","newChildren","_this$state","reduceRight","curried","nextArgs","errorMessages","initialIsRequired","initialType","initialContent","handlerType","handlersType","selectorType","changeType","changeField","validators","initial","_handler","extractChanges","causedChanges","updateState","didStateUpdate","_handler$field","didUpdate","getChanges","getState","vs","configIsRequired","configType","deprecation","urls","monacoBase","CANCELATION_MESSAGE","makeCancelable","hasCanceled_","wrappedPromise","_state$create","config$1","isInitialized","monaco","_state$create2","injectScripts","script","getMonacoLoaderScript","configureLoader","loaderScript","storeMonacoInstance","wrapperPromise","globalConfig","_validators$config","__getMonacoInstance","loadingStyles","justifyContent","alignItems","Loading","textAlign","fullWidth","MonacoContainer","isEditorReady","wrapperProps","MonacoContainer$1","useMount","effect","useUpdate","applyChanges","isInitialMount","getOrCreateModel","language","getModel","createModelUri","createModel","Uri","DiffEditor","original","modified","originalLanguage","modifiedLanguage","originalModelPath","modifiedModelPath","keepCurrentOriginalModel","keepCurrentModifiedModel","beforeMount","setIsEditorReady","isMonacoMounting","setIsMonacoMounting","editorRef","monacoRef","containerRef","onMountRef","beforeMountRef","cancelable","_models$original","_models$modified","models","disposeEditor","modifiedEditor","getModifiedEditor","getOption","EditorOption","readOnly","executeEdits","getFullModelRange","forceMoveMarkers","pushUndoStop","setModelLanguage","setTheme","updateOptions","setModels","useCallback","originalModel","modifiedModel","setModel","createEditor","createDiffEditor","automaticLayout","usePrevious","viewStates","Editor","defaultLanguage","defaultPath","overrideServices","saveViewState","keepCurrentModel","onValidate","subscriptionRef","valueRef","previousPath","_subscriptionRef$curr2","_editorRef$current$ge2","model","restoreViewState","revealLine","autoCreatedModelPath","defaultModel","_subscriptionRef$curr","_editorRef$current","onDidChangeModelContent","editorValue","changeMarkersListener","onDidChangeMarkers","uris","_editorRef$current$ge","editorUri","getModelMarkers","resource","isObjectLike","setRafTimeout","currTime","shouldUpdate","_toArray","createAnimateManager","handleChange","shouldStop","setStyle","_style","restStyles","subscribe","_handleChange","PREFIX_LIST","IN_LINE_PREFIX_LIST","IN_COMPATIBLE_PROPERTY","mapObject","translateStyle","isTransition","camelName","styleVal","generatePrefixStyle","getTransitionVal","cubicBezierFactor","multyTime","cubicBezier","derivativeCubicBezier","newParams","configBezier","_easing$1$split$0$spl","_easing$1$split$0$spl2","curveX","curveY","derCurveX","rangeValue","bezier","evalT","derVal","isStepper","configSpring","_config$stiff","stiff","_config$damping","damping","_config$dt","stepper","currX","destX","currV","newV","needContinue","preObj","nextObj","preTime","beginTime","interKeys","timingStyle","stepperStyle","velocity","cafId","calStepperVals","preVals","nextStepVals","_easing2","currStyle","finalStyle","Animate","_PureComponent","handleStyleChange","changeStyle","canBegin","runAnimation","_this$props3","shouldReAnimate","deepEqual","isTriggered","manager","stopJSAnimation","_newState","newState","unSubscribe","onAnimationStart","startAnimation","configUpdate","configEasing","_steps$","initialStyle","_steps$$duration","initialTime","sequence","_nextItem$easing","nextProperties","properties","preItem","runJSAnimation","transition","newStyle","propsTo","runStepAnimation","_this$props4","onAnimationReStart","stateStyle","_container$props","_container$props$styl","PureComponent","parseDurationOfSingleTransition","AnimateGroupChild","isAppearing","appearOptions","enterOptions","handleStyleActive","leaveOptions","parseTimeout","AnimateGroup","leave","hasXMLHttpRequest","makePromise","maybePromise","isPromise","lastId","baseIsNative","BrowserRouter","createHistory","resolveToLocation","normalizeToLocation","forwardRefShim","LinkAnchor","innerRef","navigate","isModifiedEvent","forwardedRef","isDuplicateNavigation","ariaCurrent","activeStyle","classNameProp","isActiveProp","locationProp","styleProp","escapedPath","classnames","joinClassnames","responseType","response","dispatchEvent","MouseEvent","createEvent","initMouseEvent","HTMLAnchorElement","webkitURL","autoBom","innerText","safari","FileReader","onloadend","readAsDataURL","print","modify","perm","processOwnerPassword","encryptionKey","lsbFirstWord","hexToBytes","unsubscribe","publish","getTopics","objectNumber","gState","colors","xStep","yStep","cloneIndex","E","compress","compressPdf","encryption","userPassword","ownerPassword","userPermissions","userUnit","floatPrecision","defaultPathOperation","putOnlyUsedFonts","internal","__private__","PubSub","getPdfVersion","setPdfVersion","a0","a3","a4","a5","a6","a7","a8","a9","a10","b0","b3","b4","b6","b7","b9","b10","c4","c5","c6","c7","c8","c9","c10","dl","legal","ledger","tabloid","getPageFormats","getPageFormat","COMPAT","ADVANCED","saveGraphicsState","Vt","Rr","restoreGraphicsState","combineFontStyleAndFontWeight","advancedAPI","compatAPI","isAdvancedAPI","roundToPrecision","hpf","setPrecision","getFileId","setFileId","Ye","J","convertDateToPDFDate","convertPDFDateToDate","setCreationDate","getCreationDate","padd2","padd2Hex","et","nt","ut","Qt","Kt","te","setCustomOutputDestination","resetCustomOutputDestination","getArrayBuffer","getStandardFonts","R2L","setR2L","getR2L","yt","setZoomMode","getZoomMode","Nt","Lt","setPageMode","getPageMode","At","setLayoutMode","getLayoutMode","setDisplayMode","subject","keywords","getDocumentProperty","getDocumentProperties","setDocumentProperties","setProperties","setDocumentProperty","St","Pt","kt","It","Ft","Ct","jt","Ot","Bt","Mt","Et","qt","Dt","Rt","Tt","Ut","hotfixes","zt","Ht","Wt","_matrix","shx","decompose","shy","tx","ty","multiply","skew","inversed","Cr","applyToRectangle","jr","Matrix","Gt","matrixMult","Yt","unitMatrix","identityMatrix","Jt","ShadingPattern","TilingPattern","addShadingPattern","beginTilingPattern","Br","endTilingPattern","Xt","newObject","Zt","newObjectDeferred","newAdditionalObject","objId","decodeColorString","encodeColorString","ch1","ch2","ch3","ch4","pdfColorType","ne","ie","putStream","alreadyAppliedFilters","addLength1","objectId","encryptor","additionalKeyValues","API","processDataByFilters","reverseChain","ae","putPage","contentsObjId","rootDictionaryObjId","resourceDictionaryObjId","mediaBox","bottomLeftX","bottomLeftY","topRightX","topRightY","cropBox","bleedBox","trimBox","artBox","pageContext","pageNumber","oe","putPages","se","isAlreadyPutted","postScriptName","ue","pages","he","le","fe","resourcesOid","objectOid","pe","ge","me","ve","be","oid","toHexString","ye","we","Ne","Le","Se","fontName","Pe","isStandardFont","ke","dictionary","bar","Fe","sourceEncoding","outputEncoding","autoencode","codePages","noBOM","pdfEscape","je","beginPage","Me","Oe","fr","Lr","kr","Ir","setPage","Ee","getNumberOfPages","qe","disableWarning","noFallback","normal","De","putInfo","Re","putCatalog","Te","putTrailer","Ue","putHeader","ze","putXRef","buildDocument","We","getBlob","Ve","pdfObjectUrl","pdfJsUrl","contentWindow","PDFViewerApplication","Ge","Je","Xe","getPageInfo","Ke","getPageInfoByObjId","Ze","getCurrentPageInfo","addPage","insertPage","movePage","deletePage","scope","lineHeightFactor","lr","scaleFactor","TabLen","baseline","splitTextToSize","mutex","activeFontKey","activeFontSize","rotationDirection","charSpace","setCharSpace","getCharSpace","horizontalScale","renderingMode","usedRenderingMode","pageSize","getStringUnitWidth","doKerning","yr","isHex","xr","$e","clipEvenOdd","discardPath","Qe","isValidStyle","setDefaultPathOperation","tr","getStyle","er","fillEvenOdd","fillStroke","fillStrokeEvenOdd","ar","nr","ir","or","setGState","sr","cr","ur","curveTo","triangle","roundedRect","SQRT2","setFont","getFont","getFontList","addFont","dr","getLineWidth","setLineWidth","setLineDashPattern","gr","getLineHeight","mr","setLineHeightFactor","vr","getLineHeightFactor","lineHeight","getHorizontalCoordinate","getVerticalCoordinate","wr","getHorizontalCoordinateString","Nr","getVerticalCoordinateString","strokeColor","getStrokeColor","getDrawColor","setStrokeColor","setDrawColor","Ar","fillColor","getFillColor","setFillColor","textColor","Sr","getTextColor","setTextColor","Pr","CapJoinStyles","butt","but","miter","rounded","projecting","project","square","bevel","setLineCap","setLineJoin","setLineMiterLimit","setMiterLimit","GState","Fr","addGState","setCurrentTransformationMatrix","Or","currentPage","pagesContext","qr","outputDestination","Dr","Tr","Mr","Er","beginFormObject","endFormObject","doFormObject","getFormObject","returnPromise","unload","getPageWidth","setPageWidth","getPageHeight","setPageHeight","getCoordinateString","collections","newObjectDeferredBegin","encryptionOptions","getEncryptor","getPDFVersion","hasHotfix","__acroform__","BBox","setBit","clearBit","getBit","getBitForPdf","setBitForPdf","clearBitForPdf","calculateCoordinates","lowerLeft_X","lowerLeft_Y","upperRight_X","upperRight_Y","appearanceStreamContent","DV","_V","maxFontSize","multiline","xForms","acroFormDictionaryRoot","printedOut","annotations","acroformPlugin","FieldNum","_eventID","Fields","hasAnnotation","Kids","Rect","createDefaultAppearanceStream","getKeyValueListForStream","hasAppearanceStream","arrayToPdfArray","_objId","_scope","FT","getOptions","setOptions","addOption","removeOption","combo","edit","pushButton","caption","appearanceState","_AppearanceType","RadioButton","createAppearanceStream","optionName","setAppearance","getCA","createOption","CheckBox","On","YesNormal","YesPushDown","Off","OffPushDown","Bezier_C","calculateCross","x4","x3","addField","AcroFormChoiceField","AcroFormListBox","AcroFormComboBox","AcroFormEditBox","AcroFormButton","AcroFormPushButton","AcroFormRadioButton","AcroFormCheckBox","AcroFormTextField","AcroFormPasswordField","AcroFormAppearance","AcroForm","ChoiceField","ListBox","ComboBox","EditBox","PushButton","TextField","PasswordField","Appearance","__addimage__","PNG","TIFF","JPEG","JPEG2000","GIF87a","GIF89a","WEBP","BMP","getImageFileTypeByImageData","Uint8ClampedArray","colorSpace","INDEXED","sMask","DEVICE_CMYK","bitsPerComponent","decodeParameters","transparency","predictor","addImage_images","loadFile","alias","color_spaces","DEVICE_RGB","DEVICE_GRAY","CAL_GREY","CAL_RGB","LAB","ICC_BASED","PATTERN","SEPARATION","DEVICE_N","DCT_DECODE","FLATE_DECODE","LZW_DECODE","JPX_DECODE","JBIG2_DECODE","ASCII85_DECODE","ASCII_HEX_DECODE","RUN_LENGTH_DECODE","CCITT_FAX_DECODE","image_compression","NONE","FAST","MEDIUM","SLOW","sHashCode","byteLength","validateStringAsBase64","extractImageFromDataUrl","supportsArrayBuffer","Uint32Array","Int8Array","Int16Array","Float32Array","Float64Array","binaryStringToUint8Array","arrayBufferToBinaryString","subarray","addImage","imageData","convertBase64ToBinaryString","getImageProperties","contents","_nameMap","finalBounds","magFactor","createAnnotation","textWithLink","getTextWidth","1569","1570","1571","1572","1573","1574","1575","1576","1577","1578","1579","1580","1581","1582","1583","1584","1585","1586","1587","1588","1589","1590","1591","1592","1593","1594","1601","1602","1603","1604","1605","1606","1607","1608","1609","1610","1649","1655","1657","1658","1659","1662","1663","1664","1667","1668","1670","1671","1672","1676","1677","1678","1681","1688","1700","1702","1705","1709","1711","1713","1715","1722","1723","1726","1728","1729","1733","1734","1735","1736","1737","1739","1740","1744","1746","1747","65247","65154","65156","65160","65166","65248","65165","65258","1617","1612","1613","1614","1615","1616","__arabicParser__","isInArabicSubstitutionA","isArabicLetter","isArabicEndLetter","isArabicAlfLetter","arabicLetterHasIsolatedForm","arabicLetterHasFinalForm","arabicLetterHasInitialForm","arabicLetterHasMedialForm","resolveLigatures","isArabicDiacritic","getCorrectForm","processArabic","autoPrint","addJS","pageWrapXEnabled","pageWrapX","pageWrapYEnabled","pageWrapY","pdf","context2d","_canvas","__cell__","headerFunction","lastCell","setHeaderFunction","getTextDimensions","cellAddPage","tableHeaderRow","printHeaders","printHeaderRow","autoSize","headerBackgroundColor","headerTextColor","table_font_size","setTableHeaderRow","rowStart","cellStart","table_x","table_y","oblique","weight","stretch","monospace","terminal","cursive","fantasy","serif","trimLeft","isStrokeTransparent","strokeOpacity","isFillTransparent","fillOpacity","clip_path","currentPoint","lastPoint","lineDash","prevPageLastElemOffset","ignoreClearRect","fontFaces","defaultFontFamily","genericFontFamilies","arial","Arial","verdana","Verdana","helvetica","Helvetica","getLineDash","isIdentity","counterclockwise","arcTo","strokeRect","ctxStack","isCanvasGradient","setTransform","autoPaging","deltas","colorStops","y3","y4","prevLineDash","overrideMimeType","loadImageFile","html2canvas","DOMPurify","dompurify","sanitize","convert","setProgress","enableLinks","jsPDF","toContainer","toCanvas","toImg","toPdf","thenList","setPageSize","windowWidth","javascriptEnabled","float","onrendered","toContext2d","allowTaint","imageTimeout","logging","removeContainer","foreignObjectRendering","useCORS","windowHeight","quality","outputImg","outputPdf","doCallback","setMargin","getPageSize","updateProgress","thenCore","thenExternal","catchExternal","using","export","worker","createNamedDestinations","makeRef","genIds_r","renderRoot","renderItems","objStart","count_r","objEnd","makeString","processJPEG","numcomponents","imgData","readUInt32","colorType","compressionMethod","filterMethod","interlaceMethod","numFrames","numPlays","frames","readUInt16","disposeOp","blendOp","grayscale","hasAlphaChannel","pixelBitlength","decodePixels","decodePalette","copyToImageData","_decodedPalette","decodeFrames","createImageData","renderFrame","_timeout","stopAnimation","_png","has_local_palette","palette_offset","palette_size","data_offset","data_length","transparent_index","interlaced","disposal","loopCount","frameInfo","decodeAndBlitFrameBGRA","decodeAndBlitFrameRGBA","datav","DataView","is_with_alpha","bottom_up","parseHeader","parseBGR","jc","Qb","qb","nd","pd","Ka","Jd","Yc","Zc","Sb","Ra","Ur","zr","Hr","Mb","Xa","ud","jd","Ea","Hn","Wn","Vn","Gn","eb","fb","ea","Tc","Ed","Cd","Fd","Ab","fa","Rd","RGBA","kb","Pd","Qd","fd","Md","ib","da","bd","cd","Sd","ob","ka","vi","Mc","Nc","ec","fc","Rc","Tn","Kb","Sn","An","ma","qn","Un","memory","Ib","Jb","Nd","Oa","ji","Si","Mi","Oi","Pi","ki","Ei","qi","Dc","$n","xc","vc","md","Wb","Ya","Ta","Ua","hc","Gr","Wr","Vr","Zr","$r","Yr","va","ca","Ma","En","Qr","tn","nn","en","xn","zn","rn","tb","Xr","Pb","Wa","wc","wd","vb","ti","yc","xb","gi","VP8LMapColor32b","Jr","VP8LMapColor8b","Kr","Oc","Qn","Xn","Zn","Jn","Yn","Kn","td","Rb","Kd","Ld","Ud","Td","Fb","Bb","Cb","Zb","Lb","Yb","jb","Wc","Xc","Tb","zd","vd","od","ld","La","tc","Na","la","Sc","Eb","Qc","ia","lc","Za","Ob","$b","Ad","Gc","Hc","Dd","uc","Nb","wa","ya","aa","Od","ed","Qa","Ic","$c","Xb","Va","Hb","zb","yb","Ub","za","Jc","Pa","Bd","kc","Ac","Bc","zc","Gd","Hd","rb","sb","oc","sa","ta","qa","ra","Ia","Ec","ja","Vb","Fc","gd","Fa","Cc","qc","Gb","Uc","mb","nb","rc","Ga","Vc","put","ac","bc","ha","ni","ei","hi","Ri","Ui","Vd","Cn","Pn","kn","In","Fn","an","un","hn","sn","dn","pn","gn","mn","vn","bn","wn","Nn","Ln","li","di","ci","oi","Bn","jn","Mn","kd","na","xa","gb","Sa","Lc","$a","ic","mc","bi","wi","Ni","Li","Fi","Ii","Di","zi","Predictor0","Predictor1","Predictor2","Predictor3","Predictor4","Predictor5","Predictor6","Predictor7","Predictor8","Predictor9","Predictor10","Predictor11","Predictor12","Predictor13","PredictorAdd0","PredictorAdd1","PredictorAdd2","ColorIndexInverseTransform","MapARGB","VP8LColorIndexInverseTransformAlpha","MapAlpha","VP8LPredictorsAdd","VP8LPredictors","VP8LPredictorsAdd_C","VP8LPredictors_C","UpsampleRgbLinePair","UpsampleBgrLinePair","UpsampleRgbaLinePair","UpsampleBgraLinePair","UpsampleArgbLinePair","UpsampleRgba4444LinePair","UpsampleRgb565LinePair","Ti","WebPDecodeRGBA","src_off","src_size","feature_flags","canvas_width","canvas_height","bgcolor","loop_count","offset_x","offset_y","rgbaoutput","dataurl","loop_counter","imgwidth","imgheight","processPNG","processGIF89A","processGIF87A","fileSize","getUint32","reserved","headerSize","getInt32","planes","getUint16","bitPP","rawSize","importantColors","getUint8","quad","bit1","bit4","bit8","bit15","bit16","bit24","bit32","processBMP","processWEBP","processRGBA","setLanguage","languageSettings","isSubscribed","sq","hy","as","ast","az","eu","bg","zh","cv","co","nl","eo","fo","fj","fur","gl","gu","hu","iu","kk","km","ky","tlh","ko","lv","mk","ml","mo","nv","ng","no","om","qu","ro","ru","sg","so","es","sw","sv","th","tig","tk","uk","hsb","vo","xh","zu","languageCode","getCharWidthsArray","Unicode","fof","kerning","widthOfString","widthOfGlyph","characterToGlyph","textIndent","lineIndent","__fontmetrics__","uncompress","WinAnsiEncoding","Courier","ZapfDingbats","existsFileInVFS","getFileFromVFS","TTFFont","glyIdsUsed","addSvgAsImage","fromString","putTotalPages","pdfEscape16","viewerPreferences","HideToolbar","explicitSet","valueSet","pdfVersion","HideMenubar","HideWindowUI","FitWindow","CenterWindow","DisplayDocTitle","NonFullScreenPageMode","Direction","ViewArea","ViewClip","PrintArea","PrintClip","PrintScaling","Duplex","PickTrayByPDFSize","PrintPageRange","NumCopies","viewerpreferences","__metadata__","namespaceuri","metadata_object_number","addMetadata","toUnicode","subset","PDFObject","stemV","italicAngle","ascender","decender","capHeight","rawData","hmtx","codeMap","vFS","addFileToVFS","__bidiEngine__","EN","AN","32","251","254","hiLevel","doBidiReorder","isInputVisual","isOutputVisual","isInputRtl","isOutputRtl","isSymmetricSwapping","readString","registerTTF","directory","hhea","maxp","post","os2","loca","glyf","exists","lineGap","xMin","yMin","xMax","yMax","italic_angle","xHeight","familyClass","isSerif","isScript","isFixedPitch","forGlyph","advance","readByte","writeByte","writeUInt32","readInt32","writeInt32","writeUInt16","readInt16","writeInt16","writeString","readShort","writeShort","readLongLong","writeLongLong","readInt","writeInt","scalarType","tableCount","searchRange","entrySelector","rangeShift","tables","checksum","__super__","revision","checkSumAdjustment","magicNumber","created","macStyle","lowestRecPPEM","fontDirectionHint","indexToLocFormat","glyphDataFormat","platformID","encodingID","isUnicode","new","charMap","subtable","maxGlyphID","advanceWidthMax","minLeftSideBearing","minRightSideBearing","xMaxExtent","caretSlopeRise","caretSlopeRun","caretOffset","metricDataFormat","numberOfMetrics","averageCharWidth","weightClass","widthClass","ySubscriptXSize","ySubscriptYSize","ySubscriptXOffset","ySubscriptYOffset","ySuperscriptXSize","ySuperscriptYSize","ySuperscriptXOffset","ySuperscriptYOffset","yStrikeoutSize","yStrikeoutPosition","panose","charRange","vendorID","firstCharIndex","lastCharIndex","winAscent","winDescent","codePageRange","defaultChar","breakChar","maxContext","underlinePosition","underlineThickness","minMemType42","maxMemType42","minMemType1","maxMemType1","glyphNameIndex","offsets","numGlyphs","languageID","nameID","strings","copyright","fontSubfamily","uniqueSubfamily","postscriptName","trademark","manufacturer","designer","vendorUrl","designerUrl","license","licenseUrl","preferredFamily","preferredSubfamily","compatibleFull","sampleText","maxPoints","maxContours","maxCompositePoints","maxComponentContours","maxZones","maxTwilightPoints","maxStorage","maxFunctionDefs","maxInstructionDefs","maxStackElements","maxSizeOfInstructions","maxComponentElements","maxComponentDepth","metrics","lsb","leftSideBearings","glyphFor","lengthOf","numberOfContours","compound","glyphIDs","glyphOffsets","unicodes","generateCmap","glyphsFor","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","upperFirst","createCaseFirst","BREAKING_SPACES","calculateWordWidths","wordsWithComputedWidth","word","spaceWidth","getWordsWithoutCalculate","getWordsByLines","needCalculate","scaleToFit","wordWidths","initialWordsWithComputedWith","shouldLimitLines","maxLines","calculate","currentLine","originalResult","trimmedResult","checkOverflow","tempText","findLongestLine","iterations","_checkOverflow2","doesPrevOverflow","doesMiddleOverflow","calculateWordsByLines","prevWidth","prevScaleToFit","prevStyle","prevBreakAll","wordsByLines","textProps","startDy","reduceCSSCalc","baseFlatten","baseOrderBy","baseRest","isIterateeCall","sortBy","iteratees","Dot","createRange","baseIteratee","baseUniq","iteratee","CartesianAxis","layerReference","letterSpacing","minTickGap","tickFormatter","getNumberIntervalTicks","getTicksStart","getTicksEnd","preserveEnd","sizeKey","unitSize","tail","tailContent","tailSize","tailGap","tickCoord","isShow","option","restProps","viewBoxOld","restPropsOld","htmlLayer","getElementsByClassName","tickSize","tickMargin","finalTickSize","_this$props5","axisLine","needHeight","needWidth","_this$props6","tickLine","finalTicks","getTicks","getTickTextAnchor","getTickVerticalAnchor","axisProps","customTickProps","tickLineProps","_this2$getTickLineCoo","getTickLineCoord","lineCoord","tickProps","visibleTicksCount","renderTickItem","_this$props7","ticksGenerator","_this$props8","noTicksProps","renderAxisLine","renderTicks","ConnectedOverlayScrollHandler","getScrollableParents","_KeyFilter","onInput","onKeyPress","keyfilter","validateOnly","validatePattern","isLength","implicit","ordinal","__WEBPACK_EXTERNAL_MODULE__84__","__webpack_modules__","662","__unused_webpack_module","__extends","extendStatics","__","CellHookData","HookData","pageCount","getDocument","section","790","htmlParser_1","autoTableText_1","documentHandler_1","inputParser_1","tableDrawer_1","tableCalculator_1","autoTable","parseInput","createTable","drawTable","lastAutoTable","previousAutoTable","autoTableText","autoTableSetDefaults","DocHandler","setDefaults","autoTableHtmlToJson","tableElem","includeHiddenElements","parseHtml","autoTableEndPosY","finalY","autoTableAddPageContent","hook","globalDefaults","addPageContent","autoTableAddPage","938","lineCount","halign","alignSize","iLine","200","getFillStyle","drawLine","drawBackground","parseSpacing","addTableBorder","getStringWidth","applyStyles","startPos","tableLineWidth","tableLineColor","913","getTheme","defaultStyles","HtmlRowInput","FONT_ROW_RATIO","_element","cellPadding","minCellHeight","minCellWidth","striped","foot","alternateRow","plain","259","parseCss","common_1","parseColor","styleGetter","cssColor","realColor","supportedFonts","borderColor","pxScaleFactor","linePadding","inputPadding","parsePadding","accepted","parseFontStyle","323","jsPDFDocument","userStyles","__autoTableDocumentDefaults","unifyColor","fontOnly","setFontStyle","availableFontStyles","getLastAutoTable","getGlobalOptions","getDocumentOptions","pageInfo","148","cssParser_1","config_1","parseRowContent","includeHidden","useCss","resultRow","style_1","parseCellContent","orgCell","includeHiddenHtml","tableElement","587","polyfills_1","inputValidator_1","parseColumns","firstRow","rowResult","gInput","dInput","cInput","styleOptions","headStyles","bodyStyles","footStyles","alternateRowStyles","columnStyles","_loop_1","global_1","document_1","parseStyles","hooks","didParseCell","willDrawCell","didDrawCell","didDrawPage","allOptions_1","parseHooks","_g","_h","_k","_l","showFoot","showHead","userStartY","sf","isSamePageAsPreviousTable","startPageNumber","endingPage","horizontalPageBreak","horizontalPageBreakRepeat","pageBreak","rowPageBreak","parseSettings","htmlContent","parseContent","tableId","291","checkStyles","rowHeight","extendWidth","afterPageContent","beforePageContent","afterPageAdd","deprecated","deprecatedOption","287","Cell","Row","HookData_1","getHeadHeight","getMaxCellHeight","getFootHeight","allRows","callCellHooks","handlers","handlers_1","callEndPageHooks","pageWidth","total","wrappedWidth","spansMultiplePages","hasRowSpan","canEntireRowFit","getMinimumRowHeight","fontHeight","oneRowHeight","contentHeight","contentWidth","minReadableWidth","getTextPos","netHeight","netWidth","getContentHeight","getMaxCustomCellWidth","360","nextSource","858","models_1","widthCalculator_1","parseSection","sectionName","sectionRows","styleProps","rowSpansLeftForColumn","rawRow","rowIndex","skippedRowForRowSpans","colSpansAdded","columnSpansLeft","columns_1","rawCell","cellInputStyles","generateSectionRow","sectionRow","getSectionTitle","themeName","sectionStyles","otherStyles","colStyles","rowStyles","defaultStyle","themeStyles","jsPDFDoc","createColumns","calculateWidths","49","tablePrinter_1","getRemainingLineCount","remainingPageSpace","vPadding","remainingLines","printFullRow","isLastRow","remainingSpace","bottomContentHeight","getRemainingPageSpace","printRow","pageHeight","maxRowHeight","minRowHeight","minRowFits","rowHasRowSpanCell","shouldPrintOnCurrentPage","remainderRow","remainderCell","remainingLineCount","modifyRowToFit","drawCellBorders","textPos","sides","lineWidth_1","drawBorderForSide","nextPage","sectionsHeight","minTableBottomPos","calculateAllColumnsCanFitInPage","colsAndIndexes","printHead","printBody","printFoot","printTableWithHorizontalPageBreak","435","getPageAvailableWidth","getColumnsCanFitInPage","remainingWidth","repeatColumn","colWidth","colIndexes","allResults","189","ellipsize","resizeColumns","resizeWidth","initialResizeWidth","sumWrappedWidth","suggestedChange","suggestedWidth","ellipsizeStr","availablePageWidth","longestWordWidth","defaultMinWidth","initialTableWidth","colSpanCell","combinedColSpanWidth","colSpansLeft","columnIndex","applyColSpans","rowSpanHeight","textSpace","realContentHeight","fitContent","rowSpanCells","colRowSpansLeft","remaining","applyRowSpans","84","__webpack_module_cache__","cachedModule","__drawTable","__createTable","applyPlugin","applyPlugin_1","models_2","Surface","svgView","numbers","valueof","getRectanglePath","maxRadius","ySign","xSign","newRadius","_newRadius","isInRectangle","totalLength","getTotalLength","animationEasing","animationDuration","animationBegin","isAnimationActive","isUpdateAnimationActive","currWidth","currHeight","currY","_context","_x0","_x1","_y0","_y1","Basis","areaStart","_line","areaEnd","_point","BasisClosed","_x2","_x3","_x4","_y2","_y3","_y4","BasisOpen","x0","y0","LinearClosed","Linear","slope3","h0","slope2","t0","MonotoneX","MonotoneY","ReflectContext","Natural","_t0","Step","defined","curve","curveLinear","defined0","pointX","pointY","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","CURVE_FACTORIES","curveBasisClosed","curveBasisOpen","curveBasis","curveLinearClosed","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","Curve","lineFunction","baseLine","connectNulls","curveFactory","getCurveFactory","formatPoints","formatBaseLine","areaPoints","shapeArea","shapeLine","pathRef","realPath","tau","tan30","tan30_2","kx","sqrt3","symbolFactories","symbolCircle","symbolCross","symbolDiamond","symbolSquare","symbolStar","symbolTriangle","symbolWye","Symbols","sizeType","symbolFactory","getSymbolFactory","shapeSymbol","calculateAreaSize","registerSymbol","DefaultLegendContent","inactiveColor","strokeDasharray","SIZE","legendIcon","iconProps","iconSize","itemStyle","svgStyle","_classNames","finalFormatter","defaultUniqBy","getUniqPayload","_uniqBy","wrapperNode","boxWidth","boxHeight","chartWidth","updateBBox","hPos","vPos","chartHeight","getBBoxSnapshot","_this$state2","onBBoxUpdate","_box3","wrapperStyle","payloadUniqBy","outerStyle","getDefaultPosition","otherProps","renderContent","u8","u16","u32","fleb","fdeb","clim","freb","revfl","revfd","hMap","rvb","r_1","flt","fdt","flm","flrm","fdm","fdrm","bits16","shft","slc","inflt","dat","noBuf","noSt","cbuf","nbuf","final","lm","dm","lbt","dbt","tbts","hLit","hcLen","tl","ldt","clt","clb","clbmsk","clm","lms","dms","mxa","dsym","wbits","wbits16","hTree","i2","maxSym","mbt","lft","cst","i2_1","i2_2","i2_3","cli","cln","cls","clen","wfblk","wblk","syms","lf","df","dlt","mlb","ddt","mdb","lclt","nlc","lcdt","ndc","lcfreq","lct","mlcb","nlcc","ftlen","dtlen","llm","lcts","clct","deo","dflt","lvl","plvl","msk_1","bs1_1","bs2_1","hsh","lc_1","hv","imod","pimod","ch_1","dif","maxn","maxd","mmd","lin","din","adler","dopt","mem","wbytes","zlh","zlv","zlibSync","unzlibSync","baseExtremum","baseGt","baseLt","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","i18nInstance","defaultOptions","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","I18nContext","getDefaults","ReportNamespaces","usedNamespaces","getI18n","initReactI18next","react","setI18n","defaultFormatter","DefaultTooltipContent","separator","itemSorter","finalItemStyle","wrapperClassName","contentStyle","labelClassName","labelStyle","labelFormatter","finalLabelStyle","hasLabel","finalLabel","wrapperCN","labelCN","CLS_PREFIX","dismissed","dismissedAtCoordinate","getTranslate","tooltipDimension","viewBoxDimension","allowEscapeViewBox","reverseDirection","preventScroll","translateX","translateY","filterNull","finalPayload","hasPayload","pointerEvents","useTranslate3d","cursorStyle","dontSetMe","findInArray","int","isNum","arrayLikeKeys","baseKeys","isArrayLike","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","nativeCreate","getNative","isKeyable","__data__","isIndex","tickStep","formatSpecifier","precisionPrefix","formatPrefix","precisionRound","precisionFixed","arrayWithHoles","iterableToArrayLimit","nonIterableRest","arrayEvery","baseEvery","predicate","guard","baseIsEqual","_CSSTransition","_ReplaceTransition","_TransitionGroup","_Transition","transformLog","transformExp","transformLogn","transformExpn","pow10","reflect","loggish","pows","log10","log2","logp","powp","transformSymlog","log1p","transformSymexp","expm1","symlogish","symlog","transformPow","transformSqrt","transformSquare","powish","unsquare","radial","squared","swap","quantile","value0","quickselect","ascending","newLeft","newRight","quantileSorted","thresholds","threshold","invertExtent","quantiles","quantize","newInterval","floori","offseti","millisecond","getMilliseconds","minute","durationSecond","hour","durationMinute","durationHour","weekday","durationDay","sunday","monday","tuesday","wednesday","thursday","friday","saturday","utcMinute","setUTCSeconds","utcHour","setUTCMinutes","utcDay","setUTCHours","setUTCDate","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcMonth","setUTCMonth","utcYear","setUTCFullYear","ticker","week","tickIntervals","tickInterval","bisector","utcWeek","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","utcDate","newDate","locale","timeFormat","utcFormat","pads","numberRe","percentRe","requoteRe","requote","formatRe","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekNumberMonday","parseFullYear","parseYear","parseZone","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","timeDay","timeYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","timeSunday","dISO","timeThursday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","timeMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","timeMonth","timeWeek","timeHour","timeMinute","timeSecond","utcTime","utcSecond","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","locale_shortWeekdays","shortDays","locale_months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","utcFormats","parses","parseSpecifier","newFormat","newParse","utcParse","formatLocale","k10","sequential","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","k21","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","assertThisInitialized","consoleLogger","baseLogger","Logger","concreteLogger","logger","forward","debugOnly","moduleName","observers","cloned","observer","_cloned","defer","rej","getLastOfPath","Empty","cleanKey","canNotTraverseDeeper","_getLastOfPath","_getLastOfPath3","getPathWithDefaults","defaultData","deepExtend","overwrite","regexEscape","_entityMap","escape","isIE10","ResourceStore","_EventEmitter","defaultNS","keySeparator","lng","silent","addNamespaces","emit","resources","addResource","pack","hasResourceBundle","removeNamespaces","getResource","compatibilityAPI","postProcessor","addPostProcessor","translator","checkedLoadedFor","Translator","services","interpolation","resolved","nsSeparator","nestingRegexp","lastKey","overloadTranslationOptionHandler","_this$extractFromKey","extractFromKey","appendNamespaceToCIMode","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","isValidLookup","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","fallbackValue","missingKeyHandler","backendConnector","saveMissing","saveMissingPlurals","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","usedLng","usedNS","skipInterpolation","nestBef","skipOnVariables","defaultVariables","nest","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","found","extracted","fallbackNS","needsContextHandling","hasLoadedNamespace","pluralSuffix","possibleKey","finalKey","finalKeys","addLookupKeys","contextSeparator","returnNull","returnEmptyString","resourceStore","capitalize","LanguageUtil","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","cleanCode","deprecate","isSupportedCode","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","lngOnly","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","sets","_rulesPluralsTypes","4","9","10","11","12","13","15","16","17","18","19","20","21","22","createRules","rules","plurals","PluralResolver","rule","getRule","noAbs","simplifyPluralSuffix","returnSuffix","prepend","compatibilityJSON","Interpolator","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","handleFormat","missingInterpolationHandler","safeValue","todo","clonedOptions","handleHasOptions","inheritedOptions","optionsString","formatters","doReduce","Connector","backend","store","queue","languages","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","errors","addResourceBundle","_getLastOfPath2","pushPath","what","fcName","tried","queueLoad","loadOne","prepareLoading","isUpdate","initImmediate","nonExplicitWhitelist","preload","pluralSeparator","partialBundledLanguages","tDescription","transformOptions","i18next","I18n","isClone","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","storeApi","_this2$store","storeApiChained","_this2$store2","deferred","changeLanguage","usedCallback","isLanguageChangingTo","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","detect","fixedT","_this$translator","_this$translator2","lastLng","loadNotPending","loadState","precheck","preResult","preloaded","newLngs","mergedOptions","membersToCopy","_postcssValueParser2","_parser","_reducer2","_stringifier2","MATCH_CALC","walk","parser","reducedAst","Detector","Offline","Online","_propTypes2","inBrowser","ping","isOffline","xhr","ontimeout","onreadystatechange","readyState","HEADERS_RECEIVED","polling","wrapperType","defaultPollingConfig","enabled","Base","online","onLine","goOnline","goOffline","getPollingConfig","startPolling","pollingId","stopPolling","callOnChangeHandler","_getPollingConfig2","_Base","_Base2","_Base3","isTouch","Brush","leaveTimer","travellerDragStartHandlers","handleDrag","isTravellerMoving","handleTravellerMove","isSlideMoving","handleSlideDrag","handleTouchMove","handleDragEnd","detachDragEndListener","handleLeaveWrapper","leaveTimeOut","handleEnterSlideOrTraveller","isTextActive","handleLeaveSlideOrTraveller","handleSlideDragStart","slideMoveStartX","attachDragEndListener","handleTravellerDragStart","lineY","renderDefaultTraveller","travellerWidth","updateId","prevData","prevUpdateId","prevTravellerWidth","prevX","scalePoint","scaleValues","createScale","minIndex","getIndexInRange","maxIndex","newIndex","movingTravellerId","brushMoveStartX","_this$setState","isFullGap","chartElement","compact","travellerX","traveller","travellerProps","onTouchStart","renderTraveller","_this$props9","_this$state3","getTextOfTick","_this$props10","alwaysShowText","_this$state4","isPanoramic","onTouchMove","renderBackground","renderPanorama","renderSlide","renderTravellerLayer","renderText","ReferenceArea","clipPathId","hasX1","hasX2","hasY1","hasY2","xValue1","xValue2","yValue1","yValue2","xAxis","yAxis","rangeMin","rangeMax","getRect","renderRect","isFront","xAxisId","yAxisId","detectReferenceElementsDomain","specifiedTicks","ReferenceLine","dots","ReferenceDot","areas","idKey","valueKey","finalDomain","key1","key2","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","Item","nextTick","argv","removeAllListeners","prependListener","prependOnceListener","binding","cwd","chdir","umask","FilterUtils","filteredItems","filterText","removeAccents","toLocaleLowerCase","fieldValue","stringValue","addClassName","addEvent","inputOptions","capture","addUserSelectStyles","styleEl","createCSSTransform","controlPos","positionOffset","translation","getTranslation","_getPrefix","browserPrefixToKey","createSVGTransform","getTouch","identifier","targetTouches","_shims","getTouchIdentifier","computedStyle","matchesSelectorAndParentsTo","baseNode","offsetXYFromParent","evt","offsetParentRect","removeClassName","removeEvent","detachEvent","removeUserSelectStyles","nodeInterop","cacheBabelInterop","cacheNodeInterop","matchesSelectorFunc","unitSuffix","defaultX","defaultY","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","RangeError","encodingOrOffset","byteOffset","fromArrayLike","fromArrayBuffer","isEncoding","actual","fromObject","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","hexWrite","strLen","parsed","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","lo","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","decodeCodePointsArray","SlowBuffer","INSPECT_MAX_BYTES","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","inspect","thisStart","thisEnd","thisCopy","targetCopy","checkOffset","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","baseForOwn","baseEach","createBaseEach","baseIsArguments","objectProto","isArguments","reIsUint","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","baseIsEqualDeep","bitmask","customizer","castPath","toKey","reIsDeepProp","reIsPlainProp","band","ordinalRange","paddingInner","paddingOuter","pointish","nativeMax","nativeMin","lastThis","maxWait","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","flush","noGlobal","getProto","flat","class2type","fnToString","ObjectFunctionString","isWindow","preservedScriptAttributes","nonce","noModule","DOMEval","toType","jquery","pushStack","prevObject","even","_elem","odd","copyIsArray","expando","isReady","proto","globalEval","makeArray","callbackExpect","Expr","isXML","tokenize","compile","outermostContext","sortInput","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","pushNative","booleans","whitespace","pseudos","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","nonHex","high","rcssescape","fcssescape","asCodePoint","unloadHandler","inDisabledFieldset","addCombinator","els","nid","groups","newSelector","newContext","qsa","testContext","toSelector","qsaError","cacheLength","markFunction","assert","addHandle","attrHandle","siblingCheck","sourceIndex","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","hasCompare","subWindow","getById","getElementsByName","attrId","disconnectedMatch","compareDocumentPosition","adown","bup","sortDetached","aup","ap","bp","expr","uniqueSort","duplicates","detectDuplicates","sortStable","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","operator","_argument","simple","ofType","uniqueCache","outerCache","nodeIndex","useCache","uniqueID","pseudo","setFilters","matcher","unmatched","elemLang","activeElement","hasFocus","selectedIndex","_matchIndexes","submit","combinator","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","compiled","isXMLDoc","escapeSelector","until","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","sibling","targets","prevAll","addBack","parentsUntil","nextAll","nextUntil","prevUntil","rnothtmlwhite","Identity","Thrower","adoptValue","noValue","Callbacks","createOptions","firing","fired","locked","firingIndex","fire","stopOnFalse","disable","lock","fireWith","Deferred","tuples","always","newDefer","tuple","returned","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","mightThrow","notifyWith","resolveWith","exceptionHook","stackTrace","rejectWith","getStackHook","when","singleValue","resolveContexts","resolveValues","updateFunc","rerrorNames","readyException","readyList","completed","readyWait","doScroll","access","chainable","emptyGet","bulk","rmsPrefix","rdashAlpha","fcamelCase","_all","camelCase","acceptData","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","_removeData","dequeue","startLength","_queueHooks","clearQueue","pnum","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","adjustCSS","valueParts","adjusted","maxIterations","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","toggle","rcheckableType","rtagName","rscriptType","checkClone","noCloneChecked","wrapMap","thead","_default","setGlobalEval","refElements","tbody","tfoot","colgroup","optgroup","buildFragment","scripts","ignored","wrap","attached","fragment","htmlPrefilter","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","origFn","leverageNative","notAsync","saved","isTrigger","delegateType","handleObjIn","eventHandle","handleObj","origType","elemData","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","nativeEvent","handlerQueue","fix","preDispatch","isPropagationStopped","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","noBubble","beforeunload","isDefaultPrevented","defaultPrevented","timeStamp","isSimulated","altKey","eventPhase","charCode","buttons","pointerId","pointerType","screenX","screenY","toElement","pointerenter","pointerleave","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","udataOld","udataCur","fixInput","domManip","hasScripts","iNoClone","valueIsFunction","_evalUrl","keepData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","replaceWith","replaceAll","insert","rnumnonpx","getStyles","opener","rboxStyle","curCSS","computed","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","trChild","trStyle","cssPrefixes","emptyStyle","vendorProps","finalPropName","capName","vendorPropName","rdisplayswap","rcustomProp","cssShow","cssNormalTransform","setPositiveNumber","boxModelAdjustment","dimension","isBorderBox","computedVal","getWidthOrHeight","valueIsBorderBox","offsetProp","Tween","cssHooks","origName","isCustomProp","setProperty","scrollboxSizeBuggy","propHooks","eased","swing","fxNow","inProgress","rfxtypes","rrun","schedule","createFxNow","genFx","includeWidth","createTween","Animation","tweeners","stopped","prefilters","currentTime","startTime","tweens","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflowX","prefilter","speed","speeds","optall","doAnimation","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeToggle","slow","checkOn","optSelected","radioValue","boolHook","nType","attrHooks","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","curValue","clazz","finalValue","toggleClass","stateVal","isValidValue","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","attaches","rquery","parseXML","parserErrorElem","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","valueOrFunction","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","lastModified","etag","isLocal","contentType","accepts","responseFields","converters","ajaxSetup","ajaxPrefilter","ajaxTransport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","abort","statusText","finalText","crossDomain","hasContent","ifModified","beforeSend","success","nativeStatusText","responses","isSuccess","finalDataType","firstDataType","ajaxHandleResponses","conv2","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","xhrSuccessStatus","1223","xhrSupported","cors","errorCallback","username","xhrFields","onabort","binary","scriptAttrs","scriptCharset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","keepScripts","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","parentOffset","defaultExtra","funcName","undelegate","fnOver","fnOut","holdReady","hold","parseJSON","isNumeric","_jQuery","_$","noConflict","isarray","tokensToFunction","tokensToRegExp","PATH_REGEXP","defaultDelimiter","delimiter","escaped","modifier","asterisk","partial","optional","escapeGroup","escapeString","encodeURIComponentPretty","attachKeys","endsWithDelimiter","regexpToRegexp","arrayToRegexp","stringToRegexp","FormatSpecifier","zero","comma","mid","ascendingComparator","Dropdown","_DropdownPanel","_DropdownItem","_reactTransitionGroup","_UniqueComponentId","focused","overlayVisible","onInputFocus","onInputBlur","onInputKeyDown","onEditableInputClick","onEditableInputChange","onEditableInputFocus","onOptionClick","onFilterInputChange","onFilterInputKeyDown","onPanelClick","onOverlayEnter","onOverlayEntered","onOverlayExit","onOverlayExited","isClearClicked","hideOverlay","showOverlay","persist","onFocus","onDownKey","onUpKey","visibleOptions","getVisibleOptions","selectedItemIndex","findOptionIndex","findPrevVisibleItem","selectItem","findNextVisibleItem","searchTimeout","char","previousSearchChar","currentSearchChar","searchValue","newOption","searchOption","selectedOptionUpdated","searchOptionInRange","getOptionLabel","startsWith","searchFields","filterBy","optionLabel","bindDocumentClickListener","updateEditableLabel","findOption","optionValue","getOptionValue","selectedOptionIndex","panel","alignPanel","scrollInView","bindResizeListener","filterInputAutoFocus","filterInput","unbindDocumentClickListener","unbindResizeListener","resetFilterOnHide","resetFilter","absolutePosition","relativePosition","highlightItem","itemsWrapper","documentClickListener","isOutsideClicked","isSameNode","nativeSelect","checkValidity","selectedOption","autoFocus","updateInputField","hideTimeout","placeHolderOption","inputId","ariaLabel","ariaLabelledBy","_this12","valueTemplate","getJSXElement","showClear","_this13","_this14","optionKey","getOptionKey","DropdownItem","itemTemplate","emptyFilterMessage","_this15","_this16","hiddenSelect","renderHiddenSelect","keyboardHelper","renderKeyboardHelper","labelElement","dropdownIcon","renderDropdownIcon","renderFilter","clearIcon","renderClearIcon","DropdownPanel","panelStyle","panelClassName","RowCheckbox","rowData","defaultChecked","Messages","_UIMessage","messageIdx","messages","onClose","newMessages","onRemove","UIMessage","paramsSerializer","serializedParams","hashmarkIndex","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","getDefaultAdapter","transformRequest","transformResponse","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","auth","Authorization","fullPath","baseURL","responseURL","timeoutErrorMessage","xsrfValue","withCredentials","onDownloadProgress","onUploadProgress","upload","cancelToken","enhanceError","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","mergeDeepProperties","axiosKeys","otherKeys","Cancel","canDragX","canDragY","createCoreData","isStart","lastX","deltaX","deltaY","lastY","createDraggableData","coreData","getBoundPosition","cloneBounds","boundNode","ownerWindow","boundNodeEl","nodeStyle","boundNodeStyle","_domFns","getControlPosition","touchIdentifier","draggableCore","touchObj","snapToGrid","pendingX","pendingY","containerClass","boxClass","iconClass","DO_NOT_EXPORT_CODEPAGE","cpt","magic","sbcs_cache","dbcs_cache","magic_cache","magic_decode","magic_encode","cpdcache","cpecache","sfcc","cca","mdl","sbcs_encode","EE","make_EE","ofmt","sbcs_decode","DD","dbcs_encode","dbcs_decode","utf8_d","direct","encache","null_enc","cp_decache","decache","last_enc","last_cp","sbcs","dbcs","BM","o64","isstr","hascp","Timeout","clearFn","_id","_clearFn","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","setImmediate","clearImmediate","baseFor","stubFalse","freeExports","freeModule","webpackPolyfill","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","isTypedArray","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","funcToString","SetCache","arraySome","cacheHas","equalFunc","isPartial","othLength","arrStacked","othStacked","arrValue","othValue","compared","othIndex","setCacheAdd","setCacheHas","srcValue","isKey","stringToPath","baseToString","fromRight","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","arrayPush","isFlattenable","isStrict","reHasUnicode","comparator","flip","_convert","_convert2","isEqual","convertMathExpression","flipValue","isValueType","reduceAddSubExpression","reduceDivisionExpression","reduceMultiplicationExpression","reduceMathExpression","_reactLifecyclesCompat","transitionGroup","getChildContext","contextTypes","childContextTypes","polyfill","componentWillMount","componentWillReceiveProps","componentWillUpdate","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","isReactComponent","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","newApiName","maybeSnapshot","snapshot","__suppressDeprecationWarning","classNamesShape","timeoutsShape","_ChildMapping","getInitialChildMapping","widgetUuid","widgetSlice","existingConstructor","basePrototype","proxiedPrototype","fullName","_createWidget","_childConstructors","_superApply","__super","__superApply","widgetEventPrefix","widgetName","widgetFullName","childPrototype","inputIndex","inputLength","isMethodCall","methodValue","_init","defaultElement","uuid","eventNamespace","bindings","hoverable","focusable","classesElementLookup","_on","_getCreateOptions","_create","_setOptionDisabled","_trigger","_getCreateEventData","_destroy","_removeClass","curOption","_setOptions","_setOption","_setOptionClasses","classKey","currentElements","_toggleClass","enable","full","processClassString","checkOption","_untrackClassesElement","suppressDisabledCheck","delegateElement","handlerProxy","_off","_hoverable","_focusable","focusout","defaultEffect","hasOptions","effectName","effects","cachedScrollbarWidth","rhorizontal","rvertical","roffset","rposition","rpercent","_position","getOffsets","getDimensions","w1","innerDiv","getScrollInfo","within","isDocument","hasOverflowX","getWithinInfo","withinElement","atOffset","targetWidth","basePosition","scrollInfo","collisionPosition","elemWidth","elemHeight","collisionWidth","collisionHeight","feedback","important","fit","newOverRight","withinOffset","collisionPosLeft","overLeft","overRight","newOverBottom","collisionPosTop","overTop","overBottom","newOverLeft","newOverTop","flipfit","dataName","disableSelection","eventType","enableSelection","hasTabindex","mapName","focusableIfVisible","fieldset","form","formResetMixin","_formResetHandler","instances","_bindFormResetHandler","_unbindFormResetHandler","BACKSPACE","COMMA","ENTER","ESCAPE","HOME","PAGE_DOWN","PAGE_UP","PERIOD","SPACE","TAB","selectorEscape","ancestor","ancestors","scrollParent","excludeStaticParent","tabbable","removeUniqueId","mouseHandled","_mouseInit","_mouseDown","started","_mouseDestroy","_mouseMoveDelegate","_mouseUpDelegate","_mouseMoved","_mouseStarted","_mouseUp","_mouseDownEvent","btnIsLeft","elIsCancel","_mouseCapture","mouseDelayMet","_mouseDelayTimer","_mouseDistanceMet","_mouseDelayMet","_mouseStart","_mouseMove","documentMode","ignoreMissingWhich","_mouseDrag","_mouseStop","plugins","allowDisconnected","safeBlur","mouse","addClasses","connectToSortable","containment","cursorAt","iframeFix","refreshPositions","revert","revertDuration","scrollSensitivity","scrollSpeed","snapMode","snapTolerance","_setPositionRelative","_setHandleClassName","_removeHandleClassName","destroyOnClear","_getHandle","_blurActiveElement","_blockFrames","iframeBlocks","iframe","_unblockFrames","_createHelper","_cacheHelperProportions","ddmanager","_cacheMargins","cssPosition","hasFixedAncestor","positionAbs","_refreshOffsets","originalPosition","_generatePosition","originalPageX","originalPageY","_adjustOffsetFromHelper","_setContainment","_clear","dropBehaviour","prepareOffsets","dragStart","_getParentOffset","_getRelativeOffset","noPropagation","_convertPositionTo","_uiHash","dropped","dragStop","handleElement","helperIsFunction","helperProportions","_isRootNode","po","scrollIsRootNode","isUserScrollable","relativeContainer","constrainPosition","cancelHelperRemoval","uiSortable","sortables","isOver","_storedCSS","_helper","innermostIntersecting","_intersectsWith","containerCache","_parent","currentItem","fromOutside","_revert","_cursor","_opacity","scrollParentNotHidden","overflowOffset","scrolled","snapElements","$o","inst","snapping","release","snapItem","_zIndex","greedy","activate","deactivate","proportions","isover","isout","_addToManager","droppables","_splice","_activate","_addActiveClass","_deactivate","_removeActiveClass","_over","_addHoverClass","_out","_removeHoverClass","_drop","custom","childrenIntersection","intersect","isOverAxis","toleranceMode","absolute","droppablesLoop","greedyChild","parentInstance","uiBackCompat","hoverClass","activeClass","alsoResize","animateDuration","animateEasing","ghost","handles","_num","_hasScroll","_aspectRatio","originalElement","_proportionallyResizeElements","resizable","elementIsWrapper","originalResizeStyle","_proportionallyResize","_setupHandles","_handles","resizing","_removeHandles","hname","nw","_renderAxis","padPos","padWrapper","curleft","curtop","_renderProxy","sizeDiff","originalMousePosition","_propagate","smp","_change","_updatePrevProperties","_updateVirtualBoundaries","_updateRatio","_respectSize","_updateCache","_applyChanges","ista","soffseth","soffsetw","prevPosition","prevSize","forceAspectRatio","pMinWidth","pMaxWidth","pMinHeight","pMaxHeight","_vBoundaries","cpos","ismaxw","ismaxh","isminw","isminh","_getPaddingPlusBorderDimensions","borders","paddings","prel","outerDimensions","elementOffset","containerElement","containerPosition","parentData","containerSize","woset","hoset","isParent","isOffsetRelative","pRatio","cop","continueResize","ho","gridX","gridY","isMaxWidth","isMaxHeight","isMinWidth","isMinHeight","autoRefresh","selecting","unselected","unselecting","dragged","elementPos","selectees","selecteeOffset","$element","startselected","opos","selectee","doSelect","connectWith","dropOnEmpty","forcePlaceholderSize","forceHelperSize","beforeStop","change","receive","_isOverAxis","_isFloating","overrideHandle","validHandle","reverting","_refreshItems","_removeCurrentsFromItems","noActivation","currentContainer","domPosition","_createPlaceholder","storedCursor","storedStylesheet","_storedOpacity","_storedZIndex","_preserveHelperProportions","containers","dragging","itemElement","lastPositionAbs","_intersectsWithPointer","_intersectsWithSides","_rearrange","_contactContainers","_noFinalSort","_getItemsAsjQuery","connected","expression","dyClick","dxClick","isOverElementHeight","isOverElementWidth","isOverElement","forcePointerForContainers","floating","verticalDirection","horizontalDirection","_getDragVerticalDirection","_getDragHorizontalDirection","isOverBottomHalf","isOverRightHalf","_connectWith","queries","addItems","targetData","_queries","queriesLength","toleranceElement","refreshContainers","_createTrPlaceholder","sourceTr","targetTr","itemWithLeastDistance","posProperty","sizeProperty","nearBottom","innermostContainer","innermostIndex","hardRefresh","delayedTriggers","delayEvent","_inst","sender","collapsible","heightStyle","icons","activeHeader","beforeActivate","hideProps","showProps","prevShow","prevHide","_processPanels","_createIcons","_destroyIcons","_setupEvents","_keydown","currentIndex","toFocus","_eventHandler","_panelKeyDown","prevHeaders","prevPanels","panels","_findActive","headerId","panelId","keydown","activeChildren","clickedChildren","clicked","clickedIsActive","collapsing","toShow","toHide","eventData","oldHeader","oldPanel","newHeader","newPanel","_toggle","_animate","_toggleComplete","boxSizing","down","submenu","activeMenu","previousFilter","actualTarget","keepActiveItem","collapseAll","_closeOnDocumentClick","submenus","character","previousPage","_move","collapse","filterTimer","_filterMenuItems","newSubmenus","newItems","newWrappers","submenuCaret","_isDivider","_itemRole","listbox","activeParent","_scrollIntoView","_close","_startOpening","fromFocus","_open","currentMenu","startMenu","newItem","isFirstItem","isLastItem","escapedCharacter","minLength","requestIndex","suppressKeyPress","suppressKeyPressRepeat","suppressInput","isTextarea","isMultiLine","_isContentEditable","valueMethod","isNewMenu","_keyEvent","term","_searchTimeout","keypress","selectedItem","cancelBlur","searching","_initSource","_appendTo","menufocus","liveRegion","menuselect","_isEventTargetInWidget","menuElement","_closeOnClickOutside","autocomplete","equalValues","menuVisible","modifierKey","_search","cancelSearch","_response","__response","_normalize","_suggest","ul","_renderMenu","_resizeMenu","_renderItemData","_renderItem","keyEvent","escapeRegex","noResults","amount","datepicker_instActive","controlgroupCornerRegex","Datepicker","_curInst","_disabledInputs","_datepickerShowing","_inDialog","_mainDivId","_inlineClass","_appendClass","_triggerClass","_dialogClass","_disableClass","_unselectableClass","_currentClass","_dayOverClass","regional","closeText","prevText","nextText","currentText","monthNames","monthNamesShort","dayNames","dayNamesShort","dayNamesMin","weekHeader","dateFormat","firstDay","showMonthAfterYear","yearSuffix","_defaults","showOn","showAnim","showOptions","defaultDate","buttonText","buttonImage","buttonImageOnly","hideIfNoPrevNext","navigationAsDateFormat","gotoCurrent","changeMonth","changeYear","yearRange","showOtherMonths","selectOtherMonths","showWeek","calculateWeek","iso8601Week","shortYearCutoff","minDate","maxDate","beforeShowDay","beforeShow","onChangeMonthYear","numberOfMonths","showCurrentAtPos","stepMonths","stepBigMonths","altField","altFormat","constrainInput","showButtonPanel","dpDiv","datepicker_bindHover","datepicker_handleMouseover","datepicker","_isDisabledDatepicker","inline","datepicker_extendRemove","spinnerModifer","onlyVisible","_enhance","_callChildMethod","childWidgets","controlgroupLabel","_initWidgets","instanceOptions","_resolveClassesValues","widgetElement","_updateCornerClass","_buildSimpleOptions","_spinnerOptions","_buttonOptions","_checkboxradioOptions","_selectmenuOptions","_readType","originalLabel","_updateLabel","_updateIcon","_getRadioGroup","nameSelector","_toggleClasses","checkboxradio","iconSpace","toAdd","iconPosition","showLabel","hasTitle","_updateTooltip","displayBlock","_attachIcon","_attachIconSpace","newShowLabel","newIcon","secondary","buttonset","controlgroup","markerClassName","maxRows","_widgetDatepicker","_attachDatepicker","_newInst","_connectDatepicker","_inlineDatepicker","selectedDay","selectedMonth","selectedYear","drawMonth","drawYear","_attachments","_doKeyDown","_doKeyPress","_doKeyUp","_autoSize","_disableDatepicker","_showDatepicker","_lastInput","_hideDatepicker","findMax","maxI","_formatDate","divSpan","_setDate","_getDefaultDate","_updateDatepicker","_updateAlternate","_dialogDatepicker","browserWidth","browserHeight","_dialogInst","_dialogInput","_pos","blockUI","_destroyDatepicker","$target","_enableDatepicker","_getInst","_optionDatepicker","_getDateDatepicker","_getMinMaxDate","_changeDatepicker","_refreshDatepicker","_setDateDatepicker","noDefault","_setDateFromField","_getDate","dateStr","handled","_selectDay","_adjustDate","_clearDate","_gotoToday","_possibleChars","lastVal","_getFormatConfig","beforeShowSettings","isFixed","_findPos","_checkOffset","datepicker_getZindex","_shouldFocusInput","_generateHTML","_attachHandlers","origyearshtml","numMonths","_getNumberOfMonths","activeCell","yearshtml","dpWidth","dpHeight","inputWidth","inputHeight","viewWidth","viewHeight","_tidyDialog","unblockUI","_checkExternalClick","_adjustInstDate","currentDay","currentMonth","currentYear","_notifyChange","_selectMonthYear","_selectDate","formatDate","noWeekends","checkDate","iFormat","iValue","shortYearCutoffTemp","doy","literal","lookAhead","getNumber","isDoubled","digits","shortNames","longNames","pair","checkLiteral","_ticksTo1970","_getDaysInMonth","_daylightSavingAdjust","ATOM","COOKIE","ISO_8601","RFC_822","RFC_850","RFC_1036","RFC_1123","RFC_2822","RSS","TICKS","TIMESTAMP","W3C","formatNumber","formatName","dates","_restrictMinMax","_determineDate","offsetString","offsetNumeric","noChange","origMonth","origYear","today","selectDay","selectMonth","selectYear","maxDraw","gotoDate","buttonPanel","selectedDate","cornerClass","calender","daysInMonth","leadDays","curRows","numRows","printDate","dRow","daySettings","otherMonth","unselectable","tempDate","isMultiMonth","currentDate","_canAdjustMonth","_isInRange","_generateMonthYearHeader","_getFirstDayOfMonth","inMinYear","inMaxYear","years","thisYear","determineYear","endYear","monthHtml","minMax","curYear","curMonth","yearSplit","minYear","maxYear","otherArgs","autoOpen","closeOnEscape","modal","topOffset","beforeClose","resizeStart","resizeStop","sizeRelatedOptions","resizableRelatedOptions","originalCss","originalTitle","_createWrapper","uiDialog","_createTitlebar","_createButtonPane","_makeDraggable","_makeResizable","_isOpen","_trackFocus","_untrackInstance","_destroyOverlay","_focusedElement","_hide","isOpen","moveToTop","_moveToTop","zIndices","zIndexMax","_focusTabbable","_size","_createOverlay","_show","_makeFocusTarget","uiDialogButtonPane","uiDialogTitlebarClose","_keepFocus","checkFocus","tabbables","uiDialogTitle","uiDialogTitlebar","_title","uiButtonSet","_createButtons","buttonOptions","filteredUi","_minHeight","_trackingInstances","resizableOptions","isResizable","nonContentHeight","minContentHeight","maxContentHeight","_allowInteraction","isOpening","overlays","dialogClass","oldValue","_constrainedValue","valueDiv","_refreshValue","_percentage","overlayDiv","selectmenuId","_drawButton","_drawMenu","_rendered","menuItems","_parseOption","buttonItem","_renderButtonItem","_resizeButton","_buttonEvents","_refreshMenu","menuWrap","menuInstance","_setSelection","_select","focusIndex","_getSelectedItem","_parseOptions","_setAria","_toggleAttr","_documentClick","menuWidget","_setText","currentOptgroup","addRange","_selectFocusedItem","oldIndex","slide","numPages","_keySliding","_mouseSliding","_animateOff","_handleIndex","_detectOrientation","_calculateNewMax","_createRange","_createHandles","handleCount","existingHandles","_valueMin","_handleEvents","normValue","closestHandle","mouseOverHandle","elementSize","_normValueFromMouse","_valueMax","thisDistance","_lastChangedValue","_clickOffset","_slide","_stop","pixelTotal","pixelMouse","percentMouse","valueTotal","valueMouse","_trimAlignValue","uiHash","handleIndex","_hasMultipleValues","newVal","otherVal","newValues","vals","valsLength","_refreshRange","valModStep","alignValue","_precision","_precisionOf","decimal","lastValPercent","valPercent","valueMin","valueMax","oRange","_set","curVal","keyup","culture","incremental","numberFormat","spin","_draw","_events","mousewheel","spinning","_spin","mousewheelTimer","_repeat","uiSpinner","_adjustValue","_increment","aboveMin","_parse","Globalize","isValid","allowAny","stepUp","_stepUp","stepDown","_stepDown","pageUp","pageDown","spinner","_uiSpinnerHtml","_buttonHtml","beforeLoad","_isLocal","anchorUrl","locationUrl","decodeURIComponent","running","_processTabs","_initialActive","tabs","anchors","locationHash","_getPanelForTab","_tabKeydown","focusedTab","goingForward","_handlePageNav","activating","_focusNextTab","_panelKeydown","_findNextTab","lastTabIndex","_setupHeightStyle","_sanitizeSelector","lis","tablist","prevTabs","prevAnchors","_getList","anchorId","originalAriaControls","_createPanel","oldTab","newTab","_getIndex","_ajaxSettings","track","_addDescribedBy","describedby","_removeDescribedBy","tooltips","disabledTitles","tooltipData","_updateContent","_disable","_enable","blurEvent","_registerCloseHandlers","contentOption","delayedShow","a11yContent","positionOption","_find","_tooltip","fakeEvent","_removeTooltip","closing","hiding","rplusequals","stringParsers","execResult","space","spaces","hsla","hue","saturation","lightness","supportElem","allowEmpty","stringParse","_rgba","spaceName","transparent","hue2rgb","same","localCache","isCache","_space","used","startColor","startValue","endValue","opaque","toRgbaString","toHslaString","includeAlpha","local","vtype","_hsla","colorInit","classAnimationActions","shorthandStyles","borderBottom","borderLeft","borderRight","borderWidth","getElementStyles","currentStyle","setAttr","animateClass","applyClassChange","baseClass","allAnimations","oldStyle","styleDifference","styleInfo","dfd","switchClass","_normalizeArguments","standardAnimationOption","parseClip","setMode","createWrapper","removeWrapper","scaledDimensions","clipToBox","queueLength","saveStyle","restoreStyle","getBaseline","createPlaceholder","dataSpace","removePlaceholder","cleanUp","setTransition","cssUnit","effectMethod","defaultMode","queueName","normalizedMode","cssClip","clipObj","transfer","targetFixed","fixTop","fixLeft","endPosition","startPosition","clipInit","baseEasings","Sine","Circ","Elastic","Back","Bounce","pow2","easeIn","upAnim","downAnim","refValue","anims","motion","queuelen","both","oppositeMotion","mx","pieces","childComplete","horizFirst","animation1","animation2","cProps","vProps","hProps","childOriginal","childFrom","childTo","newOptions","fade","showhide","animateTo","positiveMotion","startClip","startRef","fieldContentRegExp","serializeCookie","maxAge","expires","toUTCString","httpOnly","secure","sameSite","cookie","cookieOptions","nameEQ","cookie$1","lookup","lookupCookie","cookieMinutes","cookieDomain","querystring","lookupQuerystring","hasLocalStorageSupport","localStorageAvailable","lookupLocalStorage","hasSessionStorageSupport","sessionStorageAvailable","lookupSessionStorage","navigator$1","userLanguage","htmlTag","lookupFromPathIndex","subdomain","lookupFromSubdomainIndex","Browser","detectors","i18nOptions","caches","excludeCacheFor","lookupFromUrlIndex","addDetector","detector","detectionOrder","detected","detectorName","cacheName","loadPath","addPath","allowMultiLoading","parsePayload","reloadInterval","customHeaders","queryStringParams","requestOptions","credentials","Backend","allOptions","_readAny","loadUrlLanguages","loadUrlNamespaces","resolvedLoadPath","loadUrl","parseErr","finished","dataArray","resArray","_this$services","currentLanguage","fetchApi","XmlHttpRequestApi","ActiveXObjectApi","fetch","fetchNode","addQueryString","queryString","paramName","requestWithFetch","requestWithXmlHttpRequest","808","withConverter","703","697","414","Cookies","OPTIONS","SAME_SITE_OPTIONS","VISIBLE_OPTIONS","getCookieConsentValue","resetCookieConsentValue","BOTTOM","STRICT","LAX","HIDDEN","SHOW","BY_COOKIE_VALUE","acceptOnScrollPercentage","acceptOnScroll","handleScroll","flexWrap","buttonStyle","borderRadius","boxShadow","flex","declineButtonStyle","overlayStyle","getCookieValue","passive","removeScrollListener","cookieName","cookieValue","hideOnAccept","onAccept","setCookie","declineCookieValue","hideOnDecline","onDecline","setDeclineCookie","extraCookieOptions","cookieSecurity","disableStyles","declineButtonText","containerClasses","contentClasses","buttonClasses","buttonWrapperClasses","declineButtonClasses","buttonId","declineButtonId","disableButtonStyles","enableDeclineButton","flipButtons","ButtonComponent","overlayClasses","ariaAcceptLabel","ariaDeclineLabel","decline","objectWithoutPropertiesLoose","_require","Draggable","DraggableCore","commonjsGlobal","createEventEmitter","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","Consumer","_Component2","observedBits","_proto2","reactIs","REACT_STATICS","getDefaultProps","getDerivedStateFromError","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","inheritedComponent","targetStatics","sourceStatics","ORIENT_MAP","originCoordinate","isFinit","deferClear","getDisplayedData","graphicalItems","dataStartIndex","dataEndIndex","itemsData","itemData","getTooltipContent","chartData","activeIndex","activeLabel","tooltipAxis","displayedData","getTooltipData","rangeObj","rangeData","calculateTooltipPos","orderedTooltipTicks","tooltipTicks","activeTooltipIndex","activePayload","activeCoordinate","_angle","_radius","getActiveCoordinate","getAxisMap","_ref4$axisType","AxisComp","axisIdKey","axes","stackOffset","duplicate","errorBarsDomain","axisDomain","getAxisMapByAxes","Axis","getAxisMapByItems","createDefaultState","_brushItem$props","_brushItem$props2","defaultShowTooltip","brushItem","isTooltipActive","getAxisNameByLayout","numericAxisName","cateAxisName","generateCategoricalChart","_class","_temp","GraphicalChild","_ref6$defaultTooltipE","defaultTooltipEventType","_ref6$validateTooltip","validateTooltipEventTypes","axisComponents","getFormatItems","currentState","globalMaxBarSize","_getAxisNameByLayout","hasGraphicalBarItem","formattedItems","childMaxBarSize","axisObj","_objectSpread6","cateAxis","cateTicks","itemIsBar","barPosition","_getBandSizeOfAxis","barBandSize","_objectSpread7","composedFn","getComposedData","childIndex","updateStateOfAxisMapsOffsetAndStackGroups","_getAxisNameByLayout2","prevLegendBBox","_ref5$xAxisMap","xAxisMap","_ref5$yAxisMap","yAxisMap","offsetH","offsetV","brushBottom","calculateOffset","legendBBox","ticksObj","tooltipAxisBandSize","tooltipTicksGenerator","CategoricalChartWrapper","uniqueChartId","legendInstance","deferId","clearDeferId","handleLegendBBoxUpdate","handleReceiveSyncEvent","cId","chartId","syncId","applySyncEvent","handleBrushChange","_ref9","triggerSyncEvent","handleMouseEnter","getMouseInfo","_nextState","triggeredAfterMouseMove","handleItemMouseEnter","activeItem","tooltipPayload","tooltipPosition","handleItemMouseLeave","handleMouseMove","handleMouseLeave","cancelThrottledTriggerAfterMouseMove","handleOuterEvent","_nextState2","handleMouseDown","handleMouseUp","handleTouchStart","handleTouchEnd","verticalCoordinatesGenerator","_ref10","horizontalCoordinatesGenerator","_ref11","axesTicksGenerator","renderCursor","tooltipEventType","getTooltipEventType","cursorComp","getCursorRectangle","_this$getCursorPoints","getCursorPoints","Sector","cursorProps","payloadIndex","renderPolarAxis","axisOption","renderXAxis","renderAxis","renderYAxis","renderGrid","renderPolarGrid","radialLines","polarAngles","polarRadius","radiusAxisMap","angleAxisMap","radiusAxis","angleAxis","renderLegend","tooltipItem","_this$state5","renderBrush","_this$state6","renderReferenceElement","_this$state7","_element$props2","renderActivePoints","_ref12","activePoint","basePoint","isRange","_item$item$props","activeDot","dotProps","renderActiveDot","renderGraphicChild","filterFormatItem","_this$state8","_item$item$props2","hasActive","itemEvents","onCLick","renderCustomized","throttleDelay","_throttle","_isBoolean","_this$state9","xScale","yScale","xValue","yValue","toolTipData","_this$state10","halfSize","_this$state11","_cx","_cy","innerPoint","outerPoint","_this$state12","tooltipEvents","onTouchEnd","_maxListeners","syncMethod","_this$state13","validateChartX","validateChartY","axisOptions","_this$state$offset","_ref13","_ref14","_ref15","_ref16","_this$state$xAxisMap","_this$state$xAxisMap$","_this$state$yAxisMap","_this$state$yAxisMap$","chartXY","itemDisplayName","activeBarItem","_activeBarItem","CartesianGrid","XAxis","YAxis","Bar","Area","Radar","RadialBar","Scatter","Funnel","PolarGrid","PolarAngleAxis","PolarRadiusAxis","Customized","renderClipPath","parseEventsOfWrapper","defaultState","prevHeight","prevLayout","prevStackOffset","prevMargin","_defaultState","keepFromPrevState","updatesToState","newUpdateId","createFind","debounce","fixedX","fixedY","endPoints","isFixedX","isFixedY","isSegment","_props$viewBox","yCoord","xCoord","_orientation","_coord","_points","_points2","_some","getEndPoints","_endPoints","_endPoints$","_endPoints$2","lineProps","renderLine","baseSome","baseAssignValue","isX","isY","getCoordinate","renderDot","HAS_MAP_SUPPORT","HAS_SET_SUPPORT","createComparator","createIsEqual","areObjectsEqual","aShape","bShape","areArraysEqual","sameValueZeroEqual","areRegExpsEqual","isPromiseLike","areMapsEqual","areSetsEqual","circularDeepEqual","createCircularEqualCreator","circularShallowEqual","getTangentCircle","isExternal","cornerRadius","cornerIsExternal","centerRadius","centerAngle","lineTangencyAngle","circleTangency","lineTangency","getSectorPath","tempEndAngle","outerStartPoint","outerEndPoint","innerStartPoint","innerEndPoint","forceCornerRadius","deltaRadius","_getTangentCircle","soct","solt","sot","_getTangentCircle2","eoct","eolt","eot","outerArcAngle","_getTangentCircle3","sict","silt","sit","_getTangentCircle4","eict","eilt","eit","innerArcAngle","getSectorWithCorner","Events","_eventsCount","clearEvent","eventNames","prefixed","__rest","reWhitespace","trimmedEndIndex","reTrimStart","nativeObjectToString","isOwn","unmasked","require$$1","patchResizeHandler","resizeCallback","refreshMode","refreshRate","refreshOptions","throttle","isSSR","isDOMElement","HTMLDocument","createNotifier","handleWidth","handleHeight","cancelHandler","resizeHandler","attachObserver","targetRef","observerOptions","observableElement","resizeObserver","observe","targetDomEl","getRenderType","notifyResize","contentRect","skipOnMount","createResizeHandler","ResizeObserver","typedChildren","WrapperTag","nativeProps","definition","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","darkgrey","darkslategrey","dimgrey","grey","lightgray","lightslategrey","rebeccapurple","slategrey","color_formatHex","formatHex","color_formatRgb","formatRgb","rgbn","Rgb","rgbConvert","rgb_formatHex","rgb_formatRgb","Hsl","hslConvert","hsl2rgb","basis","v0","v3","t3","displayable","formatHsl","brighter","gamma","nogamma","exponential","rgbGamma","colorRgb","rgbSpline","isNumberArray","genericArray","reA","reB","am","bm","numberArray","isNativeReflectConstruct","_cache","Wrapper","valueAccessor","_last","LabelList","idProps","parseLabelList","ErrorBar","dataPointFormatter","svgProps","_dataPointFormatter","errorVal","lowBound","highBound","lineCoordinates","_errorVal","yMid","_scale","xMid","_xMin","_xMax","_yMin","_yMax","coordinates","ckeckPropsLabel","explicitChilren","implicitLabelList","mainCurve","isAnimationFinished","getStrokeDasharray","lineLength","remainLength","restLength","remainLines","emptyLines","handleAnimationEnd","handleAnimationStart","animationId","prevAnimationId","curPoints","prevPoints","linesUnit","dotItem","curveDom","errorBarItems","dataPoint","needClip","customDotProps","renderDotItem","dotsProps","curveProps","animateNewValues","prevPointsDiffFactor","stepData","prevPointIndex","interpolatorX","interpolatorY","_interpolatorX","_interpolatorY","renderCurveStatically","currentStrokeDasharray","curLength","renderCurveWithAnimation","hasSinglePoint","renderCurve","renderErrorBar","renderDots","xAxisTicks","yAxisTicks","e10","e5","power","step0","step1","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","updater","forceUpdate","isPureReactComponent","__self","__source","_owner","keyPrefix","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","createFactory","createRef","_ctor","_status","_result","useDebugValue","useImperativeHandle","useLayoutEffect","useMemo","useReducer","onError","extractEvents","eventTypes","phasedRegistrationNames","registrationName","dependencies","stateNode","acceptsBooleans","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","db","_debugOwner","_debugSource","fileName","_valueTracker","stopTracking","_wrapperState","initialChecked","controlled","defaultSelected","MSApp","execUnsafeLocalFunction","animationend","animationiteration","animationstart","transitionend","alternate","effectTag","memoizedState","dehydrated","_dispatchListeners","_dispatchInstances","isPersistent","srcElement","correspondingUseElement","topLevelType","targetInst","eventSystemFlags","containerInfo","blockedOn","delete","unstable_runWithPriority","priority","hydrate","unstable_scheduleCallback","unstable_NormalPriority","bubbled","captured","eventPriority","unstable_UserBlockingPriority","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","orphans","tabSize","widows","floodOpacity","stopOpacity","strokeDashoffset","strokeMiterlimit","menuitem","keygen","wbr","contentEditable","dispatchConfig","_targetInst","Wd","Xd","Yd","Zd","$d","Interface","eventPool","destructor","getPooled","cancelBubble","isTrusted","beforeInput","compositionEnd","compositionStart","compositionUpdate","datetime","email","tel","_isInputEventSupported","Alt","Control","Meta","Shift","getModifierState","fromElement","movementX","movementY","pressure","tangentialPressure","tiltX","tiltY","twist","isPrimary","mouseEnter","mouseLeave","pointerEnter","pointerLeave","gf","jf","selectionStart","selectionEnd","anchorNode","anchorOffset","focusNode","focusOffset","kf","animationName","elapsedTime","pseudoElement","mf","clipboardData","pf","Esc","Spacebar","Up","Down","Del","Win","Menu","Scroll","MozPrintableKey","qf","27","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","rf","tf","uf","vf","wheelDeltaX","wheelDeltaY","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","og","childExpirationTime","qg","firstContext","expirationTime","rg","responders","tg","ug","updateQueue","baseState","baseQueue","vg","wg","suspenseConfig","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","shouldComponentUpdate","Lg","Mg","Ng","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","eh","fh","gh","hh","memoizedProps","revealOrder","ih","responder","jh","kh","lh","mh","nh","ph","qh","rh","uh","vh","wh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","yh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","pendingContext","retryTime","fallback","unstable_avoidThisFallback","isBackwards","rendering","renderingStartTime","tailExpiration","tailMode","wasMultiple","multiple","WeakSet","Gi","__reactInternalSnapshotBeforeUpdate","Ji","Ki","Qi","_reactRootContainer","Vi","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","kj","lj","mj","nj","oj","qj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","Pj","Qj","Sj","firstSuspendedTime","activeElementDetached","focusedElem","selectionRange","Tj","setEnd","Uj","Vj","Wj","Xj","unstable_observedBits","Zj","pendingChildren","bk","ck","dk","ek","_internalRoot","gk","ik","hk","jk","unmount","Lj","lk","findFiberByHostInstance","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","flushSync","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","performance","port2","onmessage","postMessage","sortIndex","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","bigint","PrimeReact","subTitle","renderHeader","renderBody","_FirstPageLink","_NextPageLink","_PrevPageLink","_LastPageLink","_PageLinks","_RowsPerPageDropdown","_CurrentPageReport","changePageToFirst","changePageToPrev","changePageToNext","changePageToLast","onRowsChange","onPageLinkClick","getPage","getPageCount","numberOfPages","visiblePages","pageLinks","calculatePageLinkBoundaries","newPageState","changePage","paginatorElements","FirstPageLink","isFirstPage","PrevPageLink","NextPageLink","isLastPage","LastPageLink","PageLinks","updatePageLinks","RowsPerPageDropdown","CurrentPageReport","pageLink","pageClassName","_Dropdown","onHeaderScroll","onBodyScroll","setScrollHeight","scrollBody","scrollBarWidth","scrollHeaderBox","scrollFooterBox","virtualScroller","virtualScrollCallback","previousElementSibling","frozenScrollBody","datatableContainer","findDataTableContainer","containerHeight","scrollBodyHeight","scrollHeader","getClientHeight","tableHeight","scrollTable","scrollBodyTop","loadingTable","tableBodyClassName","tableHeaderClassName","tableFooterClassName","tableBodyStyle","renderColGroup","renderLoadingTable","scrollableBodyStyle","onScroll","scrollFooter","totalRcords","_BodyRow","_RowTogglerButton","onRowRightClick","onRowTouchEnd","onRadioClick","onCheckboxClick","onRowDragEnd","onRowDragLeave","onRowDrop","targetNode","isMultipleSelectionMode","anchorRowIndex","clearSelection","rangeRowIndex","selectRange","metaSelection","rowTouched","anchorRowFirst","isSingleSelectionMode","selectionIndex","findIndexInSelection","_selectionIndex","rangeStart","rangeEnd","isLazyAndPaginator","rangeRowData","dataKeyValue","expandedRowIndex","findExpandedRowIndex","rowDragging","draggedRowIndex","droppedRowIndex","rowElement","rowY","rowMidY","prevRowElement","RowTogglerButton","isRowExpanded","rpp","selectionEnabled","isSelectionEnabled","hasSubheaderGrouping","rowSpanGrouping","rowGroupHeaderExpanded","contextMenuSelected","isContextMenuSelected","groupRowSpan","currentRowFieldData","previousRowFieldData","renderRowGroupHeader","rowSpanIndex","_currentRowFieldData","nextRowFieldData","nextRowData","isRowGroupExpanded","bodyRow","BodyRow","onRightClick","onRowDragStart","onDragOver","onRowDragOver","expandedRowContent","expandedRow","_currentRowFieldData2","_nextRowFieldData","renderRowGroupFooter","_BodyCell","editing","nextRow","findNextSelectableRow","prevRow","findPrevSelectableRow","conditionalClassNames","rowClassNameCondition","hasRowSpanGrouping","BodyCell","_RowRadioButton","_RowCheckbox","onExpanderClick","onEditorFocus","switchCellToViewMode","editingCellClick","bindDocumentEditListener","documentEditListener","unbindDocumentEditListener","closeCell","tabindexTimeout","keyHelper","editorKeyHelper","cellClassName","showSelection","RowRadioButton","showReorder","reorderIcon","_FooterCell","FooterCell","createFooterCells","_HeaderCell","HeaderCell","createHeaderCells","filterOnly","renderHeaderCheckbox","hasColumnFilter","_InputText","badgeVisible","onFilterChange","onResizerMouseDown","filterTimeout","filterDelay","columnSortField","sorted","sortIcon","sortIconClassName","sortMetaDataIndex","headerCheckbox","getMultiSortMetaDataIndex","multiSortMetaData","singleSorted","multipleSorted","resizer","sortIconElement","renderSortIcon","ariaSortData","getAriaSort","sortBadge","renderSortBadge","KeyFilter","getBrowser","SAFARI_KEYS","KEYS","RETURN","ESC","opera","DEFAULT_MASKS","getKey","mozilla","isNavKeyPress","getCharCode","isSpecialKey","pint","money","alphanum","63234","63235","63232","63233","63276","63277","63272","63273","63275","renderRow","renderRows","Dialog","maskVisible","onMaximize","maximized","toggleMaximize","onMaskClick","dismissableMask","closable","changeScrollOnMaximizable","focusOnShow","enableDocumentSettings","disableDocumentSettings","bindGlobalListeners","blockScroll","maximizable","unbindGlobalListeners","primeDialogParams","hasBlockScroll","bindDocumentKeyDownListener","unbindDocumentKeyDownListener","documentKeyDownListener","paramLength","dialogId","focusableElements","getFocusableElements","focusedIndex","newParam","ariaCloseIconLabel","showHeader","closeIcon","renderCloseIcon","maximizeIcon","renderMaximizeIcon","renderIcons","headerElement","contentClassName","contentElement","footerElement","rtl","maskClassName","getPositionClass","renderFooter","transitionTimeout","FileUpload","_Button","_Messages","_ProgressBar","msgs","choose","onFileSelect","onSimpleUploaderClick","duplicateIEEvent","fileLimit","uploadedFileCount","hasFiles","clearInputElement","currentFiles","removedFile","fileInput","isIE11","isFileSelected","isImage","objectURL","clearIEInput","sFile","maxFileSize","severity","summary","invalidFileSizeMessageSummary","invalidFileSizeMessageDetail","formatSize","messagesUI","onValidationFail","customUpload","uploadHandler","formData","onBeforeUpload","lengthComputable","onUpload","onBeforeSend","onClear","chooseDisabled","chooseLabel","preview","previewWidth","removeButton","emptyTemplate","uploadButton","cancelButton","filesList","progressBar","chooseButton","renderChooseButton","emptyContent","renderEmptyContent","uploadLabel","uploadDisabled","cancelLabel","cancelDisabled","renderFiles","ProgressBar","showValue","buttonClassName","renderAdvanced","renderBasic","widthCredentials","sticky","life","_this$props$message","renderMessage","displayValueTemplate","renderDeterminate","renderIndeterminate","Toast","_ToastMessage","ToastMessage","Axios","mergeConfig","createInstance","defaultConfig","axios","instanceConfig","CancelToken","isCancel","promises","spread","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","fulfilled","rejected","getUri","eject","transformData","throwIfCancellationRequested","throwIfRequested","reason","normalizedName","isAxiosError","toGMTString","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","originURL","msie","urlParsingNode","resolveURL","hostname","requestURL","executor","resolvePromise","listing","textarea","suppressContentEditableWarning","suppressHydrationWarning","domNamespace","threadID","exhausted","currentSelectValue","previousWasTextNode","makeStaticMarkup","suspenseDepth","contextIndex","contextStack","contextValueStack","clearProviders","pushProvider","popProvider","fallbackFrame","renderDOM","renderToString","renderToStaticMarkup","renderToNodeStream","renderToStaticNodeStream","_DraggableCore","_clsx2","_positionFns","_log","uiData","slackX","slackY","_getBoundPosition2","newStateX","newStateY","onStop","_this$props$position","defaultPosition","prevPropsPosition","isElementSVG","SVGElement","_this$props$nodeRef$c","_this$props$nodeRef","_clsx","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","draggableCoreProps","svgTransform","validPosition","transformOpts","onDragStop","clsx","browserPrefixToStyle","getPrefix","prefixes","_window$document","_window$document$docu","shouldCapitalize","kebabToTitleCase","eventsFor","dragEventFor","allowAnyClick","thisNode","coreEvent","enableUserSelectHack","handleDragStop","_snapToGrid2","_snapToGrid4","handleDragStart","_this$props2$nodeRef","MultiSelect","_MultiSelectHeader","_MultiSelectItem","_MultiSelectPanel","onOptionKeyDown","onCloseClick","onToggleAll","findSelectionIndex","updateModel","findNextItem","findPrevItem","isPanelClicked","filterOptions","query","equalityKey","selectedItemsLabel","fixedPlaceholder","getLabelByValue","maxSelectedLabels","getSelectedItemsLabel","selectedItemTemplate","removeChip","MultiSelectHeader","allChecked","isAllChecked","getLabelContent","selectedOptions","MultiSelectItem","MultiSelectPanel","_Checkbox","renderFilterElement","checkboxClassName","checkboxIcon","b64","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","DO_NOT_EXPORT_JSZIP","_dereq_","_keyStr","utf8","chr2","chr3","enc1","enc2","enc3","enc4","CompressedObject","compressedSize","uncompressedSize","compressedContent","getCompressedContent","STORE","compressInputType","uncompressInputType","DEFLATE","getTypeOf","iTop","DataReader","checkIndex","byteAt","transformTo","readData","lastIndexOfSignature","sig","readDate","dostime","createFolders","string2binary","string2Uint8Array","uint8Array2String","string2Blob","arrayBuffer2Blob","outputType","checkSupport","MAX_VALUE_16BITS","MAX_VALUE_32BITS","findCompression","isRegExp","USE_TYPEDARRAY","pako","deflateRaw","inflateRaw","compressions","ZipEntries","zipEntries","decompressed","optimizedBinaryString","fileComment","zipComment","Uint8ArrayReader","NodeBufferReader","signature","nodeBuffer","StringWriter","Uint8ArrayWriter","getRawData","getBinaryData","nodebuffer","dataToString","asUTF8","utf8decode","utf8encode","ZipObject","_initialMetadata","asUint8Array","asArrayBuffer","decToHex","fileAdd","prepareFileAttrs","parentFolder","folderAdd","lastSlash","generateCompressedObjectFrom","generateZipParts","compressedObject","dosTime","dosDate","utfEncodedFileName","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","unicodePathExtraField","unicodeCommentExtraField","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","relativePath","fileClone","folder","newFolder","kids","writer","zipData","localDirLength","centralDirLength","compressionName","zipPart","dirEnd","CENTRAL_DIRECTORY_END","typeName","finalize","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","DATA_DESCRIPTOR","StringReader","arraybuffer","uint8array","builder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","sig0","sig1","sig2","sig3","_utf8len","utf8border","buf2string","c_len","utf16buf","applyFromCharCode","m_pos","str_len","buf_len","string2buf","nextBoundary","stringToArrayLike","arrayLikeToString","chunk","canUseApply","resultStr","arrayLikeToArrayLike","arrayFrom","arrayTo","inputType","ZipEntry","jszipProto","loadOptions","checkSignature","expectedSignature","reader","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","versionMadeBy","versionNeeded","zip64ExtensibleData","extraFieldId","extraFieldLength","extraFieldValue","extraDataSize","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","23","isEncrypted","bitFlag","useUTF8","prepareCompressedContent","previousIndex","compressedFileData","prepareContent","uncompressedFileData","localExtraFieldsLength","fileNameLength","checkCRC32","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","extraReader","upath","findExtraFieldUnicodePath","ucomment","findExtraFieldUnicodeComment","upathField","ucommentField","24","25","zlib_deflate","zstream","Deflate","chunkSize","windowBits","memLevel","gzip","ended","chunks","strm","avail_out","deflateInit2","deflateSetHeader","deflate","deflator","_mode","next_in","avail_in","Buf8","next_out","onEnd","onData","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","26","zlib_inflate","gzheader","Inflate","inflateInit2","Z_OK","inflateGetHeader","inflator","next_out_utf8","utf8str","Z_FINISH","Z_NO_FLUSH","binstring2buf","Z_STREAM_END","arraySet","inflateEnd","ungzip","TYPED_OK","fnTyped","src_offs","dest_offs","fnUntyped","setTyped","Buf16","Buf32","28","STR_APPLY_OK","STR_APPLY_UIA_OK","29","30","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","31","crcTable","makeTable","trees","adler32","errorCode","rank","flush_pending","pending_buf","pending_out","total_out","flush_block_only","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","read_buf","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","MAX_MATCH","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","more","_w_size","window_size","hash_size","ins_h","hash_shift","hash_mask","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","MIN_MATCH","last_lit","deflate_slow","max_insert","prev_match","match_available","configuration_table","Config","good_length","max_lazy","nice_length","max_chain","DeflateState","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","HEAP_SIZE","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","MAX_BITS","heap","heap_len","heap_max","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","deflateResetKeep","data_type","_tr_init","deflateReset","max_block_size","max_start","deflateInit","old_flush","beg","hcrc","bstate","deflate_huff","deflate_rle","_tr_align","_tr_stored_block","deflateInfo","xflags","extra_len","_in","dmax","wsize","whave","wnext","lcode","dcode","lmask","dmask","here","from_source","lencode","distcode","lenbits","distbits","dolen","dodist","sane","inflate_fast","inflate_table","ZSWAP32","InflateState","havedict","ncode","nlen","ndist","have","work","lendyn","distdyn","back","was","inflateResetKeep","inflateReset","inflateReset2","lenfix","distfix","virgin","fixedtables","inflateInit","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","inf_leave","updatewindow","inflateInfo","lbase","lext","dbase","dext","lens_index","table_index","incr","low","huff","base_index","MAXBITS","offs","extra_index","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","static_dtree","D_CODES","_dist_code","_length_code","base_length","base_dist","static_l_desc","static_d_desc","static_bl_desc","StaticTreeDesc","static_tree","extra_bits","extra_base","max_length","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","send_bits","send_code","tree","bi_reverse","gen_codes","init_block","LITERALS","END_BLOCK","bi_windup","smaller","_n2","_m2","pqdownheap","compress_block","ltree","dtree","lx","stree","xbits","gen_bitlen","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","stored_len","copy_block","LENGTH_CODES","L_CODES","tr_static_init","opt_lenb","static_lenb","max_blindex","black_mask","detect_data_type","BL_CODES","build_bl_tree","lcodes","dcodes","blcodes","send_all_trees","STATIC_TREES","bi_flush","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","messagePrefix","onGlobalMessage","installPostMessageImplementation","channel","installMessageChannelImplementation","installReadyStateChangeImplementation","task","createBaseFor","keysFunc","iterable","baseTimes","inherited","isArr","isArg","isBuff","isType","skipIndexes","typedArrayTags","freeProcess","isPrototype","nativeKeys","overArg","eachFunc","baseIsMatch","getMatchData","matchesStrictComparable","matchData","noCustomizer","objValue","COMPARE_PARTIAL_FLAG","assocIndexOf","pairs","LARGE_ARRAY_SIZE","isMasked","toSource","reIsHostCtor","funcProto","reIsNative","coreJsData","maskSrcKey","IE_PROTO","Hash","hashClear","hashDelete","hashGet","hashHas","hashSet","getMapData","equalArrays","equalByTag","equalObjects","getTag","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","mapToArray","setToArray","symbolProto","symbolValueOf","stacked","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","baseGetAllKeys","getSymbols","symbolsFunc","arrayFilter","stubArray","nativeGetSymbols","resIndex","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ctorString","isStrictComparable","hasIn","memoizeCapped","rePropName","reEscapeChar","quote","subString","resolver","memoized","Cache","arrayMap","symbolToString","baseHasIn","hasPath","hasFunc","baseProperty","basePropertyDeep","findIndexFunc","baseFindIndex","toFinite","remainder","spreadableSymbol","isConcatSpreadable","baseMap","baseSortBy","compareMultiple","orders","comparer","compareAscending","objCriteria","criteria","othCriteria","ordersLength","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","overRest","setToString","baseSetToString","shortOut","nativeNow","lastCalled","stamp","baseRange","nativeCeil","castSlice","hasUnicode","stringToArray","strSymbols","baseSlice","asciiToArray","unicodeToArray","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsSeq","rsSymbol","reUnicode","arrayIncludes","arrayIncludesWith","isCommon","seenIndex","baseIndexOf","baseIsNaN","strictIndexOf","ValueParser","bubble","openParentheses","closeParentheses","singleQuote","doubleQuote","backslash","colon","star","escapePos","whitespacePos","balanced","unclosed","stringifyNode","customResult","EXP","dotted","sciPos","containsNumber","JisonParserError","stacktrace","ex2","rv","trace","yy","hasPartialLrUpgradeOnConflict","errorRecoveryTokenDiscardCount","symbols_","terminals_","TERROR","EOF","originalQuoteName","originalParseError","cleanupAfterParse","constructParseErrorInfo","yyMergeLocationInfo","__reentrant_call_depth","__error_infos","__error_recovery_infos","quoteName","id_str","getSymbolName","describeSymbol","terminal_descriptions_","collect_expected_token_set","do_not_describe","tokenset","state_descriptions_","productions_","performAction","yystate","yysp","yyvstack","lexer","goto","defaultActions","bda","parseError","ExceptionClass","recoverable","sstack","vstack","NO_ACTION","__lexer__","sharedState_yy","pre_parse","post_parse","pre_lex","post_lex","fastLex","yyGetSharedState","shallow_copy_noclobber","resultValue","invoke_post_methods","do_not_nuke_errorinfos","cleanupAfterLex","expected","pei","errStr","yytext","token_id","yylineno","new_state","symbol_stack","state_stack","value_stack","stack_pointer","yyrulelen","this_production","lex","yyval","setInput","canIUse","errSymbolDescr","showPosition","ntsymbol","JisonLexerError","ERROR","__currentRuleSet__","__decompressed","_backtrack","_input","_more","_signaled_error_token","conditionStack","yyleng","yylloc","constructLexErrorInfo","show_input_position","prettyPrintRange","pos_str","yyerror","lineno_msg","lexerErrorsAreRecoverable","extra_error_attributes","last_column","first_line","first_column","last_line","rule_re","conditions","spec","rule_ids","rule_regexes","rule_new_ids","__rule_regexes","__rule_count","editRemainingInput","cpsArg","slice_len","unput","pre_lines","backtrack_lexer","less","pastInput","maxSize","past","upcomingInput","maxPrefix","maxPostfix","deriveLocationInfo","preceding","following","context_loc","context_loc2","l0","lineno_display_width","ws_prefix","nonempty_line_indexes","lno","errpfx","clip_start","MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT","clip_end","intermediate_line","describeYYLLOC","display_range_too","test_match","indexed_rule","backup","match_str","match_str_len","tempMatch","_currentRules","trackPosition","topState","regexes","pendingInput","activeCondition","conditionStackDepth","popState","stateStackSize","yyrulenumber","YY_START","simpleCaseActionClusters","inclusive","Parser","_cssUnitConverter","_cssUnitConverter2","convertAbsoluteLength","conversions","sourceUnit","targetUnit","converted","calc","prec","_reducer","reflowAndAddClass","appearClassName","enterClassName","_this$getClassNames6","_hasClass","TabMenu","onTabChange","getActiveItem","getActiveIndex","tabHeader","inkbar","nav","updateInkBar","renderMenuItem","Toolbar","toolbarClass","popup","currentEvent","bindDocumentListeners","unbindDocumentListeners","renderMenuitem","linkClassName","onItemClick","onItemKeyDown","renderSeparator","renderSubmenu","menuitems","renderMenu","TriStateCheckbox","inputEL","InputNumber","constructParser","onInputKeyPress","onInputClick","onPaste","onUpButtonMouseLeave","onUpButtonMouseDown","onUpButtonMouseUp","onUpButtonKeyDown","onUpButtonKeyUp","onDownButtonMouseLeave","onDownButtonMouseDown","onDownButtonMouseUp","onDownButtonKeyDown","onDownButtonKeyUp","localeMatcher","currency","currencyDisplay","useGrouping","minimumFractionDigits","minFractionDigits","maximumFractionDigits","maxFractionDigits","Intl","NumberFormat","numerals","_numeral","_decimal","getDecimalExpression","_group","getGroupingExpression","_minusSign","getMinusSignExpression","_currency","getCurrencyExpression","_suffix","getSuffixExpression","_prefix","getPrefixExpression","_index","groupChar","prefixChar","escapeRegExp","suffixChar","formattedValue","filteredText","parsedValue","clearTimer","parseValue","inputEl","validateValue","updateInput","handleOnChange","isSpecialChar","lastValue","inputValue","newValueStr","prevChar","isNumeralChar","currentChar","formatValue","deleteChar","decimalCharIndex","setSelectionRange","updateValue","deleteRange","_deleteChar","_decimalCharIndex","isDecimalSign","isMinusSign","filteredData","minusCharIndexOnText","allowMinusSign","minusCharIndex","insertText","resolvedOptions","valueLength","initCursor","resetRegex","valueStr","insertedValueStr","isValueChanged","currentLength","_selectionEnd","newLength","startExpr","sRegex","tExpr","tRegex","nextChar","isGroupChar","updateInputValue","showButtons","buttonLayout","inputMode","isOptionChanged","inputClassName","valueToRender","inputStyle","getInputMode","maxlength","readonly","incrementButtonClassName","incrementButtonIcon","decrementButtonClassName","decrementButtonIcon","upButton","renderUpButton","downButton","renderDownButton","isStacked","isVertical","inputElement","renderInputElement","buttonGroup","renderButtonGroup","Message","ToggleButton","onLabel","offLabel","onIcon","offIcon","hasIcon","AutoComplete","_AutoCompletePanel","onInputChange","onDropdownClick","onMultiContainerClick","onMultiInputFocus","onMultiInputBlur","listId","completeMethod","ariaSelected","resolvedFieldData","_resolvedFieldData","alignOverlay","multiContainer","dropdownMode","removedValue","nextElement","previousElement","suggestions","isInputClicked","dropdown","onDblClick","multiContainerClass","renderChips","renderMultiInput","dropdownButton","renderMultipleAutoComplete","renderSimpleAutoComplete","renderDropdown","AutoCompletePanel","suggestion","itemContent","Chips","onWrapperClick","removedItem","allowDuplicate","onAdd","addItem","isMaxedOut","pastedData","pastedValues","isValueSame","targetContainer","listElement","isFilled","renderList","Fieldset","onToggle","collapsed","toggleable","onExpand","onCollapse","toggleIcon","renderToggleIcon","ariaControls","renderLegendContent","isCollapsed","OrganizationChart","OrganizationChartNode","leaf","onNodeClick","getColspan","nodeClassName","nodeLabel","nodeTemplate","nodeContent","getLeaf","toggleNode","_visibility","linesDown","nodeChildLength","linesMiddle","leftClass","rightClass","_super2","eventTarget","onNodeUnselect","onNodeSelect","TabView","TabPanel","leftIcon","rightIcon","onTabHeaderClick","renderTabHeader","renderTabHeaders","renderActiveOnly","createContent","renderNavigator","InputTextarea","cachedScrollHeight","textareaProps","UploadCloud","MessageCircle","tauEpsilon","Path","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","ccw","ascendingBisect","bisectRight","ResponsiveContainer","aspect","_ref$width","_ref$height","_ref$debounce","_useState2","containerWidth","sizes","setSizes","_useState4","setMounted","getContainerSize","updateDimensionsImmediate","newSize","handleResize","ReactResizeDetector","calculatedWidth","calculatedHeight","renderChart","ChevronLeft","FileText","Send","FastForward","ChevronRight","prefixExponent","formatDecimal","formatRounded","grouping","thousands","currencyPrefix","currencySuffix","formatNumerals","nan","formatTypes","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","formatTrim","_console","alreadyWarned","warnOnce","loadNamespaces","oldI18nextHasLoadedNamespace","isNewerI18next","ignoreJSONStructure","ignore","useTranslation","i18nFromProps","i18nFromContext","defaultNSFromContext","reportNamespaces","notReadyT","retNotReady","addUsedNamespaces","initializedStoreOnce","getT","getFixedT","nsMode","_useState","setT","joinedNS","previousJoinedNS","boundReset","isInitial","withTranslation","WrappedComponent","I18nextWithTranslation","_useTranslation","_useTranslation2","passDownProps","tReady","withRef","forwardRefReact"],"mappings":"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,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAG5DC,EAAY,CACV,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC/D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAA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AQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IA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AAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK7Y,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAGmqN,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAIprO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK4jJ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,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K,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAMT,GAAG,EAAEyG,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKxlH,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKulH,GAAG,KAAKrvP,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAIssL,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI0kE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG38J,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,QAAQ08J,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,KAAK,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,MAAMx3P,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,I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KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,MAAM,IAAI,MAAM,MAAM,IAAI,MAAM,MAAM,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,IAAI,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,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,CAMP,GAAInte,EAAEuse,UArfWR,IAqfgB,CAE/B,GADAU,EAAYzse,GACRA,EAAEuse,UAvfSR,KAzEC,IAgkBmB5jI,EACjC,OA5egB,EA8elB,GAAoB,IAAhBnoW,EAAEuse,UACJ,MA2BJ,GApBAW,EAAY,EACRlte,EAAEuse,WArgBM,IAugBVvse,EAAE8se,OAAU9se,EAAE8se,OAAS9se,EAAE+se,WAAc/se,EAAEc,OAAOd,EAAEire,SAvgBxC,EAugB+D,IAAMjre,EAAEgte,UACjFE,EAAYlte,EAAE+4E,KAAK/4E,EAAEire,SAAWjre,EAAEkse,QAAUlse,EAAEq9B,KAAKr9B,EAAE8se,OACrD9se,EAAEq9B,KAAKr9B,EAAE8se,OAAS9se,EAAEire,UAOJ,IAAdiC,GAA4Blte,EAAEire,SAAWiC,GAAelte,EAAE8re,OA9gB7CC,MAmhBf/re,EAAEote,aAAe9B,EAActre,EAAGkte,IAGhClte,EAAEote,cAxhBM,EAoiBV,GAPAD,EAAS7C,EAAM+C,UAAUrte,EAAGA,EAAEire,SAAWjre,EAAEwse,YAAaxse,EAAEote,aA7hBhD,GA+hBVpte,EAAEuse,WAAavse,EAAEote,aAKbpte,EAAEote,cAAgBpte,EAAEste,gBAAuCtte,EAAEuse,WApiBvD,EAoiB+E,CACvFvse,EAAEote,eACF,GACEpte,EAAEire,WAEFjre,EAAE8se,OAAU9se,EAAE8se,OAAS9se,EAAE+se,WAAc/se,EAAEc,OAAOd,EAAEire,SAziB5C,EAyiBmE,IAAMjre,EAAEgte,UACjFE,EAAYlte,EAAE+4E,KAAK/4E,EAAEire,SAAWjre,EAAEkse,QAAUlse,EAAEq9B,KAAKr9B,EAAE8se,OACrD9se,EAAEq9B,KAAKr9B,EAAE8se,OAAS9se,EAAEire,eAKQ,MAAnBjre,EAAEote,cACbpte,EAAEire,gBAGFjre,EAAEire,UAAYjre,EAAEote,aAChBpte,EAAEote,aAAe,EACjBpte,EAAE8se,MAAQ9se,EAAEc,OAAOd,EAAEire,UAErBjre,EAAE8se,OAAU9se,EAAE8se,OAAS9se,EAAE+se,WAAc/se,EAAEc,OAAOd,EAAEire,SAAW,IAAMjre,EAAEgte,eAavEG,EAAS7C,EAAM+C,UAAUrte,EAAG,EAAGA,EAAEc,OAAOd,EAAEire,WAE1Cjre,EAAEuse,YACFvse,EAAEire,WAEJ,GAAIkC,IAEFrC,EAAiB9qe,GAAG,GACK,IAArBA,EAAE6le,KAAKC,WACT,OAhkBgB,EAskBtB,OADA9le,EAAEogX,OAAWpgX,EAAEire,SAAYsC,EAAgBvte,EAAEire,SAAWsC,EAtpBpC,IAupBhBplI,GAEF2iI,EAAiB9qe,GAAG,GACK,IAArBA,EAAE6le,KAAKC,UAvkBS,EACA,GA4kBlB9le,EAAEwte,WAEJ1C,EAAiB9qe,GAAG,GACK,IAArBA,EAAE6le,KAAKC,WAllBS,EACA,EA8lBxB,SAAS2H,EAAazte,EAAGmoW,GAOvB,IANA,IAAI+kI,EACAC,EAEAO,IAGK,CAMP,GAAI1te,EAAEuse,UAxnBWR,IAwnBgB,CAE/B,GADAU,EAAYzse,GACRA,EAAEuse,UA1nBSR,KAzEC,IAmsBmB5jI,EACjC,OA/mBgB,EAinBlB,GAAoB,IAAhBnoW,EAAEuse,UAAmB,MA0C3B,GApCAW,EAAY,EACRlte,EAAEuse,WAtoBM,IAwoBVvse,EAAE8se,OAAU9se,EAAE8se,OAAS9se,EAAE+se,WAAc/se,EAAEc,OAAOd,EAAEire,SAxoBxC,EAwoB+D,IAAMjre,EAAEgte,UACjFE,EAAYlte,EAAE+4E,KAAK/4E,EAAEire,SAAWjre,EAAEkse,QAAUlse,EAAEq9B,KAAKr9B,EAAE8se,OACrD9se,EAAEq9B,KAAKr9B,EAAE8se,OAAS9se,EAAEire,UAMtBjre,EAAE4re,YAAc5re,EAAEote,aAClBpte,EAAE2te,WAAa3te,EAAEwse,YACjBxse,EAAEote,aAAeG,EAEC,IAAdL,GAA0Blte,EAAE4re,YAAc5re,EAAEste,gBAC5Ctte,EAAEire,SAAWiC,GAAclte,EAAE8re,OAnpBhBC,MAwpBf/re,EAAEote,aAAe9B,EAActre,EAAGkte,GAG9Blte,EAAEote,cAAgB,IAtsBA,IAusBlBpte,EAAE67G,UA9pBI,IA8pBwB77G,EAAEote,cAA8Bpte,EAAEire,SAAWjre,EAAEwse,YAAc,QAK7Fxse,EAAEote,aAAeG,IAMjBvte,EAAE4re,aAzqBM,GAyqBsB5re,EAAEote,cAAgBpte,EAAE4re,YAAa,CACjE8B,EAAa1te,EAAEire,SAAWjre,EAAEuse,UA1qBlB,EAirBVY,EAAS7C,EAAM+C,UAAUrte,EAAGA,EAAEire,SAAW,EAAGjre,EAAE2te,WAAY3te,EAAE4re,YAjrBlD,GAurBV5re,EAAEuse,WAAavse,EAAE4re,YAAY,EAC7B5re,EAAE4re,aAAe,EACjB,KACQ5re,EAAEire,UAAYyC,IAElB1te,EAAE8se,OAAU9se,EAAE8se,OAAS9se,EAAE+se,WAAc/se,EAAEc,OAAOd,EAAEire,SA5rB5C,EA4rBmE,IAAMjre,EAAEgte,UACjFE,EAAYlte,EAAE+4E,KAAK/4E,EAAEire,SAAWjre,EAAEkse,QAAUlse,EAAEq9B,KAAKr9B,EAAE8se,OACrD9se,EAAEq9B,KAAKr9B,EAAE8se,OAAS9se,EAAEire,gBAGK,MAAlBjre,EAAE4re,aAKb,GAJA5re,EAAE4te,gBAAkB,EACpB5te,EAAEote,aAAeG,EACjBvte,EAAEire,WAEEkC,IAEFrC,EAAiB9qe,GAAG,GACK,IAArBA,EAAE6le,KAAKC,WACT,OA5rBc,OAisBb,GAAI9le,EAAE4te,iBAgBX,IATAT,EAAS7C,EAAM+C,UAAUrte,EAAG,EAAGA,EAAEc,OAAOd,EAAEire,SAAS,MAIjDH,EAAiB9qe,GAAG,GAGtBA,EAAEire,WACFjre,EAAEuse,YACuB,IAArBvse,EAAE6le,KAAKC,UACT,OAltBgB,OAwtBlB9le,EAAE4te,gBAAkB,EACpB5te,EAAEire,WACFjre,EAAEuse,YAYN,OARIvse,EAAE4te,kBAGJT,EAAS7C,EAAM+C,UAAUrte,EAAG,EAAGA,EAAEc,OAAOd,EAAEire,SAAS,IAEnDjre,EAAE4te,gBAAkB,GAEtB5te,EAAEogX,OAASpgX,EAAEir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ACdvue,EAAEuue,WAAapmI,EA/xCA,KAkyCXnoW,EAAE6wP,OAEJ,GAAe,IAAX7wP,EAAEm7W,KACJ0qH,EAAK/4J,MAAQ,EACbo+J,EAASlre,EAAG,IACZkre,EAASlre,EAAG,KACZkre,EAASlre,EAAG,GACPA,EAAEque,QAaLnD,EAASlre,GAAIA,EAAEque,OAAOh7d,KAAO,EAAI,IACpBrT,EAAEque,OAAOgC,KAAO,EAAI,IACnBrwe,EAAEque,OAAO96R,MAAY,EAAJ,IACjBvzM,EAAEque,OAAO7se,KAAW,EAAJ,IAChBxB,EAAEque,OAAOxoc,QAAc,GAAJ,IAEjCqlc,EAASlre,EAAmB,IAAhBA,EAAEque,OAAOvsT,MACrBopT,EAASlre,EAAIA,EAAEque,OAAOvsT,MAAQ,EAAK,KACnCopT,EAASlre,EAAIA,EAAEque,OAAOvsT,MAAQ,GAAM,KACpCopT,EAASlre,EAAIA,EAAEque,OAAOvsT,MAAQ,GAAM,KACpCopT,EAASlre,EAAe,IAAZA,EAAEokH,MAAc,EACfpkH,EAAE67G,UA/2CK,GA+2CyB77G,EAAEokH,MAAQ,EAC1C,EAAI,GACjB8mX,EAASlre,EAAiB,IAAdA,EAAEque,OAAO93R,IACjBv2M,EAAEque,OAAO96R,OAASvzM,EAAEque,OAAO96R,MAAM11M,SACnCqte,EAASlre,EAA2B,IAAxBA,EAAEque,OAAO96R,MAAM11M,QAC3Bqte,EAASlre,EAAIA,EAAEque,OAAO96R,MAAM11M,QAAU,EAAK,MAEzCmC,EAAEque,OAAOgC,OACXxK,EAAK/4J,MAAQx3I,EAAMuwS,EAAK/4J,MAAO9sU,EAAE2qe,YAAa3qe,EAAEquV,QAAS,IAE3DruV,EAAEsue,QAAU,EACZtue,EAAE6wP,OA30CQ,KAyyCVq6O,EAASlre,EAAG,GACZkre,EAASlre,EAAG,GACZkre,EAASlre,EAAG,GACZkre,EAASlre,EAAG,GACZkre,EAASlre,EAAG,GACZkre,EAASlre,EAAe,IAAZA,EAAEokH,MAAc,EACfpkH,EAAE67G,UA91CK,GA81CyB77G,EAAEokH,MAAQ,E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,EACAA,EACA,CAAC,GAAI,IACL,EACAA,EACA,CAAC,IAAK,IACN,GACAA,EACA,CAAC,IAAK,GACN,EACAA,EACA,CAAC,EAAG,GACJA,EACA,CAAC,EAAG,GACJ,EACA,EACA,GACAA,EACA,CAAC,IAAK,IACNA,EACA,CAAC,GAAI,MAEL+O,KAAM+I,EAAE,CACRpZ,EACA,CAAC,EAAG,IACJA,EACA,CAAC,EAAG,GACJ,EACAA,EACA,CAAC,EAAG,IACJA,EACA,CAAC,EAAG,GACJsB,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,IAAK,MAEN6iE,MAAO/qD,EAAE,CACT,EACA,EACA,EACA,EACA,EACA,GACA9X,EACA,CAAC,EAAG,GACJ,GACA,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,GAAI,GACL,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,EAAG,KAEJQ,KAAMsX,EAAE,CACRpZ,EACA,CAAC,EAAG,KACJA,EACA,CAAC,EAAG,GACJsB,EACA,CAAC,EAAG,GACJA,EACA,CAAC,EAAG,GACJtB,EACA,CAAC,EAAG,MAEJ2nf,KAAMvue,EAAE,CACR,EACA,EACA,EACA,GACApZ,EACA,CAAC,EAAG,GAAI,GACRA,EACA,CAAC,GAAI,EAAG,GACRsB,EACA,CAAC,GAAI,IACL,GACA,GACA,GACA,GACAA,EACA,CAAC,GAAI,IACL,GACAA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,IAAK,GACN,GACAA,EACA,CAAC,GAAI,IACL,GACA,GACAA,EACA,CAAC,GAAI,IACL,GACAtB,EACA,CAAC,EAAG,GACJ,GACA,GACA,EACAA,EACA,CAAC,EAAG,GACJ,GACA,GACA,EACAsB,EACA,CAAC,GAAI,GACLtB,EACA,CAAC,G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","file":"static/js/2.19e67395.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\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 return Constructor;\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","import setPrototypeOf from \"./setPrototypeOf\";\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 subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n return function () {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (isNativeReflectConstruct()) {\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 unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o) {\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (o = unsupportedIterableToArray(o))) {\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 it,\n normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\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}","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"draw2d\"] = factory();\n\telse\n\t\troot[\"draw2d\"] = factory();\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"./src/index.js\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./node_modules/canvg-browser/index.js\":\n/*!*********************************************!*\\\n !*** ./node_modules/canvg-browser/index.js ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\n\r\n var RGBColor = __webpack_require__(/*! rgbcolor */ \"./node_modules/rgbcolor/index.js\");\r\n var stackblur = __webpack_require__(/*! stackblur */ \"./node_modules/stackblur/index.js\");\r\n var xmldom = __webpack_require__(/*! xmldom */ \"./node_modules/xmldom/dom-parser.js\");\r\n\r\n/*\r\n * canvg.js - Javascript SVG parser and renderer on Canvas\r\n * MIT Licensed\r\n * Gabe Lerner (gabelerner@gmail.com)\r\n * http://code.google.com/p/canvg/\r\n *\r\n * Requires: rgbcolor.js - http://www.phpied.com/rgb-color-parser-in-javascript/\r\n */\r\n\r\n/*\r\ncanvg(target, s)\r\n empty parameters: replace all 'svg' elements on page with 'canvas' elements\r\n target: canvas element or the id of a canvas element\r\n s: svg string, url to svg file, or xml document\r\n opts: optional hash of options\r\n ignoreMouse: true => ignore mouse events\r\n ignoreAnimation: true => ignore animations\r\n ignoreDimensions: true => does not try to resize canvas\r\n ignoreClear: true => does not clear canvas\r\n offsetX: int => draws at a x offset\r\n offsetY: int => draws at a y offset\r\n scaleWidth: int => scales horizontally to width\r\n scaleHeight: int => scales vertically to height\r\n renderCallback: function => will call the function after the first render is completed\r\n forceRedraw: function => will call the function on every frame, if it returns true, will redraw\r\n*/\r\nfunction canvg(target, s, opts) {\r\n\r\n\t// no parameters\r\n\tif (target == null && s == null && opts == null) {\r\n\t\tvar svgTags = document.querySelectorAll('svg');\r\n\t\tfor (var i=0; i~\\.\\[:]+)/g;\r\n var classRegex = /(\\.[^\\s\\+>~\\.\\[:]+)/g;\r\n var pseudoElementRegex = /(::[^\\s\\+>~\\.\\[:]+|:first-line|:first-letter|:before|:after)/gi;\r\n var pseudoClassWithBracketsRegex = /(:[\\w-]+\\([^\\)]*\\))/gi;\r\n var pseudoClassRegex = /(:[^\\s\\+>~\\.\\[:]+)/g;\r\n var elementRegex = /([^\\s\\+>~\\.\\[:]+)/g;\r\n\r\n\tvar findMatch = function(regex, type) {\r\n\t\tvar matches = selector.match(regex);\r\n\t\tif (matches == null) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\ttypeCount[type] += matches.length;\r\n\t\tselector = selector.replace(regex, ' ');\r\n\t};\r\n\r\n\tselector = selector.replace(/:not\\(([^\\)]*)\\)/g, ' $1 ');\r\n\tselector = selector.replace(/{[^]*/gm, ' ');\r\n\tfindMatch(attributeRegex, 1);\r\n\tfindMatch(idRegex, 0);\r\n\tfindMatch(classRegex, 1);\r\n\tfindMatch(pseudoElementRegex, 2);\r\n\tfindMatch(pseudoClassWithBracketsRegex, 1);\r\n\tfindMatch(pseudoClassRegex, 1);\r\n\tselector = selector.replace(/[\\*\\s\\+>~]/g, ' ');\r\n\tselector = selector.replace(/[#\\.]/g, ' ');\r\n\tfindMatch(elementRegex, 2);\r\n\treturn typeCount.join('');\r\n}\r\n\r\nfunction build(opts) {\r\n\tvar svg = { opts: opts };\r\n\r\n var matchesSelector = getMatchesSelector();\r\n\r\n if (typeof CanvasRenderingContext2D != 'undefined') {\r\n CanvasRenderingContext2D.prototype.drawSvg = function(s, dx, dy, dw, dh, opts) {\r\n var cOpts = {\r\n ignoreMouse: true,\r\n ignoreAnimation: true,\r\n ignoreDimensions: true,\r\n ignoreClear: true,\r\n offsetX: dx,\r\n offsetY: dy,\r\n scaleWidth: dw,\r\n scaleHeight: dh\r\n };\r\n\r\n for(var prop in opts) {\r\n if(opts.hasOwnProperty(prop)){\r\n cOpts[prop] = opts[prop];\r\n }\r\n }\r\n canvg(this.canvas, s, cOpts);\r\n };\r\n }\r\n\r\n\tsvg.FRAMERATE = 30;\r\n\tsvg.MAX_VIRTUAL_PIXELS = 30000;\r\n\r\n\tsvg.log = function(msg) {};\r\n\tif (svg.opts.log == true && typeof console != 'undefined') {\r\n\t\tsvg.log = function(msg) { console.log(msg); };\r\n\t}\r\n\r\n\t// globals\r\n\tsvg.init = function(ctx) {\r\n\t\tvar uniqueId = 0;\r\n\t\tsvg.UniqueId = function () { uniqueId++; return 'canvg' + uniqueId;\t};\r\n\t\tsvg.Definitions = {};\r\n\t\tsvg.Styles = {};\r\n\t\tsvg.StylesSpecificity = {};\r\n\t\tsvg.Animations = [];\r\n\t\tsvg.Images = [];\r\n\t\tsvg.ctx = ctx;\r\n\t\tsvg.ViewPort = new (function () {\r\n\t\t\tthis.viewPorts = [];\r\n\t\t\tthis.Clear = function() { this.viewPorts = []; };\r\n\t\t\tthis.SetCurrent = function(width, height) { this.viewPorts.push({ width: width, height: height }); };\r\n\t\t\tthis.RemoveCurrent = function() { this.viewPorts.pop(); };\r\n\t\t\tthis.Current = function() { return this.viewPorts[this.viewPorts.length - 1]; };\r\n\t\t\tthis.width = function() { return this.Current().width; };\r\n\t\t\tthis.height = function() { return this.Current().height; };\r\n\t\t\tthis.ComputeSize = function(d) {\r\n\t\t\t\tif (d != null && typeof d == 'number') return d;\r\n\t\t\t\tif (d == 'x') return this.width();\r\n\t\t\t\tif (d == 'y') return this.height();\r\n\t\t\t\treturn Math.sqrt(Math.pow(this.width(), 2) + Math.pow(this.height(), 2)) / Math.sqrt(2);\r\n\t\t\t};\r\n\t\t});\r\n\t}\r\n\tsvg.init();\r\n\r\n\t// images loaded\r\n\tsvg.ImagesLoaded = function() {\r\n\t\tfor (var i=0; i]*>/, '');\r\n\t\t\tvar xmlDoc = new ActiveXObject('Microsoft.XMLDOM');\r\n\t\t\txmlDoc.async = 'false';\r\n\t\t\txmlDoc.loadXML(xml);\r\n\t\t\treturn xmlDoc;\r\n\t\t}\r\n\t}\r\n\r\n\tsvg.Property = function(name, value) {\r\n\t\tthis.name = name;\r\n\t\tthis.value = value;\r\n\t}\r\n\t\tsvg.Property.prototype.getValue = function() {\r\n\t\t\treturn this.value;\r\n\t\t}\r\n\r\n\t\tsvg.Property.prototype.hasValue = function() {\r\n\t\t\treturn (this.value != null && this.value != '');\r\n\t\t}\r\n\r\n\t\t// return the numerical value of the property\r\n\t\tsvg.Property.prototype.numValue = function() {\r\n\t\t\tif (!this.hasValue()) return 0;\r\n\r\n\t\t\tvar n = parseFloat(this.value);\r\n\t\t\tif ((this.value + '').match(/%$/)) {\r\n\t\t\t\tn = n / 100.0;\r\n\t\t\t}\r\n\t\t\treturn n;\r\n\t\t}\r\n\r\n\t\tsvg.Property.prototype.valueOrDefault = function(def) {\r\n\t\t\tif (this.hasValue()) return this.value;\r\n\t\t\treturn def;\r\n\t\t}\r\n\r\n\t\tsvg.Property.prototype.numValueOrDefault = function(def) {\r\n\t\t\tif (this.hasValue()) return this.numValue();\r\n\t\t\treturn def;\r\n\t\t}\r\n\r\n\t\t// color extensions\r\n\t\t\t// augment the current color value with the opacity\r\n\t\t\tsvg.Property.prototype.addOpacity = function(opacityProp) {\r\n\t\t\t\tvar newValue = this.value;\r\n\t\t\t\tif (opacityProp.value != null && opacityProp.value != '' && typeof this.value == 'string') { // can only add opacity to colors, not patterns\r\n\t\t\t\t\tvar color = new RGBColor(this.value);\r\n\t\t\t\t\tif (color.ok) {\r\n\t\t\t\t\t\tnewValue = 'rgba(' + color.r + ', ' + color.g + ', ' + color.b + ', ' + opacityProp.numValue() + ')';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn new svg.Property(this.name, newValue);\r\n\t\t\t}\r\n\r\n\t\t// definition extensions\r\n\t\t\t// get the definition from the definitions table\r\n\t\t\tsvg.Property.prototype.getDefinition = function() {\r\n\t\t\t\tvar name = this.value.match(/#([^\\)'\"]+)/);\r\n\t\t\t\tif (name) { name = name[1]; }\r\n\t\t\t\tif (!name) { name = this.value; }\r\n\t\t\t\treturn svg.Definitions[name];\r\n\t\t\t}\r\n\r\n\t\t\tsvg.Property.prototype.isUrlDefinition = function() {\r\n\t\t\t\treturn this.value.indexOf('url(') == 0\r\n\t\t\t}\r\n\r\n\t\t\tsvg.Property.prototype.getFillStyleDefinition = function(e, opacityProp) {\r\n\t\t\t\tvar def = this.getDefinition();\r\n\r\n\t\t\t\t// gradient\r\n\t\t\t\tif (def != null && def.createGradient) {\r\n\t\t\t\t\treturn def.createGradient(svg.ctx, e, opacityProp);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// pattern\r\n\t\t\t\tif (def != null && def.createPattern) {\r\n\t\t\t\t\tif (def.getHrefAttribute().hasValue()) {\r\n\t\t\t\t\t\tvar pt = def.attribute('patternTransform');\r\n\t\t\t\t\t\tdef = def.getHrefAttribute().getDefinition();\r\n\t\t\t\t\t\tif (pt.hasValue()) { def.attribute('patternTransform', true).value = pt.value; }\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn def.createPattern(svg.ctx, e);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t// length extensions\r\n\t\t\tsvg.Property.prototype.getDPI = function(viewPort) {\r\n\t\t\t\treturn 96.0; // TODO: compute?\r\n\t\t\t}\r\n\r\n\t\t\tsvg.Property.prototype.getEM = function(viewPort) {\r\n\t\t\t\tvar em = 12;\r\n\r\n\t\t\t\tvar fontSize = new svg.Property('fontSize', svg.Font.Parse(svg.ctx.font).fontSize);\r\n\t\t\t\tif (fontSize.hasValue()) em = fontSize.toPixels(viewPort);\r\n\r\n\t\t\t\treturn em;\r\n\t\t\t}\r\n\r\n\t\t\tsvg.Property.prototype.getUnits = function() {\r\n\t\t\t\tvar s = this.value+'';\r\n\t\t\t\treturn s.replace(/[0-9\\.\\-]/g,'');\r\n\t\t\t}\r\n\r\n\t\t\t// get the length as pixels\r\n\t\t\tsvg.Property.prototype.toPixels = function(viewPort, processPercent) {\r\n\t\t\t\tif (!this.hasValue()) return 0;\r\n\t\t\t\tvar s = this.value+'';\r\n\t\t\t\tif (s.match(/em$/)) return this.numValue() * this.getEM(viewPort);\r\n\t\t\t\tif (s.match(/ex$/)) return this.numValue() * this.getEM(viewPort) / 2.0;\r\n\t\t\t\tif (s.match(/px$/)) return this.numValue();\r\n\t\t\t\tif (s.match(/pt$/)) return this.numValue() * this.getDPI(viewPort) * (1.0 / 72.0);\r\n\t\t\t\tif (s.match(/pc$/)) return this.numValue() * 15;\r\n\t\t\t\tif (s.match(/cm$/)) return this.numValue() * this.getDPI(viewPort) / 2.54;\r\n\t\t\t\tif (s.match(/mm$/)) return this.numValue() * this.getDPI(viewPort) / 25.4;\r\n\t\t\t\tif (s.match(/in$/)) return this.numValue() * this.getDPI(viewPort);\r\n\t\t\t\tif (s.match(/%$/)) return this.numValue() * svg.ViewPort.ComputeSize(viewPort);\r\n\t\t\t\tvar n = this.numValue();\r\n\t\t\t\tif (processPercent && n < 1.0) return n * svg.ViewPort.ComputeSize(viewPort);\r\n\t\t\t\treturn n;\r\n\t\t\t}\r\n\r\n\t\t// time extensions\r\n\t\t\t// get the time as milliseconds\r\n\t\t\tsvg.Property.prototype.toMilliseconds = function() {\r\n\t\t\t\tif (!this.hasValue()) return 0;\r\n\t\t\t\tvar s = this.value+'';\r\n\t\t\t\tif (s.match(/s$/)) return this.numValue() * 1000;\r\n\t\t\t\tif (s.match(/ms$/)) return this.numValue();\r\n\t\t\t\treturn this.numValue();\r\n\t\t\t}\r\n\r\n\t\t// angle extensions\r\n\t\t\t// get the angle as radians\r\n\t\t\tsvg.Property.prototype.toRadians = function() {\r\n\t\t\t\tif (!this.hasValue()) return 0;\r\n\t\t\t\tvar s = this.value+'';\r\n\t\t\t\tif (s.match(/deg$/)) return this.numValue() * (Math.PI / 180.0);\r\n\t\t\t\tif (s.match(/grad$/)) return this.numValue() * (Math.PI / 200.0);\r\n\t\t\t\tif (s.match(/rad$/)) return this.numValue();\r\n\t\t\t\treturn this.numValue() * (Math.PI / 180.0);\r\n\t\t\t}\r\n\r\n\t\t// text extensions\r\n\t\t\t// get the text baseline\r\n\t\t\tvar textBaselineMapping = {\r\n\t\t\t\t'baseline': 'alphabetic',\r\n\t\t\t\t'before-edge': 'top',\r\n\t\t\t\t'text-before-edge': 'top',\r\n\t\t\t\t'middle': 'middle',\r\n\t\t\t\t'central': 'middle',\r\n\t\t\t\t'after-edge': 'bottom',\r\n\t\t\t\t'text-after-edge': 'bottom',\r\n\t\t\t\t'ideographic': 'ideographic',\r\n\t\t\t\t'alphabetic': 'alphabetic',\r\n\t\t\t\t'hanging': 'hanging',\r\n\t\t\t\t'mathematical': 'alphabetic'\r\n\t\t\t};\r\n\t\t\tsvg.Property.prototype.toTextBaseline = function () {\r\n\t\t\t\tif (!this.hasValue()) return null;\r\n\t\t\t\treturn textBaselineMapping[this.value];\r\n\t\t\t}\r\n\r\n\t// fonts\r\n\tsvg.Font = new (function() {\r\n\t\tthis.Styles = 'normal|italic|oblique|inherit';\r\n\t\tthis.Variants = 'normal|small-caps|inherit';\r\n\t\tthis.Weights = 'normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit';\r\n\r\n\t\tthis.CreateFont = function(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit) {\r\n\t\t\tvar f = inherit != null ? this.Parse(inherit) : this.CreateFont('', '', '', '', '', svg.ctx.font);\r\n\t\t\treturn {\r\n\t\t\t\tfontFamily: fontFamily || f.fontFamily,\r\n\t\t\t\tfontSize: fontSize || f.fontSize,\r\n\t\t\t\tfontStyle: fontStyle || f.fontStyle,\r\n\t\t\t\tfontWeight: fontWeight || f.fontWeight,\r\n\t\t\t\tfontVariant: fontVariant || f.fontVariant,\r\n\t\t\t\ttoString: function () { return [this.fontStyle, this.fontVariant, this.fontWeight, this.fontSize, this.fontFamily].join(' ') }\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar that = this;\r\n\t\tthis.Parse = function(s) {\r\n\t\t\tvar f = {};\r\n\t\t\tvar d = svg.trim(svg.compressSpaces(s || '')).split(' ');\r\n\t\t\tvar set = { fontSize: false, fontStyle: false, fontWeight: false, fontVariant: false }\r\n\t\t\tvar ff = '';\r\n\t\t\tfor (var i=0; i this.x2) this.x2 = x;\r\n\t\t\t}\r\n\r\n\t\t\tif (y != null) {\r\n\t\t\t\tif (isNaN(this.y1) || isNaN(this.y2)) {\r\n\t\t\t\t\tthis.y1 = y;\r\n\t\t\t\t\tthis.y2 = y;\r\n\t\t\t\t}\r\n\t\t\t\tif (y < this.y1) this.y1 = y;\r\n\t\t\t\tif (y > this.y2) this.y2 = y;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.addX = function(x) { this.addPoint(x, null); }\r\n\t\tthis.addY = function(y) { this.addPoint(null, y); }\r\n\r\n\t\tthis.addBoundingBox = function(bb) {\r\n\t\t\tthis.addPoint(bb.x1, bb.y1);\r\n\t\t\tthis.addPoint(bb.x2, bb.y2);\r\n\t\t}\r\n\r\n\t\tthis.addQuadraticCurve = function(p0x, p0y, p1x, p1y, p2x, p2y) {\r\n\t\t\tvar cp1x = p0x + 2/3 * (p1x - p0x); // CP1 = QP0 + 2/3 *(QP1-QP0)\r\n\t\t\tvar cp1y = p0y + 2/3 * (p1y - p0y); // CP1 = QP0 + 2/3 *(QP1-QP0)\r\n\t\t\tvar cp2x = cp1x + 1/3 * (p2x - p0x); // CP2 = CP1 + 1/3 *(QP2-QP0)\r\n\t\t\tvar cp2y = cp1y + 1/3 * (p2y - p0y); // CP2 = CP1 + 1/3 *(QP2-QP0)\r\n\t\t\tthis.addBezierCurve(p0x, p0y, cp1x, cp2x, cp1y,\tcp2y, p2x, p2y);\r\n\t\t}\r\n\r\n\t\tthis.addBezierCurve = function(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y) {\r\n\t\t\t// from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\r\n\t\t\tvar p0 = [p0x, p0y], p1 = [p1x, p1y], p2 = [p2x, p2y], p3 = [p3x, p3y];\r\n\t\t\tthis.addPoint(p0[0], p0[1]);\r\n\t\t\tthis.addPoint(p3[0], p3[1]);\r\n\r\n\t\t\tfor (var i=0; i<=1; i++) {\r\n\t\t\t\tvar f = function(t) {\r\n\t\t\t\t\treturn Math.pow(1-t, 3) * p0[i]\r\n\t\t\t\t\t+ 3 * Math.pow(1-t, 2) * t * p1[i]\r\n\t\t\t\t\t+ 3 * (1-t) * Math.pow(t, 2) * p2[i]\r\n\t\t\t\t\t+ Math.pow(t, 3) * p3[i];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\r\n\t\t\t\tvar a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\r\n\t\t\t\tvar c = 3 * p1[i] - 3 * p0[i];\r\n\r\n\t\t\t\tif (a == 0) {\r\n\t\t\t\t\tif (b == 0) continue;\r\n\t\t\t\t\tvar t = -c / b;\r\n\t\t\t\t\tif (0 < t && t < 1) {\r\n\t\t\t\t\t\tif (i == 0) this.addX(f(t));\r\n\t\t\t\t\t\tif (i == 1) this.addY(f(t));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar b2ac = Math.pow(b, 2) - 4 * c * a;\r\n\t\t\t\tif (b2ac < 0) continue;\r\n\t\t\t\tvar t1 = (-b + Math.sqrt(b2ac)) / (2 * a);\r\n\t\t\t\tif (0 < t1 && t1 < 1) {\r\n\t\t\t\t\tif (i == 0) this.addX(f(t1));\r\n\t\t\t\t\tif (i == 1) this.addY(f(t1));\r\n\t\t\t\t}\r\n\t\t\t\tvar t2 = (-b - Math.sqrt(b2ac)) / (2 * a);\r\n\t\t\t\tif (0 < t2 && t2 < 1) {\r\n\t\t\t\t\tif (i == 0) this.addX(f(t2));\r\n\t\t\t\t\tif (i == 1) this.addY(f(t2));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.isPointInBox = function(x, y) {\r\n\t\t\treturn (this.x1 <= x && x <= this.x2 && this.y1 <= y && y <= this.y2);\r\n\t\t}\r\n\r\n\t\tthis.addPoint(x1, y1);\r\n\t\tthis.addPoint(x2, y2);\r\n\t}\r\n\r\n\t// transforms\r\n\tsvg.Transform = function(v) {\r\n\t\tvar that = this;\r\n\t\tthis.Type = {}\r\n\r\n\t\t// translate\r\n\t\tthis.Type.translate = function(s) {\r\n\t\t\tthis.p = svg.CreatePoint(s);\r\n\t\t\tthis.apply = function(ctx) {\r\n\t\t\t\tctx.translate(this.p.x || 0.0, this.p.y || 0.0);\r\n\t\t\t}\r\n\t\t\tthis.unapply = function(ctx) {\r\n\t\t\t\tctx.translate(-1.0 * this.p.x || 0.0, -1.0 * this.p.y || 0.0);\r\n\t\t\t}\r\n\t\t\tthis.applyToPoint = function(p) {\r\n\t\t\t\tp.applyTransform([1, 0, 0, 1, this.p.x || 0.0, this.p.y || 0.0]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// rotate\r\n\t\tthis.Type.rotate = function(s) {\r\n\t\t\tvar a = svg.ToNumberArray(s);\r\n\t\t\tthis.angle = new svg.Property('angle', a[0]);\r\n\t\t\tthis.cx = a[1] || 0;\r\n\t\t\tthis.cy = a[2] || 0;\r\n\t\t\tthis.apply = function(ctx) {\r\n\t\t\t\tctx.translate(this.cx, this.cy);\r\n\t\t\t\tctx.rotate(this.angle.toRadians());\r\n\t\t\t\tctx.translate(-this.cx, -this.cy);\r\n\t\t\t}\r\n\t\t\tthis.unapply = function(ctx) {\r\n\t\t\t\tctx.translate(this.cx, this.cy);\r\n\t\t\t\tctx.rotate(-1.0 * this.angle.toRadians());\r\n\t\t\t\tctx.translate(-this.cx, -this.cy);\r\n\t\t\t}\r\n\t\t\tthis.applyToPoint = function(p) {\r\n\t\t\t\tvar a = this.angle.toRadians();\r\n\t\t\t\tp.applyTransform([1, 0, 0, 1, this.p.x || 0.0, this.p.y || 0.0]);\r\n\t\t\t\tp.applyTransform([Math.cos(a), Math.sin(a), -Math.sin(a), Math.cos(a), 0, 0]);\r\n\t\t\t\tp.applyTransform([1, 0, 0, 1, -this.p.x || 0.0, -this.p.y || 0.0]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.Type.scale = function(s) {\r\n\t\t\tthis.p = svg.CreatePoint(s);\r\n\t\t\tthis.apply = function(ctx) {\r\n\t\t\t\tctx.scale(this.p.x || 1.0, this.p.y || this.p.x || 1.0);\r\n\t\t\t}\r\n\t\t\tthis.unapply = function(ctx) {\r\n\t\t\t\tctx.scale(1.0 / this.p.x || 1.0, 1.0 / this.p.y || this.p.x || 1.0);\r\n\t\t\t}\r\n\t\t\tthis.applyToPoint = function(p) {\r\n\t\t\t\tp.applyTransform([this.p.x || 0.0, 0, 0, this.p.y || 0.0, 0, 0]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.Type.matrix = function(s) {\r\n\t\t\tthis.m = svg.ToNumberArray(s);\r\n\t\t\tthis.apply = function(ctx) {\r\n\t\t\t\tctx.transform(this.m[0], this.m[1], this.m[2], this.m[3], this.m[4], this.m[5]);\r\n\t\t\t}\r\n\t\t\tthis.unapply = function(ctx) {\r\n\t\t\t\tvar a = this.m[0];\r\n\t\t\t\tvar b = this.m[2];\r\n\t\t\t\tvar c = this.m[4];\r\n\t\t\t\tvar d = this.m[1];\r\n\t\t\t\tvar e = this.m[3];\r\n\t\t\t\tvar f = this.m[5];\r\n\t\t\t\tvar g = 0.0;\r\n\t\t\t\tvar h = 0.0;\r\n\t\t\t\tvar i = 1.0;\r\n\t\t\t\tvar det = 1 / (a*(e*i-f*h)-b*(d*i-f*g)+c*(d*h-e*g));\r\n\t\t\t\tctx.transform(\r\n\t\t\t\t\tdet*(e*i-f*h),\r\n\t\t\t\t\tdet*(f*g-d*i),\r\n\t\t\t\t\tdet*(c*h-b*i),\r\n\t\t\t\t\tdet*(a*i-c*g),\r\n\t\t\t\t\tdet*(b*f-c*e),\r\n\t\t\t\t\tdet*(c*d-a*f)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\tthis.applyToPoint = function(p) {\r\n\t\t\t\tp.applyTransform(this.m);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.Type.SkewBase = function(s) {\r\n\t\t\tthis.base = that.Type.matrix;\r\n\t\t\tthis.base(s);\r\n\t\t\tthis.angle = new svg.Property('angle', s);\r\n\t\t}\r\n\t\tthis.Type.SkewBase.prototype = new this.Type.matrix;\r\n\r\n\t\tthis.Type.skewX = function(s) {\r\n\t\t\tthis.base = that.Type.SkewBase;\r\n\t\t\tthis.base(s);\r\n\t\t\tthis.m = [1, 0, Math.tan(this.angle.toRadians()), 1, 0, 0];\r\n\t\t}\r\n\t\tthis.Type.skewX.prototype = new this.Type.SkewBase;\r\n\r\n\t\tthis.Type.skewY = function(s) {\r\n\t\t\tthis.base = that.Type.SkewBase;\r\n\t\t\tthis.base(s);\r\n\t\t\tthis.m = [1, Math.tan(this.angle.toRadians()), 0, 1, 0, 0];\r\n\t\t}\r\n\t\tthis.Type.skewY.prototype = new this.Type.SkewBase;\r\n\r\n\t\tthis.transforms = [];\r\n\r\n\t\tthis.apply = function(ctx) {\r\n\t\t\tfor (var i=0; i=0; i--) {\r\n\t\t\t\tthis.transforms[i].unapply(ctx);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.applyToPoint = function(p) {\r\n\t\t\tfor (var i=0; i existingSpecificity) {\r\n\t\t\t\t\t\t\t\tthis.styles[name] = styles[name];\r\n\t\t\t\t\t\t\t\tthis.stylesSpecificity[name] = specificity;\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}\r\n\t\t};\r\n\r\n\t\tif (node != null && node.nodeType == 1) { //ELEMENT_NODE\r\n\t\t\t// add attributes\r\n\t\t\tfor (var i=0; i 0) {\r\n\t\t\t\tmarkers.push([this.points[this.points.length-1], markers[markers.length-1][1]]);\r\n\t\t\t}\r\n\t\t\treturn markers;\r\n\t\t}\r\n\t}\r\n\tsvg.Element.polyline.prototype = new svg.Element.PathElementBase;\r\n\r\n\t// polygon element\r\n\tsvg.Element.polygon = function(node) {\r\n\t\tthis.base = svg.Element.polyline;\r\n\t\tthis.base(node);\r\n\r\n\t\tthis.basePath = this.path;\r\n\t\tthis.path = function(ctx) {\r\n\t\t\tvar bb = this.basePath(ctx);\r\n\t\t\tif (ctx != null) {\r\n\t\t\t\tctx.lineTo(this.points[0].x, this.points[0].y);\r\n\t\t\t\tctx.closePath();\r\n\t\t\t}\r\n\t\t\treturn bb;\r\n\t\t}\r\n\t}\r\n\tsvg.Element.polygon.prototype = new svg.Element.polyline;\r\n\r\n\t// path element\r\n\tsvg.Element.path = function(node) {\r\n\t\tthis.base = svg.Element.PathElementBase;\r\n\t\tthis.base(node);\r\n\r\n\t\tvar d = this.attribute('d').value;\r\n\t\t// TODO: convert to real lexer based on http://www.w3.org/TR/SVG11/paths.html#PathDataBNF\r\n\t\td = d.replace(/,/gm,' '); // get rid of all commas\r\n\t\t// As the end of a match can also be the start of the next match, we need to run this replace twice.\r\n\t\tfor(var i=0; i<2; i++)\r\n\t\t\td = d.replace(/([MmZzLlHhVvCcSsQqTtAa])([^\\s])/gm,'$1 $2'); // suffix commands with spaces\r\n\t\td = d.replace(/([^\\s])([MmZzLlHhVvCcSsQqTtAa])/gm,'$1 $2'); // prefix commands with spaces\r\n\t\td = d.replace(/([0-9])([+\\-])/gm,'$1 $2'); // separate digits on +- signs\r\n\t\t// Again, we need to run this twice to find all occurances\r\n\t\tfor(var i=0; i<2; i++)\r\n\t\t\td = d.replace(/(\\.[0-9]*)(\\.)/gm,'$1 $2'); // separate digits when they start with a comma\r\n\t\td = d.replace(/([Aa](\\s+[0-9]+){3})\\s+([01])\\s*([01])/gm,'$1 $3 $4 '); // shorthand elliptical arc path syntax\r\n\t\td = svg.compressSpaces(d); // compress multiple spaces\r\n\t\td = svg.trim(d);\r\n\t\tthis.PathParser = new (function(d) {\r\n\t\t\tthis.tokens = d.split(' ');\r\n\r\n\t\t\tthis.reset = function() {\r\n\t\t\t\tthis.i = -1;\r\n\t\t\t\tthis.command = '';\r\n\t\t\t\tthis.previousCommand = '';\r\n\t\t\t\tthis.start = new svg.Point(0, 0);\r\n\t\t\t\tthis.control = new svg.Point(0, 0);\r\n\t\t\t\tthis.current = new svg.Point(0, 0);\r\n\t\t\t\tthis.points = [];\r\n\t\t\t\tthis.angles = [];\r\n\t\t\t}\r\n\r\n\t\t\tthis.isEnd = function() {\r\n\t\t\t\treturn this.i >= this.tokens.length - 1;\r\n\t\t\t}\r\n\r\n\t\t\tthis.isCommandOrEnd = function() {\r\n\t\t\t\tif (this.isEnd()) return true;\r\n\t\t\t\treturn this.tokens[this.i + 1].match(/^[A-Za-z]$/) != null;\r\n\t\t\t}\r\n\r\n\t\t\tthis.isRelativeCommand = function() {\r\n\t\t\t\tswitch(this.command)\r\n\t\t\t\t{\r\n\t\t\t\t\tcase 'm':\r\n\t\t\t\t\tcase 'l':\r\n\t\t\t\t\tcase 'h':\r\n\t\t\t\t\tcase 'v':\r\n\t\t\t\t\tcase 'c':\r\n\t\t\t\t\tcase 's':\r\n\t\t\t\t\tcase 'q':\r\n\t\t\t\t\tcase 't':\r\n\t\t\t\t\tcase 'a':\r\n\t\t\t\t\tcase 'z':\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tthis.getToken = function() {\r\n\t\t\t\tthis.i++;\r\n\t\t\t\treturn this.tokens[this.i];\r\n\t\t\t}\r\n\r\n\t\t\tthis.getScalar = function() {\r\n\t\t\t\treturn parseFloat(this.getToken());\r\n\t\t\t}\r\n\r\n\t\t\tthis.nextCommand = function() {\r\n\t\t\t\tthis.previousCommand = this.command;\r\n\t\t\t\tthis.command = this.getToken();\r\n\t\t\t}\r\n\r\n\t\t\tthis.getPoint = function() {\r\n\t\t\t\tvar p = new svg.Point(this.getScalar(), this.getScalar());\r\n\t\t\t\treturn this.makeAbsolute(p);\r\n\t\t\t}\r\n\r\n\t\t\tthis.getAsControlPoint = function() {\r\n\t\t\t\tvar p = this.getPoint();\r\n\t\t\t\tthis.control = p;\r\n\t\t\t\treturn p;\r\n\t\t\t}\r\n\r\n\t\t\tthis.getAsCurrentPoint = function() {\r\n\t\t\t\tvar p = this.getPoint();\r\n\t\t\t\tthis.current = p;\r\n\t\t\t\treturn p;\r\n\t\t\t}\r\n\r\n\t\t\tthis.getReflectedControlPoint = function() {\r\n\t\t\t\tif (this.previousCommand.toLowerCase() != 'c' &&\r\n\t\t\t\t this.previousCommand.toLowerCase() != 's' &&\r\n\t\t\t\t\tthis.previousCommand.toLowerCase() != 'q' &&\r\n\t\t\t\t\tthis.previousCommand.toLowerCase() != 't' ){\r\n\t\t\t\t\treturn this.current;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// reflect point\r\n\t\t\t\tvar p = new svg.Point(2 * this.current.x - this.control.x, 2 * this.current.y - this.control.y);\r\n\t\t\t\treturn p;\r\n\t\t\t}\r\n\r\n\t\t\tthis.makeAbsolute = function(p) {\r\n\t\t\t\tif (this.isRelativeCommand()) {\r\n\t\t\t\t\tp.x += this.current.x;\r\n\t\t\t\t\tp.y += this.current.y;\r\n\t\t\t\t}\r\n\t\t\t\treturn p;\r\n\t\t\t}\r\n\r\n\t\t\tthis.addMarker = function(p, from, priorTo) {\r\n\t\t\t\t// if the last angle isn't filled in because we didn't have this point yet ...\r\n\t\t\t\tif (priorTo != null && this.angles.length > 0 && this.angles[this.angles.length-1] == null) {\r\n\t\t\t\t\tthis.angles[this.angles.length-1] = this.points[this.points.length-1].angleTo(priorTo);\r\n\t\t\t\t}\r\n\t\t\t\tthis.addMarkerAngle(p, from == null ? null : from.angleTo(p));\r\n\t\t\t}\r\n\r\n\t\t\tthis.addMarkerAngle = function(p, a) {\r\n\t\t\t\tthis.points.push(p);\r\n\t\t\t\tthis.angles.push(a);\r\n\t\t\t}\r\n\r\n\t\t\tthis.getMarkerPoints = function() { return this.points; }\r\n\t\t\tthis.getMarkerAngles = function() {\r\n\t\t\t\tfor (var i=0; i 1) {\r\n\t\t\t\t\t\t\trx *= Math.sqrt(l);\r\n\t\t\t\t\t\t\try *= Math.sqrt(l);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// cx', cy'\r\n\t\t\t\t\t\tvar s = (largeArcFlag == sweepFlag ? -1 : 1) * Math.sqrt(\r\n\t\t\t\t\t\t\t((Math.pow(rx,2)*Math.pow(ry,2))-(Math.pow(rx,2)*Math.pow(currp.y,2))-(Math.pow(ry,2)*Math.pow(currp.x,2))) /\r\n\t\t\t\t\t\t\t(Math.pow(rx,2)*Math.pow(currp.y,2)+Math.pow(ry,2)*Math.pow(currp.x,2))\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tif (isNaN(s)) s = 0;\r\n\t\t\t\t\t\tvar cpp = new svg.Point(s * rx * currp.y / ry, s * -ry * currp.x / rx);\r\n\t\t\t\t\t\t// cx, cy\r\n\t\t\t\t\t\tvar centp = new svg.Point(\r\n\t\t\t\t\t\t\t(curr.x + cp.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y,\r\n\t\t\t\t\t\t\t(curr.y + cp.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\t// vector magnitude\r\n\t\t\t\t\t\tvar m = function(v) { return Math.sqrt(Math.pow(v[0],2) + Math.pow(v[1],2)); }\r\n\t\t\t\t\t\t// ratio between two vectors\r\n\t\t\t\t\t\tvar r = function(u, v) { return (u[0]*v[0]+u[1]*v[1]) / (m(u)*m(v)) }\r\n\t\t\t\t\t\t// angle between two vectors\r\n\t\t\t\t\t\tvar a = function(u, v) { return (u[0]*v[1] < u[1]*v[0] ? -1 : 1) * Math.acos(r(u,v)); }\r\n\t\t\t\t\t\t// initial angle\r\n\t\t\t\t\t\tvar a1 = a([1,0], [(currp.x-cpp.x)/rx,(currp.y-cpp.y)/ry]);\r\n\t\t\t\t\t\t// angle delta\r\n\t\t\t\t\t\tvar u = [(currp.x-cpp.x)/rx,(currp.y-cpp.y)/ry];\r\n\t\t\t\t\t\tvar v = [(-currp.x-cpp.x)/rx,(-currp.y-cpp.y)/ry];\r\n\t\t\t\t\t\tvar ad = a(u, v);\r\n\t\t\t\t\t\tif (r(u,v) <= -1) ad = Math.PI;\r\n\t\t\t\t\t\tif (r(u,v) >= 1) ad = 0;\r\n\r\n\t\t\t\t\t\t// for markers\r\n\t\t\t\t\t\tvar dir = 1 - sweepFlag ? 1.0 : -1.0;\r\n\t\t\t\t\t\tvar ah = a1 + dir * (ad / 2.0);\r\n\t\t\t\t\t\tvar halfWay = new svg.Point(\r\n\t\t\t\t\t\t\tcentp.x + rx * Math.cos(ah),\r\n\t\t\t\t\t\t\tcentp.y + ry * Math.sin(ah)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tpp.addMarkerAngle(halfWay, ah - dir * Math.PI / 2);\r\n\t\t\t\t\t\tpp.addMarkerAngle(cp, ah - dir * Math.PI);\r\n\r\n\t\t\t\t\t\tbb.addPoint(cp.x, cp.y); // TODO: this is too naive, make it better\r\n\t\t\t\t\t\tif (ctx != null) {\r\n\t\t\t\t\t\t\tvar r = rx > ry ? rx : ry;\r\n\t\t\t\t\t\t\tvar sx = rx > ry ? 1 : rx / ry;\r\n\t\t\t\t\t\t\tvar sy = rx > ry ? ry / rx : 1;\r\n\r\n\t\t\t\t\t\t\tctx.translate(centp.x, centp.y);\r\n\t\t\t\t\t\t\tctx.rotate(xAxisRotation);\r\n\t\t\t\t\t\t\tctx.scale(sx, sy);\r\n\t\t\t\t\t\t\tctx.arc(0, 0, r, a1, a1 + ad, 1 - sweepFlag);\r\n\t\t\t\t\t\t\tctx.scale(1/sx, 1/sy);\r\n\t\t\t\t\t\t\tctx.rotate(-xAxisRotation);\r\n\t\t\t\t\t\t\tctx.translate(-centp.x, -centp.y);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'Z':\r\n\t\t\t\tcase 'z':\r\n\t\t\t\t\tif (ctx != null) ctx.closePath();\r\n\t\t\t\t\tpp.current = pp.start;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn bb;\r\n\t\t}\r\n\r\n\t\tthis.getMarkers = function() {\r\n\t\t\tvar points = this.PathParser.getMarkerPoints();\r\n\t\t\tvar angles = this.PathParser.getMarkerAngles();\r\n\r\n\t\t\tvar markers = [];\r\n\t\t\tfor (var i=0; i 1) this.offset = 1;\r\n\r\n\t\tvar stopColor = this.style('stop-color', true);\r\n\t\tif (stopColor.value == '') stopColor.value = '#000';\r\n\t\tif (this.style('stop-opacity').hasValue()) stopColor = stopColor.addOpacity(this.style('stop-opacity'));\r\n\t\tthis.color = stopColor.value;\r\n\t}\r\n\tsvg.Element.stop.prototype = new svg.Element.ElementBase;\r\n\r\n\t// animation base element\r\n\tsvg.Element.AnimateBase = function(node) {\r\n\t\tthis.base = svg.Element.ElementBase;\r\n\t\tthis.base(node);\r\n\r\n\t\tsvg.Animations.push(this);\r\n\r\n\t\tthis.duration = 0.0;\r\n\t\tthis.begin = this.attribute('begin').toMilliseconds();\r\n\t\tthis.maxDuration = this.begin + this.attribute('dur').toMilliseconds();\r\n\r\n\t\tthis.getProperty = function() {\r\n\t\t\tvar attributeType = this.attribute('attributeType').value;\r\n\t\t\tvar attributeName = this.attribute('attributeName').value;\r\n\r\n\t\t\tif (attributeType == 'CSS') {\r\n\t\t\t\treturn this.parent.style(attributeName, true);\r\n\t\t\t}\r\n\t\t\treturn this.parent.attribute(attributeName, true);\r\n\t\t};\r\n\r\n\t\tthis.initialValue = null;\r\n\t\tthis.initialUnits = '';\r\n\t\tthis.removed = false;\r\n\r\n\t\tthis.calcValue = function() {\r\n\t\t\t// OVERRIDE ME!\r\n\t\t\treturn '';\r\n\t\t}\r\n\r\n\t\tthis.update = function(delta) {\r\n\t\t\t// set initial value\r\n\t\t\tif (this.initialValue == null) {\r\n\t\t\t\tthis.initialValue = this.getProperty().value;\r\n\t\t\t\tthis.initialUnits = this.getProperty().getUnits();\r\n\t\t\t}\r\n\r\n\t\t\t// if we're past the end time\r\n\t\t\tif (this.duration > this.maxDuration) {\r\n\t\t\t\t// loop for indefinitely repeating animations\r\n\t\t\t\tif (this.attribute('repeatCount').value == 'indefinite'\r\n\t\t\t\t || this.attribute('repeatDur').value == 'indefinite') {\r\n\t\t\t\t\tthis.duration = 0.0\r\n\t\t\t\t}\r\n\t\t\t\telse if (this.attribute('fill').valueOrDefault('remove') == 'freeze' && !this.frozen) {\r\n\t\t\t\t\tthis.frozen = true;\r\n\t\t\t\t\tthis.parent.animationFrozen = true;\r\n\t\t\t\t\tthis.parent.animationFrozenValue = this.getProperty().value;\r\n\t\t\t\t}\r\n\t\t\t\telse if (this.attribute('fill').valueOrDefault('remove') == 'remove' && !this.removed) {\r\n\t\t\t\t\tthis.removed = true;\r\n\t\t\t\t\tthis.getProperty().value = this.parent.animationFrozen ? this.parent.animationFrozenValue : this.initialValue;\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tthis.duration = this.duration + delta;\r\n\r\n\t\t\t// if we're past the begin time\r\n\t\t\tvar updated = false;\r\n\t\t\tif (this.begin < this.duration) {\r\n\t\t\t\tvar newValue = this.calcValue(); // tween\r\n\r\n\t\t\t\tif (this.attribute('type').hasValue()) {\r\n\t\t\t\t\t// for transform, etc.\r\n\t\t\t\t\tvar type = this.attribute('type').value;\r\n\t\t\t\t\tnewValue = type + '(' + newValue + ')';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.getProperty().value = newValue;\r\n\t\t\t\tupdated = true;\r\n\t\t\t}\r\n\r\n\t\t\treturn updated;\r\n\t\t}\r\n\r\n\t\tthis.from = this.attribute('from');\r\n\t\tthis.to = this.attribute('to');\r\n\t\tthis.values = this.attribute('values');\r\n\t\tif (this.values.hasValue()) this.values.value = this.values.value.split(';');\r\n\r\n\t\t// fraction of duration we've covered\r\n\t\tthis.progress = function() {\r\n\t\t\tvar ret = { progress: (this.duration - this.begin) / (this.maxDuration - this.begin) };\r\n\t\t\tif (this.values.hasValue()) {\r\n\t\t\t\tvar p = ret.progress * (this.values.value.length - 1);\r\n\t\t\t\tvar lb = Math.floor(p), ub = Math.ceil(p);\r\n\t\t\t\tret.from = new svg.Property('from', parseFloat(this.values.value[lb]));\r\n\t\t\t\tret.to = new svg.Property('to', parseFloat(this.values.value[ub]));\r\n\t\t\t\tret.progress = (p - lb) / (ub - lb);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tret.from = this.from;\r\n\t\t\t\tret.to = this.to;\r\n\t\t\t}\r\n\t\t\treturn ret;\r\n\t\t}\r\n\t}\r\n\tsvg.Element.AnimateBase.prototype = new svg.Element.ElementBase;\r\n\r\n\t// animate element\r\n\tsvg.Element.animate = function(node) {\r\n\t\tthis.base = svg.Element.AnimateBase;\r\n\t\tthis.base(node);\r\n\r\n\t\tthis.calcValue = function() {\r\n\t\t\tvar p = this.progress();\r\n\r\n\t\t\t// tween value linearly\r\n\t\t\tvar newValue = p.from.numValue() + (p.to.numValue() - p.from.numValue()) * p.progress;\r\n\t\t\treturn newValue + this.initialUnits;\r\n\t\t};\r\n\t}\r\n\tsvg.Element.animate.prototype = new svg.Element.AnimateBase;\r\n\r\n\t// animate color element\r\n\tsvg.Element.animateColor = function(node) {\r\n\t\tthis.base = svg.Element.AnimateBase;\r\n\t\tthis.base(node);\r\n\r\n\t\tthis.calcValue = function() {\r\n\t\t\tvar p = this.progress();\r\n\t\t\tvar from = new RGBColor(p.from.value);\r\n\t\t\tvar to = new RGBColor(p.to.value);\r\n\r\n\t\t\tif (from.ok && to.ok) {\r\n\t\t\t\t// tween color linearly\r\n\t\t\t\tvar r = from.r + (to.r - from.r) * p.progress;\r\n\t\t\t\tvar g = from.g + (to.g - from.g) * p.progress;\r\n\t\t\t\tvar b = from.b + (to.b - from.b) * p.progress;\r\n\t\t\t\treturn 'rgb('+parseInt(r,10)+','+parseInt(g,10)+','+parseInt(b,10)+')';\r\n\t\t\t}\r\n\t\t\treturn this.attribute('from').value;\r\n\t\t};\r\n\t}\r\n\tsvg.Element.animateColor.prototype = new svg.Element.AnimateBase;\r\n\r\n\t// animate transform element\r\n\tsvg.Element.animateTransform = function(node) {\r\n\t\tthis.base = svg.Element.AnimateBase;\r\n\t\tthis.base(node);\r\n\r\n\t\tthis.calcValue = function() {\r\n\t\t\tvar p = this.progress();\r\n\r\n\t\t\t// tween value linearly\r\n\t\t\tvar from = svg.ToNumberArray(p.from.value);\r\n\t\t\tvar to = svg.ToNumberArray(p.to.value);\r\n\t\t\tvar newValue = '';\r\n\t\t\tfor (var i=0; i startI && child.attribute('x').hasValue()) break; // new group\r\n\t\t\t\t\twidth += child.measureTextRecursive(ctx);\r\n\t\t\t\t}\r\n\t\t\t\treturn -1 * (textAnchor == 'end' ? width : width / 2.0);\r\n\t\t\t}\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\tthis.renderChild = function(ctx, textParent, parent, i) {\r\n\t\t\tvar child = parent.children[i];\r\n\t\t\tif (child.attribute('x').hasValue()) {\r\n\t\t\t\tchild.x = child.attribute('x').toPixels('x') + textParent.getAnchorDelta(ctx, parent, i);\r\n\t\t\t\tif (child.attribute('dx').hasValue()) child.x += child.attribute('dx').toPixels('x');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (child.attribute('dx').hasValue()) textParent.x += child.attribute('dx').toPixels('x');\r\n\t\t\t\tchild.x = textParent.x;\r\n\t\t\t}\r\n\t\t\ttextParent.x = child.x + child.measureText(ctx);\r\n\r\n\t\t\tif (child.attribute('y').hasValue()) {\r\n\t\t\t\tchild.y = child.attribute('y').toPixels('y');\r\n\t\t\t\tif (child.attribute('dy').hasValue()) child.y += child.attribute('dy').toPixels('y');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (child.attribute('dy').hasValue()) textParent.y += child.attribute('dy').toPixels('y');\r\n\t\t\t\tchild.y = textParent.y;\r\n\t\t\t}\r\n\t\t\ttextParent.y = child.y;\r\n\r\n\t\t\tchild.render(ctx);\r\n\r\n\t\t\tfor (var i=0; i0 && text[i-1]!=' ' && i0 && text[i-1]!=' ' && (i == text.length-1 || text[i+1]==' ')) arabicForm = 'initial';\r\n\t\t\t\tif (typeof font.glyphs[c] != 'undefined') {\r\n\t\t\t\t\tglyph = font.glyphs[c][arabicForm];\r\n\t\t\t\t\tif (glyph == null && font.glyphs[c].type == 'glyph') glyph = font.glyphs[c];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tglyph = font.glyphs[c];\r\n\t\t\t}\r\n\t\t\tif (glyph == null) glyph = font.missingGlyph;\r\n\t\t\treturn glyph;\r\n\t\t}\r\n\r\n\t\tthis.renderChildren = function(ctx) {\r\n\t\t\tvar customFont = this.parent.style('font-family').getDefinition();\r\n\t\t\tif (customFont != null) {\r\n\t\t\t\tvar fontSize = this.parent.style('font-size').numValueOrDefault(svg.Font.Parse(svg.ctx.font).fontSize);\r\n\t\t\t\tvar fontStyle = this.parent.style('font-style').valueOrDefault(svg.Font.Parse(svg.ctx.font).fontStyle);\r\n\t\t\t\tvar text = this.getText();\r\n\t\t\t\tif (customFont.isRTL) text = text.split(\"\").reverse().join(\"\");\r\n\r\n\t\t\t\tvar dx = svg.ToNumberArray(this.parent.attribute('dx').value);\r\n\t\t\t\tfor (var i=0; i 0) { return ''; }\r\n\t\t\treturn this.text;\r\n\t\t}\r\n\t}\r\n\tsvg.Element.tspan.prototype = new svg.Element.TextElementBase;\r\n\r\n\t// tref\r\n\tsvg.Element.tref = function(node) {\r\n\t\tthis.base = svg.Element.TextElementBase;\r\n\t\tthis.base(node);\r\n\r\n\t\tthis.getText = function() {\r\n\t\t\tvar element = this.getHrefAttribute().getDefinition();\r\n\t\t\tif (element != null) return element.children[0].getText();\r\n\t\t}\r\n\t}\r\n\tsvg.Element.tref.prototype = new svg.Element.TextElementBase;\r\n\r\n\t// a element\r\n\tsvg.Element.a = function(node) {\r\n\t\tthis.base = svg.Element.TextElementBase;\r\n\t\tthis.base(node);\r\n\r\n\t\tthis.hasText = node.childNodes.length > 0;\r\n\t\tfor (var i=0; i 0) {\r\n\t\t\t\t// render as temporary group\r\n\t\t\t\tvar g = new svg.Element.g();\r\n\t\t\t\tg.children = this.children;\r\n\t\t\t\tg.parent = this;\r\n\t\t\t\tg.render(ctx);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.onclick = function() {\r\n\t\t\twindow.open(this.getHrefAttribute().value);\r\n\t\t}\r\n\r\n\t\tthis.onmousemove = function() {\r\n\t\t\tsvg.ctx.canvas.style.cursor = 'pointer';\r\n\t\t}\r\n\t}\r\n\tsvg.Element.a.prototype = new svg.Element.TextElementBase;\r\n\r\n\t// image element\r\n\tsvg.Element.image = function(node) {\r\n\t\tthis.base = svg.Element.RenderedElementBase;\r\n\t\tthis.base(node);\r\n\r\n\t\tvar href = this.getHrefAttribute().value;\r\n\t\tif (href == '') { return; }\r\n\t\tvar isSvg = href.match(/\\.svg$/)\r\n\r\n\t\tsvg.Images.push(this);\r\n\t\tthis.loaded = false;\r\n\t\tif (!isSvg) {\r\n\t\t\tthis.img = document.createElement('img');\r\n\t\t\tif (svg.opts['useCORS'] == true) { this.img.crossOrigin = 'Anonymous'; }\r\n\t\t\tvar self = this;\r\n\t\t\tthis.img.onload = function() { self.loaded = true; }\r\n\t\t\tthis.img.onerror = function() { svg.log('ERROR: image \"' + href + '\" not found'); self.loaded = true; }\r\n\t\t\tthis.img.src = href;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.img = svg.ajax(href);\r\n\t\t\tthis.loaded = true;\r\n\t\t}\r\n\r\n\t\tthis.renderChildren = function(ctx) {\r\n\t\t\tvar x = this.attribute('x').toPixels('x');\r\n\t\t\tvar y = this.attribute('y').toPixels('y');\r\n\r\n\t\t\tvar width = this.attribute('width').toPixels('x');\r\n\t\t\tvar height = this.attribute('height').toPixels('y');\r\n\t\t\tif (width == 0 || height == 0) return;\r\n\r\n\t\t\tctx.save();\r\n\t\t\tif (isSvg) {\r\n\t\t\t\tctx.drawSvg(this.img, x, y, width, height);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tctx.translate(x, y);\r\n\t\t\t\tsvg.AspectRatio(ctx,\r\n\t\t\t\t\t\t\t\tthis.attribute('preserveAspectRatio').value,\r\n\t\t\t\t\t\t\t\twidth,\r\n\t\t\t\t\t\t\t\tthis.img.width,\r\n\t\t\t\t\t\t\t\theight,\r\n\t\t\t\t\t\t\t\tthis.img.height,\r\n\t\t\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t\t\t0);\r\n\t\t\t\tctx.drawImage(this.img, 0, 0);\r\n\t\t\t}\r\n\t\t\tctx.restore();\r\n\t\t}\r\n\r\n\t\tthis.getBoundingBox = function() {\r\n\t\t\tvar x = this.attribute('x').toPixels('x');\r\n\t\t\tvar y = this.attribute('y').toPixels('y');\r\n\t\t\tvar width = this.attribute('width').toPixels('x');\r\n\t\t\tvar height = this.attribute('height').toPixels('y');\r\n\t\t\treturn new svg.BoundingBox(x, y, x + width, y + height);\r\n\t\t}\r\n\t}\r\n\tsvg.Element.image.prototype = new svg.Element.RenderedElementBase;\r\n\r\n\t// group element\r\n\tsvg.Element.g = function(node) {\r\n\t\tthis.base = svg.Element.RenderedElementBase;\r\n\t\tthis.base(node);\r\n\r\n\t\tthis.getBoundingBox = function() {\r\n\t\t\tvar bb = new svg.BoundingBox();\r\n\t\t\tfor (var i=0; i 0) {\r\n\t\t\t\t\t\t\t\t\tvar urlStart = srcs[s].indexOf('url');\r\n\t\t\t\t\t\t\t\t\tvar urlEnd = srcs[s].indexOf(')', urlStart);\r\n\t\t\t\t\t\t\t\t\tvar url = srcs[s].substr(urlStart + 5, urlEnd - urlStart - 6);\r\n\t\t\t\t\t\t\t\t\tvar doc = svg.parseXml(svg.ajax(url));\r\n\t\t\t\t\t\t\t\t\tvar fonts = doc.getElementsByTagName('font');\r\n\t\t\t\t\t\t\t\t\tfor (var f=0; f label > input,\\n.context-menu-item > label > textarea {\\n -webkit-user-select: text;\\n -moz-user-select: text;\\n -ms-user-select: text;\\n user-select: text;\\n}\\n\\n.context-menu-item.hover {\\n cursor: pointer;\\n background-color: #39F;\\n}\\n\\n.context-menu-item.disabled {\\n color: #666;\\n}\\n\\n.context-menu-input.hover,\\n.context-menu-item.disabled.hover {\\n cursor: default;\\n background-color: #EEE;\\n}\\n\\n.context-menu-submenu:after {\\n content: \\\">\\\";\\n color: #666;\\n position: absolute;\\n top: 0;\\n right: 3px;\\n z-index: 1;\\n}\\n\\n/* icons\\n #protip:\\n In case you want to use sprites for icons (which I would suggest you do) have a look at\\n http://css-tricks.com/13224-pseudo-spriting/ to get an idea of how to implement\\n .context-menu-item.icon:before {}\\n */\\n.context-menu-item.icon { min-height: 18px; background-repeat: no-repeat; background-position: 4px 2px; }\\n\\n/* vertically align inside labels */\\n.context-menu-input > label > * { vertical-align: top; }\\n\\n/* position checkboxes and radios as icons */\\n.context-menu-input > label > input[type=\\\"checkbox\\\"],\\n.context-menu-input > label > input[type=\\\"radio\\\"] {\\n margin-left: -17px;\\n}\\n.context-menu-input > label > span {\\n margin-left: 5px;\\n}\\n\\n.context-menu-input > label,\\n.context-menu-input > label > input[type=\\\"text\\\"],\\n.context-menu-input > label > textarea,\\n.context-menu-input > label > select {\\n display: block;\\n width: 100%;\\n\\n -webkit-box-sizing: border-box;\\n -moz-box-sizing: border-box;\\n -ms-box-sizing: border-box;\\n -o-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\n\\n.context-menu-input > label > textarea {\\n height: 100px;\\n}\\n.context-menu-item > .context-menu-list {\\n display: none;\\n /* re-positioned by js */\\n right: -5px;\\n top: 5px;\\n}\\n\\n.context-menu-item.hover > .context-menu-list {\\n display: block;\\n}\\n\\n.context-menu-accesskey {\\n text-decoration: underline;\\n}\\n\", \"\"]);\n\n// exports\n\n\n/***/ }),\n\n/***/ \"./node_modules/css-loader/lib/css-base.js\":\n/*!*************************************************!*\\\n !*** ./node_modules/css-loader/lib/css-base.js ***!\n \\*************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/raw-loader/index.js!./src/lib/Class.exec.js\":\n/*!*********************************************************!*\\\n !*** ./node_modules/raw-loader!./src/lib/Class.exec.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"/* \\n * Simple JavaScript Inheritance \\n * By John Resig http://ejohn.org/ \\n * MIT Licensed. \\n * \\n ****************************************************** \\n * Example Usage \\n ****************************************************** \\n var Person = Class.extend({ \\n init: function(isDancing){ \\n this.dancing = isDancing; \\n }, \\n dance: function(){ \\n return this.dancing; \\n } \\n}); \\n\\nvar Ninja = Person.extend({ \\n init: function(){ \\n this._super( false ); \\n }, \\n dance: function(){ \\n // Call the inherited version of dance() \\n return this._super(); \\n }, \\n swingSword: function(){ \\n return true; \\n } \\n}); \\n\\nvar p = new Person(true); \\np.dance(); // => true \\n\\nvar n = new Ninja(); \\nn.dance(); // => false \\nn.swingSword(); // => true \\n\\n// Should all be true \\np instanceof Person && p instanceof Class && \\nn instanceof Ninja && n instanceof Person && n instanceof Class \\n\\n ****************************************************** \\n */ \\n \\n// Inspired by base2 and Prototype \\n(function(){ \\n var fnTest = /xyz/.test(function(){xyz;}) ? /\\\\b_super\\\\b/ : /.*/; \\n\\n // The base Class implementation (does nothing) \\n this.Class = function(){}; \\n \\n\\n // Create a new Class that inherits from this class \\n Class.extend = function(prop) { \\n var _super = this.prototype; \\n \\n // Instantiate a base class (but only create the instance, \\n // don't run the init constructor) \\n initializing = true; \\n var prototype = new this(); \\n initializing = false; \\n \\n \\n // Copy the properties over onto the new prototype \\n for (var name in prop) { \\n // Check if we're overwriting an existing function \\n prototype[name] = typeof prop[name] == \\\"function\\\" && \\n typeof _super[name] == \\\"function\\\" && fnTest.test(prop[name]) ? \\n (function(name, fn){ \\n return function() { \\n var tmp = this._super; \\n \\n // Add a new ._super() method that is the same method \\n // but on the super-class \\n this._super = _super[name]; \\n \\n // The method only need to be bound temporarily, so we \\n // remove it when we're done executing \\n var ret = fn.apply(this, arguments); \\n this._super = tmp; \\n \\n return ret; \\n }; \\n })(name, prop[name]) : \\n prop[name]; \\n } \\n \\n // The dummy class constructor \\n function Class() { \\n // All construction is actually done in the init method \\n if ( !initializing && this.init ) \\n this.init.apply(this, arguments); \\n } \\n \\n // Populate our constructed prototype object \\n Class.prototype = prototype; \\n \\n // Enforce the constructor to be what we expect \\n Class.prototype.constructor = Class; \\n\\n // And make this class extendable \\n Class.extend = arguments.callee; \\n \\n // EXTENSION BY Draw2D.org to inject methods into an existing class to provide plugins or \\n // bugfixes for further releases \\n // \\n Class.inject = function (prop) { \\n var proto = this.prototype; \\n var parent = {}; \\n for (var name in prop) { \\n if (typeof (prop[name]) == \\\"function\\\" && typeof (proto[name]) == \\\"function\\\" && fnTest.test(prop[name])) { \\n parent[name] = proto[name]; \\n proto[name] = (function (name, fn) { \\n return function () { \\n var tmp = this.parent; \\n this.parent = parent[name]; \\n var ret = fn.apply(this, arguments); \\n this.parent = tmp; \\n return ret; \\n }; \\n })(name, prop[name]); \\n } else { \\n proto[name] = prop[name]; \\n } \\n } \\n }; \\n \\n return Class; \\n }; \\n})();\\n \\n\"\n\n/***/ }),\n\n/***/ \"./node_modules/raw-loader/index.js!./src/lib/pathfinding.exec.js\":\n/*!***************************************************************!*\\\n !*** ./node_modules/raw-loader!./src/lib/pathfinding.exec.js ***!\n \\***************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"var PF=function(){var e=function(t,n){var r=e.resolve(t,n||\\\"/\\\"),i=e.modules[r];if(!i)throw new Error(\\\"Failed to resolve module \\\"+t+\\\", tried \\\"+r);var s=i._cached?i._cached:i();return s};return e.paths=[],e.modules={},e.extensions=[\\\".js\\\",\\\".coffee\\\"],e._core={assert:!0,events:!0,fs:!0,path:!0,vm:!0},e.resolve=function(){return function(t,n){function u(t){if(e.modules[t])return t;for(var n=0;n=0;i--){if(t[i]===\\\"node_modules\\\")continue;var s=t.slice(0,i+1).join(\\\"/\\\")+\\\"/node_modules\\\";n.push(s)}return n}n||(n=\\\"/\\\");if(e._core[t])return t;var r=e.modules.path();n=r.resolve(\\\"/\\\",n);var i=n||\\\"/\\\";if(t.match(/^(?:\\\\.\\\\.?\\\\/|\\\\/)/)){var s=u(r.resolve(i,t))||a(r.resolve(i,t));if(s)return s}var o=f(t,i);if(o)return o;throw new Error(\\\"Cannot find module '\\\"+t+\\\"'\\\")}}(),e.alias=function(t,n){var r=e.modules.path(),i=null;try{i=e.resolve(t+\\\"/package.json\\\",\\\"/\\\")}catch(s){i=e.resolve(t,\\\"/\\\")}var o=r.dirname(i),u=(Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t})(e.modules);for(var a=0;a0){var n=e.shift();n()}}},!0),function(n){t?(e.push(n),window.postMessage(\\\"browserify-tick\\\",\\\"*\\\")):setTimeout(n,0)}}()),process.title||(process.title=\\\"browser\\\"),process.binding||(process.binding=function(t){if(t===\\\"evals\\\")return e(\\\"vm\\\");throw new Error(\\\"No such module\\\")}),process.cwd||(process.cwd=function(){return\\\".\\\"}),process.env||(process.env={}),process.argv||(process.argv=[]),e.define(\\\"path\\\",function(e,t,n,r,i){function s(e,t){var n=[];for(var r=0;r=0;r--){var i=e[r];i==\\\".\\\"?e.splice(r,1):i===\\\"..\\\"?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift(\\\"..\\\");return e}var u=/^(.+\\\\/(?!$)|\\\\/)?((?:.+?)?(\\\\.[^.]*)?)$/;n.resolve=function(){var e=\\\"\\\",t=!1;for(var n=arguments.length;n>=-1&&!t;n--){var r=n>=0?arguments[n]:process.cwd();if(typeof r!=\\\"string\\\"||!r)continue;e=r+\\\"/\\\"+e,t=r.charAt(0)===\\\"/\\\"}return e=o(s(e.split(\\\"/\\\"),function(e){return!!e}),!t).join(\\\"/\\\"),(t?\\\"/\\\":\\\"\\\")+e||\\\".\\\"},n.normalize=function(e){var t=e.charAt(0)===\\\"/\\\",n=e.slice(-1)===\\\"/\\\";return e=o(s(e.split(\\\"/\\\"),function(e){return!!e}),!t).join(\\\"/\\\"),!e&&!t&&(e=\\\".\\\"),e&&n&&(e+=\\\"/\\\"),(t?\\\"/\\\":\\\"\\\")+e},n.join=function(){var e=Array.prototype.slice.call(arguments,0);return n.normalize(s(e,function(e,t){return e&&typeof e==\\\"string\\\"}).join(\\\"/\\\"))},n.dirname=function(e){var t=u.exec(e)[1]||\\\"\\\",n=!1;return t?t.length===1||n&&t.length<=3&&t.charAt(1)===\\\":\\\"?t:t.substring(0,t.length-1):\\\".\\\"},n.basename=function(e,t){var n=u.exec(e)[2]||\\\"\\\";return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},n.extname=function(e){return u.exec(e)[3]||\\\"\\\"}}),e.define(\\\"/core/Node.js\\\",function(e,t,n,r,i){function s(e,t,n){this.x=e,this.y=t,this.walkable=n===undefined?!0:n}t.exports=s}),e.define(\\\"/core/Grid.js\\\",function(e,t,n,r,i){function o(e,t,n){this.width=e,this.height=t,this.nodes=this._buildNodes(e,t,n)}var s=e(\\\"./Node\\\");o.prototype._buildNodes=function(e,t,n){var r,i,o=new Array(t),u;for(r=0;r=0&&e=0&&tt?1:0},f=function(e,t,i,s,o){var u;i==null&&(i=0),o==null&&(o=n);if(i<0)throw new Error(\\\"lo must be non-negative\\\");s==null&&(s=e.length);while(o(i,s)<0)u=r((i+s)/2),o(t,e[u])<0?s=u:i=u+1;return[].splice.apply(e,[i,i-i].concat(t)),t},o=function(e,t,r){return r==null&&(r=n),e.push(t),d(e,0,e.length-1,r)},s=function(e,t){var r,i;return t==null&&(t=n),r=e.pop(),e.length?(i=e[0],e[0]=r,v(e,0,t)):i=r,i},a=function(e,t,r){var i;return r==null&&(r=n),i=e[0],e[0]=t,v(e,0,r),i},u=function(e,t,r){var i;return r==null&&(r=n),e.length&&r(e[0],t)<0&&(i=[e[0],t],t=i[0],e[0]=i[1],v(e,0,r)),t},i=function(e,t){var i,s,o,u,a,f,l,c;t==null&&(t=n),f=function(){c=[];for(var t=0,n=r(e.length/2);0<=n?tn;0<=n?t++:t--)c.push(t);return c}.apply(this).reverse(),l=[];for(s=0,u=f.length;sm;u=0<=m?++p:--p)g.push(s(e,r));return g},d=function(e,t,r,i){var s,o,u;i==null&&(i=n),s=e[r];while(r>t){u=r-1>>1,o=e[u];if(i(s,o)<0){e[r]=o,r=u;continue}break}return e[r]=s},v=function(e,t,r){var i,s,o,u,a;r==null&&(r=n),s=e.length,a=t,o=e[t],i=2*t+1;while(i-f&&(l-=f,e+=o),c Arguments\\n\\n - name (string) name of the *event*, dot (`.`) or slash (`/`) separated\\n - scope (object) context for the event handlers\\n - varargs (...) the rest of arguments will be sent to event handlers\\n\\n = (object) array of returned values from the listeners\\n \\\\*/\\n eve = function (name, scope) {\\n name = String(name);\\n var e = events,\\n oldstop = stop,\\n args = Array.prototype.slice.call(arguments, 2),\\n listeners = eve.listeners(name),\\n z = 0,\\n f = false,\\n l,\\n indexed = [],\\n queue = {},\\n out = [],\\n ce = current_event,\\n errors = [];\\n current_event = name;\\n stop = 0;\\n for (var i = 0, ii = listeners.length; i < ii; i++) if (\\\"zIndex\\\" in listeners[i]) {\\n indexed.push(listeners[i].zIndex);\\n if (listeners[i].zIndex < 0) {\\n queue[listeners[i].zIndex] = listeners[i];\\n }\\n }\\n indexed.sort(numsort);\\n while (indexed[z] < 0) {\\n l = queue[indexed[z++]];\\n out.push(l.apply(scope, args));\\n if (stop) {\\n stop = oldstop;\\n return out;\\n }\\n }\\n for (i = 0; i < ii; i++) {\\n l = listeners[i];\\n if (\\\"zIndex\\\" in l) {\\n if (l.zIndex == indexed[z]) {\\n out.push(l.apply(scope, args));\\n if (stop) {\\n break;\\n }\\n do {\\n z++;\\n l = queue[indexed[z]];\\n l && out.push(l.apply(scope, args));\\n if (stop) {\\n break;\\n }\\n } while (l)\\n } else {\\n queue[l.zIndex] = l;\\n }\\n } else {\\n out.push(l.apply(scope, args));\\n if (stop) {\\n break;\\n }\\n }\\n }\\n stop = oldstop;\\n current_event = ce;\\n return out.length ? out : null;\\n };\\n // Undocumented. Debug only.\\n eve._events = events;\\n /*\\\\\\n * eve.listeners\\n [ method ]\\n\\n * Internal method which gives you array of all event handlers that will be triggered by the given `name`.\\n\\n > Arguments\\n\\n - name (string) name of the event, dot (`.`) or slash (`/`) separated\\n\\n = (array) array of event handlers\\n \\\\*/\\n eve.listeners = function (name) {\\n var names = name.split(separator),\\n e = events,\\n item,\\n items,\\n k,\\n i,\\n ii,\\n j,\\n jj,\\n nes,\\n es = [e],\\n out = [];\\n for (i = 0, ii = names.length; i < ii; i++) {\\n nes = [];\\n for (j = 0, jj = es.length; j < jj; j++) {\\n e = es[j].n;\\n items = [e[names[i]], e[wildcard]];\\n k = 2;\\n while (k--) {\\n item = items[k];\\n if (item) {\\n nes.push(item);\\n out = out.concat(item.f || []);\\n }\\n }\\n }\\n es = nes;\\n }\\n return out;\\n };\\n\\n /*\\\\\\n * eve.on\\n [ method ]\\n **\\n * Binds given event handler with a given name. You can use wildcards “`*`” for the names:\\n | eve.on(\\\"*.under.*\\\", f);\\n | eve(\\\"mouse.under.floor\\\"); // triggers f\\n * Use @eve to trigger the listener.\\n **\\n > Arguments\\n **\\n - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\\n - f (function) event handler function\\n **\\n = (function) returned function accepts a single numeric parameter that represents z-index of the handler. It is an optional feature and only used when you need to ensure that some subset of handlers will be invoked in a given order, despite of the order of assignment.\\n > Example:\\n | eve.on(\\\"mouse\\\", eatIt)(2);\\n | eve.on(\\\"mouse\\\", scream);\\n | eve.on(\\\"mouse\\\", catchIt)(1);\\n * This will ensure that `catchIt()` function will be called before `eatIt()`.\\n *\\n * If you want to put your handler before non-indexed handlers, specify a negative value.\\n * Note: I assume most of the time you don’t need to worry about z-index, but it’s nice to have this feature “just in case”.\\n \\\\*/\\n eve.on = function (name, f) {\\n name = String(name);\\n if (typeof f != \\\"function\\\") {\\n return function () {};\\n }\\n var names = name.split(separator),\\n e = events;\\n for (var i = 0, ii = names.length; i < ii; i++) {\\n e = e.n;\\n e = e.hasOwnProperty(names[i]) && e[names[i]] || (e[names[i]] = {n: {}});\\n }\\n e.f = e.f || [];\\n for (i = 0, ii = e.f.length; i < ii; i++) if (e.f[i] == f) {\\n return fun;\\n }\\n e.f.push(f);\\n return function (zIndex) {\\n if (+zIndex == +zIndex) {\\n f.zIndex = +zIndex;\\n }\\n };\\n };\\n /*\\\\\\n * eve.f\\n [ method ]\\n **\\n * Returns function that will fire given event with optional arguments.\\n * Arguments that will be passed to the result function will be also\\n * concated to the list of final arguments.\\n | el.onclick = eve.f(\\\"click\\\", 1, 2);\\n | eve.on(\\\"click\\\", function (a, b, c) {\\n | console.log(a, b, c); // 1, 2, [event object]\\n | });\\n > Arguments\\n - event (string) event name\\n - varargs (…) and any other arguments\\n = (function) possible event handler function\\n \\\\*/\\n eve.f = function (event) {\\n var attrs = [].slice.call(arguments, 1);\\n return function () {\\n eve.apply(null, [event, null].concat(attrs).concat([].slice.call(arguments, 0)));\\n };\\n };\\n /*\\\\\\n * eve.stop\\n [ method ]\\n **\\n * Is used inside an event handler to stop the event, preventing any subsequent listeners from firing.\\n \\\\*/\\n eve.stop = function () {\\n stop = 1;\\n };\\n /*\\\\\\n * eve.nt\\n [ method ]\\n **\\n * Could be used inside event handler to figure out actual name of the event.\\n **\\n > Arguments\\n **\\n - subname (string) #optional subname of the event\\n **\\n = (string) name of the event, if `subname` is not specified\\n * or\\n = (boolean) `true`, if current event’s name contains `subname`\\n \\\\*/\\n eve.nt = function (subname) {\\n if (subname) {\\n return new RegExp(\\\"(?:\\\\\\\\.|\\\\\\\\/|^)\\\" + subname + \\\"(?:\\\\\\\\.|\\\\\\\\/|$)\\\").test(current_event);\\n }\\n return current_event;\\n };\\n /*\\\\\\n * eve.nts\\n [ method ]\\n **\\n * Could be used inside event handler to figure out actual name of the event.\\n **\\n **\\n = (array) names of the event\\n \\\\*/\\n eve.nts = function () {\\n return current_event.split(separator);\\n };\\n /*\\\\\\n * eve.off\\n [ method ]\\n **\\n * Removes given function from the list of event listeners assigned to given name.\\n * If no arguments specified all the events will be cleared.\\n **\\n > Arguments\\n **\\n - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\\n - f (function) event handler function\\n \\\\*/\\n /*\\\\\\n * eve.unbind\\n [ method ]\\n **\\n * See @eve.off\\n \\\\*/\\n eve.off = eve.unbind = function (name, f) {\\n if (!name) {\\n eve._events = events = {n: {}};\\n return;\\n }\\n var names = name.split(separator),\\n e,\\n key,\\n splice,\\n i, ii, j, jj,\\n cur = [events];\\n for (i = 0, ii = names.length; i < ii; i++) {\\n for (j = 0; j < cur.length; j += splice.length - 2) {\\n splice = [j, 1];\\n e = cur[j].n;\\n if (names[i] != wildcard) {\\n if (e[names[i]]) {\\n splice.push(e[names[i]]);\\n }\\n } else {\\n for (key in e) if (e[has](key)) {\\n splice.push(e[key]);\\n }\\n }\\n cur.splice.apply(cur, splice);\\n }\\n }\\n for (i = 0, ii = cur.length; i < ii; i++) {\\n e = cur[i];\\n while (e.n) {\\n if (f) {\\n if (e.f) {\\n for (j = 0, jj = e.f.length; j < jj; j++) if (e.f[j] == f) {\\n e.f.splice(j, 1);\\n break;\\n }\\n !e.f.length && delete e.f;\\n }\\n for (key in e.n) if (e.n[has](key) && e.n[key].f) {\\n var funcs = e.n[key].f;\\n for (j = 0, jj = funcs.length; j < jj; j++) if (funcs[j] == f) {\\n funcs.splice(j, 1);\\n break;\\n }\\n !funcs.length && delete e.n[key].f;\\n }\\n } else {\\n delete e.f;\\n for (key in e.n) if (e.n[has](key) && e.n[key].f) {\\n delete e.n[key].f;\\n }\\n }\\n e = e.n;\\n }\\n }\\n };\\n /*\\\\\\n * eve.once\\n [ method ]\\n **\\n * Binds given event handler with a given name to only run once then unbind itself.\\n | eve.once(\\\"login\\\", f);\\n | eve(\\\"login\\\"); // triggers f\\n | eve(\\\"login\\\"); // no listeners\\n * Use @eve to trigger the listener.\\n **\\n > Arguments\\n **\\n - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\\n - f (function) event handler function\\n **\\n = (function) same return function as @eve.on\\n \\\\*/\\n eve.once = function (name, f) {\\n var f2 = function () {\\n eve.unbind(name, f2);\\n return f.apply(this, arguments);\\n };\\n return eve.on(name, f2);\\n };\\n /*\\\\\\n * eve.version\\n [ property (string) ]\\n **\\n * Current version of the library.\\n \\\\*/\\n eve.version = version;\\n eve.toString = function () {\\n return \\\"You are running Eve \\\" + version;\\n };\\n\\n return eve;\\n}));\\n\\n// ┌────────────────────────────────────────────────────────────────────┐ \\\\\\\\\\n// │ Raphaël 2.1.4 - JavaScript Vector Library │ \\\\\\\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\\\\\\n// │ Core Module │ \\\\\\\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\\\\\\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license.│ \\\\\\\\\\n// └────────────────────────────────────────────────────────────────────┘ \\\\\\\\\\n\\n(function (glob, factory) {\\n if (typeof define === \\\"function\\\" && define.amd) {\\n define(\\\"raphael.core\\\", [\\\"eve\\\"], function(eve) {\\n return factory(eve);\\n });\\n } else if (typeof exports === \\\"object\\\") {\\n module.exports = factory(require(\\\"eve\\\"));\\n } else {\\n glob.Raphael = factory(glob.eve);\\n }\\n}(this, function (eve) {\\n /*\\\\\\n * Raphael\\n [ method ]\\n **\\n * Creates a canvas object on which to draw.\\n * You must do this first, as all future calls to drawing methods\\n * from this instance will be bound to this canvas.\\n > Parameters\\n **\\n - container (HTMLElement|string) DOM element or its ID which is going to be a parent for drawing surface\\n - width (number)\\n - height (number)\\n - callback (function) #optional callback function which is going to be executed in the context of newly created paper\\n * or\\n - x (number)\\n - y (number)\\n - width (number)\\n - height (number)\\n - callback (function) #optional callback function which is going to be executed in the context of newly created paper\\n * or\\n - all (array) (first 3 or 4 elements in the array are equal to [containerID, width, height] or [x, y, width, height]. The rest are element descriptions in format {type: type, }). See @Paper.add.\\n - callback (function) #optional callback function which is going to be executed in the context of newly created paper\\n * or\\n - onReadyCallback (function) function that is going to be called on DOM ready event. You can also subscribe to this event via Eve’s “DOMLoad” event. In this case method returns `undefined`.\\n = (object) @Paper\\n > Usage\\n | // Each of the following examples create a canvas\\n | // that is 320px wide by 200px high.\\n | // Canvas is created at the viewport’s 10,50 coordinate.\\n | var paper = Raphael(10, 50, 320, 200);\\n | // Canvas is created at the top left corner of the #notepad element\\n | // (or its top right corner in dir=\\\"rtl\\\" elements)\\n | var paper = Raphael(document.getElementById(\\\"notepad\\\"), 320, 200);\\n | // Same as above\\n | var paper = Raphael(\\\"notepad\\\", 320, 200);\\n | // Image dump\\n | var set = Raphael([\\\"notepad\\\", 320, 200, {\\n | type: \\\"rect\\\",\\n | x: 10,\\n | y: 10,\\n | width: 25,\\n | height: 25,\\n | stroke: \\\"#f00\\\"\\n | }, {\\n | type: \\\"text\\\",\\n | x: 30,\\n | y: 40,\\n | text: \\\"Dump\\\"\\n | }]);\\n \\\\*/\\n function R(first) {\\n if (R.is(first, \\\"function\\\")) {\\n return loaded ? first() : eve.on(\\\"raphael.DOMload\\\", first);\\n } else if (R.is(first, array)) {\\n return R._engine.create[apply](R, first.splice(0, 3 + R.is(first[0], nu))).add(first);\\n } else {\\n var args = Array.prototype.slice.call(arguments, 0);\\n if (R.is(args[args.length - 1], \\\"function\\\")) {\\n var f = args.pop();\\n return loaded ? f.call(R._engine.create[apply](R, args)) : eve.on(\\\"raphael.DOMload\\\", function () {\\n f.call(R._engine.create[apply](R, args));\\n });\\n } else {\\n return R._engine.create[apply](R, arguments);\\n }\\n }\\n }\\n R.version = \\\"2.1.4\\\";\\n R.eve = eve;\\n var loaded,\\n separator = /[, ]+/,\\n elements = {circle: 1, rect: 1, path: 1, ellipse: 1, text: 1, image: 1},\\n formatrg = /\\\\{(\\\\d+)\\\\}/g,\\n proto = \\\"prototype\\\",\\n has = \\\"hasOwnProperty\\\",\\n g = {\\n doc: document,\\n win: window\\n },\\n oldRaphael = {\\n was: Object.prototype[has].call(g.win, \\\"Raphael\\\"),\\n is: g.win.Raphael\\n },\\n Paper = function () {\\n /*\\\\\\n * Paper.ca\\n [ property (object) ]\\n **\\n * Shortcut for @Paper.customAttributes\\n \\\\*/\\n /*\\\\\\n * Paper.customAttributes\\n [ property (object) ]\\n **\\n * If you have a set of attributes that you would like to represent\\n * as a function of some number you can do it easily with custom attributes:\\n > Usage\\n | paper.customAttributes.hue = function (num) {\\n | num = num % 1;\\n | return {fill: \\\"hsb(\\\" + num + \\\", 0.75, 1)\\\"};\\n | };\\n | // Custom attribute “hue” will change fill\\n | // to be given hue with fixed saturation and brightness.\\n | // Now you can use it like this:\\n | var c = paper.circle(10, 10, 10).attr({hue: .45});\\n | // or even like this:\\n | c.animate({hue: 1}, 1e3);\\n |\\n | // You could also create custom attribute\\n | // with multiple parameters:\\n | paper.customAttributes.hsb = function (h, s, b) {\\n | return {fill: \\\"hsb(\\\" + [h, s, b].join(\\\",\\\") + \\\")\\\"};\\n | };\\n | c.attr({hsb: \\\"0.5 .8 1\\\"});\\n | c.animate({hsb: [1, 0, 0.5]}, 1e3);\\n \\\\*/\\n this.ca = this.customAttributes = {};\\n },\\n paperproto,\\n appendChild = \\\"appendChild\\\",\\n apply = \\\"apply\\\",\\n concat = \\\"concat\\\",\\n supportsTouch = ('ontouchstart' in g.win) || g.win.DocumentTouch && g.doc instanceof DocumentTouch, //taken from Modernizr touch test\\n E = \\\"\\\",\\n S = \\\" \\\",\\n Str = String,\\n split = \\\"split\\\",\\n events = \\\"click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel\\\"[split](S),\\n touchMap = {\\n mousedown: \\\"touchstart\\\",\\n mousemove: \\\"touchmove\\\",\\n mouseup: \\\"touchend\\\"\\n },\\n lowerCase = Str.prototype.toLowerCase,\\n math = Math,\\n mmax = math.max,\\n mmin = math.min,\\n abs = math.abs,\\n pow = math.pow,\\n PI = math.PI,\\n nu = \\\"number\\\",\\n string = \\\"string\\\",\\n array = \\\"array\\\",\\n toString = \\\"toString\\\",\\n fillString = \\\"fill\\\",\\n objectToString = Object.prototype.toString,\\n paper = {},\\n push = \\\"push\\\",\\n ISURL = R._ISURL = /^url\\\\(['\\\"]?(.+?)['\\\"]?\\\\)$/i,\\n colourRegExp = /^\\\\s*((#[a-f\\\\d]{6})|(#[a-f\\\\d]{3})|rgba?\\\\(\\\\s*([\\\\d\\\\.]+%?\\\\s*,\\\\s*[\\\\d\\\\.]+%?\\\\s*,\\\\s*[\\\\d\\\\.]+%?(?:\\\\s*,\\\\s*[\\\\d\\\\.]+%?)?)\\\\s*\\\\)|hsba?\\\\(\\\\s*([\\\\d\\\\.]+(?:deg|\\\\xb0|%)?\\\\s*,\\\\s*[\\\\d\\\\.]+%?\\\\s*,\\\\s*[\\\\d\\\\.]+(?:%?\\\\s*,\\\\s*[\\\\d\\\\.]+)?)%?\\\\s*\\\\)|hsla?\\\\(\\\\s*([\\\\d\\\\.]+(?:deg|\\\\xb0|%)?\\\\s*,\\\\s*[\\\\d\\\\.]+%?\\\\s*,\\\\s*[\\\\d\\\\.]+(?:%?\\\\s*,\\\\s*[\\\\d\\\\.]+)?)%?\\\\s*\\\\))\\\\s*$/i,\\n isnan = {\\\"NaN\\\": 1, \\\"Infinity\\\": 1, \\\"-Infinity\\\": 1},\\n bezierrg = /^(?:cubic-)?bezier\\\\(([^,]+),([^,]+),([^,]+),([^\\\\)]+)\\\\)/,\\n round = math.round,\\n setAttribute = \\\"setAttribute\\\",\\n toFloat = parseFloat,\\n toInt = parseInt,\\n upperCase = Str.prototype.toUpperCase,\\n availableAttrs = R._availableAttrs = {\\n \\\"arrow-end\\\": \\\"none\\\",\\n \\\"arrow-start\\\": \\\"none\\\",\\n blur: 0,\\n \\\"clip-rect\\\": \\\"0 0 1e9 1e9\\\",\\n cursor: \\\"default\\\",\\n cx: 0,\\n cy: 0,\\n fill: \\\"#fff\\\",\\n \\\"fill-opacity\\\": 1,\\n font: '10px \\\"Arial\\\"',\\n \\\"font-family\\\": '\\\"Arial\\\"',\\n \\\"font-size\\\": \\\"10\\\",\\n \\\"font-style\\\": \\\"normal\\\",\\n \\\"font-weight\\\": 400,\\n gradient: 0,\\n height: 0,\\n href: \\\"http://raphaeljs.com/\\\",\\n \\\"letter-spacing\\\": 0,\\n opacity: 1,\\n path: \\\"M0,0\\\",\\n r: 0,\\n rx: 0,\\n ry: 0,\\n src: \\\"\\\",\\n stroke: \\\"#000\\\",\\n \\\"stroke-dasharray\\\": \\\"\\\",\\n \\\"stroke-linecap\\\": \\\"butt\\\",\\n \\\"stroke-linejoin\\\": \\\"butt\\\",\\n \\\"stroke-miterlimit\\\": 0,\\n \\\"stroke-opacity\\\": 1,\\n \\\"stroke-width\\\": 1,\\n \\\"stroke-scale\\\": false, // FreeGroup: draw2d enhancement\\n target: \\\"_blank\\\",\\n \\\"text-anchor\\\": \\\"middle\\\",\\n title: \\\"Raphael\\\",\\n transform: \\\"\\\",\\n width: 0,\\n x: 0,\\n y: 0\\n },\\n availableAnimAttrs = R._availableAnimAttrs = {\\n blur: nu,\\n \\\"clip-rect\\\": \\\"csv\\\",\\n cx: nu,\\n cy: nu,\\n fill: \\\"colour\\\",\\n \\\"fill-opacity\\\": nu,\\n \\\"font-size\\\": nu,\\n height: nu,\\n opacity: nu,\\n path: \\\"path\\\",\\n r: nu,\\n rx: nu,\\n ry: nu,\\n stroke: \\\"colour\\\",\\n \\\"stroke-opacity\\\": nu,\\n \\\"stroke-width\\\": nu,\\n transform: \\\"transform\\\",\\n width: nu,\\n x: nu,\\n y: nu\\n },\\n whitespace = /[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029]/g,\\n commaSpaces = /[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029]*,[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029]*/,\\n hsrg = {hs: 1, rg: 1},\\n p2s = /,?([achlmqrstvxz]),?/gi,\\n pathCommand = /([achlmrqstvz])[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029,]*((-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029]*,?[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029]*)+)/ig,\\n tCommand = /([rstm])[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029,]*((-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029]*,?[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029]*)+)/ig,\\n pathValues = /(-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?)[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029]*,?[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029]*/ig,\\n radial_gradient = R._radial_gradient = /^r(?:\\\\(([^,]+?)[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029]*,[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029]*([^\\\\)]+?)\\\\))?/,\\n eldata = {},\\n sortByKey = function (a, b) {\\n return a.key - b.key;\\n },\\n sortByNumber = function (a, b) {\\n return toFloat(a) - toFloat(b);\\n },\\n fun = function () {},\\n pipe = function (x) {\\n return x;\\n },\\n rectPath = R._rectPath = function (x, y, w, h, r) {\\n if (r) {\\n return [[\\\"M\\\", x + r, y], [\\\"l\\\", w - r * 2, 0], [\\\"a\\\", r, r, 0, 0, 1, r, r], [\\\"l\\\", 0, h - r * 2], [\\\"a\\\", r, r, 0, 0, 1, -r, r], [\\\"l\\\", r * 2 - w, 0], [\\\"a\\\", r, r, 0, 0, 1, -r, -r], [\\\"l\\\", 0, r * 2 - h], [\\\"a\\\", r, r, 0, 0, 1, r, -r], [\\\"z\\\"]];\\n }\\n return [[\\\"M\\\", x, y], [\\\"l\\\", w, 0], [\\\"l\\\", 0, h], [\\\"l\\\", -w, 0], [\\\"z\\\"]];\\n },\\n ellipsePath = function (x, y, rx, ry) {\\n if (ry == null) {\\n ry = rx;\\n }\\n return [[\\\"M\\\", x, y], [\\\"m\\\", 0, -ry], [\\\"a\\\", rx, ry, 0, 1, 1, 0, 2 * ry], [\\\"a\\\", rx, ry, 0, 1, 1, 0, -2 * ry], [\\\"z\\\"]];\\n },\\n getPath = R._getPath = {\\n path: function (el) {\\n return el.attr(\\\"path\\\");\\n },\\n circle: function (el) {\\n var a = el.attrs;\\n return ellipsePath(a.cx, a.cy, a.r);\\n },\\n ellipse: function (el) {\\n var a = el.attrs;\\n return ellipsePath(a.cx, a.cy, a.rx, a.ry);\\n },\\n rect: function (el) {\\n var a = el.attrs;\\n return rectPath(a.x, a.y, a.width, a.height, a.r);\\n },\\n image: function (el) {\\n var a = el.attrs;\\n return rectPath(a.x, a.y, a.width, a.height);\\n },\\n text: function (el) {\\n var bbox = el._getBBox();\\n return rectPath(bbox.x, bbox.y, bbox.width, bbox.height);\\n },\\n set : function(el) {\\n var bbox = el._getBBox();\\n return rectPath(bbox.x, bbox.y, bbox.width, bbox.height);\\n }\\n },\\n /*\\\\\\n * Raphael.mapPath\\n [ method ]\\n **\\n * Transform the path string with given matrix.\\n > Parameters\\n - path (string) path string\\n - matrix (object) see @Matrix\\n = (string) transformed path string\\n \\\\*/\\n mapPath = R.mapPath = function (path, matrix) {\\n if (!matrix) {\\n return path;\\n }\\n var x, y, i, j, ii, jj, pathi;\\n path = path2curve(path);\\n for (i = 0, ii = path.length; i < ii; i++) {\\n pathi = path[i];\\n for (j = 1, jj = pathi.length; j < jj; j += 2) {\\n x = matrix.x(pathi[j], pathi[j + 1]);\\n y = matrix.y(pathi[j], pathi[j + 1]);\\n pathi[j] = x;\\n pathi[j + 1] = y;\\n }\\n }\\n return path;\\n };\\n\\n R._g = g;\\n /*\\\\\\n * Raphael.type\\n [ property (string) ]\\n **\\n * Can be “SVG”, “VML” or empty, depending on browser support.\\n \\\\*/\\n R.type = (g.win.SVGAngle || g.doc.implementation.hasFeature(\\\"http://www.w3.org/TR/SVG11/feature#BasicStructure\\\", \\\"1.1\\\") ? \\\"SVG\\\" : \\\"VML\\\");\\n if (R.type == \\\"VML\\\") {\\n var d = g.doc.createElement(\\\"div\\\"),\\n b;\\n d.innerHTML = '';\\n b = d.firstChild;\\n b.style.behavior = \\\"url(#default#VML)\\\";\\n if (!(b && typeof b.adj == \\\"object\\\")) {\\n return (R.type = E);\\n }\\n d = null;\\n }\\n /*\\\\\\n * Raphael.svg\\n [ property (boolean) ]\\n **\\n * `true` if browser supports SVG.\\n \\\\*/\\n /*\\\\\\n * Raphael.vml\\n [ property (boolean) ]\\n **\\n * `true` if browser supports VML.\\n \\\\*/\\n R.svg = !(R.vml = R.type == \\\"VML\\\");\\n R._Paper = Paper;\\n /*\\\\\\n * Raphael.fn\\n [ property (object) ]\\n **\\n * You can add your own method to the canvas. For example if you want to draw a pie chart,\\n * you can create your own pie chart function and ship it as a Raphaël plugin. To do this\\n * you need to extend the `Raphael.fn` object. You should modify the `fn` object before a\\n * Raphaël instance is created, otherwise it will take no effect. Please note that the\\n * ability for namespaced plugins was removed in Raphael 2.0. It is up to the plugin to\\n * ensure any namespacing ensures proper context.\\n > Usage\\n | Raphael.fn.arrow = function (x1, y1, x2, y2, size) {\\n | return this.path( ... );\\n | };\\n | // or create namespace\\n | Raphael.fn.mystuff = {\\n | arrow: function () {…},\\n | star: function () {…},\\n | // etc…\\n | };\\n | var paper = Raphael(10, 10, 630, 480);\\n | // then use it\\n | paper.arrow(10, 10, 30, 30, 5).attr({fill: \\\"#f00\\\"});\\n | paper.mystuff.arrow();\\n | paper.mystuff.star();\\n \\\\*/\\n R.fn = paperproto = Paper.prototype = R.prototype;\\n R._id = 0;\\n R._oid = 0;\\n /*\\\\\\n * Raphael.is\\n [ method ]\\n **\\n * Handful of replacements for `typeof` operator.\\n > Parameters\\n - o (…) any object or primitive\\n - type (string) name of the type, i.e. “string”, “function”, “number”, etc.\\n = (boolean) is given value is of given type\\n \\\\*/\\n R.is = function (o, type) {\\n type = lowerCase.call(type);\\n if (type == \\\"finite\\\") {\\n return !isnan[has](+o);\\n }\\n if (type == \\\"array\\\") {\\n return o instanceof Array;\\n }\\n return (type == \\\"null\\\" && o === null) ||\\n (type == typeof o && o !== null) ||\\n (type == \\\"object\\\" && o === Object(o)) ||\\n (type == \\\"array\\\" && Array.isArray && Array.isArray(o)) ||\\n objectToString.call(o).slice(8, -1).toLowerCase() == type;\\n };\\n\\n function clone(obj) {\\n if (typeof obj == \\\"function\\\" || Object(obj) !== obj) {\\n return obj;\\n }\\n var res = new obj.constructor;\\n for (var key in obj) if (obj[has](key)) {\\n res[key] = clone(obj[key]);\\n }\\n return res;\\n }\\n\\n /*\\\\\\n * Raphael.angle\\n [ method ]\\n **\\n * Returns angle between two or three points\\n > Parameters\\n - x1 (number) x coord of first point\\n - y1 (number) y coord of first point\\n - x2 (number) x coord of second point\\n - y2 (number) y coord of second point\\n - x3 (number) #optional x coord of third point\\n - y3 (number) #optional y coord of third point\\n = (number) angle in degrees.\\n \\\\*/\\n R.angle = function (x1, y1, x2, y2, x3, y3) {\\n if (x3 == null) {\\n var x = x1 - x2,\\n y = y1 - y2;\\n if (!x && !y) {\\n return 0;\\n }\\n return (180 + math.atan2(-y, -x) * 180 / PI + 360) % 360;\\n } else {\\n return R.angle(x1, y1, x3, y3) - R.angle(x2, y2, x3, y3);\\n }\\n };\\n /*\\\\\\n * Raphael.rad\\n [ method ]\\n **\\n * Transform angle to radians\\n > Parameters\\n - deg (number) angle in degrees\\n = (number) angle in radians.\\n \\\\*/\\n R.rad = function (deg) {\\n return deg % 360 * PI / 180;\\n };\\n /*\\\\\\n * Raphael.deg\\n [ method ]\\n **\\n * Transform angle to degrees\\n > Parameters\\n - rad (number) angle in radians\\n = (number) angle in degrees.\\n \\\\*/\\n R.deg = function (rad) {\\n return Math.round ((rad * 180 / PI% 360)* 1000) / 1000;\\n };\\n /*\\\\\\n * Raphael.snapTo\\n [ method ]\\n **\\n * Snaps given value to given grid.\\n > Parameters\\n - values (array|number) given array of values or step of the grid\\n - value (number) value to adjust\\n - tolerance (number) #optional tolerance for snapping. Default is `10`.\\n = (number) adjusted value.\\n \\\\*/\\n R.snapTo = function (values, value, tolerance) {\\n tolerance = R.is(tolerance, \\\"finite\\\") ? tolerance : 10;\\n if (R.is(values, array)) {\\n var i = values.length;\\n while (i--) if (abs(values[i] - value) <= tolerance) {\\n return values[i];\\n }\\n } else {\\n values = +values;\\n var rem = value % values;\\n if (rem < tolerance) {\\n return value - rem;\\n }\\n if (rem > values - tolerance) {\\n return value - rem + values;\\n }\\n }\\n return value;\\n };\\n\\n /*\\\\\\n * Raphael.createUUID\\n [ method ]\\n **\\n * Returns RFC4122, version 4 ID\\n \\\\*/\\n var createUUID = R.createUUID = (function (uuidRegEx, uuidReplacer) {\\n return function () {\\n return \\\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\\\".replace(uuidRegEx, uuidReplacer).toUpperCase();\\n };\\n })(/[xy]/g, function (c) {\\n var r = math.random() * 16 | 0,\\n v = c == \\\"x\\\" ? r : (r & 3 | 8);\\n return v.toString(16);\\n });\\n\\n /*\\\\\\n * Raphael.setWindow\\n [ method ]\\n **\\n * Used when you need to draw in `<iframe>`. Switched window to the iframe one.\\n > Parameters\\n - newwin (window) new window object\\n \\\\*/\\n R.setWindow = function (newwin) {\\n eve(\\\"raphael.setWindow\\\", R, g.win, newwin);\\n g.win = newwin;\\n g.doc = g.win.document;\\n if (R._engine.initWin) {\\n R._engine.initWin(g.win);\\n }\\n };\\n var toHex = function (color) {\\n if (R.vml) {\\n // http://dean.edwards.name/weblog/2009/10/convert-any-colour-value-to-hex-in-msie/\\n var trim = /^\\\\s+|\\\\s+$/g;\\n var bod;\\n try {\\n var docum = new ActiveXObject(\\\"htmlfile\\\");\\n docum.write(\\\"\\\");\\n docum.close();\\n bod = docum.body;\\n } catch(e) {\\n bod = createPopup().document.body;\\n }\\n var range = bod.createTextRange();\\n toHex = cacher(function (color) {\\n try {\\n bod.style.color = Str(color).replace(trim, E);\\n var value = range.queryCommandValue(\\\"ForeColor\\\");\\n value = ((value & 255) << 16) | (value & 65280) | ((value & 16711680) >>> 16);\\n return \\\"#\\\" + (\\\"000000\\\" + value.toString(16)).slice(-6);\\n } catch(e) {\\n return \\\"none\\\";\\n }\\n });\\n } else {\\n var i = g.doc.createElement(\\\"i\\\");\\n i.title = \\\"Rapha\\\\xebl Colour Picker\\\";\\n i.style.display = \\\"none\\\";\\n g.doc.body.appendChild(i);\\n toHex = cacher(function (color) {\\n i.style.color = color;\\n return g.doc.defaultView.getComputedStyle(i, E).getPropertyValue(\\\"color\\\");\\n });\\n }\\n return toHex(color);\\n },\\n hsbtoString = function () {\\n return \\\"hsb(\\\" + [this.h, this.s, this.b] + \\\")\\\";\\n },\\n hsltoString = function () {\\n return \\\"hsl(\\\" + [this.h, this.s, this.l] + \\\")\\\";\\n },\\n rgbtoString = function () {\\n return this.hex;\\n },\\n prepareRGB = function (r, g, b) {\\n if (g == null && R.is(r, \\\"object\\\") && \\\"r\\\" in r && \\\"g\\\" in r && \\\"b\\\" in r) {\\n b = r.b;\\n g = r.g;\\n r = r.r;\\n }\\n if (g == null && R.is(r, string)) {\\n var clr = R.getRGB(r);\\n r = clr.r;\\n g = clr.g;\\n b = clr.b;\\n }\\n if (r > 1 || g > 1 || b > 1) {\\n r /= 255;\\n g /= 255;\\n b /= 255;\\n }\\n\\n return [r, g, b];\\n },\\n packageRGB = function (r, g, b, o) {\\n r *= 255;\\n g *= 255;\\n b *= 255;\\n var rgb = {\\n r: r,\\n g: g,\\n b: b,\\n hex: R.rgb(r, g, b),\\n toString: rgbtoString\\n };\\n R.is(o, \\\"finite\\\") && (rgb.opacity = o);\\n return rgb;\\n };\\n\\n /*\\\\\\n * Raphael.color\\n [ method ]\\n **\\n * Parses the color string and returns object with all values for the given color.\\n > Parameters\\n - clr (string) color string in one of the supported formats (see @Raphael.getRGB)\\n = (object) Combined RGB & HSB object in format:\\n o {\\n o r (number) red,\\n o g (number) green,\\n o b (number) blue,\\n o hex (string) color in HTML/CSS format: #••••••,\\n o error (boolean) `true` if string can’t be parsed,\\n o h (number) hue,\\n o s (number) saturation,\\n o v (number) value (brightness),\\n o l (number) lightness\\n o }\\n \\\\*/\\n R.color = function (clr) {\\n var rgb;\\n if (R.is(clr, \\\"object\\\") && \\\"h\\\" in clr && \\\"s\\\" in clr && \\\"b\\\" in clr) {\\n rgb = R.hsb2rgb(clr);\\n clr.r = rgb.r;\\n clr.g = rgb.g;\\n clr.b = rgb.b;\\n clr.hex = rgb.hex;\\n } else if (R.is(clr, \\\"object\\\") && \\\"h\\\" in clr && \\\"s\\\" in clr && \\\"l\\\" in clr) {\\n rgb = R.hsl2rgb(clr);\\n clr.r = rgb.r;\\n clr.g = rgb.g;\\n clr.b = rgb.b;\\n clr.hex = rgb.hex;\\n } else {\\n if (R.is(clr, \\\"string\\\")) {\\n clr = R.getRGB(clr);\\n }\\n if (R.is(clr, \\\"object\\\") && \\\"r\\\" in clr && \\\"g\\\" in clr && \\\"b\\\" in clr) {\\n rgb = R.rgb2hsl(clr);\\n clr.h = rgb.h;\\n clr.s = rgb.s;\\n clr.l = rgb.l;\\n rgb = R.rgb2hsb(clr);\\n clr.v = rgb.b;\\n } else {\\n clr = {hex: \\\"none\\\"};\\n clr.r = clr.g = clr.b = clr.h = clr.s = clr.v = clr.l = -1;\\n }\\n }\\n clr.toString = rgbtoString;\\n return clr;\\n };\\n /*\\\\\\n * Raphael.hsb2rgb\\n [ method ]\\n **\\n * Converts HSB values to RGB object.\\n > Parameters\\n - h (number) hue\\n - s (number) saturation\\n - v (number) value or brightness\\n = (object) RGB object in format:\\n o {\\n o r (number) red,\\n o g (number) green,\\n o b (number) blue,\\n o hex (string) color in HTML/CSS format: #••••••\\n o }\\n \\\\*/\\n R.hsb2rgb = function (h, s, v, o) {\\n if (this.is(h, \\\"object\\\") && \\\"h\\\" in h && \\\"s\\\" in h && \\\"b\\\" in h) {\\n v = h.b;\\n s = h.s;\\n o = h.o;\\n h = h.h;\\n }\\n h *= 360;\\n var R, G, B, X, C;\\n h = (h % 360) / 60;\\n C = v * s;\\n X = C * (1 - abs(h % 2 - 1));\\n R = G = B = v - C;\\n\\n h = ~~h;\\n R += [C, X, 0, 0, X, C][h];\\n G += [X, C, C, X, 0, 0][h];\\n B += [0, 0, X, C, C, X][h];\\n return packageRGB(R, G, B, o);\\n };\\n /*\\\\\\n * Raphael.hsl2rgb\\n [ method ]\\n **\\n * Converts HSL values to RGB object.\\n > Parameters\\n - h (number) hue\\n - s (number) saturation\\n - l (number) luminosity\\n = (object) RGB object in format:\\n o {\\n o r (number) red,\\n o g (number) green,\\n o b (number) blue,\\n o hex (string) color in HTML/CSS format: #••••••\\n o }\\n \\\\*/\\n R.hsl2rgb = function (h, s, l, o) {\\n if (this.is(h, \\\"object\\\") && \\\"h\\\" in h && \\\"s\\\" in h && \\\"l\\\" in h) {\\n l = h.l;\\n s = h.s;\\n h = h.h;\\n }\\n if (h > 1 || s > 1 || l > 1) {\\n h /= 360;\\n s /= 100;\\n l /= 100;\\n }\\n h *= 360;\\n var R, G, B, X, C;\\n h = (h % 360) / 60;\\n C = 2 * s * (l < .5 ? l : 1 - l);\\n X = C * (1 - abs(h % 2 - 1));\\n R = G = B = l - C / 2;\\n\\n h = ~~h;\\n R += [C, X, 0, 0, X, C][h];\\n G += [X, C, C, X, 0, 0][h];\\n B += [0, 0, X, C, C, X][h];\\n return packageRGB(R, G, B, o);\\n };\\n /*\\\\\\n * Raphael.rgb2hsb\\n [ method ]\\n **\\n * Converts RGB values to HSB object.\\n > Parameters\\n - r (number) red\\n - g (number) green\\n - b (number) blue\\n = (object) HSB object in format:\\n o {\\n o h (number) hue\\n o s (number) saturation\\n o b (number) brightness\\n o }\\n \\\\*/\\n R.rgb2hsb = function (r, g, b) {\\n b = prepareRGB(r, g, b);\\n r = b[0];\\n g = b[1];\\n b = b[2];\\n\\n var H, S, V, C;\\n V = mmax(r, g, b);\\n C = V - mmin(r, g, b);\\n H = (C == 0 ? null :\\n V == r ? (g - b) / C :\\n V == g ? (b - r) / C + 2 :\\n (r - g) / C + 4\\n );\\n H = ((H + 360) % 6) * 60 / 360;\\n S = C == 0 ? 0 : C / V;\\n return {h: H, s: S, b: V, toString: hsbtoString};\\n };\\n /*\\\\\\n * Raphael.rgb2hsl\\n [ method ]\\n **\\n * Converts RGB values to HSL object.\\n > Parameters\\n - r (number) red\\n - g (number) green\\n - b (number) blue\\n = (object) HSL object in format:\\n o {\\n o h (number) hue\\n o s (number) saturation\\n o l (number) luminosity\\n o }\\n \\\\*/\\n R.rgb2hsl = function (r, g, b) {\\n b = prepareRGB(r, g, b);\\n r = b[0];\\n g = b[1];\\n b = b[2];\\n\\n var H, S, L, M, m, C;\\n M = mmax(r, g, b);\\n m = mmin(r, g, b);\\n C = M - m;\\n H = (C == 0 ? null :\\n M == r ? (g - b) / C :\\n M == g ? (b - r) / C + 2 :\\n (r - g) / C + 4);\\n H = ((H + 360) % 6) * 60 / 360;\\n L = (M + m) / 2;\\n S = (C == 0 ? 0 :\\n L < .5 ? C / (2 * L) :\\n C / (2 - 2 * L));\\n return {h: H, s: S, l: L, toString: hsltoString};\\n };\\n R._path2string = function () {\\n return this.join(\\\",\\\").replace(p2s, \\\"$1\\\");\\n };\\n function repush(array, item) {\\n for (var i = 0, ii = array.length; i < ii; i++) if (array[i] === item) {\\n return array.push(array.splice(i, 1)[0]);\\n }\\n }\\n function cacher(f, scope, postprocessor) {\\n function newf() {\\n var arg = Array.prototype.slice.call(arguments, 0),\\n args = arg.join(\\\"\\\\u2400\\\"),\\n cache = newf.cache = newf.cache || {},\\n count = newf.count = newf.count || [];\\n if (cache[has](args)) {\\n repush(count, args);\\n return postprocessor ? postprocessor(cache[args]) : cache[args];\\n }\\n count.length >= 1e3 && delete cache[count.shift()];\\n count.push(args);\\n cache[args] = f[apply](scope, arg);\\n return postprocessor ? postprocessor(cache[args]) : cache[args];\\n }\\n return newf;\\n }\\n\\n var preload = R._preload = function (src, f) {\\n var img = g.doc.createElement(\\\"img\\\");\\n img.style.cssText = \\\"position:absolute;left:-9999em;top:-9999em\\\";\\n img.onload = function () {\\n f.call(this);\\n this.onload = null;\\n g.doc.body.removeChild(this);\\n };\\n img.onerror = function () {\\n g.doc.body.removeChild(this);\\n };\\n g.doc.body.appendChild(img);\\n img.src = src;\\n };\\n\\n function clrToString() {\\n return this.hex;\\n }\\n\\n /*\\\\\\n * Raphael.getRGB\\n [ method ]\\n **\\n * Parses colour string as RGB object\\n > Parameters\\n - colour (string) colour string in one of formats:\\n #
    \\n #
  • Colour name (“red”, “green”, “cornflowerblue”, etc)
  • \\n #
  • #••• — shortened HTML colour: (“#000”, “#fc0”, etc)
  • \\n #
  • #•••••• — full length HTML colour: (“#000000”, “#bd2300”)
  • \\n #
  • rgb(•••, •••, •••) — red, green and blue channels’ values: (“rgb(200, 100, 0)”)
  • \\n #
  • rgb(•••%, •••%, •••%) — same as above, but in %: (“rgb(100%, 175%, 0%)”)
  • \\n #
  • hsb(•••, •••, •••) — hue, saturation and brightness values: (“hsb(0.5, 0.25, 1)”)
  • \\n #
  • hsb(•••%, •••%, •••%) — same as above, but in %
  • \\n #
  • hsl(•••, •••, •••) — same as hsb
  • \\n #
  • hsl(•••%, •••%, •••%) — same as hsb
  • \\n #
\\n = (object) RGB object in format:\\n o {\\n o r (number) red,\\n o g (number) green,\\n o b (number) blue\\n o hex (string) color in HTML/CSS format: #••••••,\\n o error (boolean) true if string can’t be parsed\\n o }\\n \\\\*/\\n R.getRGB = cacher(function (colour) {\\n if (!colour || !!((colour = Str(colour)).indexOf(\\\"-\\\") + 1)) {\\n return {r: -1, g: -1, b: -1, hex: \\\"none\\\", error: 1, toString: clrToString};\\n }\\n if (colour == \\\"none\\\") {\\n return {r: -1, g: -1, b: -1, hex: \\\"none\\\", toString: clrToString};\\n }\\n !(hsrg[has](colour.toLowerCase().substring(0, 2)) || colour.charAt() == \\\"#\\\") && (colour = toHex(colour));\\n var res,\\n red,\\n green,\\n blue,\\n opacity,\\n t,\\n values,\\n rgb = colour.match(colourRegExp);\\n if (rgb) {\\n if (rgb[2]) {\\n blue = toInt(rgb[2].substring(5), 16);\\n green = toInt(rgb[2].substring(3, 5), 16);\\n red = toInt(rgb[2].substring(1, 3), 16);\\n }\\n if (rgb[3]) {\\n blue = toInt((t = rgb[3].charAt(3)) + t, 16);\\n green = toInt((t = rgb[3].charAt(2)) + t, 16);\\n red = toInt((t = rgb[3].charAt(1)) + t, 16);\\n }\\n if (rgb[4]) {\\n values = rgb[4][split](commaSpaces);\\n red = toFloat(values[0]);\\n values[0].slice(-1) == \\\"%\\\" && (red *= 2.55);\\n green = toFloat(values[1]);\\n values[1].slice(-1) == \\\"%\\\" && (green *= 2.55);\\n blue = toFloat(values[2]);\\n values[2].slice(-1) == \\\"%\\\" && (blue *= 2.55);\\n rgb[1].toLowerCase().slice(0, 4) == \\\"rgba\\\" && (opacity = toFloat(values[3]));\\n values[3] && values[3].slice(-1) == \\\"%\\\" && (opacity /= 100);\\n }\\n if (rgb[5]) {\\n values = rgb[5][split](commaSpaces);\\n red = toFloat(values[0]);\\n values[0].slice(-1) == \\\"%\\\" && (red *= 2.55);\\n green = toFloat(values[1]);\\n values[1].slice(-1) == \\\"%\\\" && (green *= 2.55);\\n blue = toFloat(values[2]);\\n values[2].slice(-1) == \\\"%\\\" && (blue *= 2.55);\\n (values[0].slice(-3) == \\\"deg\\\" || values[0].slice(-1) == \\\"\\\\xb0\\\") && (red /= 360);\\n rgb[1].toLowerCase().slice(0, 4) == \\\"hsba\\\" && (opacity = toFloat(values[3]));\\n values[3] && values[3].slice(-1) == \\\"%\\\" && (opacity /= 100);\\n return R.hsb2rgb(red, green, blue, opacity);\\n }\\n if (rgb[6]) {\\n values = rgb[6][split](commaSpaces);\\n red = toFloat(values[0]);\\n values[0].slice(-1) == \\\"%\\\" && (red *= 2.55);\\n green = toFloat(values[1]);\\n values[1].slice(-1) == \\\"%\\\" && (green *= 2.55);\\n blue = toFloat(values[2]);\\n values[2].slice(-1) == \\\"%\\\" && (blue *= 2.55);\\n (values[0].slice(-3) == \\\"deg\\\" || values[0].slice(-1) == \\\"\\\\xb0\\\") && (red /= 360);\\n rgb[1].toLowerCase().slice(0, 4) == \\\"hsla\\\" && (opacity = toFloat(values[3]));\\n values[3] && values[3].slice(-1) == \\\"%\\\" && (opacity /= 100);\\n return R.hsl2rgb(red, green, blue, opacity);\\n }\\n rgb = {r: red, g: green, b: blue, toString: clrToString};\\n rgb.hex = \\\"#\\\" + (16777216 | blue | (green << 8) | (red << 16)).toString(16).slice(1);\\n R.is(opacity, \\\"finite\\\") && (rgb.opacity = opacity);\\n return rgb;\\n }\\n return {r: -1, g: -1, b: -1, hex: \\\"none\\\", error: 1, toString: clrToString};\\n }, R);\\n /*\\\\\\n * Raphael.hsb\\n [ method ]\\n **\\n * Converts HSB values to hex representation of the colour.\\n > Parameters\\n - h (number) hue\\n - s (number) saturation\\n - b (number) value or brightness\\n = (string) hex representation of the colour.\\n \\\\*/\\n R.hsb = cacher(function (h, s, b) {\\n return R.hsb2rgb(h, s, b).hex;\\n });\\n /*\\\\\\n * Raphael.hsl\\n [ method ]\\n **\\n * Converts HSL values to hex representation of the colour.\\n > Parameters\\n - h (number) hue\\n - s (number) saturation\\n - l (number) luminosity\\n = (string) hex representation of the colour.\\n \\\\*/\\n R.hsl = cacher(function (h, s, l) {\\n return R.hsl2rgb(h, s, l).hex;\\n });\\n /*\\\\\\n * Raphael.rgb\\n [ method ]\\n **\\n * Converts RGB values to hex representation of the colour.\\n > Parameters\\n - r (number) red\\n - g (number) green\\n - b (number) blue\\n = (string) hex representation of the colour.\\n \\\\*/\\n R.rgb = cacher(function (r, g, b) {\\n function round(x) { return (x + 0.5) | 0; }\\n return \\\"#\\\" + (16777216 | round(b) | (round(g) << 8) | (round(r) << 16)).toString(16).slice(1);\\n });\\n /*\\\\\\n * Raphael.getColor\\n [ method ]\\n **\\n * On each call returns next colour in the spectrum. To reset it back to red call @Raphael.getColor.reset\\n > Parameters\\n - value (number) #optional brightness, default is `0.75`\\n = (string) hex representation of the colour.\\n \\\\*/\\n R.getColor = function (value) {\\n var start = this.getColor.start = this.getColor.start || {h: 0, s: 1, b: value || .75},\\n rgb = this.hsb2rgb(start.h, start.s, start.b);\\n start.h += .075;\\n if (start.h > 1) {\\n start.h = 0;\\n start.s -= .2;\\n start.s <= 0 && (this.getColor.start = {h: 0, s: 1, b: start.b});\\n }\\n return rgb.hex;\\n };\\n /*\\\\\\n * Raphael.getColor.reset\\n [ method ]\\n **\\n * Resets spectrum position for @Raphael.getColor back to red.\\n \\\\*/\\n R.getColor.reset = function () {\\n delete this.start;\\n };\\n\\n // http://schepers.cc/getting-to-the-point\\n function catmullRom2bezier(crp, z) {\\n var d = [];\\n for (var i = 0, iLen = crp.length; iLen - 2 * !z > i; i += 2) {\\n var p = [\\n {x: +crp[i - 2], y: +crp[i - 1]},\\n {x: +crp[i], y: +crp[i + 1]},\\n {x: +crp[i + 2], y: +crp[i + 3]},\\n {x: +crp[i + 4], y: +crp[i + 5]}\\n ];\\n if (z) {\\n if (!i) {\\n p[0] = {x: +crp[iLen - 2], y: +crp[iLen - 1]};\\n } else if (iLen - 4 == i) {\\n p[3] = {x: +crp[0], y: +crp[1]};\\n } else if (iLen - 2 == i) {\\n p[2] = {x: +crp[0], y: +crp[1]};\\n p[3] = {x: +crp[2], y: +crp[3]};\\n }\\n } else {\\n if (iLen - 4 == i) {\\n p[3] = p[2];\\n } else if (!i) {\\n p[0] = {x: +crp[i], y: +crp[i + 1]};\\n }\\n }\\n d.push([\\\"C\\\",\\n (-p[0].x + 6 * p[1].x + p[2].x) / 6,\\n (-p[0].y + 6 * p[1].y + p[2].y) / 6,\\n (p[1].x + 6 * p[2].x - p[3].x) / 6,\\n (p[1].y + 6*p[2].y - p[3].y) / 6,\\n p[2].x,\\n p[2].y\\n ]);\\n }\\n\\n return d;\\n }\\n /*\\\\\\n * Raphael.parsePathString\\n [ method ]\\n **\\n * Utility method\\n **\\n * Parses given path string into an array of arrays of path segments.\\n > Parameters\\n - pathString (string|array) path string or array of segments (in the last case it will be returned straight away)\\n = (array) array of segments.\\n \\\\*/\\n R.parsePathString = function (pathString) {\\n if (!pathString) {\\n return null;\\n }\\n var pth = paths(pathString);\\n if (pth.arr) {\\n return pathClone(pth.arr);\\n }\\n\\n var paramCounts = {a: 7, c: 6, h: 1, l: 2, m: 2, r: 4, q: 4, s: 4, t: 2, v: 1, z: 0},\\n data = [];\\n if (R.is(pathString, array) && R.is(pathString[0], array)) { // rough assumption\\n data = pathClone(pathString);\\n }\\n if (!data.length) {\\n Str(pathString).replace(pathCommand, function (a, b, c) {\\n var params = [],\\n name = b.toLowerCase();\\n c.replace(pathValues, function (a, b) {\\n b && params.push(+b);\\n });\\n if (name == \\\"m\\\" && params.length > 2) {\\n data.push([b][concat](params.splice(0, 2)));\\n name = \\\"l\\\";\\n b = b == \\\"m\\\" ? \\\"l\\\" : \\\"L\\\";\\n }\\n if (name == \\\"r\\\") {\\n data.push([b][concat](params));\\n } else while (params.length >= paramCounts[name]) {\\n data.push([b][concat](params.splice(0, paramCounts[name])));\\n if (!paramCounts[name]) {\\n break;\\n }\\n }\\n });\\n }\\n data.toString = R._path2string;\\n pth.arr = pathClone(data);\\n return data;\\n };\\n /*\\\\\\n * Raphael.parseTransformString\\n [ method ]\\n **\\n * Utility method\\n **\\n * Parses given path string into an array of transformations.\\n > Parameters\\n - TString (string|array) transform string or array of transformations (in the last case it will be returned straight away)\\n = (array) array of transformations.\\n \\\\*/\\n R.parseTransformString = cacher(function (TString) {\\n if (!TString) {\\n return null;\\n }\\n var paramCounts = {r: 3, s: 4, t: 2, m: 6},\\n data = [];\\n if (R.is(TString, array) && R.is(TString[0], array)) { // rough assumption\\n data = pathClone(TString);\\n }\\n if (!data.length) {\\n Str(TString).replace(tCommand, function (a, b, c) {\\n var params = [],\\n name = lowerCase.call(b);\\n c.replace(pathValues, function (a, b) {\\n b && params.push(+b);\\n });\\n data.push([b][concat](params));\\n });\\n }\\n data.toString = R._path2string;\\n return data;\\n });\\n // PATHS\\n var paths = function (ps) {\\n var p = paths.ps = paths.ps || {};\\n if (p[ps]) {\\n p[ps].sleep = 100;\\n } else {\\n p[ps] = {\\n sleep: 100\\n };\\n }\\n setTimeout(function () {\\n for (var key in p) if (p[has](key) && key != ps) {\\n p[key].sleep--;\\n !p[key].sleep && delete p[key];\\n }\\n });\\n return p[ps];\\n };\\n /*\\\\\\n * Raphael.findDotsAtSegment\\n [ method ]\\n **\\n * Utility method\\n **\\n * Find dot coordinates on the given cubic bezier curve at the given t.\\n > Parameters\\n - p1x (number) x of the first point of the curve\\n - p1y (number) y of the first point of the curve\\n - c1x (number) x of the first anchor of the curve\\n - c1y (number) y of the first anchor of the curve\\n - c2x (number) x of the second anchor of the curve\\n - c2y (number) y of the second anchor of the curve\\n - p2x (number) x of the second point of the curve\\n - p2y (number) y of the second point of the curve\\n - t (number) position on the curve (0..1)\\n = (object) point information in format:\\n o {\\n o x: (number) x coordinate of the point\\n o y: (number) y coordinate of the point\\n o m: {\\n o x: (number) x coordinate of the left anchor\\n o y: (number) y coordinate of the left anchor\\n o }\\n o n: {\\n o x: (number) x coordinate of the right anchor\\n o y: (number) y coordinate of the right anchor\\n o }\\n o start: {\\n o x: (number) x coordinate of the start of the curve\\n o y: (number) y coordinate of the start of the curve\\n o }\\n o end: {\\n o x: (number) x coordinate of the end of the curve\\n o y: (number) y coordinate of the end of the curve\\n o }\\n o alpha: (number) angle of the curve derivative at the point\\n o }\\n \\\\*/\\n R.findDotsAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\\n var t1 = 1 - t,\\n t13 = pow(t1, 3),\\n t12 = pow(t1, 2),\\n t2 = t * t,\\n t3 = t2 * t,\\n x = t13 * p1x + t12 * 3 * t * c1x + t1 * 3 * t * t * c2x + t3 * p2x,\\n y = t13 * p1y + t12 * 3 * t * c1y + t1 * 3 * t * t * c2y + t3 * p2y,\\n mx = p1x + 2 * t * (c1x - p1x) + t2 * (c2x - 2 * c1x + p1x),\\n my = p1y + 2 * t * (c1y - p1y) + t2 * (c2y - 2 * c1y + p1y),\\n nx = c1x + 2 * t * (c2x - c1x) + t2 * (p2x - 2 * c2x + c1x),\\n ny = c1y + 2 * t * (c2y - c1y) + t2 * (p2y - 2 * c2y + c1y),\\n ax = t1 * p1x + t * c1x,\\n ay = t1 * p1y + t * c1y,\\n cx = t1 * c2x + t * p2x,\\n cy = t1 * c2y + t * p2y,\\n alpha = (90 - math.atan2(mx - nx, my - ny) * 180 / PI);\\n (mx > nx || my < ny) && (alpha += 180);\\n return {\\n x: x,\\n y: y,\\n m: {x: mx, y: my},\\n n: {x: nx, y: ny},\\n start: {x: ax, y: ay},\\n end: {x: cx, y: cy},\\n alpha: alpha\\n };\\n };\\n /*\\\\\\n * Raphael.bezierBBox\\n [ method ]\\n **\\n * Utility method\\n **\\n * Return bounding box of a given cubic bezier curve\\n > Parameters\\n - p1x (number) x of the first point of the curve\\n - p1y (number) y of the first point of the curve\\n - c1x (number) x of the first anchor of the curve\\n - c1y (number) y of the first anchor of the curve\\n - c2x (number) x of the second anchor of the curve\\n - c2y (number) y of the second anchor of the curve\\n - p2x (number) x of the second point of the curve\\n - p2y (number) y of the second point of the curve\\n * or\\n - bez (array) array of six points for bezier curve\\n = (object) point information in format:\\n o {\\n o min: {\\n o x: (number) x coordinate of the left point\\n o y: (number) y coordinate of the top point\\n o }\\n o max: {\\n o x: (number) x coordinate of the right point\\n o y: (number) y coordinate of the bottom point\\n o }\\n o }\\n \\\\*/\\n R.bezierBBox = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {\\n if (!R.is(p1x, \\\"array\\\")) {\\n p1x = [p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y];\\n }\\n var bbox = curveDim.apply(null, p1x);\\n return {\\n x: bbox.min.x,\\n y: bbox.min.y,\\n x2: bbox.max.x,\\n y2: bbox.max.y,\\n width: bbox.max.x - bbox.min.x,\\n height: bbox.max.y - bbox.min.y\\n };\\n };\\n /*\\\\\\n * Raphael.isPointInsideBBox\\n [ method ]\\n **\\n * Utility method\\n **\\n * Returns `true` if given point is inside bounding boxes.\\n > Parameters\\n - bbox (string) bounding box\\n - x (string) x coordinate of the point\\n - y (string) y coordinate of the point\\n = (boolean) `true` if point inside\\n \\\\*/\\n R.isPointInsideBBox = function (bbox, x, y) {\\n return x >= bbox.x && x <= bbox.x2 && y >= bbox.y && y <= bbox.y2;\\n };\\n /*\\\\\\n * Raphael.isBBoxIntersect\\n [ method ]\\n **\\n * Utility method\\n **\\n * Returns `true` if two bounding boxes intersect\\n > Parameters\\n - bbox1 (string) first bounding box\\n - bbox2 (string) second bounding box\\n = (boolean) `true` if they intersect\\n \\\\*/\\n R.isBBoxIntersect = function (bbox1, bbox2) {\\n var i = R.isPointInsideBBox;\\n return i(bbox2, bbox1.x, bbox1.y)\\n || i(bbox2, bbox1.x2, bbox1.y)\\n || i(bbox2, bbox1.x, bbox1.y2)\\n || i(bbox2, bbox1.x2, bbox1.y2)\\n || i(bbox1, bbox2.x, bbox2.y)\\n || i(bbox1, bbox2.x2, bbox2.y)\\n || i(bbox1, bbox2.x, bbox2.y2)\\n || i(bbox1, bbox2.x2, bbox2.y2)\\n || (bbox1.x < bbox2.x2 && bbox1.x > bbox2.x || bbox2.x < bbox1.x2 && bbox2.x > bbox1.x)\\n && (bbox1.y < bbox2.y2 && bbox1.y > bbox2.y || bbox2.y < bbox1.y2 && bbox2.y > bbox1.y);\\n };\\n function base3(t, p1, p2, p3, p4) {\\n var t1 = -3 * p1 + 9 * p2 - 9 * p3 + 3 * p4,\\n t2 = t * t1 + 6 * p1 - 12 * p2 + 6 * p3;\\n return t * t2 - 3 * p1 + 3 * p2;\\n }\\n function bezlen(x1, y1, x2, y2, x3, y3, x4, y4, z) {\\n if (z == null) {\\n z = 1;\\n }\\n z = z > 1 ? 1 : z < 0 ? 0 : z;\\n var z2 = z / 2,\\n n = 12,\\n Tvalues = [-0.1252,0.1252,-0.3678,0.3678,-0.5873,0.5873,-0.7699,0.7699,-0.9041,0.9041,-0.9816,0.9816],\\n Cvalues = [0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472],\\n sum = 0;\\n for (var i = 0; i < n; i++) {\\n var ct = z2 * Tvalues[i] + z2,\\n xbase = base3(ct, x1, x2, x3, x4),\\n ybase = base3(ct, y1, y2, y3, y4),\\n comb = xbase * xbase + ybase * ybase;\\n sum += Cvalues[i] * math.sqrt(comb);\\n }\\n return z2 * sum;\\n }\\n function getTatLen(x1, y1, x2, y2, x3, y3, x4, y4, ll) {\\n if (ll < 0 || bezlen(x1, y1, x2, y2, x3, y3, x4, y4) < ll) {\\n return;\\n }\\n var t = 1,\\n step = t / 2,\\n t2 = t - step,\\n l,\\n e = .01;\\n l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2);\\n while (abs(l - ll) > e) {\\n step /= 2;\\n t2 += (l < ll ? 1 : -1) * step;\\n l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2);\\n }\\n return t2;\\n }\\n function intersect(x1, y1, x2, y2, x3, y3, x4, y4) {\\n if (\\n mmax(x1, x2) < mmin(x3, x4) ||\\n mmin(x1, x2) > mmax(x3, x4) ||\\n mmax(y1, y2) < mmin(y3, y4) ||\\n mmin(y1, y2) > mmax(y3, y4)\\n ) {\\n return;\\n }\\n var nx = (x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4),\\n ny = (x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4),\\n denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);\\n\\n if (!denominator) {\\n return;\\n }\\n var px = nx / denominator,\\n py = ny / denominator,\\n px2 = +px.toFixed(2),\\n py2 = +py.toFixed(2);\\n if (\\n px2 < +mmin(x1, x2).toFixed(2) ||\\n px2 > +mmax(x1, x2).toFixed(2) ||\\n px2 < +mmin(x3, x4).toFixed(2) ||\\n px2 > +mmax(x3, x4).toFixed(2) ||\\n py2 < +mmin(y1, y2).toFixed(2) ||\\n py2 > +mmax(y1, y2).toFixed(2) ||\\n py2 < +mmin(y3, y4).toFixed(2) ||\\n py2 > +mmax(y3, y4).toFixed(2)\\n ) {\\n return;\\n }\\n return {x: px, y: py};\\n }\\n function inter(bez1, bez2) {\\n return interHelper(bez1, bez2);\\n }\\n function interCount(bez1, bez2) {\\n return interHelper(bez1, bez2, 1);\\n }\\n function interHelper(bez1, bez2, justCount) {\\n var bbox1 = R.bezierBBox(bez1),\\n bbox2 = R.bezierBBox(bez2);\\n if (!R.isBBoxIntersect(bbox1, bbox2)) {\\n return justCount ? 0 : [];\\n }\\n var l1 = bezlen.apply(0, bez1),\\n l2 = bezlen.apply(0, bez2),\\n n1 = mmax(~~(l1 / 5), 1),\\n n2 = mmax(~~(l2 / 5), 1),\\n dots1 = [],\\n dots2 = [],\\n xy = {},\\n res = justCount ? 0 : [];\\n for (var i = 0; i < n1 + 1; i++) {\\n var p = R.findDotsAtSegment.apply(R, bez1.concat(i / n1));\\n dots1.push({x: p.x, y: p.y, t: i / n1});\\n }\\n for (i = 0; i < n2 + 1; i++) {\\n p = R.findDotsAtSegment.apply(R, bez2.concat(i / n2));\\n dots2.push({x: p.x, y: p.y, t: i / n2});\\n }\\n for (i = 0; i < n1; i++) {\\n for (var j = 0; j < n2; j++) {\\n var di = dots1[i],\\n di1 = dots1[i + 1],\\n dj = dots2[j],\\n dj1 = dots2[j + 1],\\n ci = abs(di1.x - di.x) < .001 ? \\\"y\\\" : \\\"x\\\",\\n cj = abs(dj1.x - dj.x) < .001 ? \\\"y\\\" : \\\"x\\\",\\n is = intersect(di.x, di.y, di1.x, di1.y, dj.x, dj.y, dj1.x, dj1.y);\\n if (is) {\\n if (xy[is.x.toFixed(4)] == is.y.toFixed(4)) {\\n continue;\\n }\\n xy[is.x.toFixed(4)] = is.y.toFixed(4);\\n var t1 = di.t + abs((is[ci] - di[ci]) / (di1[ci] - di[ci])) * (di1.t - di.t),\\n t2 = dj.t + abs((is[cj] - dj[cj]) / (dj1[cj] - dj[cj])) * (dj1.t - dj.t);\\n if (t1 >= 0 && t1 <= 1.001 && t2 >= 0 && t2 <= 1.001) {\\n if (justCount) {\\n res++;\\n } else {\\n res.push({\\n x: is.x,\\n y: is.y,\\n t1: mmin(t1, 1),\\n t2: mmin(t2, 1)\\n });\\n }\\n }\\n }\\n }\\n }\\n return res;\\n }\\n /*\\\\\\n * Raphael.pathIntersection\\n [ method ]\\n **\\n * Utility method\\n **\\n * Finds intersections of two paths\\n > Parameters\\n - path1 (string) path string\\n - path2 (string) path string\\n = (array) dots of intersection\\n o [\\n o {\\n o x: (number) x coordinate of the point\\n o y: (number) y coordinate of the point\\n o t1: (number) t value for segment of path1\\n o t2: (number) t value for segment of path2\\n o segment1: (number) order number for segment of path1\\n o segment2: (number) order number for segment of path2\\n o bez1: (array) eight coordinates representing beziér curve for the segment of path1\\n o bez2: (array) eight coordinates representing beziér curve for the segment of path2\\n o }\\n o ]\\n \\\\*/\\n R.pathIntersection = function (path1, path2) {\\n return interPathHelper(path1, path2);\\n };\\n R.pathIntersectionNumber = function (path1, path2) {\\n return interPathHelper(path1, path2, 1);\\n };\\n function interPathHelper(path1, path2, justCount) {\\n path1 = R._path2curve(path1);\\n path2 = R._path2curve(path2);\\n var x1, y1, x2, y2, x1m, y1m, x2m, y2m, bez1, bez2,\\n res = justCount ? 0 : [];\\n for (var i = 0, ii = path1.length; i < ii; i++) {\\n var pi = path1[i];\\n if (pi[0] == \\\"M\\\") {\\n x1 = x1m = pi[1];\\n y1 = y1m = pi[2];\\n } else {\\n if (pi[0] == \\\"C\\\") {\\n bez1 = [x1, y1].concat(pi.slice(1));\\n x1 = bez1[6];\\n y1 = bez1[7];\\n } else {\\n bez1 = [x1, y1, x1, y1, x1m, y1m, x1m, y1m];\\n x1 = x1m;\\n y1 = y1m;\\n }\\n for (var j = 0, jj = path2.length; j < jj; j++) {\\n var pj = path2[j];\\n if (pj[0] == \\\"M\\\") {\\n x2 = x2m = pj[1];\\n y2 = y2m = pj[2];\\n } else {\\n if (pj[0] == \\\"C\\\") {\\n bez2 = [x2, y2].concat(pj.slice(1));\\n x2 = bez2[6];\\n y2 = bez2[7];\\n } else {\\n bez2 = [x2, y2, x2, y2, x2m, y2m, x2m, y2m];\\n x2 = x2m;\\n y2 = y2m;\\n }\\n var intr = interHelper(bez1, bez2, justCount);\\n if (justCount) {\\n res += intr;\\n } else {\\n for (var k = 0, kk = intr.length; k < kk; k++) {\\n intr[k].segment1 = i;\\n intr[k].segment2 = j;\\n intr[k].bez1 = bez1;\\n intr[k].bez2 = bez2;\\n }\\n res = res.concat(intr);\\n }\\n }\\n }\\n }\\n }\\n return res;\\n }\\n /*\\\\\\n * Raphael.isPointInsidePath\\n [ method ]\\n **\\n * Utility method\\n **\\n * Returns `true` if given point is inside a given closed path.\\n > Parameters\\n - path (string) path string\\n - x (number) x of the point\\n - y (number) y of the point\\n = (boolean) true, if point is inside the path\\n \\\\*/\\n R.isPointInsidePath = function (path, x, y) {\\n var bbox = R.pathBBox(path);\\n return R.isPointInsideBBox(bbox, x, y) &&\\n interPathHelper(path, [[\\\"M\\\", x, y], [\\\"H\\\", bbox.x2 + 10]], 1) % 2 == 1;\\n };\\n R._removedFactory = function (methodname) {\\n return function () {\\n eve(\\\"raphael.log\\\", null, \\\"Rapha\\\\xebl: you are calling to method \\\\u201c\\\" + methodname + \\\"\\\\u201d of removed object\\\", methodname);\\n };\\n };\\n /*\\\\\\n * Raphael.pathBBox\\n [ method ]\\n **\\n * Utility method\\n **\\n * Return bounding box of a given path\\n > Parameters\\n - path (string) path string\\n = (object) bounding box\\n o {\\n o x: (number) x coordinate of the left top point of the box\\n o y: (number) y coordinate of the left top point of the box\\n o x2: (number) x coordinate of the right bottom point of the box\\n o y2: (number) y coordinate of the right bottom point of the box\\n o width: (number) width of the box\\n o height: (number) height of the box\\n o cx: (number) x coordinate of the center of the box\\n o cy: (number) y coordinate of the center of the box\\n o }\\n \\\\*/\\n var pathDimensions = R.pathBBox = function (path) {\\n var pth = paths(path);\\n if (pth.bbox) {\\n var b= pth.bbox;\\n return {x: b.x, y: b.y, width: b.width, height: b.height, x2: b.x2, y2: b.y2} ; // FREEGROUP FIX!!!!!!\\n // raphael reuse the returned bbox. You must clone it here if the caller need the bbxo for\\n //further calculation\\n }\\n if (!path) {\\n return {x: 0, y: 0, width: 0, height: 0, x2: 0, y2: 0};\\n }\\n path = path2curve(path);\\n var x = 0,\\n y = 0,\\n X = [],\\n Y = [],\\n p;\\n for (var i = 0, ii = path.length; i < ii; i++) {\\n p = path[i];\\n if (p[0] == \\\"M\\\") {\\n x = p[1];\\n y = p[2];\\n X.push(x);\\n Y.push(y);\\n } else {\\n var dim = curveDim(x, y, p[1], p[2], p[3], p[4], p[5], p[6]);\\n X = X[concat](dim.min.x, dim.max.x);\\n Y = Y[concat](dim.min.y, dim.max.y);\\n x = p[5];\\n y = p[6];\\n }\\n }\\n var xmin = mmin[apply](0, X),\\n ymin = mmin[apply](0, Y),\\n xmax = mmax[apply](0, X),\\n ymax = mmax[apply](0, Y),\\n width = xmax - xmin,\\n height = ymax - ymin,\\n bb = {\\n x: xmin,\\n y: ymin,\\n x2: xmax,\\n y2: ymax,\\n width: width,\\n height: height,\\n cx: xmin + width / 2,\\n cy: ymin + height / 2\\n };\\n pth.bbox = clone(bb);\\n return bb;\\n },\\n pathClone = function (pathArray) {\\n var res = clone(pathArray);\\n res.toString = R._path2string;\\n return res;\\n },\\n pathToRelative = R._pathToRelative = function (pathArray) {\\n var pth = paths(pathArray);\\n if (pth.rel) {\\n return pathClone(pth.rel);\\n }\\n if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption\\n pathArray = R.parsePathString(pathArray);\\n }\\n var res = [],\\n x = 0,\\n y = 0,\\n mx = 0,\\n my = 0,\\n start = 0;\\n if (pathArray[0][0] == \\\"M\\\") {\\n x = pathArray[0][1];\\n y = pathArray[0][2];\\n mx = x;\\n my = y;\\n start++;\\n res.push([\\\"M\\\", x, y]);\\n }\\n for (var i = start, ii = pathArray.length; i < ii; i++) {\\n var r = res[i] = [],\\n pa = pathArray[i];\\n if (pa[0] != lowerCase.call(pa[0])) {\\n r[0] = lowerCase.call(pa[0]);\\n switch (r[0]) {\\n case \\\"a\\\":\\n r[1] = pa[1];\\n r[2] = pa[2];\\n r[3] = pa[3];\\n r[4] = pa[4];\\n r[5] = pa[5];\\n r[6] = +(pa[6] - x).toFixed(3);\\n r[7] = +(pa[7] - y).toFixed(3);\\n break;\\n case \\\"v\\\":\\n r[1] = +(pa[1] - y).toFixed(3);\\n break;\\n case \\\"m\\\":\\n mx = pa[1];\\n my = pa[2];\\n default:\\n for (var j = 1, jj = pa.length; j < jj; j++) {\\n r[j] = +(pa[j] - ((j % 2) ? x : y)).toFixed(3);\\n }\\n }\\n } else {\\n r = res[i] = [];\\n if (pa[0] == \\\"m\\\") {\\n mx = pa[1] + x;\\n my = pa[2] + y;\\n }\\n for (var k = 0, kk = pa.length; k < kk; k++) {\\n res[i][k] = pa[k];\\n }\\n }\\n var len = res[i].length;\\n switch (res[i][0]) {\\n case \\\"z\\\":\\n x = mx;\\n y = my;\\n break;\\n case \\\"h\\\":\\n x += +res[i][len - 1];\\n break;\\n case \\\"v\\\":\\n y += +res[i][len - 1];\\n break;\\n default:\\n x += +res[i][len - 2];\\n y += +res[i][len - 1];\\n }\\n }\\n res.toString = R._path2string;\\n pth.rel = pathClone(res);\\n return res;\\n },\\n pathToAbsolute = R._pathToAbsolute = function (pathArray) {\\n var pth = paths(pathArray);\\n if (pth.abs) {\\n return pathClone(pth.abs);\\n }\\n if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption\\n pathArray = R.parsePathString(pathArray);\\n }\\n if (!pathArray || !pathArray.length) {\\n return [[\\\"M\\\", 0, 0]];\\n }\\n var res = [],\\n x = 0,\\n y = 0,\\n mx = 0,\\n my = 0,\\n start = 0;\\n if (pathArray[0][0] == \\\"M\\\") {\\n x = +pathArray[0][1];\\n y = +pathArray[0][2];\\n mx = x;\\n my = y;\\n start++;\\n res[0] = [\\\"M\\\", x, y];\\n }\\n var crz = pathArray.length == 3 && pathArray[0][0] == \\\"M\\\" && pathArray[1][0].toUpperCase() == \\\"R\\\" && pathArray[2][0].toUpperCase() == \\\"Z\\\";\\n for (var r, pa, i = start, ii = pathArray.length; i < ii; i++) {\\n res.push(r = []);\\n pa = pathArray[i];\\n if (pa[0] != upperCase.call(pa[0])) {\\n r[0] = upperCase.call(pa[0]);\\n switch (r[0]) {\\n case \\\"A\\\":\\n r[1] = pa[1];\\n r[2] = pa[2];\\n r[3] = pa[3];\\n r[4] = pa[4];\\n r[5] = pa[5];\\n r[6] = +(pa[6] + x);\\n r[7] = +(pa[7] + y);\\n break;\\n case \\\"V\\\":\\n r[1] = +pa[1] + y;\\n break;\\n case \\\"H\\\":\\n r[1] = +pa[1] + x;\\n break;\\n case \\\"R\\\":\\n var dots = [x, y][concat](pa.slice(1));\\n for (var j = 2, jj = dots.length; j < jj; j++) {\\n dots[j] = +dots[j] + x;\\n dots[++j] = +dots[j] + y;\\n }\\n res.pop();\\n res = res[concat](catmullRom2bezier(dots, crz));\\n break;\\n case \\\"M\\\":\\n mx = +pa[1] + x;\\n my = +pa[2] + y;\\n default:\\n for (j = 1, jj = pa.length; j < jj; j++) {\\n r[j] = +pa[j] + ((j % 2) ? x : y);\\n }\\n }\\n } else if (pa[0] == \\\"R\\\") {\\n dots = [x, y][concat](pa.slice(1));\\n res.pop();\\n res = res[concat](catmullRom2bezier(dots, crz));\\n r = [\\\"R\\\"][concat](pa.slice(-2));\\n } else {\\n for (var k = 0, kk = pa.length; k < kk; k++) {\\n r[k] = pa[k];\\n }\\n }\\n switch (r[0]) {\\n case \\\"Z\\\":\\n x = mx;\\n y = my;\\n break;\\n case \\\"H\\\":\\n x = r[1];\\n break;\\n case \\\"V\\\":\\n y = r[1];\\n break;\\n case \\\"M\\\":\\n mx = r[r.length - 2];\\n my = r[r.length - 1];\\n default:\\n x = r[r.length - 2];\\n y = r[r.length - 1];\\n }\\n }\\n res.toString = R._path2string;\\n pth.abs = pathClone(res);\\n return res;\\n },\\n l2c = function (x1, y1, x2, y2) {\\n return [x1, y1, x2, y2, x2, y2];\\n },\\n q2c = function (x1, y1, ax, ay, x2, y2) {\\n var _13 = 1 / 3,\\n _23 = 2 / 3;\\n return [\\n _13 * x1 + _23 * ax,\\n _13 * y1 + _23 * ay,\\n _13 * x2 + _23 * ax,\\n _13 * y2 + _23 * ay,\\n x2,\\n y2\\n ];\\n },\\n a2c = function (x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) {\\n // for more information of where this math came from visit:\\n // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\\n var _120 = PI * 120 / 180,\\n rad = PI / 180 * (+angle || 0),\\n res = [],\\n xy,\\n rotate = cacher(function (x, y, rad) {\\n var X = x * math.cos(rad) - y * math.sin(rad),\\n Y = x * math.sin(rad) + y * math.cos(rad);\\n return {x: X, y: Y};\\n });\\n if (!recursive) {\\n xy = rotate(x1, y1, -rad);\\n x1 = xy.x;\\n y1 = xy.y;\\n xy = rotate(x2, y2, -rad);\\n x2 = xy.x;\\n y2 = xy.y;\\n var cos = math.cos(PI / 180 * angle),\\n sin = math.sin(PI / 180 * angle),\\n x = (x1 - x2) / 2,\\n y = (y1 - y2) / 2;\\n var h = (x * x) / (rx * rx) + (y * y) / (ry * ry);\\n if (h > 1) {\\n h = math.sqrt(h);\\n rx = h * rx;\\n ry = h * ry;\\n }\\n var rx2 = rx * rx,\\n ry2 = ry * ry,\\n k = (large_arc_flag == sweep_flag ? -1 : 1) *\\n math.sqrt(abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x))),\\n cx = k * rx * y / ry + (x1 + x2) / 2,\\n cy = k * -ry * x / rx + (y1 + y2) / 2,\\n f1 = math.asin(((y1 - cy) / ry).toFixed(9)),\\n f2 = math.asin(((y2 - cy) / ry).toFixed(9));\\n\\n f1 = x1 < cx ? PI - f1 : f1;\\n f2 = x2 < cx ? PI - f2 : f2;\\n f1 < 0 && (f1 = PI * 2 + f1);\\n f2 < 0 && (f2 = PI * 2 + f2);\\n if (sweep_flag && f1 > f2) {\\n f1 = f1 - PI * 2;\\n }\\n if (!sweep_flag && f2 > f1) {\\n f2 = f2 - PI * 2;\\n }\\n } else {\\n f1 = recursive[0];\\n f2 = recursive[1];\\n cx = recursive[2];\\n cy = recursive[3];\\n }\\n var df = f2 - f1;\\n if (abs(df) > _120) {\\n var f2old = f2,\\n x2old = x2,\\n y2old = y2;\\n f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1);\\n x2 = cx + rx * math.cos(f2);\\n y2 = cy + ry * math.sin(f2);\\n res = a2c(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]);\\n }\\n df = f2 - f1;\\n var c1 = math.cos(f1),\\n s1 = math.sin(f1),\\n c2 = math.cos(f2),\\n s2 = math.sin(f2),\\n t = math.tan(df / 4),\\n hx = 4 / 3 * rx * t,\\n hy = 4 / 3 * ry * t,\\n m1 = [x1, y1],\\n m2 = [x1 + hx * s1, y1 - hy * c1],\\n m3 = [x2 + hx * s2, y2 - hy * c2],\\n m4 = [x2, y2];\\n m2[0] = 2 * m1[0] - m2[0];\\n m2[1] = 2 * m1[1] - m2[1];\\n if (recursive) {\\n return [m2, m3, m4][concat](res);\\n } else {\\n res = [m2, m3, m4][concat](res).join()[split](\\\",\\\");\\n var newres = [];\\n for (var i = 0, ii = res.length; i < ii; i++) {\\n newres[i] = i % 2 ? rotate(res[i - 1], res[i], rad).y : rotate(res[i], res[i + 1], rad).x;\\n }\\n return newres;\\n }\\n },\\n findDotAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\\n var t1 = 1 - t;\\n return {\\n x: pow(t1, 3) * p1x + pow(t1, 2) * 3 * t * c1x + t1 * 3 * t * t * c2x + pow(t, 3) * p2x,\\n y: pow(t1, 3) * p1y + pow(t1, 2) * 3 * t * c1y + t1 * 3 * t * t * c2y + pow(t, 3) * p2y\\n };\\n },\\n curveDim = cacher(function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {\\n var a = (c2x - 2 * c1x + p1x) - (p2x - 2 * c2x + c1x),\\n b = 2 * (c1x - p1x) - 2 * (c2x - c1x),\\n c = p1x - c1x,\\n t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a,\\n t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a,\\n y = [p1y, p2y],\\n x = [p1x, p2x],\\n dot;\\n abs(t1) > \\\"1e12\\\" && (t1 = .5);\\n abs(t2) > \\\"1e12\\\" && (t2 = .5);\\n if (t1 > 0 && t1 < 1) {\\n dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1);\\n x.push(dot.x);\\n y.push(dot.y);\\n }\\n if (t2 > 0 && t2 < 1) {\\n dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2);\\n x.push(dot.x);\\n y.push(dot.y);\\n }\\n a = (c2y - 2 * c1y + p1y) - (p2y - 2 * c2y + c1y);\\n b = 2 * (c1y - p1y) - 2 * (c2y - c1y);\\n c = p1y - c1y;\\n t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a;\\n t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a;\\n abs(t1) > \\\"1e12\\\" && (t1 = .5);\\n abs(t2) > \\\"1e12\\\" && (t2 = .5);\\n if (t1 > 0 && t1 < 1) {\\n dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1);\\n x.push(dot.x);\\n y.push(dot.y);\\n }\\n if (t2 > 0 && t2 < 1) {\\n dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2);\\n x.push(dot.x);\\n y.push(dot.y);\\n }\\n return {\\n min: {x: mmin[apply](0, x), y: mmin[apply](0, y)},\\n max: {x: mmax[apply](0, x), y: mmax[apply](0, y)}\\n };\\n }),\\n path2curve = R._path2curve = cacher(function (path, path2) {\\n var pth = !path2 && paths(path);\\n if (!path2 && pth.curve) {\\n return pathClone(pth.curve);\\n }\\n var p = pathToAbsolute(path),\\n p2 = path2 && pathToAbsolute(path2),\\n attrs = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null},\\n attrs2 = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null},\\n processPath = function (path, d, pcom) {\\n var nx, ny, tq = {T:1, Q:1};\\n if (!path) {\\n return [\\\"C\\\", d.x, d.y, d.x, d.y, d.x, d.y];\\n }\\n !(path[0] in tq) && (d.qx = d.qy = null);\\n switch (path[0]) {\\n case \\\"M\\\":\\n d.X = path[1];\\n d.Y = path[2];\\n break;\\n case \\\"A\\\":\\n path = [\\\"C\\\"][concat](a2c[apply](0, [d.x, d.y][concat](path.slice(1))));\\n break;\\n case \\\"S\\\":\\n if (pcom == \\\"C\\\" || pcom == \\\"S\\\") { // In \\\"S\\\" case we have to take into account, if the previous command is C/S.\\n nx = d.x * 2 - d.bx; // And reflect the previous\\n ny = d.y * 2 - d.by; // command's control point relative to the current point.\\n }\\n else { // or some else or nothing\\n nx = d.x;\\n ny = d.y;\\n }\\n path = [\\\"C\\\", nx, ny][concat](path.slice(1));\\n break;\\n case \\\"T\\\":\\n if (pcom == \\\"Q\\\" || pcom == \\\"T\\\") { // In \\\"T\\\" case we have to take into account, if the previous command is Q/T.\\n d.qx = d.x * 2 - d.qx; // And make a reflection similar\\n d.qy = d.y * 2 - d.qy; // to case \\\"S\\\".\\n }\\n else { // or something else or nothing\\n d.qx = d.x;\\n d.qy = d.y;\\n }\\n path = [\\\"C\\\"][concat](q2c(d.x, d.y, d.qx, d.qy, path[1], path[2]));\\n break;\\n case \\\"Q\\\":\\n d.qx = path[1];\\n d.qy = path[2];\\n path = [\\\"C\\\"][concat](q2c(d.x, d.y, path[1], path[2], path[3], path[4]));\\n break;\\n case \\\"L\\\":\\n path = [\\\"C\\\"][concat](l2c(d.x, d.y, path[1], path[2]));\\n break;\\n case \\\"H\\\":\\n path = [\\\"C\\\"][concat](l2c(d.x, d.y, path[1], d.y));\\n break;\\n case \\\"V\\\":\\n path = [\\\"C\\\"][concat](l2c(d.x, d.y, d.x, path[1]));\\n break;\\n case \\\"Z\\\":\\n path = [\\\"C\\\"][concat](l2c(d.x, d.y, d.X, d.Y));\\n break;\\n }\\n return path;\\n },\\n fixArc = function (pp, i) {\\n if (pp[i].length > 7) {\\n pp[i].shift();\\n var pi = pp[i];\\n while (pi.length) {\\n pcoms1[i]=\\\"A\\\"; // if created multiple C:s, their original seg is saved\\n p2 && (pcoms2[i]=\\\"A\\\"); // the same as above\\n pp.splice(i++, 0, [\\\"C\\\"][concat](pi.splice(0, 6)));\\n }\\n pp.splice(i, 1);\\n ii = mmax(p.length, p2 && p2.length || 0);\\n }\\n },\\n fixM = function (path1, path2, a1, a2, i) {\\n if (path1 && path2 && path1[i][0] == \\\"M\\\" && path2[i][0] != \\\"M\\\") {\\n path2.splice(i, 0, [\\\"M\\\", a2.x, a2.y]);\\n a1.bx = 0;\\n a1.by = 0;\\n a1.x = path1[i][1];\\n a1.y = path1[i][2];\\n ii = mmax(p.length, p2 && p2.length || 0);\\n }\\n },\\n pcoms1 = [], // path commands of original path p\\n pcoms2 = [], // path commands of original path p2\\n pfirst = \\\"\\\", // temporary holder for original path command\\n pcom = \\\"\\\"; // holder for previous path command of original path\\n for (var i = 0, ii = mmax(p.length, p2 && p2.length || 0); i < ii; i++) {\\n p[i] && (pfirst = p[i][0]); // save current path command\\n\\n if (pfirst != \\\"C\\\") // C is not saved yet, because it may be result of conversion\\n {\\n pcoms1[i] = pfirst; // Save current path command\\n i && ( pcom = pcoms1[i-1]); // Get previous path command pcom\\n }\\n p[i] = processPath(p[i], attrs, pcom); // Previous path command is inputted to processPath\\n\\n if (pcoms1[i] != \\\"A\\\" && pfirst == \\\"C\\\") pcoms1[i] = \\\"C\\\"; // A is the only command\\n // which may produce multiple C:s\\n // so we have to make sure that C is also C in original path\\n\\n fixArc(p, i); // fixArc adds also the right amount of A:s to pcoms1\\n\\n if (p2) { // the same procedures is done to p2\\n p2[i] && (pfirst = p2[i][0]);\\n if (pfirst != \\\"C\\\")\\n {\\n pcoms2[i] = pfirst;\\n i && (pcom = pcoms2[i-1]);\\n }\\n p2[i] = processPath(p2[i], attrs2, pcom);\\n\\n if (pcoms2[i]!=\\\"A\\\" && pfirst==\\\"C\\\") pcoms2[i]=\\\"C\\\";\\n\\n fixArc(p2, i);\\n }\\n fixM(p, p2, attrs, attrs2, i);\\n fixM(p2, p, attrs2, attrs, i);\\n var seg = p[i],\\n seg2 = p2 && p2[i],\\n seglen = seg.length,\\n seg2len = p2 && seg2.length;\\n attrs.x = seg[seglen - 2];\\n attrs.y = seg[seglen - 1];\\n attrs.bx = toFloat(seg[seglen - 4]) || attrs.x;\\n attrs.by = toFloat(seg[seglen - 3]) || attrs.y;\\n attrs2.bx = p2 && (toFloat(seg2[seg2len - 4]) || attrs2.x);\\n attrs2.by = p2 && (toFloat(seg2[seg2len - 3]) || attrs2.y);\\n attrs2.x = p2 && seg2[seg2len - 2];\\n attrs2.y = p2 && seg2[seg2len - 1];\\n }\\n if (!p2) {\\n pth.curve = pathClone(p);\\n }\\n return p2 ? [p, p2] : p;\\n }, null, pathClone),\\n parseDots = R._parseDots = cacher(function (gradient) {\\n var dots = [];\\n for (var i = 0, ii = gradient.length; i < ii; i++) {\\n var dot = {},\\n par = gradient[i].match(/^([^:]*):?([\\\\d\\\\.]*)/);\\n dot.color = R.getRGB(par[1]);\\n if (dot.color.error) {\\n return null;\\n }\\n dot.opacity = dot.color.opacity;\\n dot.color = dot.color.hex;\\n par[2] && (dot.offset = par[2] + \\\"%\\\");\\n dots.push(dot);\\n }\\n for (i = 1, ii = dots.length - 1; i < ii; i++) {\\n if (!dots[i].offset) {\\n var start = toFloat(dots[i - 1].offset || 0),\\n end = 0;\\n for (var j = i + 1; j < ii; j++) {\\n if (dots[j].offset) {\\n end = dots[j].offset;\\n break;\\n }\\n }\\n if (!end) {\\n end = 100;\\n j = ii;\\n }\\n end = toFloat(end);\\n var d = (end - start) / (j - i + 1);\\n for (; i < j; i++) {\\n start += d;\\n dots[i].offset = start + \\\"%\\\";\\n }\\n }\\n }\\n return dots;\\n }),\\n tear = R._tear = function (el, paper) {\\n el == paper.top && (paper.top = el.prev);\\n el == paper.bottom && (paper.bottom = el.next);\\n el.next && (el.next.prev = el.prev);\\n el.prev && (el.prev.next = el.next);\\n },\\n tofront = R._tofront = function (el, paper) {\\n if (paper.top === el) {\\n return;\\n }\\n tear(el, paper);\\n el.next = null;\\n el.prev = paper.top;\\n paper.top.next = el;\\n paper.top = el;\\n },\\n toback = R._toback = function (el, paper) {\\n if (paper.bottom === el) {\\n return;\\n }\\n tear(el, paper);\\n el.next = paper.bottom;\\n el.prev = null;\\n paper.bottom.prev = el;\\n paper.bottom = el;\\n },\\n insertafter = R._insertafter = function (el, el2, paper) {\\n tear(el, paper);\\n el2 == paper.top && (paper.top = el);\\n el2.next && (el2.next.prev = el);\\n el.next = el2.next;\\n el.prev = el2;\\n el2.next = el;\\n },\\n insertbefore = R._insertbefore = function (el, el2, paper) {\\n tear(el, paper);\\n el2 == paper.bottom && (paper.bottom = el);\\n el2.prev && (el2.prev.next = el);\\n el.prev = el2.prev;\\n el2.prev = el;\\n el.next = el2;\\n },\\n /*\\\\\\n * Raphael.toMatrix\\n [ method ]\\n **\\n * Utility method\\n **\\n * Returns matrix of transformations applied to a given path\\n > Parameters\\n - path (string) path string\\n - transform (string|array) transformation string\\n = (object) @Matrix\\n \\\\*/\\n toMatrix = R.toMatrix = function (path, transform) {\\n var bb = pathDimensions(path),\\n el = {\\n _: {\\n transform: E\\n },\\n getBBox: function () {\\n return bb;\\n }\\n };\\n extractTransform(el, transform);\\n return el.matrix;\\n },\\n /*\\\\\\n * Raphael.transformPath\\n [ method ]\\n **\\n * Utility method\\n **\\n * Returns path transformed by a given transformation\\n > Parameters\\n - path (string) path string\\n - transform (string|array) transformation string\\n = (string) path\\n \\\\*/\\n transformPath = R.transformPath = function (path, transform) {\\n return mapPath(path, toMatrix(path, transform));\\n },\\n extractTransform = R._extractTransform = function (el, tstr) {\\n if (tstr == null) {\\n return el._.transform;\\n }\\n tstr = Str(tstr).replace(/\\\\.{3}|\\\\u2026/g, el._.transform || E);\\n var tdata = R.parseTransformString(tstr),\\n deg = 0,\\n dx = 0,\\n dy = 0,\\n sx = 1,\\n sy = 1,\\n _ = el._,\\n m = new Matrix;\\n _.transform = tdata || [];\\n if (tdata) {\\n for (var i = 0, ii = tdata.length; i < ii; i++) {\\n var t = tdata[i],\\n tlen = t.length,\\n command = Str(t[0]).toLowerCase(),\\n absolute = t[0] != command,\\n inver = absolute ? m.invert() : 0,\\n x1,\\n y1,\\n x2,\\n y2,\\n bb;\\n if (command == \\\"t\\\" && tlen == 3) {\\n if (absolute) {\\n x1 = inver.x(0, 0);\\n y1 = inver.y(0, 0);\\n x2 = inver.x(t[1], t[2]);\\n y2 = inver.y(t[1], t[2]);\\n m.translate(x2 - x1, y2 - y1);\\n } else {\\n m.translate(t[1], t[2]);\\n }\\n } else if (command == \\\"r\\\") {\\n if (tlen == 2) {\\n bb = bb || el.getBBox(1);\\n m.rotate(t[1], bb.x + bb.width / 2, bb.y + bb.height / 2);\\n deg += t[1];\\n } else if (tlen == 4) {\\n if (absolute) {\\n x2 = inver.x(t[2], t[3]);\\n y2 = inver.y(t[2], t[3]);\\n m.rotate(t[1], x2, y2);\\n } else {\\n m.rotate(t[1], t[2], t[3]);\\n }\\n deg += t[1];\\n }\\n } else if (command == \\\"s\\\") {\\n if (tlen == 2 || tlen == 3) {\\n bb = bb || el.getBBox(1);\\n m.scale(t[1], t[tlen - 1], bb.x + bb.width / 2, bb.y + bb.height / 2);\\n sx *= t[1];\\n sy *= t[tlen - 1];\\n } else if (tlen == 5) {\\n if (absolute) {\\n x2 = inver.x(t[3], t[4]);\\n y2 = inver.y(t[3], t[4]);\\n m.scale(t[1], t[2], x2, y2);\\n } else {\\n m.scale(t[1], t[2], t[3], t[4]);\\n }\\n sx *= t[1];\\n sy *= t[2];\\n }\\n } else if (command == \\\"m\\\" && tlen == 7) {\\n m.add(t[1], t[2], t[3], t[4], t[5], t[6]);\\n }\\n _.dirtyT = 1;\\n el.matrix = m;\\n }\\n }\\n\\n /*\\\\\\n * Element.matrix\\n [ property (object) ]\\n **\\n * Keeps @Matrix object, which represents element transformation\\n \\\\*/\\n el.matrix = m;\\n\\n _.sx = sx;\\n _.sy = sy;\\n _.deg = deg;\\n _.dx = dx = m.e;\\n _.dy = dy = m.f;\\n\\n if (sx == 1 && sy == 1 && !deg && _.bbox) {\\n _.bbox.x += +dx;\\n _.bbox.y += +dy;\\n } else {\\n _.dirtyT = 1;\\n }\\n },\\n getEmpty = function (item) {\\n var l = item[0];\\n switch (l.toLowerCase()) {\\n case \\\"t\\\": return [l, 0, 0];\\n case \\\"m\\\": return [l, 1, 0, 0, 1, 0, 0];\\n case \\\"r\\\": if (item.length == 4) {\\n return [l, 0, item[2], item[3]];\\n } else {\\n return [l, 0];\\n }\\n case \\\"s\\\": if (item.length == 5) {\\n return [l, 1, 1, item[3], item[4]];\\n } else if (item.length == 3) {\\n return [l, 1, 1];\\n } else {\\n return [l, 1];\\n }\\n }\\n },\\n equaliseTransform = R._equaliseTransform = function (t1, t2) {\\n t2 = Str(t2).replace(/\\\\.{3}|\\\\u2026/g, t1);\\n t1 = R.parseTransformString(t1) || [];\\n t2 = R.parseTransformString(t2) || [];\\n var maxlength = mmax(t1.length, t2.length),\\n from = [],\\n to = [],\\n i = 0, j, jj,\\n tt1, tt2;\\n for (; i < maxlength; i++) {\\n tt1 = t1[i] || getEmpty(t2[i]);\\n tt2 = t2[i] || getEmpty(tt1);\\n if ((tt1[0] != tt2[0]) ||\\n (tt1[0].toLowerCase() == \\\"r\\\" && (tt1[2] != tt2[2] || tt1[3] != tt2[3])) ||\\n (tt1[0].toLowerCase() == \\\"s\\\" && (tt1[3] != tt2[3] || tt1[4] != tt2[4]))\\n ) {\\n return;\\n }\\n from[i] = [];\\n to[i] = [];\\n for (j = 0, jj = mmax(tt1.length, tt2.length); j < jj; j++) {\\n j in tt1 && (from[i][j] = tt1[j]);\\n j in tt2 && (to[i][j] = tt2[j]);\\n }\\n }\\n return {\\n from: from,\\n to: to\\n };\\n };\\n R._getContainer = function (x, y, w, h) {\\n var container;\\n container = h == null && !R.is(x, \\\"object\\\") ? g.doc.getElementById(x) : x;\\n if (container == null) {\\n return;\\n }\\n if (container.tagName) {\\n if (y == null) {\\n return {\\n container: container,\\n width: container.style.pixelWidth || container.offsetWidth,\\n height: container.style.pixelHeight || container.offsetHeight\\n };\\n } else {\\n return {\\n container: container,\\n width: y,\\n height: w\\n };\\n }\\n }\\n return {\\n container: 1,\\n x: x,\\n y: y,\\n width: w,\\n height: h\\n };\\n };\\n /*\\\\\\n * Raphael.pathToRelative\\n [ method ]\\n **\\n * Utility method\\n **\\n * Converts path to relative form\\n > Parameters\\n - pathString (string|array) path string or array of segments\\n = (array) array of segments.\\n \\\\*/\\n R.pathToRelative = pathToRelative;\\n R._engine = {};\\n /*\\\\\\n * Raphael.path2curve\\n [ method ]\\n **\\n * Utility method\\n **\\n * Converts path to a new path where all segments are cubic bezier curves.\\n > Parameters\\n - pathString (string|array) path string or array of segments\\n = (array) array of segments.\\n \\\\*/\\n R.path2curve = path2curve;\\n /*\\\\\\n * Raphael.matrix\\n [ method ]\\n **\\n * Utility method\\n **\\n * Returns matrix based on given parameters.\\n > Parameters\\n - a (number)\\n - b (number)\\n - c (number)\\n - d (number)\\n - e (number)\\n - f (number)\\n = (object) @Matrix\\n \\\\*/\\n R.matrix = function (a, b, c, d, e, f) {\\n return new Matrix(a, b, c, d, e, f);\\n };\\n function Matrix(a, b, c, d, e, f) {\\n if (a != null) {\\n this.a = +a;\\n this.b = +b;\\n this.c = +c;\\n this.d = +d;\\n this.e = +e;\\n this.f = +f;\\n } else {\\n this.a = 1;\\n this.b = 0;\\n this.c = 0;\\n this.d = 1;\\n this.e = 0;\\n this.f = 0;\\n }\\n }\\n (function (matrixproto) {\\n /*\\\\\\n * Matrix.add\\n [ method ]\\n **\\n * Adds given matrix to existing one.\\n > Parameters\\n - a (number)\\n - b (number)\\n - c (number)\\n - d (number)\\n - e (number)\\n - f (number)\\n or\\n - matrix (object) @Matrix\\n \\\\*/\\n matrixproto.add = function (a, b, c, d, e, f) {\\n var out = [[], [], []],\\n m = [[this.a, this.c, this.e], [this.b, this.d, this.f], [0, 0, 1]],\\n matrix = [[a, c, e], [b, d, f], [0, 0, 1]],\\n x, y, z, res;\\n\\n if (a && a instanceof Matrix) {\\n matrix = [[a.a, a.c, a.e], [a.b, a.d, a.f], [0, 0, 1]];\\n }\\n\\n for (x = 0; x < 3; x++) {\\n for (y = 0; y < 3; y++) {\\n res = 0;\\n for (z = 0; z < 3; z++) {\\n res += m[x][z] * matrix[z][y];\\n }\\n out[x][y] = res;\\n }\\n }\\n this.a = out[0][0];\\n this.b = out[1][0];\\n this.c = out[0][1];\\n this.d = out[1][1];\\n this.e = out[0][2];\\n this.f = out[1][2];\\n };\\n /*\\\\\\n * Matrix.invert\\n [ method ]\\n **\\n * Returns inverted version of the matrix\\n = (object) @Matrix\\n \\\\*/\\n matrixproto.invert = function () {\\n var me = this,\\n x = me.a * me.d - me.b * me.c;\\n return new Matrix(me.d / x, -me.b / x, -me.c / x, me.a / x, (me.c * me.f - me.d * me.e) / x, (me.b * me.e - me.a * me.f) / x);\\n };\\n /*\\\\\\n * Matrix.clone\\n [ method ]\\n **\\n * Returns copy of the matrix\\n = (object) @Matrix\\n \\\\*/\\n matrixproto.clone = function () {\\n return new Matrix(this.a, this.b, this.c, this.d, this.e, this.f);\\n };\\n /*\\\\\\n * Matrix.translate\\n [ method ]\\n **\\n * Translate the matrix\\n > Parameters\\n - x (number)\\n - y (number)\\n \\\\*/\\n matrixproto.translate = function (x, y) {\\n this.add(1, 0, 0, 1, x, y);\\n };\\n /*\\\\\\n * Matrix.scale\\n [ method ]\\n **\\n * Scales the matrix\\n > Parameters\\n - x (number)\\n - y (number) #optional\\n - cx (number) #optional\\n - cy (number) #optional\\n \\\\*/\\n matrixproto.scale = function (x, y, cx, cy) {\\n y == null && (y = x);\\n (cx || cy) && this.add(1, 0, 0, 1, cx, cy);\\n this.add(x, 0, 0, y, 0, 0);\\n (cx || cy) && this.add(1, 0, 0, 1, -cx, -cy);\\n };\\n /*\\\\\\n * Matrix.rotate\\n [ method ]\\n **\\n * Rotates the matrix\\n > Parameters\\n - a (number)\\n - x (number)\\n - y (number)\\n \\\\*/\\n matrixproto.rotate = function (a, x, y) {\\n a = R.rad(a);\\n x = x || 0;\\n y = y || 0;\\n var cos = +math.cos(a).toFixed(9),\\n sin = +math.sin(a).toFixed(9);\\n this.add(cos, sin, -sin, cos, x, y);\\n this.add(1, 0, 0, 1, -x, -y);\\n };\\n /*\\\\\\n * Matrix.x\\n [ method ]\\n **\\n * Return x coordinate for given point after transformation described by the matrix. See also @Matrix.y\\n > Parameters\\n - x (number)\\n - y (number)\\n = (number) x\\n \\\\*/\\n matrixproto.x = function (x, y) {\\n return x * this.a + y * this.c + this.e;\\n };\\n /*\\\\\\n * Matrix.y\\n [ method ]\\n **\\n * Return y coordinate for given point after transformation described by the matrix. See also @Matrix.x\\n > Parameters\\n - x (number)\\n - y (number)\\n = (number) y\\n \\\\*/\\n matrixproto.y = function (x, y) {\\n return x * this.b + y * this.d + this.f;\\n };\\n matrixproto.get = function (i) {\\n return +this[Str.fromCharCode(97 + i)].toFixed(4);\\n };\\n matrixproto.toString = function () {\\n return R.svg ?\\n \\\"matrix(\\\" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)].join() + \\\")\\\" :\\n [this.get(0), this.get(2), this.get(1), this.get(3), 0, 0].join();\\n };\\n matrixproto.toFilter = function () {\\n return \\\"progid:DXImageTransform.Microsoft.Matrix(M11=\\\" + this.get(0) +\\n \\\", M12=\\\" + this.get(2) + \\\", M21=\\\" + this.get(1) + \\\", M22=\\\" + this.get(3) +\\n \\\", Dx=\\\" + this.get(4) + \\\", Dy=\\\" + this.get(5) + \\\", sizingmethod='auto expand')\\\";\\n };\\n matrixproto.offset = function () {\\n return [this.e.toFixed(4), this.f.toFixed(4)];\\n };\\n function norm(a) {\\n return a[0] * a[0] + a[1] * a[1];\\n }\\n function normalize(a) {\\n var mag = math.sqrt(norm(a));\\n a[0] && (a[0] /= mag);\\n a[1] && (a[1] /= mag);\\n }\\n /*\\\\\\n * Matrix.split\\n [ method ]\\n **\\n * Splits matrix into primitive transformations\\n = (object) in format:\\n o dx (number) translation by x\\n o dy (number) translation by y\\n o scalex (number) scale by x\\n o scaley (number) scale by y\\n o shear (number) shear\\n o rotate (number) rotation in deg\\n o isSimple (boolean) could it be represented via simple transformations\\n \\\\*/\\n matrixproto.split = function () {\\n var out = {};\\n // translation\\n out.dx = this.e;\\n out.dy = this.f;\\n\\n // scale and shear\\n var row = [[this.a, this.c], [this.b, this.d]];\\n out.scalex = math.sqrt(norm(row[0]));\\n normalize(row[0]);\\n\\n out.shear = row[0][0] * row[1][0] + row[0][1] * row[1][1];\\n row[1] = [row[1][0] - row[0][0] * out.shear, row[1][1] - row[0][1] * out.shear];\\n\\n out.scaley = math.sqrt(norm(row[1]));\\n normalize(row[1]);\\n out.shear /= out.scaley;\\n\\n // rotation\\n var sin = -row[0][1],\\n cos = row[1][1];\\n if (cos < 0) {\\n out.rotate = R.deg(math.acos(cos));\\n if (sin < 0) {\\n out.rotate = 360 - out.rotate;\\n }\\n } else {\\n out.rotate = R.deg(math.asin(sin));\\n }\\n\\n out.isSimple = !+out.shear.toFixed(9) && (out.scalex.toFixed(9) == out.scaley.toFixed(9) || !out.rotate);\\n out.isSuperSimple = !+out.shear.toFixed(9) && out.scalex.toFixed(9) == out.scaley.toFixed(9) && !out.rotate;\\n out.noRotation = !+out.shear.toFixed(9) && !out.rotate;\\n return out;\\n };\\n /*\\\\\\n * Matrix.toTransformString\\n [ method ]\\n **\\n * Return transform string that represents given matrix\\n = (string) transform string\\n \\\\*/\\n matrixproto.toTransformString = function (shorter) {\\n var s = shorter || this[split]();\\n if (s.isSimple) {\\n s.scalex = +s.scalex.toFixed(4);\\n s.scaley = +s.scaley.toFixed(4);\\n s.rotate = +s.rotate.toFixed(4);\\n return (s.dx || s.dy ? \\\"t\\\" + [s.dx, s.dy] : E) +\\n (s.scalex != 1 || s.scaley != 1 ? \\\"s\\\" + [s.scalex, s.scaley, 0, 0] : E) +\\n (s.rotate ? \\\"r\\\" + [s.rotate, 0, 0] : E);\\n } else {\\n return \\\"m\\\" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)];\\n }\\n };\\n })(Matrix.prototype);\\n\\n var preventDefault = function () {\\n this.returnValue = false;\\n },\\n preventTouch = function () {\\n return this.originalEvent.preventDefault();\\n },\\n stopPropagation = function () {\\n this.cancelBubble = true;\\n },\\n stopTouch = function () {\\n return this.originalEvent.stopPropagation();\\n },\\n getEventPosition = function (e) {\\n var scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\\n scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft;\\n\\n return {\\n x: e.clientX + scrollX,\\n y: e.clientY + scrollY\\n };\\n },\\n addEvent = (function () {\\n if (g.doc.addEventListener) {\\n return function (obj, type, fn, element) {\\n var f = function (e) {\\n var pos = getEventPosition(e);\\n return fn.call(element, e, pos.x, pos.y);\\n };\\n obj.addEventListener(type, f, false);\\n\\n if (supportsTouch && touchMap[type]) {\\n var _f = function (e) {\\n var pos = getEventPosition(e),\\n olde = e;\\n\\n for (var i = 0, ii = e.targetTouches && e.targetTouches.length; i < ii; i++) {\\n if (e.targetTouches[i].target == obj) {\\n e = e.targetTouches[i];\\n e.originalEvent = olde;\\n e.preventDefault = preventTouch;\\n e.stopPropagation = stopTouch;\\n break;\\n }\\n }\\n\\n return fn.call(element, e, pos.x, pos.y);\\n };\\n obj.addEventListener(touchMap[type], _f, false);\\n }\\n\\n return function () {\\n obj.removeEventListener(type, f, false);\\n\\n if (supportsTouch && touchMap[type])\\n obj.removeEventListener(touchMap[type], _f, false);\\n\\n return true;\\n };\\n };\\n } else if (g.doc.attachEvent) {\\n return function (obj, type, fn, element) {\\n var f = function (e) {\\n e = e || g.win.event;\\n var scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\\n scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft,\\n x = e.clientX + scrollX,\\n y = e.clientY + scrollY;\\n e.preventDefault = e.preventDefault || preventDefault;\\n e.stopPropagation = e.stopPropagation || stopPropagation;\\n return fn.call(element, e, x, y);\\n };\\n obj.attachEvent(\\\"on\\\" + type, f);\\n var detacher = function () {\\n obj.detachEvent(\\\"on\\\" + type, f);\\n return true;\\n };\\n return detacher;\\n };\\n }\\n })(),\\n drag = [],\\n dragMove = function (e) {\\n var x = e.clientX,\\n y = e.clientY,\\n scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\\n scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft,\\n dragi,\\n j = drag.length;\\n while (j--) {\\n dragi = drag[j];\\n if (supportsTouch && e.touches) {\\n var i = e.touches.length,\\n touch;\\n while (i--) {\\n touch = e.touches[i];\\n if (touch.identifier == dragi.el._drag.id) {\\n x = touch.clientX;\\n y = touch.clientY;\\n (e.originalEvent ? e.originalEvent : e).preventDefault();\\n break;\\n }\\n }\\n } else {\\n e.preventDefault();\\n }\\n var node = dragi.el.node,\\n o,\\n next = node.nextSibling,\\n parent = node.parentNode,\\n display = node.style.display;\\n g.win.opera && parent.removeChild(node);\\n node.style.display = \\\"none\\\";\\n o = dragi.el.paper.getElementByPoint(x, y);\\n node.style.display = display;\\n g.win.opera && (next ? parent.insertBefore(node, next) : parent.appendChild(node));\\n o && eve(\\\"raphael.drag.over.\\\" + dragi.el.id, dragi.el, o);\\n x += scrollX;\\n y += scrollY;\\n eve(\\\"raphael.drag.move.\\\" + dragi.el.id, dragi.move_scope || dragi.el, x - dragi.el._drag.x, y - dragi.el._drag.y, x, y, e);\\n }\\n },\\n dragUp = function (e) {\\n R.unmousemove(dragMove).unmouseup(dragUp);\\n var i = drag.length,\\n dragi;\\n while (i--) {\\n dragi = drag[i];\\n dragi.el._drag = {};\\n eve(\\\"raphael.drag.end.\\\" + dragi.el.id, dragi.end_scope || dragi.start_scope || dragi.move_scope || dragi.el, e);\\n }\\n drag = [];\\n },\\n /*\\\\\\n * Raphael.el\\n [ property (object) ]\\n **\\n * You can add your own method to elements. This is usefull when you want to hack default functionality or\\n * want to wrap some common transformation or attributes in one method. In difference to canvas methods,\\n * you can redefine element method at any time. Expending element methods wouldn’t affect set.\\n > Usage\\n | Raphael.el.red = function () {\\n | this.attr({fill: \\\"#f00\\\"});\\n | };\\n | // then use it\\n | paper.circle(100, 100, 20).red();\\n \\\\*/\\n elproto = R.el = {};\\n /*\\\\\\n * Element.click\\n [ method ]\\n **\\n * Adds event handler for click for the element.\\n > Parameters\\n - handler (function) handler for the event\\n = (object) @Element\\n \\\\*/\\n /*\\\\\\n * Element.unclick\\n [ method ]\\n **\\n * Removes event handler for click for the element.\\n > Parameters\\n - handler (function) #optional handler for the event\\n = (object) @Element\\n \\\\*/\\n\\n /*\\\\\\n * Element.dblclick\\n [ method ]\\n **\\n * Adds event handler for double click for the element.\\n > Parameters\\n - handler (function) handler for the event\\n = (object) @Element\\n \\\\*/\\n /*\\\\\\n * Element.undblclick\\n [ method ]\\n **\\n * Removes event handler for double click for the element.\\n > Parameters\\n - handler (function) #optional handler for the event\\n = (object) @Element\\n \\\\*/\\n\\n /*\\\\\\n * Element.mousedown\\n [ method ]\\n **\\n * Adds event handler for mousedown for the element.\\n > Parameters\\n - handler (function) handler for the event\\n = (object) @Element\\n \\\\*/\\n /*\\\\\\n * Element.unmousedown\\n [ method ]\\n **\\n * Removes event handler for mousedown for the element.\\n > Parameters\\n - handler (function) #optional handler for the event\\n = (object) @Element\\n \\\\*/\\n\\n /*\\\\\\n * Element.mousemove\\n [ method ]\\n **\\n * Adds event handler for mousemove for the element.\\n > Parameters\\n - handler (function) handler for the event\\n = (object) @Element\\n \\\\*/\\n /*\\\\\\n * Element.unmousemove\\n [ method ]\\n **\\n * Removes event handler for mousemove for the element.\\n > Parameters\\n - handler (function) #optional handler for the event\\n = (object) @Element\\n \\\\*/\\n\\n /*\\\\\\n * Element.mouseout\\n [ method ]\\n **\\n * Adds event handler for mouseout for the element.\\n > Parameters\\n - handler (function) handler for the event\\n = (object) @Element\\n \\\\*/\\n /*\\\\\\n * Element.unmouseout\\n [ method ]\\n **\\n * Removes event handler for mouseout for the element.\\n > Parameters\\n - handler (function) #optional handler for the event\\n = (object) @Element\\n \\\\*/\\n\\n /*\\\\\\n * Element.mouseover\\n [ method ]\\n **\\n * Adds event handler for mouseover for the element.\\n > Parameters\\n - handler (function) handler for the event\\n = (object) @Element\\n \\\\*/\\n /*\\\\\\n * Element.unmouseover\\n [ method ]\\n **\\n * Removes event handler for mouseover for the element.\\n > Parameters\\n - handler (function) #optional handler for the event\\n = (object) @Element\\n \\\\*/\\n\\n /*\\\\\\n * Element.mouseup\\n [ method ]\\n **\\n * Adds event handler for mouseup for the element.\\n > Parameters\\n - handler (function) handler for the event\\n = (object) @Element\\n \\\\*/\\n /*\\\\\\n * Element.unmouseup\\n [ method ]\\n **\\n * Removes event handler for mouseup for the element.\\n > Parameters\\n - handler (function) #optional handler for the event\\n = (object) @Element\\n \\\\*/\\n\\n /*\\\\\\n * Element.touchstart\\n [ method ]\\n **\\n * Adds event handler for touchstart for the element.\\n > Parameters\\n - handler (function) handler for the event\\n = (object) @Element\\n \\\\*/\\n /*\\\\\\n * Element.untouchstart\\n [ method ]\\n **\\n * Removes event handler for touchstart for the element.\\n > Parameters\\n - handler (function) #optional handler for the event\\n = (object) @Element\\n \\\\*/\\n\\n /*\\\\\\n * Element.touchmove\\n [ method ]\\n **\\n * Adds event handler for touchmove for the element.\\n > Parameters\\n - handler (function) handler for the event\\n = (object) @Element\\n \\\\*/\\n /*\\\\\\n * Element.untouchmove\\n [ method ]\\n **\\n * Removes event handler for touchmove for the element.\\n > Parameters\\n - handler (function) #optional handler for the event\\n = (object) @Element\\n \\\\*/\\n\\n /*\\\\\\n * Element.touchend\\n [ method ]\\n **\\n * Adds event handler for touchend for the element.\\n > Parameters\\n - handler (function) handler for the event\\n = (object) @Element\\n \\\\*/\\n /*\\\\\\n * Element.untouchend\\n [ method ]\\n **\\n * Removes event handler for touchend for the element.\\n > Parameters\\n - handler (function) #optional handler for the event\\n = (object) @Element\\n \\\\*/\\n\\n /*\\\\\\n * Element.touchcancel\\n [ method ]\\n **\\n * Adds event handler for touchcancel for the element.\\n > Parameters\\n - handler (function) handler for the event\\n = (object) @Element\\n \\\\*/\\n /*\\\\\\n * Element.untouchcancel\\n [ method ]\\n **\\n * Removes event handler for touchcancel for the element.\\n > Parameters\\n - handler (function) #optional handler for the event\\n = (object) @Element\\n \\\\*/\\n for (var i = events.length; i--;) {\\n (function (eventName) {\\n R[eventName] = elproto[eventName] = function (fn, scope) {\\n if (R.is(fn, \\\"function\\\")) {\\n this.events = this.events || [];\\n this.events.push({name: eventName, f: fn, unbind: addEvent(this.shape || this.node || g.doc, eventName, fn, scope || this)});\\n }\\n return this;\\n };\\n R[\\\"un\\\" + eventName] = elproto[\\\"un\\\" + eventName] = function (fn) {\\n var events = this.events || [],\\n l = events.length;\\n while (l--){\\n if (events[l].name == eventName && (R.is(fn, \\\"undefined\\\") || events[l].f == fn)) {\\n events[l].unbind();\\n events.splice(l, 1);\\n !events.length && delete this.events;\\n }\\n }\\n return this;\\n };\\n })(events[i]);\\n }\\n\\n /*\\\\\\n * Element.data\\n [ method ]\\n **\\n * Adds or retrieves given value asociated with given key.\\n **\\n * See also @Element.removeData\\n > Parameters\\n - key (string) key to store data\\n - value (any) #optional value to store\\n = (object) @Element\\n * or, if value is not specified:\\n = (any) value\\n * or, if key and value are not specified:\\n = (object) Key/value pairs for all the data associated with the element.\\n > Usage\\n | for (var i = 0, i < 5, i++) {\\n | paper.circle(10 + 15 * i, 10, 10)\\n | .attr({fill: \\\"#000\\\"})\\n | .data(\\\"i\\\", i)\\n | .click(function () {\\n | alert(this.data(\\\"i\\\"));\\n | });\\n | }\\n \\\\*/\\n elproto.data = function (key, value) {\\n var data = eldata[this.id] = eldata[this.id] || {};\\n if (arguments.length == 0) {\\n return data;\\n }\\n if (arguments.length == 1) {\\n if (R.is(key, \\\"object\\\")) {\\n for (var i in key) if (key[has](i)) {\\n this.data(i, key[i]);\\n }\\n return this;\\n }\\n eve(\\\"raphael.data.get.\\\" + this.id, this, data[key], key);\\n return data[key];\\n }\\n data[key] = value;\\n eve(\\\"raphael.data.set.\\\" + this.id, this, value, key);\\n return this;\\n };\\n /*\\\\\\n * Element.removeData\\n [ method ]\\n **\\n * Removes value associated with an element by given key.\\n * If key is not provided, removes all the data of the element.\\n > Parameters\\n - key (string) #optional key\\n = (object) @Element\\n \\\\*/\\n elproto.removeData = function (key) {\\n if (key == null) {\\n eldata[this.id] = {};\\n } else {\\n eldata[this.id] && delete eldata[this.id][key];\\n }\\n return this;\\n };\\n /*\\\\\\n * Element.getData\\n [ method ]\\n **\\n * Retrieves the element data\\n = (object) data\\n \\\\*/\\n elproto.getData = function () {\\n return clone(eldata[this.id] || {});\\n };\\n /*\\\\\\n * Element.hover\\n [ method ]\\n **\\n * Adds event handlers for hover for the element.\\n > Parameters\\n - f_in (function) handler for hover in\\n - f_out (function) handler for hover out\\n - icontext (object) #optional context for hover in handler\\n - ocontext (object) #optional context for hover out handler\\n = (object) @Element\\n \\\\*/\\n elproto.hover = function (f_in, f_out, scope_in, scope_out) {\\n return this.mouseover(f_in, scope_in).mouseout(f_out, scope_out || scope_in);\\n };\\n /*\\\\\\n * Element.unhover\\n [ method ]\\n **\\n * Removes event handlers for hover for the element.\\n > Parameters\\n - f_in (function) handler for hover in\\n - f_out (function) handler for hover out\\n = (object) @Element\\n \\\\*/\\n elproto.unhover = function (f_in, f_out) {\\n return this.unmouseover(f_in).unmouseout(f_out);\\n };\\n var draggable = [];\\n /*\\\\\\n * Element.drag\\n [ method ]\\n **\\n * Adds event handlers for drag of the element.\\n > Parameters\\n - onmove (function) handler for moving\\n - onstart (function) handler for drag start\\n - onend (function) handler for drag end\\n - mcontext (object) #optional context for moving handler\\n - scontext (object) #optional context for drag start handler\\n - econtext (object) #optional context for drag end handler\\n * Additionaly following `drag` events will be triggered: `drag.start.` on start,\\n * `drag.end.` on end and `drag.move.` on every move. When element will be dragged over another element\\n * `drag.over.` will be fired as well.\\n *\\n * Start event and start handler will be called in specified context or in context of the element with following parameters:\\n o x (number) x position of the mouse\\n o y (number) y position of the mouse\\n o event (object) DOM event object\\n * Move event and move handler will be called in specified context or in context of the element with following parameters:\\n o dx (number) shift by x from the start point\\n o dy (number) shift by y from the start point\\n o x (number) x position of the mouse\\n o y (number) y position of the mouse\\n o event (object) DOM event object\\n * End event and end handler will be called in specified context or in context of the element with following parameters:\\n o event (object) DOM event object\\n = (object) @Element\\n \\\\*/\\n elproto.drag = function (onmove, onstart, onend, move_scope, start_scope, end_scope) {\\n function start(e) {\\n (e.originalEvent || e).preventDefault();\\n var x = e.clientX,\\n y = e.clientY,\\n scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\\n scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft;\\n this._drag.id = e.identifier;\\n if (supportsTouch && e.touches) {\\n var i = e.touches.length, touch;\\n while (i--) {\\n touch = e.touches[i];\\n this._drag.id = touch.identifier;\\n if (touch.identifier == this._drag.id) {\\n x = touch.clientX;\\n y = touch.clientY;\\n break;\\n }\\n }\\n }\\n this._drag.x = x + scrollX;\\n this._drag.y = y + scrollY;\\n !drag.length && R.mousemove(dragMove).mouseup(dragUp);\\n drag.push({el: this, move_scope: move_scope, start_scope: start_scope, end_scope: end_scope});\\n onstart && eve.on(\\\"raphael.drag.start.\\\" + this.id, onstart);\\n onmove && eve.on(\\\"raphael.drag.move.\\\" + this.id, onmove);\\n onend && eve.on(\\\"raphael.drag.end.\\\" + this.id, onend);\\n eve(\\\"raphael.drag.start.\\\" + this.id, start_scope || move_scope || this, e.clientX + scrollX, e.clientY + scrollY, e);\\n }\\n this._drag = {};\\n draggable.push({el: this, start: start});\\n this.mousedown(start);\\n return this;\\n };\\n /*\\\\\\n * Element.onDragOver\\n [ method ]\\n **\\n * Shortcut for assigning event handler for `drag.over.` event, where id is id of the element (see @Element.id).\\n > Parameters\\n - f (function) handler for event, first argument would be the element you are dragging over\\n \\\\*/\\n elproto.onDragOver = function (f) {\\n f ? eve.on(\\\"raphael.drag.over.\\\" + this.id, f) : eve.unbind(\\\"raphael.drag.over.\\\" + this.id);\\n };\\n /*\\\\\\n * Element.undrag\\n [ method ]\\n **\\n * Removes all drag event handlers from given element.\\n \\\\*/\\n elproto.undrag = function () {\\n var i = draggable.length;\\n while (i--) if (draggable[i].el == this) {\\n this.unmousedown(draggable[i].start);\\n draggable.splice(i, 1);\\n eve.unbind(\\\"raphael.drag.*.\\\" + this.id);\\n }\\n !draggable.length && R.unmousemove(dragMove).unmouseup(dragUp);\\n drag = [];\\n };\\n /*\\\\\\n * Paper.circle\\n [ method ]\\n **\\n * Draws a circle.\\n **\\n > Parameters\\n **\\n - x (number) x coordinate of the centre\\n - y (number) y coordinate of the centre\\n - r (number) radius\\n = (object) Raphaël element object with type “circle”\\n **\\n > Usage\\n | var c = paper.circle(50, 50, 40);\\n \\\\*/\\n paperproto.circle = function (x, y, r) {\\n var out = R._engine.circle(this, x || 0, y || 0, r || 0);\\n this.__set__ && this.__set__.push(out);\\n return out;\\n };\\n /*\\\\\\n * Paper.rect\\n [ method ]\\n *\\n * Draws a rectangle.\\n **\\n > Parameters\\n **\\n - x (number) x coordinate of the top left corner\\n - y (number) y coordinate of the top left corner\\n - width (number) width\\n - height (number) height\\n - r (number) #optional radius for rounded corners, default is 0\\n = (object) Raphaël element object with type “rect”\\n **\\n > Usage\\n | // regular rectangle\\n | var c = paper.rect(10, 10, 50, 50);\\n | // rectangle with rounded corners\\n | var c = paper.rect(40, 40, 50, 50, 10);\\n \\\\*/\\n paperproto.rect = function (x, y, w, h, r) {\\n var out = R._engine.rect(this, x || 0, y || 0, w || 0, h || 0, r || 0);\\n this.__set__ && this.__set__.push(out);\\n return out;\\n };\\n /*\\\\\\n * Paper.ellipse\\n [ method ]\\n **\\n * Draws an ellipse.\\n **\\n > Parameters\\n **\\n - x (number) x coordinate of the centre\\n - y (number) y coordinate of the centre\\n - rx (number) horizontal radius\\n - ry (number) vertical radius\\n = (object) Raphaël element object with type “ellipse”\\n **\\n > Usage\\n | var c = paper.ellipse(50, 50, 40, 20);\\n \\\\*/\\n paperproto.ellipse = function (x, y, rx, ry) {\\n var out = R._engine.ellipse(this, x || 0, y || 0, rx || 0, ry || 0);\\n this.__set__ && this.__set__.push(out);\\n return out;\\n };\\n /*\\\\\\n * Paper.path\\n [ method ]\\n **\\n * Creates a path element by given path data string.\\n > Parameters\\n - pathString (string) #optional path string in SVG format.\\n * Path string consists of one-letter commands, followed by comma seprarated arguments in numercal form. Example:\\n | \\\"M10,20L30,40\\\"\\n * Here we can see two commands: “M”, with arguments `(10, 20)` and “L” with arguments `(30, 40)`. Upper case letter mean command is absolute, lower case—relative.\\n *\\n #

Here is short list of commands available, for more details see SVG path string format.

\\n # \\n # \\n # \\n # \\n # \\n # \\n # \\n # \\n # \\n # \\n # \\n #
CommandNameParameters
Mmoveto(x y)+
Zclosepath(none)
Llineto(x y)+
Hhorizontal linetox+
Vvertical linetoy+
Ccurveto(x1 y1 x2 y2 x y)+
Ssmooth curveto(x2 y2 x y)+
Qquadratic Bézier curveto(x1 y1 x y)+
Tsmooth quadratic Bézier curveto(x y)+
Aelliptical arc(rx ry x-axis-rotation large-arc-flag sweep-flag x y)+
RCatmull-Rom curveto*x1 y1 (x y)+
\\n * * “Catmull-Rom curveto” is a not standard SVG command and added in 2.0 to make life easier.\\n * Note: there is a special case when path consist of just three commands: “M10,10R…z”. In this case path will smoothly connects to its beginning.\\n > Usage\\n | var c = paper.path(\\\"M10 10L90 90\\\");\\n | // draw a diagonal line:\\n | // move to 10,10, line to 90,90\\n * For example of path strings, check out these icons: http://raphaeljs.com/icons/\\n \\\\*/\\n paperproto.path = function (pathString) {\\n pathString && !R.is(pathString, string) && !R.is(pathString[0], array) && (pathString += E);\\n var out = R._engine.path(R.format[apply](R, arguments), this);\\n this.__set__ && this.__set__.push(out);\\n return out;\\n };\\n /*\\\\\\n * Paper.image\\n [ method ]\\n **\\n * Embeds an image into the surface.\\n **\\n > Parameters\\n **\\n - src (string) URI of the source image\\n - x (number) x coordinate position\\n - y (number) y coordinate position\\n - width (number) width of the image\\n - height (number) height of the image\\n = (object) Raphaël element object with type “image”\\n **\\n > Usage\\n | var c = paper.image(\\\"apple.png\\\", 10, 10, 80, 80);\\n \\\\*/\\n paperproto.image = function (src, x, y, w, h) {\\n var out = R._engine.image(this, src || \\\"about:blank\\\", x || 0, y || 0, w || 0, h || 0);\\n this.__set__ && this.__set__.push(out);\\n return out;\\n };\\n /*\\\\\\n * Paper.text\\n [ method ]\\n **\\n * Draws a text string. If you need line breaks, put “\\\\n” in the string.\\n **\\n > Parameters\\n **\\n - x (number) x coordinate position\\n - y (number) y coordinate position\\n - text (string) The text string to draw\\n = (object) Raphaël element object with type “text”\\n **\\n > Usage\\n | var t = paper.text(50, 50, \\\"Raphaël\\\\nkicks\\\\nbutt!\\\");\\n \\\\*/\\n paperproto.text = function (x, y, text) {\\n var out = R._engine.text(this, x || 0, y || 0, Str(text));\\n this.__set__ && this.__set__.push(out);\\n return out;\\n };\\n /*\\\\\\n * Paper.set\\n [ method ]\\n **\\n * Creates array-like object to keep and operate several elements at once.\\n * Warning: it doesn’t create any elements for itself in the page, it just groups existing elements.\\n * Sets act as pseudo elements — all methods available to an element can be used on a set.\\n = (object) array-like object that represents set of elements\\n **\\n > Usage\\n | var st = paper.set();\\n | st.push(\\n | paper.circle(10, 10, 5),\\n | paper.circle(30, 10, 5)\\n | );\\n | st.attr({fill: \\\"red\\\"}); // changes the fill of both circles\\n \\\\*/\\n paperproto.set = function (itemsArray) {\\n !R.is(itemsArray, \\\"array\\\") && (itemsArray = Array.prototype.splice.call(arguments, 0, arguments.length));\\n var out = new Set(itemsArray);\\n this.__set__ && this.__set__.push(out);\\n out[\\\"paper\\\"] = this;\\n out[\\\"type\\\"] = \\\"set\\\";\\n return out;\\n };\\n /*\\\\\\n * Paper.setStart\\n [ method ]\\n **\\n * Creates @Paper.set. All elements that will be created after calling this method and before calling\\n * @Paper.setFinish will be added to the set.\\n **\\n > Usage\\n | paper.setStart();\\n | paper.circle(10, 10, 5),\\n | paper.circle(30, 10, 5)\\n | var st = paper.setFinish();\\n | st.attr({fill: \\\"red\\\"}); // changes the fill of both circles\\n \\\\*/\\n paperproto.setStart = function (set) {\\n this.__set__ = set || this.set();\\n };\\n /*\\\\\\n * Paper.setFinish\\n [ method ]\\n **\\n * See @Paper.setStart. This method finishes catching and returns resulting set.\\n **\\n = (object) set\\n \\\\*/\\n paperproto.setFinish = function (set) {\\n var out = this.__set__;\\n delete this.__set__;\\n return out;\\n };\\n /*\\\\\\n * Paper.getSize\\n [ method ]\\n **\\n * Obtains current paper actual size.\\n **\\n = (object)\\n \\\\*/\\n paperproto.getSize = function () {\\n var container = this.canvas.parentNode;\\n return {\\n width: container.offsetWidth,\\n height: container.offsetHeight\\n };\\n };\\n /*\\\\\\n * Paper.setSize\\n [ method ]\\n **\\n * If you need to change dimensions of the canvas call this method\\n **\\n > Parameters\\n **\\n - width (number) new width of the canvas\\n - height (number) new height of the canvas\\n \\\\*/\\n paperproto.setSize = function (width, height) {\\n return R._engine.setSize.call(this, width, height);\\n };\\n /*\\\\\\n * Paper.setViewBox\\n [ method ]\\n **\\n * Sets the view box of the paper. Practically it gives you ability to zoom and pan whole paper surface by\\n * specifying new boundaries.\\n **\\n > Parameters\\n **\\n - x (number) new x position, default is `0`\\n - y (number) new y position, default is `0`\\n - w (number) new width of the canvas\\n - h (number) new height of the canvas\\n - fit (boolean) `true` if you want graphics to fit into new boundary box\\n \\\\*/\\n paperproto.setViewBox = function (x, y, w, h, fit) {\\n return R._engine.setViewBox.call(this, x, y, w, h, fit);\\n };\\n /*\\\\\\n * Paper.top\\n [ property ]\\n **\\n * Points to the topmost element on the paper\\n \\\\*/\\n /*\\\\\\n * Paper.bottom\\n [ property ]\\n **\\n * Points to the bottom element on the paper\\n \\\\*/\\n paperproto.top = paperproto.bottom = null;\\n /*\\\\\\n * Paper.raphael\\n [ property ]\\n **\\n * Points to the @Raphael object/function\\n \\\\*/\\n paperproto.raphael = R;\\n var getOffset = function (elem) {\\n var box = elem.getBoundingClientRect(),\\n doc = elem.ownerDocument,\\n body = doc.body,\\n docElem = doc.documentElement,\\n clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0,\\n top = box.top + (g.win.pageYOffset || docElem.scrollTop || body.scrollTop ) - clientTop,\\n left = box.left + (g.win.pageXOffset || docElem.scrollLeft || body.scrollLeft) - clientLeft;\\n return {\\n y: top,\\n x: left\\n };\\n };\\n /*\\\\\\n * Paper.getElementByPoint\\n [ method ]\\n **\\n * Returns you topmost element under given point.\\n **\\n = (object) Raphaël element object\\n > Parameters\\n **\\n - x (number) x coordinate from the top left corner of the window\\n - y (number) y coordinate from the top left corner of the window\\n > Usage\\n | paper.getElementByPoint(mouseX, mouseY).attr({stroke: \\\"#f00\\\"});\\n \\\\*/\\n paperproto.getElementByPoint = function (x, y) {\\n var paper = this,\\n svg = paper.canvas,\\n target = g.doc.elementFromPoint(x, y);\\n if (g.win.opera && target.tagName == \\\"svg\\\") {\\n var so = getOffset(svg),\\n sr = svg.createSVGRect();\\n sr.x = x - so.x;\\n sr.y = y - so.y;\\n sr.width = sr.height = 1;\\n var hits = svg.getIntersectionList(sr, null);\\n if (hits.length) {\\n target = hits[hits.length - 1];\\n }\\n }\\n if (!target) {\\n return null;\\n }\\n while (target.parentNode && target != svg.parentNode && !target.raphael) {\\n target = target.parentNode;\\n }\\n target == paper.canvas.parentNode && (target = svg);\\n target = target && target.raphael ? paper.getById(target.raphaelid) : null;\\n return target;\\n };\\n\\n /*\\\\\\n * Paper.getElementsByBBox\\n [ method ]\\n **\\n * Returns set of elements that have an intersecting bounding box\\n **\\n > Parameters\\n **\\n - bbox (object) bbox to check with\\n = (object) @Set\\n \\\\*/\\n paperproto.getElementsByBBox = function (bbox) {\\n var set = this.set();\\n this.forEach(function (el) {\\n if (R.isBBoxIntersect(el.getBBox(), bbox)) {\\n set.push(el);\\n }\\n });\\n return set;\\n };\\n\\n /*\\\\\\n * Paper.getById\\n [ method ]\\n **\\n * Returns you element by its internal ID.\\n **\\n > Parameters\\n **\\n - id (number) id\\n = (object) Raphaël element object\\n \\\\*/\\n paperproto.getById = function (id) {\\n var bot = this.bottom;\\n while (bot) {\\n if (bot.id == id) {\\n return bot;\\n }\\n bot = bot.next;\\n }\\n return null;\\n };\\n /*\\\\\\n * Paper.forEach\\n [ method ]\\n **\\n * Executes given function for each element on the paper\\n *\\n * If callback function returns `false` it will stop loop running.\\n **\\n > Parameters\\n **\\n - callback (function) function to run\\n - thisArg (object) context object for the callback\\n = (object) Paper object\\n > Usage\\n | paper.forEach(function (el) {\\n | el.attr({ stroke: \\\"blue\\\" });\\n | });\\n \\\\*/\\n paperproto.forEach = function (callback, thisArg) {\\n var bot = this.bottom;\\n while (bot) {\\n if (callback.call(thisArg, bot) === false) {\\n return this;\\n }\\n bot = bot.next;\\n }\\n return this;\\n };\\n /*\\\\\\n * Paper.getElementsByPoint\\n [ method ]\\n **\\n * Returns set of elements that have common point inside\\n **\\n > Parameters\\n **\\n - x (number) x coordinate of the point\\n - y (number) y coordinate of the point\\n = (object) @Set\\n \\\\*/\\n paperproto.getElementsByPoint = function (x, y) {\\n var set = this.set();\\n this.forEach(function (el) {\\n if (el.isPointInside(x, y)) {\\n set.push(el);\\n }\\n });\\n return set;\\n };\\n function x_y() {\\n return this.x + S + this.y;\\n }\\n function x_y_w_h() {\\n return this.x + S + this.y + S + this.width + \\\" \\\\xd7 \\\" + this.height;\\n }\\n /*\\\\\\n * Element.isPointInside\\n [ method ]\\n **\\n * Determine if given point is inside this element’s shape\\n **\\n > Parameters\\n **\\n - x (number) x coordinate of the point\\n - y (number) y coordinate of the point\\n = (boolean) `true` if point inside the shape\\n \\\\*/\\n elproto.isPointInside = function (x, y) {\\n var rp = this.realPath = getPath[this.type](this);\\n if (this.attr('transform') && this.attr('transform').length) {\\n rp = R.transformPath(rp, this.attr('transform'));\\n }\\n return R.isPointInsidePath(rp, x, y);\\n };\\n /*\\\\\\n * Element.getBBox\\n [ method ]\\n **\\n * Return bounding box for a given element\\n **\\n > Parameters\\n **\\n - isWithoutTransform (boolean) flag, `true` if you want to have bounding box before transformations. Default is `false`.\\n = (object) Bounding box object:\\n o {\\n o x: (number) top left corner x\\n o y: (number) top left corner y\\n o x2: (number) bottom right corner x\\n o y2: (number) bottom right corner y\\n o width: (number) width\\n o height: (number) height\\n o }\\n \\\\*/\\n elproto.getBBox = function (isWithoutTransform) {\\n if (this.removed) {\\n return {};\\n }\\n var _ = this._;\\n if (isWithoutTransform) {\\n if (_.dirty || !_.bboxwt) {\\n this.realPath = getPath[this.type](this);\\n _.bboxwt = pathDimensions(this.realPath);\\n _.bboxwt.toString = x_y_w_h;\\n _.dirty = 0;\\n }\\n return _.bboxwt;\\n }\\n if (_.dirty || _.dirtyT || !_.bbox) {\\n if (_.dirty || !this.realPath) {\\n _.bboxwt = 0;\\n this.realPath = getPath[this.type](this);\\n }\\n _.bbox = pathDimensions(mapPath(this.realPath, this.matrix));\\n _.bbox.toString = x_y_w_h;\\n _.dirty = _.dirtyT = 0;\\n }\\n return _.bbox;\\n };\\n /*\\\\\\n * Element.clone\\n [ method ]\\n **\\n = (object) clone of a given element\\n **\\n \\\\*/\\n elproto.clone = function () {\\n if (this.removed) {\\n return null;\\n }\\n var out = this.paper[this.type]().attr(this.attr());\\n this.__set__ && this.__set__.push(out);\\n return out;\\n };\\n /*\\\\\\n * Element.glow\\n [ method ]\\n **\\n * Return set of elements that create glow-like effect around given element. See @Paper.set.\\n *\\n * Note: Glow is not connected to the element. If you change element attributes it won’t adjust itself.\\n **\\n > Parameters\\n **\\n - glow (object) #optional parameters object with all properties optional:\\n o {\\n o width (number) size of the glow, default is `10`\\n o fill (boolean) will it be filled, default is `false`\\n o opacity (number) opacity, default is `0.5`\\n o offsetx (number) horizontal offset, default is `0`\\n o offsety (number) vertical offset, default is `0`\\n o color (string) glow colour, default is `black`\\n o }\\n = (object) @Paper.set of elements that represents glow\\n \\\\*/\\n elproto.glow = function (glow) {\\n if (this.type == \\\"text\\\") {\\n return null;\\n }\\n glow = glow || {};\\n var s = {\\n width: (glow.width || 10) + (+this.attr(\\\"stroke-width\\\") || 1),\\n fill: glow.fill || false,\\n opacity: glow.opacity == null ? .5 : glow.opacity,\\n offsetx: glow.offsetx || 0,\\n offsety: glow.offsety || 0,\\n color: glow.color || \\\"#000\\\"\\n },\\n c = s.width / 2,\\n r = this.paper,\\n out = r.set(),\\n path = this.realPath || getPath[this.type](this);\\n path = this.matrix ? mapPath(path, this.matrix) : path;\\n for (var i = 1; i < c + 1; i++) {\\n out.push(r.path(path).attr({\\n stroke: s.color,\\n fill: s.fill ? s.color : \\\"none\\\",\\n \\\"stroke-linejoin\\\": \\\"round\\\",\\n \\\"stroke-linecap\\\": \\\"round\\\",\\n \\\"stroke-width\\\": +(s.width / c * i).toFixed(3),\\n opacity: +(s.opacity / c).toFixed(3)\\n }));\\n }\\n return out.insertBefore(this).translate(s.offsetx, s.offsety);\\n };\\n var curveslengths = {},\\n getPointAtSegmentLength = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length) {\\n if (length == null) {\\n return bezlen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y);\\n } else {\\n return R.findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, getTatLen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length));\\n }\\n },\\n getLengthFactory = function (istotal, subpath) {\\n return function (path, length, onlystart) {\\n path = path2curve(path);\\n var x, y, p, l, sp = \\\"\\\", subpaths = {}, point,\\n len = 0;\\n for (var i = 0, ii = path.length; i < ii; i++) {\\n p = path[i];\\n if (p[0] == \\\"M\\\") {\\n x = +p[1];\\n y = +p[2];\\n } else {\\n l = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6]);\\n if (len + l > length) {\\n if (subpath && !subpaths.start) {\\n point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len);\\n sp += [\\\"C\\\" + point.start.x, point.start.y, point.m.x, point.m.y, point.x, point.y];\\n if (onlystart) {return sp;}\\n subpaths.start = sp;\\n sp = [\\\"M\\\" + point.x, point.y + \\\"C\\\" + point.n.x, point.n.y, point.end.x, point.end.y, p[5], p[6]].join();\\n len += l;\\n x = +p[5];\\n y = +p[6];\\n continue;\\n }\\n if (!istotal && !subpath) {\\n point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len);\\n return {x: point.x, y: point.y, alpha: point.alpha};\\n }\\n }\\n len += l;\\n x = +p[5];\\n y = +p[6];\\n }\\n sp += p.shift() + p;\\n }\\n subpaths.end = sp;\\n point = istotal ? len : subpath ? subpaths : R.findDotsAtSegment(x, y, p[0], p[1], p[2], p[3], p[4], p[5], 1);\\n point.alpha && (point = {x: point.x, y: point.y, alpha: point.alpha});\\n return point;\\n };\\n };\\n var getTotalLength = getLengthFactory(1),\\n getPointAtLength = getLengthFactory(),\\n getSubpathsAtLength = getLengthFactory(0, 1);\\n /*\\\\\\n * Raphael.getTotalLength\\n [ method ]\\n **\\n * Returns length of the given path in pixels.\\n **\\n > Parameters\\n **\\n - path (string) SVG path string.\\n **\\n = (number) length.\\n \\\\*/\\n R.getTotalLength = getTotalLength;\\n /*\\\\\\n * Raphael.getPointAtLength\\n [ method ]\\n **\\n * Return coordinates of the point located at the given length on the given path.\\n **\\n > Parameters\\n **\\n - path (string) SVG path string\\n - length (number)\\n **\\n = (object) representation of the point:\\n o {\\n o x: (number) x coordinate\\n o y: (number) y coordinate\\n o alpha: (number) angle of derivative\\n o }\\n \\\\*/\\n R.getPointAtLength = getPointAtLength;\\n /*\\\\\\n * Raphael.getSubpath\\n [ method ]\\n **\\n * Return subpath of a given path from given length to given length.\\n **\\n > Parameters\\n **\\n - path (string) SVG path string\\n - from (number) position of the start of the segment\\n - to (number) position of the end of the segment\\n **\\n = (string) pathstring for the segment\\n \\\\*/\\n R.getSubpath = function (path, from, to) {\\n if (this.getTotalLength(path) - to < 1e-6) {\\n return getSubpathsAtLength(path, from).end;\\n }\\n var a = getSubpathsAtLength(path, to, 1);\\n return from ? getSubpathsAtLength(a, from).end : a;\\n };\\n /*\\\\\\n * Element.getTotalLength\\n [ method ]\\n **\\n * Returns length of the path in pixels. Only works for element of “path” type.\\n = (number) length.\\n \\\\*/\\n elproto.getTotalLength = function () {\\n var path = this.getPath();\\n if (!path) {\\n return;\\n }\\n\\n if (this.node.getTotalLength) {\\n return this.node.getTotalLength();\\n }\\n\\n return getTotalLength(path);\\n };\\n /*\\\\\\n * Element.getPointAtLength\\n [ method ]\\n **\\n * Return coordinates of the point located at the given length on the given path. Only works for element of “path” type.\\n **\\n > Parameters\\n **\\n - length (number)\\n **\\n = (object) representation of the point:\\n o {\\n o x: (number) x coordinate\\n o y: (number) y coordinate\\n o alpha: (number) angle of derivative\\n o }\\n \\\\*/\\n elproto.getPointAtLength = function (length) {\\n var path = this.getPath();\\n if (!path) {\\n return;\\n }\\n\\n return getPointAtLength(path, length);\\n };\\n /*\\\\\\n * Element.getPath\\n [ method ]\\n **\\n * Returns path of the element. Only works for elements of “path” type and simple elements like circle.\\n = (object) path\\n **\\n \\\\*/\\n elproto.getPath = function () {\\n var path,\\n getPath = R._getPath[this.type];\\n\\n if (this.type == \\\"text\\\" || this.type == \\\"set\\\") {\\n return;\\n }\\n\\n if (getPath) {\\n path = getPath(this);\\n }\\n\\n return path;\\n };\\n /*\\\\\\n * Element.getSubpath\\n [ method ]\\n **\\n * Return subpath of a given element from given length to given length. Only works for element of “path” type.\\n **\\n > Parameters\\n **\\n - from (number) position of the start of the segment\\n - to (number) position of the end of the segment\\n **\\n = (string) pathstring for the segment\\n \\\\*/\\n elproto.getSubpath = function (from, to) {\\n var path = this.getPath();\\n if (!path) {\\n return;\\n }\\n\\n return R.getSubpath(path, from, to);\\n };\\n /*\\\\\\n * Raphael.easing_formulas\\n [ property ]\\n **\\n * Object that contains easing formulas for animation. You could extend it with your own. By default it has following list of easing:\\n #
    \\n #
  • “linear”
  • \\n #
  • “<” or “easeIn” or “ease-in”
  • \\n #
  • “>” or “easeOut” or “ease-out”
  • \\n #
  • “<>” or “easeInOut” or “ease-in-out”
  • \\n #
  • “backIn” or “back-in”
  • \\n #
  • “backOut” or “back-out”
  • \\n #
  • “elastic”
  • \\n #
  • “bounce”
  • \\n #
\\n #

See also Easing demo.

\\n \\\\*/\\n var ef = R.easing_formulas = {\\n linear: function (n) {\\n return n;\\n },\\n \\\"<\\\": function (n) {\\n return pow(n, 1.7);\\n },\\n \\\">\\\": function (n) {\\n return pow(n, .48);\\n },\\n \\\"<>\\\": function (n) {\\n var q = .48 - n / 1.04,\\n Q = math.sqrt(.1734 + q * q),\\n x = Q - q,\\n X = pow(abs(x), 1 / 3) * (x < 0 ? -1 : 1),\\n y = -Q - q,\\n Y = pow(abs(y), 1 / 3) * (y < 0 ? -1 : 1),\\n t = X + Y + .5;\\n return (1 - t) * 3 * t * t + t * t * t;\\n },\\n backIn: function (n) {\\n var s = 1.70158;\\n return n * n * ((s + 1) * n - s);\\n },\\n backOut: function (n) {\\n n = n - 1;\\n var s = 1.70158;\\n return n * n * ((s + 1) * n + s) + 1;\\n },\\n elastic: function (n) {\\n if (n == !!n) {\\n return n;\\n }\\n return pow(2, -10 * n) * math.sin((n - .075) * (2 * PI) / .3) + 1;\\n },\\n bounce: function (n) {\\n var s = 7.5625,\\n p = 2.75,\\n l;\\n if (n < (1 / p)) {\\n l = s * n * n;\\n } else {\\n if (n < (2 / p)) {\\n n -= (1.5 / p);\\n l = s * n * n + .75;\\n } else {\\n if (n < (2.5 / p)) {\\n n -= (2.25 / p);\\n l = s * n * n + .9375;\\n } else {\\n n -= (2.625 / p);\\n l = s * n * n + .984375;\\n }\\n }\\n }\\n return l;\\n }\\n };\\n ef.easeIn = ef[\\\"ease-in\\\"] = ef[\\\"<\\\"];\\n ef.easeOut = ef[\\\"ease-out\\\"] = ef[\\\">\\\"];\\n ef.easeInOut = ef[\\\"ease-in-out\\\"] = ef[\\\"<>\\\"];\\n ef[\\\"back-in\\\"] = ef.backIn;\\n ef[\\\"back-out\\\"] = ef.backOut;\\n\\n var animationElements = [],\\n requestAnimFrame = window.requestAnimationFrame ||\\n window.webkitRequestAnimationFrame ||\\n window.mozRequestAnimationFrame ||\\n window.oRequestAnimationFrame ||\\n window.msRequestAnimationFrame ||\\n function (callback) {\\n setTimeout(callback, 16);\\n },\\n animation = function () {\\n var Now = +new Date,\\n l = 0;\\n for (; l < animationElements.length; l++) {\\n var e = animationElements[l];\\n if (e.el.removed || e.paused) {\\n continue;\\n }\\n var time = Now - e.start,\\n ms = e.ms,\\n easing = e.easing,\\n from = e.from,\\n diff = e.diff,\\n to = e.to,\\n t = e.t,\\n that = e.el,\\n set = {},\\n now,\\n init = {},\\n key;\\n if (e.initstatus) {\\n time = (e.initstatus * e.anim.top - e.prev) / (e.percent - e.prev) * ms;\\n e.status = e.initstatus;\\n delete e.initstatus;\\n e.stop && animationElements.splice(l--, 1);\\n } else {\\n e.status = (e.prev + (e.percent - e.prev) * (time / ms)) / e.anim.top;\\n }\\n if (time < 0) {\\n continue;\\n }\\n if (time < ms) {\\n var pos = easing(time / ms);\\n for (var attr in from) if (from[has](attr)) {\\n switch (availableAnimAttrs[attr]) {\\n case nu:\\n now = +from[attr] + pos * ms * diff[attr];\\n break;\\n case \\\"colour\\\":\\n now = \\\"rgb(\\\" + [\\n upto255(round(from[attr].r + pos * ms * diff[attr].r)),\\n upto255(round(from[attr].g + pos * ms * diff[attr].g)),\\n upto255(round(from[attr].b + pos * ms * diff[attr].b))\\n ].join(\\\",\\\") + \\\")\\\";\\n break;\\n case \\\"path\\\":\\n now = [];\\n for (var i = 0, ii = from[attr].length; i < ii; i++) {\\n now[i] = [from[attr][i][0]];\\n for (var j = 1, jj = from[attr][i].length; j < jj; j++) {\\n now[i][j] = +from[attr][i][j] + pos * ms * diff[attr][i][j];\\n }\\n now[i] = now[i].join(S);\\n }\\n now = now.join(S);\\n break;\\n case \\\"transform\\\":\\n if (diff[attr].real) {\\n now = [];\\n for (i = 0, ii = from[attr].length; i < ii; i++) {\\n now[i] = [from[attr][i][0]];\\n for (j = 1, jj = from[attr][i].length; j < jj; j++) {\\n now[i][j] = from[attr][i][j] + pos * ms * diff[attr][i][j];\\n }\\n }\\n } else {\\n var get = function (i) {\\n return +from[attr][i] + pos * ms * diff[attr][i];\\n };\\n // now = [[\\\"r\\\", get(2), 0, 0], [\\\"t\\\", get(3), get(4)], [\\\"s\\\", get(0), get(1), 0, 0]];\\n now = [[\\\"m\\\", get(0), get(1), get(2), get(3), get(4), get(5)]];\\n }\\n break;\\n case \\\"csv\\\":\\n if (attr == \\\"clip-rect\\\") {\\n now = [];\\n i = 4;\\n while (i--) {\\n now[i] = +from[attr][i] + pos * ms * diff[attr][i];\\n }\\n }\\n break;\\n default:\\n var from2 = [][concat](from[attr]);\\n now = [];\\n i = that.paper.customAttributes[attr].length;\\n while (i--) {\\n now[i] = +from2[i] + pos * ms * diff[attr][i];\\n }\\n break;\\n }\\n set[attr] = now;\\n }\\n that.attr(set);\\n (function (id, that, anim) {\\n setTimeout(function () {\\n eve(\\\"raphael.anim.frame.\\\" + id, that, anim);\\n });\\n })(that.id, that, e.anim);\\n } else {\\n (function(f, el, a) {\\n setTimeout(function() {\\n eve(\\\"raphael.anim.frame.\\\" + el.id, el, a);\\n eve(\\\"raphael.anim.finish.\\\" + el.id, el, a);\\n R.is(f, \\\"function\\\") && f.call(el);\\n });\\n })(e.callback, that, e.anim);\\n that.attr(to);\\n animationElements.splice(l--, 1);\\n if (e.repeat > 1 && !e.next) {\\n for (key in to) if (to[has](key)) {\\n init[key] = e.totalOrigin[key];\\n }\\n e.el.attr(init);\\n runAnimation(e.anim, e.el, e.anim.percents[0], null, e.totalOrigin, e.repeat - 1);\\n }\\n if (e.next && !e.stop) {\\n runAnimation(e.anim, e.el, e.next, null, e.totalOrigin, e.repeat);\\n }\\n }\\n }\\n animationElements.length && requestAnimFrame(animation);\\n },\\n upto255 = function (color) {\\n return color > 255 ? 255 : color < 0 ? 0 : color;\\n };\\n /*\\\\\\n * Element.animateWith\\n [ method ]\\n **\\n * Acts similar to @Element.animate, but ensure that given animation runs in sync with another given element.\\n **\\n > Parameters\\n **\\n - el (object) element to sync with\\n - anim (object) animation to sync with\\n - params (object) #optional final attributes for the element, see also @Element.attr\\n - ms (number) #optional number of milliseconds for animation to run\\n - easing (string) #optional easing type. Accept on of @Raphael.easing_formulas or CSS format: `cubic‐bezier(XX, XX, XX, XX)`\\n - callback (function) #optional callback function. Will be called at the end of animation.\\n * or\\n - element (object) element to sync with\\n - anim (object) animation to sync with\\n - animation (object) #optional animation object, see @Raphael.animation\\n **\\n = (object) original element\\n \\\\*/\\n elproto.animateWith = function (el, anim, params, ms, easing, callback) {\\n var element = this;\\n if (element.removed) {\\n callback && callback.call(element);\\n return element;\\n }\\n var a = params instanceof Animation ? params : R.animation(params, ms, easing, callback),\\n x, y;\\n runAnimation(a, element, a.percents[0], null, element.attr());\\n for (var i = 0, ii = animationElements.length; i < ii; i++) {\\n if (animationElements[i].anim == anim && animationElements[i].el == el) {\\n animationElements[ii - 1].start = animationElements[i].start;\\n break;\\n }\\n }\\n return element;\\n //\\n //\\n // var a = params ? R.animation(params, ms, easing, callback) : anim,\\n // status = element.status(anim);\\n // return this.animate(a).status(a, status * anim.ms / a.ms);\\n };\\n function CubicBezierAtTime(t, p1x, p1y, p2x, p2y, duration) {\\n var cx = 3 * p1x,\\n bx = 3 * (p2x - p1x) - cx,\\n ax = 1 - cx - bx,\\n cy = 3 * p1y,\\n by = 3 * (p2y - p1y) - cy,\\n ay = 1 - cy - by;\\n function sampleCurveX(t) {\\n return ((ax * t + bx) * t + cx) * t;\\n }\\n function solve(x, epsilon) {\\n var t = solveCurveX(x, epsilon);\\n return ((ay * t + by) * t + cy) * t;\\n }\\n function solveCurveX(x, epsilon) {\\n var t0, t1, t2, x2, d2, i;\\n for(t2 = x, i = 0; i < 8; i++) {\\n x2 = sampleCurveX(t2) - x;\\n if (abs(x2) < epsilon) {\\n return t2;\\n }\\n d2 = (3 * ax * t2 + 2 * bx) * t2 + cx;\\n if (abs(d2) < 1e-6) {\\n break;\\n }\\n t2 = t2 - x2 / d2;\\n }\\n t0 = 0;\\n t1 = 1;\\n t2 = x;\\n if (t2 < t0) {\\n return t0;\\n }\\n if (t2 > t1) {\\n return t1;\\n }\\n while (t0 < t1) {\\n x2 = sampleCurveX(t2);\\n if (abs(x2 - x) < epsilon) {\\n return t2;\\n }\\n if (x > x2) {\\n t0 = t2;\\n } else {\\n t1 = t2;\\n }\\n t2 = (t1 - t0) / 2 + t0;\\n }\\n return t2;\\n }\\n return solve(t, 1 / (200 * duration));\\n }\\n elproto.onAnimation = function (f) {\\n f ? eve.on(\\\"raphael.anim.frame.\\\" + this.id, f) : eve.unbind(\\\"raphael.anim.frame.\\\" + this.id);\\n return this;\\n };\\n function Animation(anim, ms) {\\n var percents = [],\\n newAnim = {};\\n this.ms = ms;\\n this.times = 1;\\n if (anim) {\\n for (var attr in anim) if (anim[has](attr)) {\\n newAnim[toFloat(attr)] = anim[attr];\\n percents.push(toFloat(attr));\\n }\\n percents.sort(sortByNumber);\\n }\\n this.anim = newAnim;\\n this.top = percents[percents.length - 1];\\n this.percents = percents;\\n }\\n /*\\\\\\n * Animation.delay\\n [ method ]\\n **\\n * Creates a copy of existing animation object with given delay.\\n **\\n > Parameters\\n **\\n - delay (number) number of ms to pass between animation start and actual animation\\n **\\n = (object) new altered Animation object\\n | var anim = Raphael.animation({cx: 10, cy: 20}, 2e3);\\n | circle1.animate(anim); // run the given animation immediately\\n | circle2.animate(anim.delay(500)); // run the given animation after 500 ms\\n \\\\*/\\n Animation.prototype.delay = function (delay) {\\n var a = new Animation(this.anim, this.ms);\\n a.times = this.times;\\n a.del = +delay || 0;\\n return a;\\n };\\n /*\\\\\\n * Animation.repeat\\n [ method ]\\n **\\n * Creates a copy of existing animation object with given repetition.\\n **\\n > Parameters\\n **\\n - repeat (number) number iterations of animation. For infinite animation pass `Infinity`\\n **\\n = (object) new altered Animation object\\n \\\\*/\\n Animation.prototype.repeat = function (times) {\\n var a = new Animation(this.anim, this.ms);\\n a.del = this.del;\\n a.times = math.floor(mmax(times, 0)) || 1;\\n return a;\\n };\\n function runAnimation(anim, element, percent, status, totalOrigin, times) {\\n percent = toFloat(percent);\\n var params,\\n isInAnim,\\n isInAnimSet,\\n percents = [],\\n next,\\n prev,\\n timestamp,\\n ms = anim.ms,\\n from = {},\\n to = {},\\n diff = {};\\n if (status) {\\n for (i = 0, ii = animationElements.length; i < ii; i++) {\\n var e = animationElements[i];\\n if (e.el.id == element.id && e.anim == anim) {\\n if (e.percent != percent) {\\n animationElements.splice(i, 1);\\n isInAnimSet = 1;\\n } else {\\n isInAnim = e;\\n }\\n element.attr(e.totalOrigin);\\n break;\\n }\\n }\\n } else {\\n status = +to; // NaN\\n }\\n for (var i = 0, ii = anim.percents.length; i < ii; i++) {\\n if (anim.percents[i] == percent || anim.percents[i] > status * anim.top) {\\n percent = anim.percents[i];\\n prev = anim.percents[i - 1] || 0;\\n ms = ms / anim.top * (percent - prev);\\n next = anim.percents[i + 1];\\n params = anim.anim[percent];\\n break;\\n } else if (status) {\\n element.attr(anim.anim[anim.percents[i]]);\\n }\\n }\\n if (!params) {\\n return;\\n }\\n if (!isInAnim) {\\n for (var attr in params) if (params[has](attr)) {\\n if (availableAnimAttrs[has](attr) || element.paper.customAttributes[has](attr)) {\\n from[attr] = element.attr(attr);\\n (from[attr] == null) && (from[attr] = availableAttrs[attr]);\\n to[attr] = params[attr];\\n switch (availableAnimAttrs[attr]) {\\n case nu:\\n diff[attr] = (to[attr] - from[attr]) / ms;\\n break;\\n case \\\"colour\\\":\\n from[attr] = R.getRGB(from[attr]);\\n var toColour = R.getRGB(to[attr]);\\n diff[attr] = {\\n r: (toColour.r - from[attr].r) / ms,\\n g: (toColour.g - from[attr].g) / ms,\\n b: (toColour.b - from[attr].b) / ms\\n };\\n break;\\n case \\\"path\\\":\\n var pathes = path2curve(from[attr], to[attr]),\\n toPath = pathes[1];\\n from[attr] = pathes[0];\\n diff[attr] = [];\\n for (i = 0, ii = from[attr].length; i < ii; i++) {\\n diff[attr][i] = [0];\\n for (var j = 1, jj = from[attr][i].length; j < jj; j++) {\\n diff[attr][i][j] = (toPath[i][j] - from[attr][i][j]) / ms;\\n }\\n }\\n break;\\n case \\\"transform\\\":\\n var _ = element._,\\n eq = equaliseTransform(_[attr], to[attr]);\\n if (eq) {\\n from[attr] = eq.from;\\n to[attr] = eq.to;\\n diff[attr] = [];\\n diff[attr].real = true;\\n for (i = 0, ii = from[attr].length; i < ii; i++) {\\n diff[attr][i] = [from[attr][i][0]];\\n for (j = 1, jj = from[attr][i].length; j < jj; j++) {\\n diff[attr][i][j] = (to[attr][i][j] - from[attr][i][j]) / ms;\\n }\\n }\\n } else {\\n var m = (element.matrix || new Matrix),\\n to2 = {\\n _: {transform: _.transform},\\n getBBox: function () {\\n return element.getBBox(1);\\n }\\n };\\n from[attr] = [\\n m.a,\\n m.b,\\n m.c,\\n m.d,\\n m.e,\\n m.f\\n ];\\n extractTransform(to2, to[attr]);\\n to[attr] = to2._.transform;\\n diff[attr] = [\\n (to2.matrix.a - m.a) / ms,\\n (to2.matrix.b - m.b) / ms,\\n (to2.matrix.c - m.c) / ms,\\n (to2.matrix.d - m.d) / ms,\\n (to2.matrix.e - m.e) / ms,\\n (to2.matrix.f - m.f) / ms\\n ];\\n // from[attr] = [_.sx, _.sy, _.deg, _.dx, _.dy];\\n // var to2 = {_:{}, getBBox: function () { return element.getBBox(); }};\\n // extractTransform(to2, to[attr]);\\n // diff[attr] = [\\n // (to2._.sx - _.sx) / ms,\\n // (to2._.sy - _.sy) / ms,\\n // (to2._.deg - _.deg) / ms,\\n // (to2._.dx - _.dx) / ms,\\n // (to2._.dy - _.dy) / ms\\n // ];\\n }\\n break;\\n case \\\"csv\\\":\\n var values = Str(params[attr])[split](separator),\\n from2 = Str(from[attr])[split](separator);\\n if (attr == \\\"clip-rect\\\") {\\n from[attr] = from2;\\n diff[attr] = [];\\n i = from2.length;\\n while (i--) {\\n diff[attr][i] = (values[i] - from[attr][i]) / ms;\\n }\\n }\\n to[attr] = values;\\n break;\\n default:\\n values = [][concat](params[attr]);\\n from2 = [][concat](from[attr]);\\n diff[attr] = [];\\n i = element.paper.customAttributes[attr].length;\\n while (i--) {\\n diff[attr][i] = ((values[i] || 0) - (from2[i] || 0)) / ms;\\n }\\n break;\\n }\\n }\\n }\\n var easing = params.easing,\\n easyeasy = R.easing_formulas[easing];\\n if (!easyeasy) {\\n easyeasy = Str(easing).match(bezierrg);\\n if (easyeasy && easyeasy.length == 5) {\\n var curve = easyeasy;\\n easyeasy = function (t) {\\n return CubicBezierAtTime(t, +curve[1], +curve[2], +curve[3], +curve[4], ms);\\n };\\n } else {\\n easyeasy = pipe;\\n }\\n }\\n timestamp = params.start || anim.start || +new Date;\\n e = {\\n anim: anim,\\n percent: percent,\\n timestamp: timestamp,\\n start: timestamp + (anim.del || 0),\\n status: 0,\\n initstatus: status || 0,\\n stop: false,\\n ms: ms,\\n easing: easyeasy,\\n from: from,\\n diff: diff,\\n to: to,\\n el: element,\\n callback: params.callback,\\n prev: prev,\\n next: next,\\n repeat: times || anim.times,\\n origin: element.attr(),\\n totalOrigin: totalOrigin\\n };\\n animationElements.push(e);\\n if (status && !isInAnim && !isInAnimSet) {\\n e.stop = true;\\n e.start = new Date - ms * status;\\n if (animationElements.length == 1) {\\n return animation();\\n }\\n }\\n if (isInAnimSet) {\\n e.start = new Date - e.ms * status;\\n }\\n animationElements.length == 1 && requestAnimFrame(animation);\\n } else {\\n isInAnim.initstatus = status;\\n isInAnim.start = new Date - isInAnim.ms * status;\\n }\\n eve(\\\"raphael.anim.start.\\\" + element.id, element, anim);\\n }\\n /*\\\\\\n * Raphael.animation\\n [ method ]\\n **\\n * Creates an animation object that can be passed to the @Element.animate or @Element.animateWith methods.\\n * See also @Animation.delay and @Animation.repeat methods.\\n **\\n > Parameters\\n **\\n - params (object) final attributes for the element, see also @Element.attr\\n - ms (number) number of milliseconds for animation to run\\n - easing (string) #optional easing type. Accept one of @Raphael.easing_formulas or CSS format: `cubic‐bezier(XX, XX, XX, XX)`\\n - callback (function) #optional callback function. Will be called at the end of animation.\\n **\\n = (object) @Animation\\n \\\\*/\\n R.animation = function (params, ms, easing, callback) {\\n if (params instanceof Animation) {\\n return params;\\n }\\n if (R.is(easing, \\\"function\\\") || !easing) {\\n callback = callback || easing || null;\\n easing = null;\\n }\\n params = Object(params);\\n ms = +ms || 0;\\n var p = {},\\n json,\\n attr;\\n for (attr in params) if (params[has](attr) && toFloat(attr) != attr && toFloat(attr) + \\\"%\\\" != attr) {\\n json = true;\\n p[attr] = params[attr];\\n }\\n if (!json) {\\n // if percent-like syntax is used and end-of-all animation callback used\\n if(callback){\\n // find the last one\\n var lastKey = 0;\\n for(var i in params){\\n var percent = toInt(i);\\n if(params[has](i) && percent > lastKey){\\n lastKey = percent;\\n }\\n }\\n lastKey += '%';\\n // if already defined callback in the last keyframe, skip\\n !params[lastKey].callback && (params[lastKey].callback = callback);\\n }\\n return new Animation(params, ms);\\n } else {\\n easing && (p.easing = easing);\\n callback && (p.callback = callback);\\n return new Animation({100: p}, ms);\\n }\\n };\\n /*\\\\\\n * Element.animate\\n [ method ]\\n **\\n * Creates and starts animation for given element.\\n **\\n > Parameters\\n **\\n - params (object) final attributes for the element, see also @Element.attr\\n - ms (number) number of milliseconds for animation to run\\n - easing (string) #optional easing type. Accept one of @Raphael.easing_formulas or CSS format: `cubic‐bezier(XX, XX, XX, XX)`\\n - callback (function) #optional callback function. Will be called at the end of animation.\\n * or\\n - animation (object) animation object, see @Raphael.animation\\n **\\n = (object) original element\\n \\\\*/\\n elproto.animate = function (params, ms, easing, callback) {\\n var element = this;\\n if (element.removed) {\\n callback && callback.call(element);\\n return element;\\n }\\n var anim = params instanceof Animation ? params : R.animation(params, ms, easing, callback);\\n runAnimation(anim, element, anim.percents[0], null, element.attr());\\n return element;\\n };\\n /*\\\\\\n * Element.setTime\\n [ method ]\\n **\\n * Sets the status of animation of the element in milliseconds. Similar to @Element.status method.\\n **\\n > Parameters\\n **\\n - anim (object) animation object\\n - value (number) number of milliseconds from the beginning of the animation\\n **\\n = (object) original element if `value` is specified\\n * Note, that during animation following events are triggered:\\n *\\n * On each animation frame event `anim.frame.`, on start `anim.start.` and on end `anim.finish.`.\\n \\\\*/\\n elproto.setTime = function (anim, value) {\\n if (anim && value != null) {\\n this.status(anim, mmin(value, anim.ms) / anim.ms);\\n }\\n return this;\\n };\\n /*\\\\\\n * Element.status\\n [ method ]\\n **\\n * Gets or sets the status of animation of the element.\\n **\\n > Parameters\\n **\\n - anim (object) #optional animation object\\n - value (number) #optional 0 – 1. If specified, method works like a setter and sets the status of a given animation to the value. This will cause animation to jump to the given position.\\n **\\n = (number) status\\n * or\\n = (array) status if `anim` is not specified. Array of objects in format:\\n o {\\n o anim: (object) animation object\\n o status: (number) status\\n o }\\n * or\\n = (object) original element if `value` is specified\\n \\\\*/\\n elproto.status = function (anim, value) {\\n var out = [],\\n i = 0,\\n len,\\n e;\\n if (value != null) {\\n runAnimation(anim, this, -1, mmin(value, 1));\\n return this;\\n } else {\\n len = animationElements.length;\\n for (; i < len; i++) {\\n e = animationElements[i];\\n if (e.el.id == this.id && (!anim || e.anim == anim)) {\\n if (anim) {\\n return e.status;\\n }\\n out.push({\\n anim: e.anim,\\n status: e.status\\n });\\n }\\n }\\n if (anim) {\\n return 0;\\n }\\n return out;\\n }\\n };\\n /*\\\\\\n * Element.pause\\n [ method ]\\n **\\n * Stops animation of the element with ability to resume it later on.\\n **\\n > Parameters\\n **\\n - anim (object) #optional animation object\\n **\\n = (object) original element\\n \\\\*/\\n elproto.pause = function (anim) {\\n for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) {\\n if (eve(\\\"raphael.anim.pause.\\\" + this.id, this, animationElements[i].anim) !== false) {\\n animationElements[i].paused = true;\\n }\\n }\\n return this;\\n };\\n /*\\\\\\n * Element.resume\\n [ method ]\\n **\\n * Resumes animation if it was paused with @Element.pause method.\\n **\\n > Parameters\\n **\\n - anim (object) #optional animation object\\n **\\n = (object) original element\\n \\\\*/\\n elproto.resume = function (anim) {\\n for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) {\\n var e = animationElements[i];\\n if (eve(\\\"raphael.anim.resume.\\\" + this.id, this, e.anim) !== false) {\\n delete e.paused;\\n this.status(e.anim, e.status);\\n }\\n }\\n return this;\\n };\\n /*\\\\\\n * Element.stop\\n [ method ]\\n **\\n * Stops animation of the element.\\n **\\n > Parameters\\n **\\n - anim (object) #optional animation object\\n **\\n = (object) original element\\n \\\\*/\\n elproto.stop = function (anim) {\\n for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) {\\n if (eve(\\\"raphael.anim.stop.\\\" + this.id, this, animationElements[i].anim) !== false) {\\n animationElements.splice(i--, 1);\\n }\\n }\\n return this;\\n };\\n function stopAnimation(paper) {\\n for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.paper == paper) {\\n animationElements.splice(i--, 1);\\n }\\n }\\n eve.on(\\\"raphael.remove\\\", stopAnimation);\\n eve.on(\\\"raphael.clear\\\", stopAnimation);\\n elproto.toString = function () {\\n return \\\"Rapha\\\\xebl\\\\u2019s object\\\";\\n };\\n\\n // Set\\n var Set = function (items) {\\n this.items = [];\\n this.length = 0;\\n this.type = \\\"set\\\";\\n if (items) {\\n for (var i = 0, ii = items.length; i < ii; i++) {\\n if (items[i] && (items[i].constructor == elproto.constructor || items[i].constructor == Set)) {\\n this[this.items.length] = this.items[this.items.length] = items[i];\\n this.length++;\\n }\\n }\\n }\\n },\\n setproto = Set.prototype;\\n /*\\\\\\n * Set.push\\n [ method ]\\n **\\n * Adds each argument to the current set.\\n = (object) original element\\n \\\\*/\\n setproto.push = function () {\\n var item,\\n len;\\n for (var i = 0, ii = arguments.length; i < ii; i++) {\\n item = arguments[i];\\n if (item && (item.constructor == elproto.constructor || item.constructor == Set)) {\\n len = this.items.length;\\n this[len] = this.items[len] = item;\\n this.length++;\\n }\\n }\\n return this;\\n };\\n /*\\\\\\n * Set.pop\\n [ method ]\\n **\\n * Removes last element and returns it.\\n = (object) element\\n \\\\*/\\n setproto.pop = function () {\\n this.length && delete this[this.length--];\\n return this.items.pop();\\n };\\n /*\\\\\\n * Set.forEach\\n [ method ]\\n **\\n * Executes given function for each element in the set.\\n *\\n * If function returns `false` it will stop loop running.\\n **\\n > Parameters\\n **\\n - callback (function) function to run\\n - thisArg (object) context object for the callback\\n = (object) Set object\\n \\\\*/\\n setproto.forEach = function (callback, thisArg) {\\n for (var i = 0, ii = this.items.length; i < ii; i++) {\\n if (callback.call(thisArg, this.items[i], i) === false) {\\n return this;\\n }\\n }\\n return this;\\n };\\n for (var method in elproto) if (elproto[has](method)) {\\n setproto[method] = (function (methodname) {\\n return function () {\\n var arg = arguments;\\n return this.forEach(function (el) {\\n el[methodname][apply](el, arg);\\n });\\n };\\n })(method);\\n }\\n setproto.attr = function (name, value) {\\n if (name && R.is(name, array) && R.is(name[0], \\\"object\\\")) {\\n for (var j = 0, jj = name.length; j < jj; j++) {\\n this.items[j].attr(name[j]);\\n }\\n } else {\\n for (var i = 0, ii = this.items.length; i < ii; i++) {\\n this.items[i].attr(name, value);\\n }\\n }\\n return this;\\n };\\n /*\\\\\\n * Set.clear\\n [ method ]\\n **\\n * Removes all elements from the set\\n \\\\*/\\n setproto.clear = function () {\\n while (this.length) {\\n this.pop();\\n }\\n };\\n /*\\\\\\n * Set.splice\\n [ method ]\\n **\\n * Removes given element from the set\\n **\\n > Parameters\\n **\\n - index (number) position of the deletion\\n - count (number) number of element to remove\\n - insertion… (object) #optional elements to insert\\n = (object) set elements that were deleted\\n \\\\*/\\n setproto.splice = function (index, count, insertion) {\\n index = index < 0 ? mmax(this.length + index, 0) : index;\\n count = mmax(0, mmin(this.length - index, count));\\n var tail = [],\\n todel = [],\\n args = [],\\n i;\\n for (i = 2; i < arguments.length; i++) {\\n args.push(arguments[i]);\\n }\\n for (i = 0; i < count; i++) {\\n todel.push(this[index + i]);\\n }\\n for (; i < this.length - index; i++) {\\n tail.push(this[index + i]);\\n }\\n var arglen = args.length;\\n for (i = 0; i < arglen + tail.length; i++) {\\n this.items[index + i] = this[index + i] = i < arglen ? args[i] : tail[i - arglen];\\n }\\n i = this.items.length = this.length -= count - arglen;\\n while (this[i]) {\\n delete this[i++];\\n }\\n return new Set(todel);\\n };\\n /*\\\\\\n * Set.exclude\\n [ method ]\\n **\\n * Removes given element from the set\\n **\\n > Parameters\\n **\\n - element (object) element to remove\\n = (boolean) `true` if object was found & removed from the set\\n \\\\*/\\n setproto.exclude = function (el) {\\n for (var i = 0, ii = this.length; i < ii; i++) if (this[i] == el) {\\n this.splice(i, 1);\\n return true;\\n }\\n };\\n setproto.animate = function (params, ms, easing, callback) {\\n (R.is(easing, \\\"function\\\") || !easing) && (callback = easing || null);\\n var len = this.items.length,\\n i = len,\\n item,\\n set = this,\\n collector;\\n if (!len) {\\n return this;\\n }\\n callback && (collector = function () {\\n !--len && callback.call(set);\\n });\\n easing = R.is(easing, string) ? easing : collector;\\n var anim = R.animation(params, ms, easing, collector);\\n item = this.items[--i].animate(anim);\\n while (i--) {\\n this.items[i] && !this.items[i].removed && this.items[i].animateWith(item, anim, anim);\\n (this.items[i] && !this.items[i].removed) || len--;\\n }\\n return this;\\n };\\n setproto.insertAfter = function (el) {\\n var i = this.items.length;\\n while (i--) {\\n this.items[i].insertAfter(el);\\n }\\n return this;\\n };\\n\\n // FREEGROUP Fix: RaphaelJS changes the order of the elements of the 'set' by calling the toBack method.\\n // \\\"toBack\\\" must be called reverse to care about the rendering order. In this case we override\\n // the buggy default implementation here.\\n //\\n setproto.toBack = function () {\\n var i = this.items.length;\\n while (i--) {\\n this.items[i].toBack();\\n }\\n return this;\\n };\\n\\n // FREEGROUP Fix: Unfortunately raphael didn'T expose the \\\"set.prototype\\\". In this case\\n // I must add all extension to the raphael implementation itself.\\n // Provide support method for easy check if the elements are visible.\\n setproto.isVisible = function () {\\n var i = this.items.length;\\n var visible = false;\\n while (i--) {\\n visible = visible ||this.items[i].isVisible();\\n }\\n return visible;\\n };\\n\\n\\n // FREEGROUP FIX: Adding \\\"isWithoutTransform\\\" to the function and redirect them to the elements\\n setproto.getBBox = function (isWithoutTransform) {\\n var x = [],\\n y = [],\\n x2 = [],\\n y2 = [];\\n for (var i = this.items.length; i--;) if (!this.items[i].removed) {\\n var box = this.items[i].getBBox(isWithoutTransform);\\n x.push(box.x);\\n y.push(box.y);\\n x2.push(box.x + box.width);\\n y2.push(box.y + box.height);\\n }\\n x = mmin[apply](0, x);\\n y = mmin[apply](0, y);\\n x2 = mmax[apply](0, x2);\\n y2 = mmax[apply](0, y2);\\n return {\\n x: x,\\n y: y,\\n x2: x2,\\n y2: y2,\\n width: x2 - x,\\n height: y2 - y\\n };\\n };\\n setproto.clone = function (s) {\\n s = this.paper.set();\\n for (var i = 0, ii = this.items.length; i < ii; i++) {\\n s.push(this.items[i].clone());\\n }\\n return s;\\n };\\n setproto.toString = function () {\\n return \\\"Rapha\\\\xebl\\\\u2018s set\\\";\\n };\\n\\n setproto.glow = function(glowConfig) {\\n var ret = this.paper.set();\\n this.forEach(function(shape, index){\\n var g = shape.glow(glowConfig);\\n if(g != null){\\n g.forEach(function(shape2, index2){\\n ret.push(shape2);\\n });\\n }\\n });\\n return ret;\\n };\\n\\n\\n /*\\\\\\n * Set.isPointInside\\n [ method ]\\n **\\n * Determine if given point is inside this set’s elements\\n **\\n > Parameters\\n **\\n - x (number) x coordinate of the point\\n - y (number) y coordinate of the point\\n = (boolean) `true` if point is inside any of the set's elements\\n \\\\*/\\n setproto.isPointInside = function (x, y) {\\n var isPointInside = false;\\n this.forEach(function (el) {\\n if (el.isPointInside(x, y)) {\\n isPointInside = true;\\n return false; // stop loop\\n }\\n });\\n return isPointInside;\\n };\\n\\n /*\\\\\\n * Raphael.registerFont\\n [ method ]\\n **\\n * Adds given font to the registered set of fonts for Raphaël. Should be used as an internal call from within Cufón’s font file.\\n * Returns original parameter, so it could be used with chaining.\\n # More about Cufón and how to convert your font form TTF, OTF, etc to JavaScript file.\\n **\\n > Parameters\\n **\\n - font (object) the font to register\\n = (object) the font you passed in\\n > Usage\\n | Cufon.registerFont(Raphael.registerFont({…}));\\n \\\\*/\\n R.registerFont = function (font) {\\n if (!font.face) {\\n return font;\\n }\\n this.fonts = this.fonts || {};\\n var fontcopy = {\\n w: font.w,\\n face: {},\\n glyphs: {}\\n },\\n family = font.face[\\\"font-family\\\"];\\n for (var prop in font.face) if (font.face[has](prop)) {\\n fontcopy.face[prop] = font.face[prop];\\n }\\n if (this.fonts[family]) {\\n this.fonts[family].push(fontcopy);\\n } else {\\n this.fonts[family] = [fontcopy];\\n }\\n if (!font.svg) {\\n fontcopy.face[\\\"units-per-em\\\"] = toInt(font.face[\\\"units-per-em\\\"], 10);\\n for (var glyph in font.glyphs) if (font.glyphs[has](glyph)) {\\n var path = font.glyphs[glyph];\\n fontcopy.glyphs[glyph] = {\\n w: path.w,\\n k: {},\\n d: path.d && \\\"M\\\" + path.d.replace(/[mlcxtrv]/g, function (command) {\\n return {l: \\\"L\\\", c: \\\"C\\\", x: \\\"z\\\", t: \\\"m\\\", r: \\\"l\\\", v: \\\"c\\\"}[command] || \\\"M\\\";\\n }) + \\\"z\\\"\\n };\\n if (path.k) {\\n for (var k in path.k) if (path[has](k)) {\\n fontcopy.glyphs[glyph].k[k] = path.k[k];\\n }\\n }\\n }\\n }\\n return font;\\n };\\n /*\\\\\\n * Paper.getFont\\n [ method ]\\n **\\n * Finds font object in the registered fonts by given parameters. You could specify only one word from the font name, like “Myriad” for “Myriad Pro”.\\n **\\n > Parameters\\n **\\n - family (string) font family name or any word from it\\n - weight (string) #optional font weight\\n - style (string) #optional font style\\n - stretch (string) #optional font stretch\\n = (object) the font object\\n > Usage\\n | paper.print(100, 100, \\\"Test string\\\", paper.getFont(\\\"Times\\\", 800), 30);\\n \\\\*/\\n paperproto.getFont = function (family, weight, style, stretch) {\\n stretch = stretch || \\\"normal\\\";\\n style = style || \\\"normal\\\";\\n weight = +weight || {normal: 400, bold: 700, lighter: 300, bolder: 800}[weight] || 400;\\n if (!R.fonts) {\\n return;\\n }\\n var font = R.fonts[family];\\n if (!font) {\\n var name = new RegExp(\\\"(^|\\\\\\\\s)\\\" + family.replace(/[^\\\\w\\\\d\\\\s+!~.:_-]/g, E) + \\\"(\\\\\\\\s|$)\\\", \\\"i\\\");\\n for (var fontName in R.fonts) if (R.fonts[has](fontName)) {\\n if (name.test(fontName)) {\\n font = R.fonts[fontName];\\n break;\\n }\\n }\\n }\\n var thefont;\\n if (font) {\\n for (var i = 0, ii = font.length; i < ii; i++) {\\n thefont = font[i];\\n if (thefont.face[\\\"font-weight\\\"] == weight && (thefont.face[\\\"font-style\\\"] == style || !thefont.face[\\\"font-style\\\"]) && thefont.face[\\\"font-stretch\\\"] == stretch) {\\n break;\\n }\\n }\\n }\\n return thefont;\\n };\\n /*\\\\\\n * Paper.print\\n [ method ]\\n **\\n * Creates path that represent given text written using given font at given position with given size.\\n * Result of the method is path element that contains whole text as a separate path.\\n **\\n > Parameters\\n **\\n - x (number) x position of the text\\n - y (number) y position of the text\\n - string (string) text to print\\n - font (object) font object, see @Paper.getFont\\n - size (number) #optional size of the font, default is `16`\\n - origin (string) #optional could be `\\\"baseline\\\"` or `\\\"middle\\\"`, default is `\\\"middle\\\"`\\n - letter_spacing (number) #optional number in range `-1..1`, default is `0`\\n - line_spacing (number) #optional number in range `1..3`, default is `1`\\n = (object) resulting path element, which consist of all letters\\n > Usage\\n | var txt = r.print(10, 50, \\\"print\\\", r.getFont(\\\"Museo\\\"), 30).attr({fill: \\\"#fff\\\"});\\n \\\\*/\\n paperproto.print = function (x, y, string, font, size, origin, letter_spacing, line_spacing) {\\n origin = origin || \\\"middle\\\"; // baseline|middle\\n letter_spacing = mmax(mmin(letter_spacing || 0, 1), -1);\\n line_spacing = mmax(mmin(line_spacing || 1, 3), 1);\\n var letters = Str(string)[split](E),\\n shift = 0,\\n notfirst = 0,\\n path = E,\\n scale;\\n R.is(font, \\\"string\\\") && (font = this.getFont(font));\\n if (font) {\\n scale = (size || 16) / font.face[\\\"units-per-em\\\"];\\n var bb = font.face.bbox[split](separator),\\n top = +bb[0],\\n lineHeight = bb[3] - bb[1],\\n shifty = 0,\\n height = +bb[1] + (origin == \\\"baseline\\\" ? lineHeight + (+font.face.descent) : lineHeight / 2);\\n for (var i = 0, ii = letters.length; i < ii; i++) {\\n if (letters[i] == \\\"\\\\n\\\") {\\n shift = 0;\\n curr = 0;\\n notfirst = 0;\\n shifty += lineHeight * line_spacing;\\n } else {\\n var prev = notfirst && font.glyphs[letters[i - 1]] || {},\\n curr = font.glyphs[letters[i]];\\n shift += notfirst ? (prev.w || font.w) + (prev.k && prev.k[letters[i]] || 0) + (font.w * letter_spacing) : 0;\\n notfirst = 1;\\n }\\n if (curr && curr.d) {\\n path += R.transformPath(curr.d, [\\\"t\\\", shift * scale, shifty * scale, \\\"s\\\", scale, scale, top, height, \\\"t\\\", (x - top) / scale, (y - height) / scale]);\\n }\\n }\\n }\\n return this.path(path).attr({\\n fill: \\\"#000\\\",\\n stroke: \\\"none\\\"\\n });\\n };\\n\\n /*\\\\\\n * Paper.add\\n [ method ]\\n **\\n * Imports elements in JSON array in format `{type: type, }`\\n **\\n > Parameters\\n **\\n - json (array)\\n = (object) resulting set of imported elements\\n > Usage\\n | paper.add([\\n | {\\n | type: \\\"circle\\\",\\n | cx: 10,\\n | cy: 10,\\n | r: 5\\n | },\\n | {\\n | type: \\\"rect\\\",\\n | x: 10,\\n | y: 10,\\n | width: 10,\\n | height: 10,\\n | fill: \\\"#fc0\\\"\\n | }\\n | ]);\\n \\\\*/\\n paperproto.add = function (json) {\\n if (R.is(json, \\\"array\\\")) {\\n var res = this.set(),\\n i = 0,\\n ii = json.length,\\n j;\\n for (; i < ii; i++) {\\n j = json[i] || {};\\n elements[has](j.type) && res.push(this[j.type]().attr(j));\\n }\\n }\\n return res;\\n };\\n\\n /*\\\\\\n * Raphael.format\\n [ method ]\\n **\\n * Simple format function. Replaces construction of type “`{}`” to the corresponding argument.\\n **\\n > Parameters\\n **\\n - token (string) string to format\\n - … (string) rest of arguments will be treated as parameters for replacement\\n = (string) formated string\\n > Usage\\n | var x = 10,\\n | y = 20,\\n | width = 40,\\n | height = 50;\\n | // this will draw a rectangular shape equivalent to \\\"M10,20h40v50h-40z\\\"\\n | paper.path(Raphael.format(\\\"M{0},{1}h{2}v{3}h{4}z\\\", x, y, width, height, -width));\\n \\\\*/\\n R.format = function (token, params) {\\n var args = R.is(params, array) ? [0][concat](params) : arguments;\\n token && R.is(token, string) && args.length - 1 && (token = token.replace(formatrg, function (str, i) {\\n return args[++i] == null ? E : args[i];\\n }));\\n return token || E;\\n };\\n /*\\\\\\n * Raphael.fullfill\\n [ method ]\\n **\\n * A little bit more advanced format function than @Raphael.format. Replaces construction of type “`{}`” to the corresponding argument.\\n **\\n > Parameters\\n **\\n - token (string) string to format\\n - json (object) object which properties will be used as a replacement\\n = (string) formated string\\n > Usage\\n | // this will draw a rectangular shape equivalent to \\\"M10,20h40v50h-40z\\\"\\n | paper.path(Raphael.fullfill(\\\"M{x},{y}h{dim.width}v{dim.height}h{dim['negative width']}z\\\", {\\n | x: 10,\\n | y: 20,\\n | dim: {\\n | width: 40,\\n | height: 50,\\n | \\\"negative width\\\": -40\\n | }\\n | }));\\n \\\\*/\\n R.fullfill = (function () {\\n var tokenRegex = /\\\\{([^\\\\}]+)\\\\}/g,\\n objNotationRegex = /(?:(?:^|\\\\.)(.+?)(?=\\\\[|\\\\.|$|\\\\()|\\\\[('|\\\")(.+?)\\\\2\\\\])(\\\\(\\\\))?/g, // matches .xxxxx or [\\\"xxxxx\\\"] to run over object properties\\n replacer = function (all, key, obj) {\\n var res = obj;\\n key.replace(objNotationRegex, function (all, name, quote, quotedName, isFunc) {\\n name = name || quotedName;\\n if (res) {\\n if (name in res) {\\n res = res[name];\\n }\\n typeof res == \\\"function\\\" && isFunc && (res = res());\\n }\\n });\\n res = (res == null || res == obj ? all : res) + \\\"\\\";\\n return res;\\n };\\n return function (str, obj) {\\n return String(str).replace(tokenRegex, function (all, key) {\\n return replacer(all, key, obj);\\n });\\n };\\n })();\\n /*\\\\\\n * Raphael.ninja\\n [ method ]\\n **\\n * If you want to leave no trace of Raphaël (Well, Raphaël creates only one global variable `Raphael`, but anyway.) You can use `ninja` method.\\n * Beware, that in this case plugins could stop working, because they are depending on global variable existence.\\n **\\n = (object) Raphael object\\n > Usage\\n | (function (local_raphael) {\\n | var paper = local_raphael(10, 10, 320, 200);\\n | …\\n | })(Raphael.ninja());\\n \\\\*/\\n R.ninja = function () {\\n oldRaphael.was ? (g.win.Raphael = oldRaphael.is) : delete Raphael;\\n return R;\\n };\\n /*\\\\\\n * Raphael.st\\n [ property (object) ]\\n **\\n * You can add your own method to elements and sets. It is wise to add a set method for each element method\\n * you added, so you will be able to call the same method on sets too.\\n **\\n * See also @Raphael.el.\\n > Usage\\n | Raphael.el.red = function () {\\n | this.attr({fill: \\\"#f00\\\"});\\n | };\\n | Raphael.st.red = function () {\\n | this.forEach(function (el) {\\n | el.red();\\n | });\\n | };\\n | // then use it\\n | paper.set(paper.circle(100, 100, 20), paper.circle(110, 100, 20)).red();\\n \\\\*/\\n R.st = setproto;\\n\\n eve.on(\\\"raphael.DOMload\\\", function () {\\n loaded = true;\\n });\\n\\n // Firefox <3.6 fix: http://webreflection.blogspot.com/2009/11/195-chars-to-help-lazy-loading.html\\n (function (doc, loaded, f) {\\n if (doc.readyState == null && doc.addEventListener){\\n doc.addEventListener(loaded, f = function () {\\n doc.removeEventListener(loaded, f, false);\\n doc.readyState = \\\"complete\\\";\\n }, false);\\n doc.readyState = \\\"loading\\\";\\n }\\n function isLoaded() {\\n (/in/).test(doc.readyState) ? setTimeout(isLoaded, 9) : R.eve(\\\"raphael.DOMload\\\");\\n }\\n isLoaded();\\n })(document, \\\"DOMContentLoaded\\\");\\n\\n return R;\\n}));\\n\\n// ┌─────────────────────────────────────────────────────────────────────┐ \\\\\\\\\\n// │ Raphaël 2.1.4 - JavaScript Vector Library │ \\\\\\\\\\n// ├─────────────────────────────────────────────────────────────────────┤ \\\\\\\\\\n// │ SVG Module │ \\\\\\\\\\n// ├─────────────────────────────────────────────────────────────────────┤ \\\\\\\\\\n// │ Copyright (c) 2008-2011 Dmitry Baranovskiy (http://raphaeljs.com) │ \\\\\\\\\\n// │ Copyright (c) 2008-2011 Sencha Labs (http://sencha.com) │ \\\\\\\\\\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license. │ \\\\\\\\\\n// └─────────────────────────────────────────────────────────────────────┘ \\\\\\\\\\n\\n(function (glob, factory) {\\n if (typeof define === \\\"function\\\" && define.amd) {\\n define(\\\"raphael.svg\\\", [\\\"raphael.core\\\"], function(raphael) {\\n return factory(raphael);\\n });\\n } else if (typeof exports === \\\"object\\\") {\\n factory(require(\\\"./raphael.core\\\"));\\n } else {\\n factory(glob.Raphael);\\n }\\n}(this, function(R) {\\n if (R && !R.svg) {\\n return;\\n }\\n\\n var has = \\\"hasOwnProperty\\\",\\n Str = String,\\n toFloat = parseFloat,\\n toInt = parseInt,\\n math = Math,\\n mmax = math.max,\\n abs = math.abs,\\n pow = math.pow,\\n separator = /[, ]+/,\\n eve = R.eve,\\n E = \\\"\\\",\\n S = \\\" \\\";\\n var xlink = \\\"http://www.w3.org/1999/xlink\\\",\\n markers = {\\n block: \\\"M5,0 0,2.5 5,5z\\\",\\n classic: \\\"M5,0 0,2.5 5,5 3.5,3 3.5,2z\\\",\\n diamond: \\\"M2.5,0 5,2.5 2.5,5 0,2.5z\\\",\\n open: \\\"M6,1 1,3.5 6,6\\\",\\n oval: \\\"M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z\\\"\\n },\\n markerCounter = {};\\n R.toString = function () {\\n return \\\"Your browser supports SVG.\\\\nYou are running Rapha\\\\xebl \\\" + this.version;\\n };\\n var $ = function (el, attr) {\\n if (attr) {\\n if (typeof el == \\\"string\\\") {\\n el = $(el);\\n }\\n for (var key in attr) if (attr[has](key)) {\\n if (key.substring(0, 6) == \\\"xlink:\\\") {\\n el.setAttributeNS(xlink, key.substring(6), Str(attr[key]));\\n } else {\\n try {\\n el.setAttribute(key, Str(attr[key]));\\n }\\n catch(e){\\n debugger\\n }\\n }\\n }\\n } else {\\n el = R._g.doc.createElementNS(\\\"http://www.w3.org/2000/svg\\\", el);\\n el.style && (el.style.webkitTapHighlightColor = \\\"rgba(0,0,0,0)\\\");\\n }\\n return el;\\n },\\n addGradientFill = function (element, gradient) {\\n var type = \\\"linear\\\",\\n id = element.id + gradient,\\n fx = .5, fy = .5,\\n o = element.node,\\n SVG = element.paper,\\n s = o.style,\\n el = R._g.doc.getElementById(id);\\n if (!el) {\\n gradient = Str(gradient).replace(R._radial_gradient, function (all, _fx, _fy) {\\n type = \\\"radial\\\";\\n if (_fx && _fy) {\\n fx = toFloat(_fx);\\n fy = toFloat(_fy);\\n var dir = ((fy > .5) * 2 - 1);\\n pow(fx - .5, 2) + pow(fy - .5, 2) > .25 &&\\n (fy = math.sqrt(.25 - pow(fx - .5, 2)) * dir + .5) &&\\n fy != .5 &&\\n (fy = fy.toFixed(5) - 1e-5 * dir);\\n }\\n return E;\\n });\\n gradient = gradient.split(/\\\\s*\\\\-\\\\s*/);\\n if (type == \\\"linear\\\") {\\n var angle = gradient.shift();\\n angle = -toFloat(angle);\\n if (isNaN(angle)) {\\n return null;\\n }\\n var vector = [0, 0, math.cos(R.rad(angle)), math.sin(R.rad(angle))],\\n max = 1 / (mmax(abs(vector[2]), abs(vector[3])) || 1);\\n vector[2] *= max;\\n vector[3] *= max;\\n if (vector[2] < 0) {\\n vector[0] = -vector[2];\\n vector[2] = 0;\\n }\\n if (vector[3] < 0) {\\n vector[1] = -vector[3];\\n vector[3] = 0;\\n }\\n }\\n var dots = R._parseDots(gradient);\\n if (!dots) {\\n return null;\\n }\\n id = id.replace(/[\\\\(\\\\)\\\\s,\\\\xb0#]/g, \\\"_\\\");\\n\\n if (element.gradient && id != element.gradient.id) {\\n SVG.defs.removeChild(element.gradient);\\n delete element.gradient;\\n }\\n\\n if (!element.gradient) {\\n el = $(type + \\\"Gradient\\\", {id: id});\\n element.gradient = el;\\n $(el, type == \\\"radial\\\" ? {\\n fx: fx,\\n fy: fy\\n } : {\\n x1: vector[0],\\n y1: vector[1],\\n x2: vector[2],\\n y2: vector[3],\\n gradientTransform: element.matrix.invert()\\n });\\n SVG.defs.appendChild(el);\\n for (var i = 0, ii = dots.length; i < ii; i++) {\\n el.appendChild($(\\\"stop\\\", {\\n offset: dots[i].offset ? dots[i].offset : i ? \\\"100%\\\" : \\\"0%\\\",\\n \\\"stop-color\\\": dots[i].color || \\\"#fff\\\",\\n \\\"stop-opacity\\\": isFinite(dots[i].opacity) ? dots[i].opacity : 1\\n }));\\n }\\n }\\n }\\n /* FREEGROUP: don't push URL parameter into the drawing. This will break Apps with \\\"?\\\" in the URL\\n * see: https://github.com/DmitryBaranovskiy/raphael/issues/693\\n **/\\n var url =\\\"\\\";//document.location.protocol + \\\"//\\\" + document.location.host + document.location.pathname;\\n $(o, {\\n fill: \\\"url('\\\" + url + \\\"#\\\" + id + \\\"')\\\",\\n opacity: 1,\\n \\\"fill-opacity\\\": 1\\n });\\n\\n s.fill = E;\\n s.opacity = 1;\\n s.fillOpacity = 1;\\n return 1;\\n },\\n updatePosition = function (o) {\\n var bbox = o.getBBox(1);\\n $(o.pattern, {patternTransform: o.matrix.invert() + \\\" translate(\\\" + bbox.x + \\\",\\\" + bbox.y + \\\")\\\"});\\n },\\n addArrow = function (o, value, isEnd) {\\n if (o.type == \\\"path\\\") {\\n var values = Str(value).toLowerCase().split(\\\"-\\\"),\\n p = o.paper,\\n se = isEnd ? \\\"end\\\" : \\\"start\\\",\\n node = o.node,\\n attrs = o.attrs,\\n stroke = attrs[\\\"stroke-width\\\"],\\n i = values.length,\\n type = \\\"classic\\\",\\n from,\\n to,\\n dx,\\n refX,\\n attr,\\n w = 3,\\n h = 3,\\n t = 5;\\n while (i--) {\\n switch (values[i]) {\\n case \\\"block\\\":\\n case \\\"classic\\\":\\n case \\\"oval\\\":\\n case \\\"diamond\\\":\\n case \\\"open\\\":\\n case \\\"none\\\":\\n type = values[i];\\n break;\\n case \\\"wide\\\": h = 5; break;\\n case \\\"narrow\\\": h = 2; break;\\n case \\\"long\\\": w = 5; break;\\n case \\\"short\\\": w = 2; break;\\n }\\n }\\n if (type == \\\"open\\\") {\\n w += 2;\\n h += 2;\\n t += 2;\\n dx = 1;\\n refX = isEnd ? 4 : 1;\\n attr = {\\n fill: \\\"none\\\",\\n stroke: attrs.stroke\\n };\\n } else {\\n refX = dx = w / 2;\\n attr = {\\n fill: attrs.stroke,\\n stroke: \\\"none\\\"\\n };\\n }\\n if (o._.arrows) {\\n if (isEnd) {\\n o._.arrows.endPath && markerCounter[o._.arrows.endPath]--;\\n o._.arrows.endMarker && markerCounter[o._.arrows.endMarker]--;\\n } else {\\n o._.arrows.startPath && markerCounter[o._.arrows.startPath]--;\\n o._.arrows.startMarker && markerCounter[o._.arrows.startMarker]--;\\n }\\n } else {\\n o._.arrows = {};\\n }\\n if (type != \\\"none\\\") {\\n var pathId = \\\"raphael-marker-\\\" + type,\\n markerId = \\\"raphael-marker-\\\" + se + type + w + h + \\\"-obj\\\" + o.id;\\n if (!R._g.doc.getElementById(pathId)) {\\n p.defs.appendChild($($(\\\"path\\\"), {\\n \\\"stroke-linecap\\\": \\\"round\\\",\\n d: markers[type],\\n id: pathId\\n }));\\n markerCounter[pathId] = 1;\\n } else {\\n markerCounter[pathId]++;\\n }\\n var marker = R._g.doc.getElementById(markerId),\\n use;\\n if (!marker) {\\n marker = $($(\\\"marker\\\"), {\\n id: markerId,\\n markerHeight: h,\\n markerWidth: w,\\n orient: \\\"auto\\\",\\n refX: refX,\\n refY: h / 2\\n });\\n use = $($(\\\"use\\\"), {\\n \\\"xlink:href\\\": \\\"#\\\" + pathId,\\n transform: (isEnd ? \\\"rotate(180 \\\" + w / 2 + \\\" \\\" + h / 2 + \\\") \\\" : E) + \\\"scale(\\\" + w / t + \\\",\\\" + h / t + \\\")\\\",\\n \\\"stroke-width\\\": (1 / ((w / t + h / t) / 2)).toFixed(4)\\n });\\n marker.appendChild(use);\\n p.defs.appendChild(marker);\\n markerCounter[markerId] = 1;\\n } else {\\n markerCounter[markerId]++;\\n use = marker.getElementsByTagName(\\\"use\\\")[0];\\n }\\n $(use, attr);\\n var delta = dx * (type != \\\"diamond\\\" && type != \\\"oval\\\");\\n if (isEnd) {\\n from = o._.arrows.startdx * stroke || 0;\\n to = R.getTotalLength(attrs.path) - delta * stroke;\\n } else {\\n from = delta * stroke;\\n to = R.getTotalLength(attrs.path) - (o._.arrows.enddx * stroke || 0);\\n }\\n attr = {};\\n attr[\\\"marker-\\\" + se] = \\\"url(#\\\" + markerId + \\\")\\\";\\n if (to || from) {\\n attr.d = R.getSubpath(attrs.path, from, to);\\n }\\n $(node, attr);\\n o._.arrows[se + \\\"Path\\\"] = pathId;\\n o._.arrows[se + \\\"Marker\\\"] = markerId;\\n o._.arrows[se + \\\"dx\\\"] = delta;\\n o._.arrows[se + \\\"Type\\\"] = type;\\n o._.arrows[se + \\\"String\\\"] = value;\\n } else {\\n if (isEnd) {\\n from = o._.arrows.startdx * stroke || 0;\\n to = R.getTotalLength(attrs.path) - from;\\n } else {\\n from = 0;\\n to = R.getTotalLength(attrs.path) - (o._.arrows.enddx * stroke || 0);\\n }\\n o._.arrows[se + \\\"Path\\\"] && $(node, {d: R.getSubpath(attrs.path, from, to)});\\n delete o._.arrows[se + \\\"Path\\\"];\\n delete o._.arrows[se + \\\"Marker\\\"];\\n delete o._.arrows[se + \\\"dx\\\"];\\n delete o._.arrows[se + \\\"Type\\\"];\\n delete o._.arrows[se + \\\"String\\\"];\\n }\\n for (attr in markerCounter) if (markerCounter[has](attr) && !markerCounter[attr]) {\\n var item = R._g.doc.getElementById(attr);\\n item && item.parentNode.removeChild(item);\\n }\\n }\\n },\\n dasharray = {\\n \\\"-\\\": [3, 1],\\n \\\".\\\": [1, 1],\\n \\\"-.\\\": [3, 1, 1, 1],\\n \\\"-..\\\": [3, 1, 1, 1, 1, 1],\\n \\\". \\\": [1, 3],\\n \\\"- \\\": [4, 3],\\n \\\"--\\\": [8, 3],\\n \\\"- .\\\": [4, 3, 1, 3],\\n \\\"--.\\\": [8, 3, 1, 3],\\n \\\"--..\\\": [8, 3, 1, 3, 1, 3]\\n },\\n addDashes = function (o, value, params) {\\n value = dasharray[Str(value).toLowerCase()];\\n if (value) {\\n var width = o.attrs[\\\"stroke-width\\\"] || \\\"1\\\",\\n butt = {round: width, square: width, butt: 0}[o.attrs[\\\"stroke-linecap\\\"] || params[\\\"stroke-linecap\\\"]] || 0,\\n dashes = [],\\n i = value.length;\\n while (i--) {\\n dashes[i] = value[i] * width + ((i % 2) ? 1 : -1) * butt;\\n }\\n $(o.node, {\\\"stroke-dasharray\\\": dashes.join(\\\",\\\")});\\n }\\n else {\\n $(o.node, {\\\"stroke-dasharray\\\": \\\"none\\\"});\\n }\\n },\\n setFillAndStroke = function (o, params) {\\n var node = o.node,\\n attrs = o.attrs,\\n vis = node.style.visibility;\\n node.style.visibility = \\\"hidden\\\";\\n for (var att in params) {\\n if (params[has](att)) {\\n if (!R._availableAttrs[has](att)) {\\n continue;\\n }\\n var value = params[att];\\n attrs[att] = value;\\n switch (att) {\\n case \\\"blur\\\":\\n o.blur(value);\\n break;\\n case \\\"title\\\":\\n var title = node.getElementsByTagName(\\\"title\\\");\\n\\n // Use the existing .\\n if (title.length && (title = title[0])) {\\n title.firstChild.nodeValue = value;\\n } else {\\n title = $(\\\"title\\\");\\n var val = R._g.doc.createTextNode(value);\\n title.appendChild(val);\\n node.appendChild(title);\\n }\\n break;\\n case \\\"href\\\":\\n case \\\"target\\\":\\n var pn = node.parentNode;\\n if (pn.tagName.toLowerCase() != \\\"a\\\") {\\n var hl = $(\\\"a\\\");\\n pn.insertBefore(hl, node);\\n hl.appendChild(node);\\n pn = hl;\\n }\\n if (att == \\\"target\\\") {\\n pn.setAttributeNS(xlink, \\\"show\\\", value == \\\"blank\\\" ? \\\"new\\\" : value);\\n } else {\\n pn.setAttributeNS(xlink, att, value);\\n }\\n break;\\n case \\\"cursor\\\":\\n node.style.cursor = value;\\n break;\\n case \\\"transform\\\":\\n o.transform(value);\\n break;\\n case \\\"arrow-start\\\":\\n addArrow(o, value);\\n break;\\n case \\\"arrow-end\\\":\\n addArrow(o, value, 1);\\n break;\\n case \\\"clip-rect\\\":\\n var rect = Str(value).split(separator);\\n if (rect.length == 4) {\\n o.clip && o.clip.parentNode.parentNode.removeChild(o.clip.parentNode);\\n var el = $(\\\"clipPath\\\"),\\n rc = $(\\\"rect\\\");\\n el.id = R.createUUID();\\n $(rc, {\\n x: rect[0],\\n y: rect[1],\\n width: rect[2],\\n height: rect[3]\\n });\\n el.appendChild(rc);\\n o.paper.defs.appendChild(el);\\n $(node, {\\\"clip-path\\\": \\\"url(#\\\" + el.id + \\\")\\\"});\\n o.clip = rc;\\n }\\n if (!value) {\\n var path = node.getAttribute(\\\"clip-path\\\");\\n if (path) {\\n var clip = R._g.doc.getElementById(path.replace(/(^url\\\\(#|\\\\)$)/g, E));\\n clip && clip.parentNode.removeChild(clip);\\n $(node, {\\\"clip-path\\\": E});\\n delete o.clip;\\n }\\n }\\n break;\\n case \\\"path\\\":\\n if (o.type == \\\"path\\\") {\\n $(node, {d: value ? attrs.path = R._pathToAbsolute(value) : \\\"M0,0\\\"});\\n o._.dirty = 1;\\n if (o._.arrows) {\\n \\\"startString\\\" in o._.arrows && addArrow(o, o._.arrows.startString);\\n \\\"endString\\\" in o._.arrows && addArrow(o, o._.arrows.endString, 1);\\n }\\n }\\n break;\\n case \\\"width\\\":\\n node.setAttribute(att, value);\\n o._.dirty = 1;\\n if (attrs.fx) {\\n att = \\\"x\\\";\\n value = attrs.x;\\n } else {\\n break;\\n }\\n case \\\"x\\\":\\n if (attrs.fx) {\\n value = -attrs.x - (attrs.width || 0);\\n }\\n case \\\"rx\\\":\\n if (att == \\\"rx\\\" && o.type == \\\"rect\\\") {\\n break;\\n }\\n case \\\"cx\\\":\\n node.setAttribute(att, value);\\n o.pattern && updatePosition(o);\\n o._.dirty = 1;\\n break;\\n case \\\"height\\\":\\n node.setAttribute(att, value);\\n o._.dirty = 1;\\n if (attrs.fy) {\\n att = \\\"y\\\";\\n value = attrs.y;\\n } else {\\n break;\\n }\\n case \\\"y\\\":\\n if (attrs.fy) {\\n value = -attrs.y - (attrs.height || 0);\\n }\\n case \\\"ry\\\":\\n if (att == \\\"ry\\\" && o.type == \\\"rect\\\") {\\n break;\\n }\\n case \\\"cy\\\":\\n node.setAttribute(att, value);\\n o.pattern && updatePosition(o);\\n o._.dirty = 1;\\n break;\\n case \\\"r\\\":\\n if (o.type == \\\"rect\\\") {\\n $(node, {rx: value, ry: value});\\n } else {\\n node.setAttribute(att, value);\\n }\\n o._.dirty = 1;\\n break;\\n case \\\"src\\\":\\n if (o.type == \\\"image\\\") {\\n node.setAttributeNS(xlink, \\\"href\\\", value);\\n }\\n break;\\n case \\\"stroke-width\\\":\\n /* FREEGROUP fix\\n * draw2d version 3.0.3\\n *\\n * don't scale the line width if the user resize an shape/element.\\n * Obscure stroke-width in case of \\\"Draw2D touch\\\" usage\\n */\\n if(!attrs[\\\"stroke-scale\\\"]){\\n if (o._.sx != 1 || o._.sy != 1) {\\n value /= mmax(abs(o._.sx), abs(o._.sy)) || 1;\\n }\\n if (o.paper._vbSize) {\\n // value *= o.paper._vbSize;\\n }\\n }\\n\\n\\n node.setAttribute(att, value);\\n if (attrs[\\\"stroke-dasharray\\\"]) {\\n addDashes(o, attrs[\\\"stroke-dasharray\\\"], params);\\n }\\n if (o._.arrows) {\\n \\\"startString\\\" in o._.arrows && addArrow(o, o._.arrows.startString);\\n \\\"endString\\\" in o._.arrows && addArrow(o, o._.arrows.endString, 1);\\n }\\n break;\\n case \\\"stroke-dasharray\\\":\\n addDashes(o, value, params);\\n break;\\n case \\\"fill\\\":\\n var isURL = Str(value).match(R._ISURL);\\n if (isURL) {\\n el = $(\\\"pattern\\\");\\n var ig = $(\\\"image\\\");\\n el.id = R.createUUID();\\n $(el, {x: 0, y: 0, patternUnits: \\\"userSpaceOnUse\\\", height: 1, width: 1});\\n $(ig, {x: 0, y: 0, \\\"xlink:href\\\": isURL[1]});\\n el.appendChild(ig);\\n\\n (function (el) {\\n R._preload(isURL[1], function () {\\n var w = this.offsetWidth,\\n h = this.offsetHeight;\\n $(el, {width: w, height: h});\\n $(ig, {width: w, height: h});\\n });\\n })(el);\\n o.paper.defs.appendChild(el);\\n $(node, {fill: \\\"url(#\\\" + el.id + \\\")\\\"});\\n o.pattern = el;\\n o.pattern && updatePosition(o);\\n break;\\n }\\n var clr = R.getRGB(value);\\n if (!clr.error) {\\n delete params.gradient;\\n delete attrs.gradient;\\n !R.is(attrs.opacity, \\\"undefined\\\") &&\\n R.is(params.opacity, \\\"undefined\\\") &&\\n $(node, {opacity: attrs.opacity});\\n !R.is(attrs[\\\"fill-opacity\\\"], \\\"undefined\\\") &&\\n R.is(params[\\\"fill-opacity\\\"], \\\"undefined\\\") &&\\n $(node, {\\\"fill-opacity\\\": attrs[\\\"fill-opacity\\\"]});\\n } else if ((o.type == \\\"circle\\\" || o.type == \\\"ellipse\\\" || Str(value).charAt() != \\\"r\\\") && addGradientFill(o, value)) {\\n if (\\\"opacity\\\" in attrs || \\\"fill-opacity\\\" in attrs) {\\n var gradient = R._g.doc.getElementById(node.getAttribute(\\\"fill\\\").replace(/^url\\\\(#|\\\\)$/g, E));\\n if (gradient) {\\n var stops = gradient.getElementsByTagName(\\\"stop\\\");\\n $(stops[stops.length - 1], {\\\"stop-opacity\\\": (\\\"opacity\\\" in attrs ? attrs.opacity : 1) * (\\\"fill-opacity\\\" in attrs ? attrs[\\\"fill-opacity\\\"] : 1)});\\n }\\n }\\n attrs.gradient = value;\\n attrs.fill = \\\"none\\\";\\n break;\\n }\\n clr[has](\\\"opacity\\\") && $(node, {\\\"fill-opacity\\\": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity});\\n case \\\"stroke\\\":\\n clr = R.getRGB(value);\\n node.setAttribute(att, clr.hex);\\n att == \\\"stroke\\\" && clr[has](\\\"opacity\\\") && $(node, {\\\"stroke-opacity\\\": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity});\\n if (att == \\\"stroke\\\" && o._.arrows) {\\n \\\"startString\\\" in o._.arrows && addArrow(o, o._.arrows.startString);\\n \\\"endString\\\" in o._.arrows && addArrow(o, o._.arrows.endString, 1);\\n }\\n break;\\n case \\\"gradient\\\":\\n (o.type == \\\"circle\\\" || o.type == \\\"ellipse\\\" || Str(value).charAt() != \\\"r\\\") && addGradientFill(o, value);\\n break;\\n case \\\"opacity\\\":\\n if (attrs.gradient && !attrs[has](\\\"stroke-opacity\\\")) {\\n $(node, {\\\"stroke-opacity\\\": value > 1 ? value / 100 : value});\\n }\\n // fall\\n case \\\"fill-opacity\\\":\\n if (attrs.gradient) {\\n gradient = R._g.doc.getElementById(node.getAttribute(\\\"fill\\\").replace(/^url\\\\(#|\\\\)$/g, E));\\n if (gradient) {\\n stops = gradient.getElementsByTagName(\\\"stop\\\");\\n // FREEGROUP FIX\\n for (gri = 0, grii = stops.length; gri < grii; gri++) {\\n $(stops[gri], {\\\"stop-opacity\\\": value});\\n }\\n // END FIX\\n }\\n break;\\n }\\n default:\\n att == \\\"font-size\\\" && (value = toInt(value, 10) + \\\"px\\\");\\n var cssrule = att.replace(/(\\\\-.)/g, function (w) {\\n return w.substring(1).toUpperCase();\\n });\\n node.style[cssrule] = value;\\n o._.dirty = 1;\\n node.setAttribute(att, value);\\n break;\\n }\\n }\\n }\\n\\n tuneText(o, params);\\n node.style.visibility = vis;\\n },\\n leading = 1.2,\\n tuneText = function (el, params) {\\n if (el.type != \\\"text\\\" || !(params[has](\\\"text\\\") || params[has](\\\"font\\\") || params[has](\\\"font-size\\\") || params[has](\\\"x\\\") || params[has](\\\"y\\\"))) {\\n return;\\n }\\n var a = el.attrs,\\n node = el.node,\\n fontSize = node.firstChild ? toInt(R._g.doc.defaultView.getComputedStyle(node.firstChild, E).getPropertyValue(\\\"font-size\\\"), 10) : 10;\\n\\n if (params[has](\\\"text\\\")) {\\n a.text = params.text;\\n while (node.firstChild) {\\n node.removeChild(node.firstChild);\\n }\\n var texts = Str(params.text).split(\\\"\\\\n\\\"),\\n tspans = [],\\n tspan;\\n for (var i = 0, ii = texts.length; i < ii; i++) {\\n tspan = $(\\\"tspan\\\");\\n i && $(tspan, {dy: fontSize * leading, x: a.x});\\n tspan.appendChild(R._g.doc.createTextNode(texts[i]));\\n node.appendChild(tspan);\\n tspans[i] = tspan;\\n }\\n } else {\\n tspans = node.getElementsByTagName(\\\"tspan\\\");\\n for (i = 0, ii = tspans.length; i < ii; i++) if (i) {\\n $(tspans[i], {dy: fontSize * leading, x: a.x});\\n } else {\\n $(tspans[0], {dy: 0});\\n }\\n }\\n $(node, {x: a.x, y: a.y});\\n el._.dirty = 1;\\n var bb = el._getBBox(),\\n dif = a.y - (bb.y + bb.height / 2);\\n dif && R.is(dif, \\\"finite\\\") && $(tspans[0], {dy: dif});\\n },\\n getRealNode = function (node) {\\n if (node.parentNode && node.parentNode.tagName.toLowerCase() === \\\"a\\\") {\\n return node.parentNode;\\n } else {\\n return node;\\n }\\n },\\n Element = function (node, svg) {\\n var X = 0,\\n Y = 0;\\n /*\\\\\\n * Element.node\\n [ property (object) ]\\n **\\n * Gives you a reference to the DOM object, so you can assign event handlers or just mess around.\\n **\\n * Note: Don’t mess with it.\\n > Usage\\n | // draw a circle at coordinate 10,10 with radius of 10\\n | var c = paper.circle(10, 10, 10);\\n | c.node.onclick = function () {\\n | c.attr(\\\"fill\\\", \\\"red\\\");\\n | };\\n \\\\*/\\n this[0] = this.node = node;\\n /*\\\\\\n * Element.raphael\\n [ property (object) ]\\n **\\n * Internal reference to @Raphael object. In case it is not available.\\n > Usage\\n | Raphael.el.red = function () {\\n | var hsb = this.paper.raphael.rgb2hsb(this.attr(\\\"fill\\\"));\\n | hsb.h = 1;\\n | this.attr({fill: this.paper.raphael.hsb2rgb(hsb).hex});\\n | }\\n \\\\*/\\n node.raphael = true;\\n /*\\\\\\n * Element.id\\n [ property (number) ]\\n **\\n * Unique id of the element. Especially useful when you want to listen to events of the element,\\n * because all events are fired in format `<module>.<action>.<id>`. Also useful for @Paper.getById method.\\n \\\\*/\\n this.id = R._oid++;\\n node.raphaelid = this.id;\\n this.matrix = R.matrix();\\n this.realPath = null;\\n /*\\\\\\n * Element.paper\\n [ property (object) ]\\n **\\n * Internal reference to “paper” where object drawn. Mainly for use in plugins and element extensions.\\n > Usage\\n | Raphael.el.cross = function () {\\n | this.attr({fill: \\\"red\\\"});\\n | this.paper.path(\\\"M10,10L50,50M50,10L10,50\\\")\\n | .attr({stroke: \\\"red\\\"});\\n | }\\n \\\\*/\\n this.paper = svg;\\n this.attrs = this.attrs || {};\\n this._ = {\\n transform: [],\\n sx: 1,\\n sy: 1,\\n deg: 0,\\n dx: 0,\\n dy: 0,\\n dirty: 1\\n };\\n !svg.bottom && (svg.bottom = this);\\n /*\\\\\\n * Element.prev\\n [ property (object) ]\\n **\\n * Reference to the previous element in the hierarchy.\\n \\\\*/\\n this.prev = svg.top;\\n svg.top && (svg.top.next = this);\\n svg.top = this;\\n /*\\\\\\n * Element.next\\n [ property (object) ]\\n **\\n * Reference to the next element in the hierarchy.\\n \\\\*/\\n this.next = null;\\n },\\n elproto = R.el;\\n\\n Element.prototype = elproto;\\n elproto.constructor = Element;\\n\\n R._engine.path = function (pathString, SVG) {\\n var el = $(\\\"path\\\");\\n SVG.canvas && SVG.canvas.appendChild(el);\\n var p = new Element(el, SVG);\\n p.type = \\\"path\\\";\\n setFillAndStroke(p, {\\n fill: \\\"none\\\",\\n stroke: \\\"#000\\\",\\n path: pathString\\n });\\n return p;\\n };\\n /*\\\\\\n * Element.rotate\\n [ method ]\\n **\\n * Deprecated! Use @Element.transform instead.\\n * Adds rotation by given angle around given point to the list of\\n * transformations of the element.\\n > Parameters\\n - deg (number) angle in degrees\\n - cx (number) #optional x coordinate of the centre of rotation\\n - cy (number) #optional y coordinate of the centre of rotation\\n * If cx & cy aren’t specified centre of the shape is used as a point of rotation.\\n = (object) @Element\\n \\\\*/\\n elproto.rotate = function (deg, cx, cy) {\\n if (this.removed) {\\n return this;\\n }\\n deg = Str(deg).split(separator);\\n if (deg.length - 1) {\\n cx = toFloat(deg[1]);\\n cy = toFloat(deg[2]);\\n }\\n deg = toFloat(deg[0]);\\n (cy == null) && (cx = cy);\\n if (cx == null || cy == null) {\\n var bbox = this.getBBox(1);\\n cx = bbox.x + bbox.width / 2;\\n cy = bbox.y + bbox.height / 2;\\n }\\n this.transform(this._.transform.concat([[\\\"r\\\", deg, cx, cy]]));\\n return this;\\n };\\n /*\\\\\\n * Element.scale\\n [ method ]\\n **\\n * Deprecated! Use @Element.transform instead.\\n * Adds scale by given amount relative to given point to the list of\\n * transformations of the element.\\n > Parameters\\n - sx (number) horisontal scale amount\\n - sy (number) vertical scale amount\\n - cx (number) #optional x coordinate of the centre of scale\\n - cy (number) #optional y coordinate of the centre of scale\\n * If cx & cy aren’t specified centre of the shape is used instead.\\n = (object) @Element\\n \\\\*/\\n elproto.scale = function (sx, sy, cx, cy) {\\n if (this.removed) {\\n return this;\\n }\\n sx = Str(sx).split(separator);\\n if (sx.length - 1) {\\n sy = toFloat(sx[1]);\\n cx = toFloat(sx[2]);\\n cy = toFloat(sx[3]);\\n }\\n sx = toFloat(sx[0]);\\n (sy == null) && (sy = sx);\\n (cy == null) && (cx = cy);\\n if (cx == null || cy == null) {\\n var bbox = this.getBBox(1);\\n }\\n cx = cx == null ? bbox.x + bbox.width / 2 : cx;\\n cy = cy == null ? bbox.y + bbox.height / 2 : cy;\\n this.transform(this._.transform.concat([[\\\"s\\\", sx, sy, cx, cy]]));\\n return this;\\n };\\n /*\\\\\\n * Element.translate\\n [ method ]\\n **\\n * Deprecated! Use @Element.transform instead.\\n * Adds translation by given amount to the list of transformations of the element.\\n > Parameters\\n - dx (number) horisontal shift\\n - dy (number) vertical shift\\n = (object) @Element\\n \\\\*/\\n elproto.translate = function (dx, dy) {\\n if (this.removed) {\\n return this;\\n }\\n dx = Str(dx).split(separator);\\n if (dx.length - 1) {\\n dy = toFloat(dx[1]);\\n }\\n dx = toFloat(dx[0]) || 0;\\n dy = +dy || 0;\\n this.transform(this._.transform.concat([[\\\"t\\\", dx, dy]]));\\n return this;\\n };\\n /*\\\\\\n * Element.transform\\n [ method ]\\n **\\n * Adds transformation to the element which is separate to other attributes,\\n * i.e. translation doesn’t change `x` or `y` of the rectange. The format\\n * of transformation string is similar to the path string syntax:\\n | \\\"t100,100r30,100,100s2,2,100,100r45s1.5\\\"\\n * Each letter is a command. There are four commands: `t` is for translate, `r` is for rotate, `s` is for\\n * scale and `m` is for matrix.\\n *\\n * There are also alternative “absolute” translation, rotation and scale: `T`, `R` and `S`. They will not take previous transformation into account. For example, `...T100,0` will always move element 100 px horisontally, while `...t100,0` could move it vertically if there is `r90` before. Just compare results of `r90t100,0` and `r90T100,0`.\\n *\\n * So, the example line above could be read like “translate by 100, 100; rotate 30° around 100, 100; scale twice around 100, 100;\\n * rotate 45° around centre; scale 1.5 times relative to centre”. As you can see rotate and scale commands have origin\\n * coordinates as optional parameters, the default is the centre point of the element.\\n * Matrix accepts six parameters.\\n > Usage\\n | var el = paper.rect(10, 20, 300, 200);\\n | // translate 100, 100, rotate 45°, translate -100, 0\\n | el.transform(\\\"t100,100r45t-100,0\\\");\\n | // if you want you can append or prepend transformations\\n | el.transform(\\\"...t50,50\\\");\\n | el.transform(\\\"s2...\\\");\\n | // or even wrap\\n | el.transform(\\\"t50,50...t-50-50\\\");\\n | // to reset transformation call method with empty string\\n | el.transform(\\\"\\\");\\n | // to get current value call it without parameters\\n | console.log(el.transform());\\n > Parameters\\n - tstr (string) #optional transformation string\\n * If tstr isn’t specified\\n = (string) current transformation string\\n * else\\n = (object) @Element\\n \\\\*/\\n elproto.transform = function (tstr) {\\n var _ = this._;\\n if (tstr == null) {\\n return _.transform;\\n }\\n R._extractTransform(this, tstr);\\n\\n this.clip && $(this.clip, {transform: this.matrix.invert()});\\n this.pattern && updatePosition(this);\\n this.node && $(this.node, {transform: this.matrix});\\n\\n if (_.sx != 1 || _.sy != 1) {\\n var sw = this.attrs[has](\\\"stroke-width\\\") ? this.attrs[\\\"stroke-width\\\"] : 1;\\n this.attr({\\\"stroke-width\\\": sw});\\n }\\n\\n //Reduce transform string\\n _.transform = this.matrix.toTransformString();\\n\\n return this;\\n };\\n /*\\\\\\n * Element.hide\\n [ method ]\\n **\\n * Makes element invisible. See @Element.show.\\n = (object) @Element\\n \\\\*/\\n elproto.hide = function () {\\n if(!this.removed) this.node.style.display = \\\"none\\\";\\n return this;\\n };\\n /*\\\\\\n * Element.show\\n [ method ]\\n **\\n * Makes element visible. See @Element.hide.\\n = (object) @Element\\n \\\\*/\\n elproto.show = function () {\\n if(!this.removed) this.node.style.display = \\\"\\\";\\n return this;\\n };\\n /*\\\\\\n * Element.remove\\n [ method ]\\n **\\n * Removes element from the paper.\\n \\\\*/\\n elproto.remove = function () {\\n var node = getRealNode(this.node);\\n if (this.removed || !node.parentNode) {\\n return;\\n }\\n var paper = this.paper;\\n paper.__set__ && paper.__set__.exclude(this);\\n eve.unbind(\\\"raphael.*.*.\\\" + this.id);\\n if (this.gradient) {\\n paper.defs.removeChild(this.gradient);\\n }\\n R._tear(this, paper);\\n\\n node.parentNode.removeChild(node);\\n\\n // Remove custom data for element\\n this.removeData();\\n\\n for (var i in this) {\\n this[i] = typeof this[i] == \\\"function\\\" ? R._removedFactory(i) : null;\\n }\\n this.removed = true;\\n };\\n elproto._getBBox = function () {\\n if (this.node.style.display == \\\"none\\\") {\\n this.show();\\n var hide = true;\\n }\\n var canvasHidden = false,\\n containerStyle;\\n if (this.paper.canvas.parentElement) {\\n containerStyle = this.paper.canvas.parentElement.style;\\n } //IE10+ can't find parentElement\\n else if (this.paper.canvas.parentNode) {\\n containerStyle = this.paper.canvas.parentNode.style;\\n }\\n\\n if(containerStyle && containerStyle.display == \\\"none\\\") {\\n canvasHidden = true;\\n containerStyle.display = \\\"\\\";\\n }\\n var bbox = {};\\n try {\\n bbox = this.node.getBBox();\\n } catch(e) {\\n // Firefox 3.0.x, 25.0.1 (probably more versions affected) play badly here - possible fix\\n bbox = {\\n x: this.node.clientLeft,\\n y: this.node.clientTop,\\n width: this.node.clientWidth,\\n height: this.node.clientHeight\\n }\\n } finally {\\n bbox = bbox || {};\\n if(canvasHidden){\\n containerStyle.display = \\\"none\\\";\\n }\\n }\\n hide && this.hide();\\n return bbox;\\n };\\n /*\\\\\\n * Element.attr\\n [ method ]\\n **\\n * Sets the attributes of the element.\\n > Parameters\\n - attrName (string) attribute’s name\\n - value (string) value\\n * or\\n - params (object) object of name/value pairs\\n * or\\n - attrName (string) attribute’s name\\n * or\\n - attrNames (array) in this case method returns array of current values for given attribute names\\n = (object) @Element if attrsName & value or params are passed in.\\n = (...) value of the attribute if only attrsName is passed in.\\n = (array) array of values of the attribute if attrsNames is passed in.\\n = (object) object of attributes if nothing is passed in.\\n > Possible parameters\\n # <p>Please refer to the <a href=\\\"http://www.w3.org/TR/SVG/\\\" title=\\\"The W3C Recommendation for the SVG language describes these properties in detail.\\\">SVG specification</a> for an explanation of these parameters.</p>\\n o arrow-end (string) arrowhead on the end of the path. The format for string is `<type>[-<width>[-<length>]]`. Possible types: `classic`, `block`, `open`, `oval`, `diamond`, `none`, width: `wide`, `narrow`, `medium`, length: `long`, `short`, `midium`.\\n o clip-rect (string) comma or space separated values: x, y, width and height\\n o cursor (string) CSS type of the cursor\\n o cx (number) the x-axis coordinate of the center of the circle, or ellipse\\n o cy (number) the y-axis coordinate of the center of the circle, or ellipse\\n o fill (string) colour, gradient or image\\n o fill-opacity (number)\\n o font (string)\\n o font-family (string)\\n o font-size (number) font size in pixels\\n o font-weight (string)\\n o height (number)\\n o href (string) URL, if specified element behaves as hyperlink\\n o opacity (number)\\n o path (string) SVG path string format\\n o r (number) radius of the circle, ellipse or rounded corner on the rect\\n o rx (number) horisontal radius of the ellipse\\n o ry (number) vertical radius of the ellipse\\n o src (string) image URL, only works for @Element.image element\\n o stroke (string) stroke colour\\n o stroke-dasharray (string) [“”, “none”, “`-`”, “`.`”, “`-.`”, “`-..`”, “`. `”, “`- `”, “`--`”, “`- .`”, “`--.`”, “`--..`”]\\n o stroke-linecap (string) [“`butt`”, “`square`”, “`round`”]\\n o stroke-linejoin (string) [“`bevel`”, “`round`”, “`miter`”]\\n o stroke-miterlimit (number)\\n o stroke-opacity (number)\\n o stroke-width (number) stroke width in pixels, default is '1'\\n o target (string) used with href\\n o text (string) contents of the text element. Use `\\\\n` for multiline text\\n o text-anchor (string) [“`start`”, “`middle`”, “`end`”], default is “`middle`”\\n o title (string) will create tooltip with a given text\\n o transform (string) see @Element.transform\\n o width (number)\\n o x (number)\\n o y (number)\\n > Gradients\\n * Linear gradient format: “`‹angle›-‹colour›[-‹colour›[:‹offset›]]*-‹colour›`”, example: “`90-#fff-#000`” – 90°\\n * gradient from white to black or “`0-#fff-#f00:20-#000`” – 0° gradient from white via red (at 20%) to black.\\n *\\n * radial gradient: “`r[(‹fx›, ‹fy›)]‹colour›[-‹colour›[:‹offset›]]*-‹colour›`”, example: “`r#fff-#000`” –\\n * gradient from white to black or “`r(0.25, 0.75)#fff-#000`” – gradient from white to black with focus point\\n * at 0.25, 0.75. Focus point coordinates are in 0..1 range. Radial gradients can only be applied to circles and ellipses.\\n > Path String\\n # <p>Please refer to <a href=\\\"http://www.w3.org/TR/SVG/paths.html#PathData\\\" title=\\\"Details of a path’s data attribute’s format are described in the SVG specification.\\\">SVG documentation regarding path string</a>. Raphaël fully supports it.</p>\\n > Colour Parsing\\n # <ul>\\n # <li>Colour name (“<code>red</code>”, “<code>green</code>”, “<code>cornflowerblue</code>”, etc)</li>\\n # <li>#••• — shortened HTML colour: (“<code>#000</code>”, “<code>#fc0</code>”, etc)</li>\\n # <li>#•••••• — full length HTML colour: (“<code>#000000</code>”, “<code>#bd2300</code>”)</li>\\n # <li>rgb(•••, •••, •••) — red, green and blue channels’ values: (“<code>rgb(200, 100, 0)</code>”)</li>\\n # <li>rgb(•••%, •••%, •••%) — same as above, but in %: (“<code>rgb(100%, 175%, 0%)</code>”)</li>\\n # <li>rgba(•••, •••, •••, •••) — red, green and blue channels’ values: (“<code>rgba(200, 100, 0, .5)</code>”)</li>\\n # <li>rgba(•••%, •••%, •••%, •••%) — same as above, but in %: (“<code>rgba(100%, 175%, 0%, 50%)</code>”)</li>\\n # <li>hsb(•••, •••, •••) — hue, saturation and brightness values: (“<code>hsb(0.5, 0.25, 1)</code>”)</li>\\n # <li>hsb(•••%, •••%, •••%) — same as above, but in %</li>\\n # <li>hsba(•••, •••, •••, •••) — same as above, but with opacity</li>\\n # <li>hsl(•••, •••, •••) — almost the same as hsb, see <a href=\\\"http://en.wikipedia.org/wiki/HSL_and_HSV\\\" title=\\\"HSL and HSV - Wikipedia, the free encyclopedia\\\">Wikipedia page</a></li>\\n # <li>hsl(•••%, •••%, •••%) — same as above, but in %</li>\\n # <li>hsla(•••, •••, •••, •••) — same as above, but with opacity</li>\\n # <li>Optionally for hsb and hsl you could specify hue as a degree: “<code>hsl(240deg, 1, .5)</code>” or, if you want to go fancy, “<code>hsl(240°, 1, .5)</code>”</li>\\n # </ul>\\n \\\\*/\\n elproto.attr = function (name, value) {\\n if (this.removed) {\\n return this;\\n }\\n if (name == null) {\\n var res = {};\\n for (var a in this.attrs) if (this.attrs[has](a)) {\\n res[a] = this.attrs[a];\\n }\\n res.gradient && res.fill == \\\"none\\\" && (res.fill = res.gradient) && delete res.gradient;\\n res.transform = this._.transform;\\n return res;\\n }\\n if (value == null && R.is(name, \\\"string\\\")) {\\n if (name == \\\"fill\\\" && this.attrs.fill == \\\"none\\\" && this.attrs.gradient) {\\n return this.attrs.gradient;\\n }\\n if (name == \\\"transform\\\") {\\n return this._.transform;\\n }\\n var names = name.split(separator),\\n out = {};\\n for (var i = 0, ii = names.length; i < ii; i++) {\\n name = names[i];\\n if (name in this.attrs) {\\n out[name] = this.attrs[name];\\n } else if (R.is(this.paper.customAttributes[name], \\\"function\\\")) {\\n out[name] = this.paper.customAttributes[name].def;\\n } else {\\n out[name] = R._availableAttrs[name];\\n }\\n }\\n return ii - 1 ? out : out[names[0]];\\n }\\n if (value == null && R.is(name, \\\"array\\\")) {\\n out = {};\\n for (i = 0, ii = name.length; i < ii; i++) {\\n out[name[i]] = this.attr(name[i]);\\n }\\n return out;\\n }\\n if (value != null) {\\n var params = {};\\n params[name] = value;\\n } else if (name != null && R.is(name, \\\"object\\\")) {\\n params = name;\\n }\\n for (var key in params) {\\n eve(\\\"raphael.attr.\\\" + key + \\\".\\\" + this.id, this, params[key]);\\n }\\n for (key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], \\\"function\\\")) {\\n var par = this.paper.customAttributes[key].apply(this, [].concat(params[key]));\\n this.attrs[key] = params[key];\\n for (var subkey in par) if (par[has](subkey)) {\\n params[subkey] = par[subkey];\\n }\\n }\\n setFillAndStroke(this, params);\\n return this;\\n };\\n /*\\\\\\n * Element.toFront\\n [ method ]\\n **\\n * Moves the element so it is the closest to the viewer’s eyes, on top of other elements.\\n = (object) @Element\\n \\\\*/\\n elproto.toFront = function () {\\n if (this.removed) {\\n return this;\\n }\\n var node = getRealNode(this.node);\\n node.parentNode.appendChild(node);\\n var svg = this.paper;\\n svg.top != this && R._tofront(this, svg);\\n return this;\\n };\\n /*\\\\\\n * Element.toBack\\n [ method ]\\n **\\n * Moves the element so it is the furthest from the viewer’s eyes, behind other elements.\\n = (object) @Element\\n \\\\*/\\n elproto.toBack = function () {\\n if (this.removed) {\\n return this;\\n }\\n var node = getRealNode(this.node);\\n var parentNode = node.parentNode;\\n parentNode.insertBefore(node, parentNode.firstChild);\\n R._toback(this, this.paper);\\n var svg = this.paper;\\n return this;\\n };\\n /*\\\\\\n * Element.insertAfter\\n [ method ]\\n **\\n * Inserts current object after the given one.\\n = (object) @Element\\n \\\\*/\\n elproto.insertAfter = function (element) {\\n if (this.removed || !element) {\\n return this;\\n }\\n\\n var node = getRealNode(this.node);\\n var afterNode = getRealNode(element.node || element[element.length - 1].node);\\n if (afterNode.nextSibling) {\\n afterNode.parentNode.insertBefore(node, afterNode.nextSibling);\\n } else {\\n afterNode.parentNode.appendChild(node);\\n }\\n R._insertafter(this, element, this.paper);\\n return this;\\n };\\n /*\\\\\\n * Element.insertBefore\\n [ method ]\\n **\\n * Inserts current object before the given one.\\n = (object) @Element\\n \\\\*/\\n elproto.insertBefore = function (element) {\\n if (this.removed || !element) {\\n return this;\\n }\\n\\n var node = getRealNode(this.node);\\n var beforeNode = getRealNode(element.node || element[0].node);\\n beforeNode.parentNode.insertBefore(node, beforeNode);\\n R._insertbefore(this, element, this.paper);\\n return this;\\n };\\n elproto.blur = function (size) {\\n // Experimental. No Safari support. Use it on your own risk.\\n var t = this;\\n if (+size !== 0) {\\n var fltr = $(\\\"filter\\\"),\\n blur = $(\\\"feGaussianBlur\\\");\\n t.attrs.blur = size;\\n fltr.id = R.createUUID();\\n $(blur, {stdDeviation: +size || 1.5});\\n fltr.appendChild(blur);\\n t.paper.defs.appendChild(fltr);\\n t._blur = fltr;\\n $(t.node, {filter: \\\"url(#\\\" + fltr.id + \\\")\\\"});\\n } else {\\n if (t._blur) {\\n t._blur.parentNode.removeChild(t._blur);\\n delete t._blur;\\n delete t.attrs.blur;\\n }\\n t.node.removeAttribute(\\\"filter\\\");\\n }\\n return t;\\n };\\n R._engine.circle = function (svg, x, y, r) {\\n var el = $(\\\"circle\\\");\\n svg.canvas && svg.canvas.appendChild(el);\\n var res = new Element(el, svg);\\n res.attrs = {cx: x, cy: y, r: r, fill: \\\"none\\\", stroke: \\\"#000\\\"};\\n res.type = \\\"circle\\\";\\n $(el, res.attrs);\\n return res;\\n };\\n R._engine.rect = function (svg, x, y, w, h, r) {\\n var el = $(\\\"rect\\\");\\n svg.canvas && svg.canvas.appendChild(el);\\n var res = new Element(el, svg);\\n res.attrs = {x: x, y: y, width: w, height: h, rx: r || 0, ry: r || 0, fill: \\\"none\\\", stroke: \\\"#000\\\"};\\n res.type = \\\"rect\\\";\\n $(el, res.attrs);\\n return res;\\n };\\n R._engine.ellipse = function (svg, x, y, rx, ry) {\\n var el = $(\\\"ellipse\\\");\\n svg.canvas && svg.canvas.appendChild(el);\\n var res = new Element(el, svg);\\n res.attrs = {cx: x, cy: y, rx: rx, ry: ry, fill: \\\"none\\\", stroke: \\\"#000\\\"};\\n res.type = \\\"ellipse\\\";\\n $(el, res.attrs);\\n return res;\\n };\\n R._engine.image = function (svg, src, x, y, w, h) {\\n var el = $(\\\"image\\\");\\n $(el, {x: x, y: y, width: w, height: h, preserveAspectRatio: \\\"none\\\"});\\n el.setAttributeNS(xlink, \\\"href\\\", src);\\n svg.canvas && svg.canvas.appendChild(el);\\n var res = new Element(el, svg);\\n res.attrs = {x: x, y: y, width: w, height: h, src: src};\\n res.type = \\\"image\\\";\\n return res;\\n };\\n R._engine.text = function (svg, x, y, text) {\\n var el = $(\\\"text\\\");\\n svg.canvas && svg.canvas.appendChild(el);\\n var res = new Element(el, svg);\\n res.attrs = {\\n x: x,\\n y: y,\\n \\\"text-anchor\\\": \\\"middle\\\",\\n text: text,\\n \\\"font-family\\\": R._availableAttrs[\\\"font-family\\\"],\\n \\\"font-size\\\": R._availableAttrs[\\\"font-size\\\"],\\n stroke: \\\"none\\\",\\n fill: \\\"#000\\\"\\n };\\n res.type = \\\"text\\\";\\n setFillAndStroke(res, res.attrs);\\n return res;\\n };\\n R._engine.setSize = function (width, height) {\\n this.width = width || this.width;\\n this.height = height || this.height;\\n this.canvas.setAttribute(\\\"width\\\", this.width);\\n this.canvas.setAttribute(\\\"height\\\", this.height);\\n if (this._viewBox) {\\n this.setViewBox.apply(this, this._viewBox);\\n }\\n return this;\\n };\\n R._engine.create = function () {\\n var con = R._getContainer.apply(0, arguments),\\n container = con && con.container,\\n x = con.x,\\n y = con.y,\\n width = con.width,\\n height = con.height;\\n if (!container) {\\n throw new Error(\\\"SVG container not found.\\\");\\n }\\n var cnvs = $(\\\"svg\\\"),\\n css = \\\"overflow:hidden;\\\",\\n isFloating;\\n x = x || 0;\\n y = y || 0;\\n width = width || 512;\\n height = height || 342;\\n $(cnvs, {\\n height: height,\\n version: 1.1,\\n width: width,\\n xmlns: \\\"http://www.w3.org/2000/svg\\\",\\n \\\"xmlns:xlink\\\": \\\"http://www.w3.org/1999/xlink\\\"\\n });\\n if (container == 1) {\\n cnvs.style.cssText = css + \\\"position:absolute;left:\\\" + x + \\\"px;top:\\\" + y + \\\"px\\\";\\n R._g.doc.body.appendChild(cnvs);\\n isFloating = 1;\\n } else {\\n cnvs.style.cssText = css + \\\"position:relative\\\";\\n if (container.firstChild) {\\n container.insertBefore(cnvs, container.firstChild);\\n } else {\\n container.appendChild(cnvs);\\n }\\n }\\n container = new R._Paper;\\n container.width = width;\\n container.height = height;\\n container.canvas = cnvs;\\n container.clear();\\n container._left = container._top = 0;\\n isFloating && (container.renderfix = function () {});\\n container.renderfix();\\n return container;\\n };\\n R._engine.setViewBox = function (x, y, w, h, fit) {\\n eve(\\\"raphael.setViewBox\\\", this, this._viewBox, [x, y, w, h, fit]);\\n var paperSize = this.getSize(),\\n size = mmax(w / paperSize.width, h / paperSize.height),\\n top = this.top,\\n aspectRatio = fit ? \\\"xMidYMid meet\\\" : \\\"xMinYMin\\\",\\n vb,\\n sw;\\n if (x == null) {\\n if (this._vbSize) {\\n size = 1;\\n }\\n delete this._vbSize;\\n vb = \\\"0 0 \\\" + this.width + S + this.height;\\n } else {\\n this._vbSize = size;\\n vb = x + S + y + S + w + S + h;\\n }\\n $(this.canvas, {\\n viewBox: vb,\\n preserveAspectRatio: aspectRatio\\n });\\n while (size && top) {\\n sw = \\\"stroke-width\\\" in top.attrs ? top.attrs[\\\"stroke-width\\\"] : 1;\\n top.attr({\\\"stroke-width\\\": sw});\\n top._.dirty = 1;\\n top._.dirtyT = 1;\\n top = top.prev;\\n }\\n this._viewBox = [x, y, w, h, !!fit];\\n return this;\\n };\\n /*\\\\\\n * Paper.renderfix\\n [ method ]\\n **\\n * Fixes the issue of Firefox and IE9 regarding subpixel rendering. If paper is dependant\\n * on other elements after reflow it could shift half pixel which cause for lines to lost their crispness.\\n * This method fixes the issue.\\n **\\n Special thanks to Mariusz Nowak (http://www.medikoo.com/) for this method.\\n \\\\*/\\n R.prototype.renderfix = function () {\\n var cnvs = this.canvas,\\n s = cnvs.style,\\n pos;\\n try {\\n pos = cnvs.getScreenCTM() || cnvs.createSVGMatrix();\\n } catch (e) {\\n pos = cnvs.createSVGMatrix();\\n }\\n var left = -pos.e % 1,\\n top = -pos.f % 1;\\n if (left || top) {\\n if (left) {\\n this._left = (this._left + left) % 1;\\n s.left = this._left + \\\"px\\\";\\n }\\n if (top) {\\n this._top = (this._top + top) % 1;\\n s.top = this._top + \\\"px\\\";\\n }\\n }\\n };\\n /*\\\\\\n * Paper.clear\\n [ method ]\\n **\\n * Clears the paper, i.e. removes all the elements.\\n \\\\*/\\n R.prototype.clear = function () {\\n R.eve(\\\"raphael.clear\\\", this);\\n var c = this.canvas;\\n while (c.firstChild) {\\n c.removeChild(c.firstChild);\\n }\\n this.bottom = this.top = null;\\n (this.desc = $(\\\"desc\\\")).appendChild(R._g.doc.createTextNode(\\\"Created with Rapha\\\\xebl \\\" + R.version));\\n c.appendChild(this.desc);\\n c.appendChild(this.defs = $(\\\"defs\\\"));\\n };\\n /*\\\\\\n * Paper.remove\\n [ method ]\\n **\\n * Removes the paper from the DOM.\\n \\\\*/\\n R.prototype.remove = function () {\\n eve(\\\"raphael.remove\\\", this);\\n this.canvas.parentNode && this.canvas.parentNode.removeChild(this.canvas);\\n for (var i in this) {\\n this[i] = typeof this[i] == \\\"function\\\" ? R._removedFactory(i) : null;\\n }\\n };\\n var setproto = R.st;\\n for (var method in elproto) if (elproto[has](method) && !setproto[has](method)) {\\n setproto[method] = (function (methodname) {\\n return function () {\\n var arg = arguments;\\n return this.forEach(function (el) {\\n el[methodname].apply(el, arg);\\n });\\n };\\n })(method);\\n }\\n}));\\n\\n// ┌─────────────────────────────────────────────────────────────────────┐ \\\\\\\\\\n// │ Raphaël 2.1.4 - JavaScript Vector Library │ \\\\\\\\\\n// ├─────────────────────────────────────────────────────────────────────┤ \\\\\\\\\\n// │ VML Module │ \\\\\\\\\\n// ├─────────────────────────────────────────────────────────────────────┤ \\\\\\\\\\n// │ Copyright (c) 2008-2011 Dmitry Baranovskiy (http://raphaeljs.com) │ \\\\\\\\\\n// │ Copyright (c) 2008-2011 Sencha Labs (http://sencha.com) │ \\\\\\\\\\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license. │ \\\\\\\\\\n// └─────────────────────────────────────────────────────────────────────┘ \\\\\\\\\\n\\n(function (glob, factory) {\\n if (typeof define === \\\"function\\\" && define.amd) {\\n define(\\\"raphael.vml\\\", [\\\"raphael.core\\\"], function(raphael) {\\n return factory(raphael);\\n });\\n } else if (typeof exports === \\\"object\\\") {\\n factory(require(\\\"./raphael.core\\\"));\\n } else {\\n factory(glob.Raphael);\\n }\\n}(this, function(R) {\\n if (R && !R.vml) {\\n return;\\n }\\n\\n var has = \\\"hasOwnProperty\\\",\\n Str = String,\\n toFloat = parseFloat,\\n math = Math,\\n round = math.round,\\n mmax = math.max,\\n mmin = math.min,\\n abs = math.abs,\\n fillString = \\\"fill\\\",\\n separator = /[, ]+/,\\n eve = R.eve,\\n ms = \\\" progid:DXImageTransform.Microsoft\\\",\\n S = \\\" \\\",\\n E = \\\"\\\",\\n map = {M: \\\"m\\\", L: \\\"l\\\", C: \\\"c\\\", Z: \\\"x\\\", m: \\\"t\\\", l: \\\"r\\\", c: \\\"v\\\", z: \\\"x\\\"},\\n bites = /([clmz]),?([^clmz]*)/gi,\\n blurregexp = / progid:\\\\S+Blur\\\\([^\\\\)]+\\\\)/g,\\n val = /-?[^,\\\\s-]+/g,\\n cssDot = \\\"position:absolute;left:0;top:0;width:1px;height:1px;behavior:url(#default#VML)\\\",\\n zoom = 21600,\\n pathTypes = {path: 1, rect: 1, image: 1},\\n ovalTypes = {circle: 1, ellipse: 1},\\n path2vml = function (path) {\\n var total = /[ahqstv]/ig,\\n command = R._pathToAbsolute;\\n Str(path).match(total) && (command = R._path2curve);\\n total = /[clmz]/g;\\n if (command == R._pathToAbsolute && !Str(path).match(total)) {\\n var res = Str(path).replace(bites, function (all, command, args) {\\n var vals = [],\\n isMove = command.toLowerCase() == \\\"m\\\",\\n res = map[command];\\n args.replace(val, function (value) {\\n if (isMove && vals.length == 2) {\\n res += vals + map[command == \\\"m\\\" ? \\\"l\\\" : \\\"L\\\"];\\n vals = [];\\n }\\n vals.push(round(value * zoom));\\n });\\n return res + vals;\\n });\\n return res;\\n }\\n var pa = command(path), p, r;\\n res = [];\\n for (var i = 0, ii = pa.length; i < ii; i++) {\\n p = pa[i];\\n r = pa[i][0].toLowerCase();\\n r == \\\"z\\\" && (r = \\\"x\\\");\\n for (var j = 1, jj = p.length; j < jj; j++) {\\n r += round(p[j] * zoom) + (j != jj - 1 ? \\\",\\\" : E);\\n }\\n res.push(r);\\n }\\n return res.join(S);\\n },\\n compensation = function (deg, dx, dy) {\\n var m = R.matrix();\\n m.rotate(-deg, .5, .5);\\n return {\\n dx: m.x(dx, dy),\\n dy: m.y(dx, dy)\\n };\\n },\\n setCoords = function (p, sx, sy, dx, dy, deg) {\\n var _ = p._,\\n m = p.matrix,\\n fillpos = _.fillpos,\\n o = p.node,\\n s = o.style,\\n y = 1,\\n flip = \\\"\\\",\\n dxdy,\\n kx = zoom / sx,\\n ky = zoom / sy;\\n s.visibility = \\\"hidden\\\";\\n if (!sx || !sy) {\\n return;\\n }\\n o.coordsize = abs(kx) + S + abs(ky);\\n s.rotation = deg * (sx * sy < 0 ? -1 : 1);\\n if (deg) {\\n var c = compensation(deg, dx, dy);\\n dx = c.dx;\\n dy = c.dy;\\n }\\n sx < 0 && (flip += \\\"x\\\");\\n sy < 0 && (flip += \\\" y\\\") && (y = -1);\\n s.flip = flip;\\n o.coordorigin = (dx * -kx) + S + (dy * -ky);\\n if (fillpos || _.fillsize) {\\n var fill = o.getElementsByTagName(fillString);\\n fill = fill && fill[0];\\n o.removeChild(fill);\\n if (fillpos) {\\n c = compensation(deg, m.x(fillpos[0], fillpos[1]), m.y(fillpos[0], fillpos[1]));\\n fill.position = c.dx * y + S + c.dy * y;\\n }\\n if (_.fillsize) {\\n fill.size = _.fillsize[0] * abs(sx) + S + _.fillsize[1] * abs(sy);\\n }\\n o.appendChild(fill);\\n }\\n s.visibility = \\\"visible\\\";\\n };\\n R.toString = function () {\\n return \\\"Your browser doesn\\\\u2019t support SVG. Falling down to VML.\\\\nYou are running Rapha\\\\xebl \\\" + this.version;\\n };\\n var addArrow = function (o, value, isEnd) {\\n var values = Str(value).toLowerCase().split(\\\"-\\\"),\\n se = isEnd ? \\\"end\\\" : \\\"start\\\",\\n i = values.length,\\n type = \\\"classic\\\",\\n w = \\\"medium\\\",\\n h = \\\"medium\\\";\\n while (i--) {\\n switch (values[i]) {\\n case \\\"block\\\":\\n case \\\"classic\\\":\\n case \\\"oval\\\":\\n case \\\"diamond\\\":\\n case \\\"open\\\":\\n case \\\"none\\\":\\n type = values[i];\\n break;\\n case \\\"wide\\\":\\n case \\\"narrow\\\": h = values[i]; break;\\n case \\\"long\\\":\\n case \\\"short\\\": w = values[i]; break;\\n }\\n }\\n var stroke = o.node.getElementsByTagName(\\\"stroke\\\")[0];\\n stroke[se + \\\"arrow\\\"] = type;\\n stroke[se + \\\"arrowlength\\\"] = w;\\n stroke[se + \\\"arrowwidth\\\"] = h;\\n },\\n setFillAndStroke = function (o, params) {\\n // o.paper.canvas.style.display = \\\"none\\\";\\n o.attrs = o.attrs || {};\\n var node = o.node,\\n a = o.attrs,\\n s = node.style,\\n xy,\\n newpath = pathTypes[o.type] && (params.x != a.x || params.y != a.y || params.width != a.width || params.height != a.height || params.cx != a.cx || params.cy != a.cy || params.rx != a.rx || params.ry != a.ry || params.r != a.r),\\n isOval = ovalTypes[o.type] && (a.cx != params.cx || a.cy != params.cy || a.r != params.r || a.rx != params.rx || a.ry != params.ry),\\n res = o;\\n\\n\\n for (var par in params) if (params[has](par)) {\\n a[par] = params[par];\\n }\\n if (newpath) {\\n a.path = R._getPath[o.type](o);\\n o._.dirty = 1;\\n }\\n params.href && (node.href = params.href);\\n params.title && (node.title = params.title);\\n params.target && (node.target = params.target);\\n params.cursor && (s.cursor = params.cursor);\\n \\\"blur\\\" in params && o.blur(params.blur);\\n if (params.path && o.type == \\\"path\\\" || newpath) {\\n node.path = path2vml(~Str(a.path).toLowerCase().indexOf(\\\"r\\\") ? R._pathToAbsolute(a.path) : a.path);\\n o._.dirty = 1;\\n if (o.type == \\\"image\\\") {\\n o._.fillpos = [a.x, a.y];\\n o._.fillsize = [a.width, a.height];\\n setCoords(o, 1, 1, 0, 0, 0);\\n }\\n }\\n \\\"transform\\\" in params && o.transform(params.transform);\\n if (isOval) {\\n var cx = +a.cx,\\n cy = +a.cy,\\n rx = +a.rx || +a.r || 0,\\n ry = +a.ry || +a.r || 0;\\n node.path = R.format(\\\"ar{0},{1},{2},{3},{4},{1},{4},{1}x\\\", round((cx - rx) * zoom), round((cy - ry) * zoom), round((cx + rx) * zoom), round((cy + ry) * zoom), round(cx * zoom));\\n o._.dirty = 1;\\n }\\n if (\\\"clip-rect\\\" in params) {\\n var rect = Str(params[\\\"clip-rect\\\"]).split(separator);\\n if (rect.length == 4) {\\n rect[2] = +rect[2] + (+rect[0]);\\n rect[3] = +rect[3] + (+rect[1]);\\n var div = node.clipRect || R._g.doc.createElement(\\\"div\\\"),\\n dstyle = div.style;\\n dstyle.clip = R.format(\\\"rect({1}px {2}px {3}px {0}px)\\\", rect);\\n if (!node.clipRect) {\\n dstyle.position = \\\"absolute\\\";\\n dstyle.top = 0;\\n dstyle.left = 0;\\n dstyle.width = o.paper.width + \\\"px\\\";\\n dstyle.height = o.paper.height + \\\"px\\\";\\n node.parentNode.insertBefore(div, node);\\n div.appendChild(node);\\n node.clipRect = div;\\n }\\n }\\n if (!params[\\\"clip-rect\\\"]) {\\n node.clipRect && (node.clipRect.style.clip = \\\"auto\\\");\\n }\\n }\\n if (o.textpath) {\\n var textpathStyle = o.textpath.style;\\n params.font && (textpathStyle.font = params.font);\\n params[\\\"font-family\\\"] && (textpathStyle.fontFamily = '\\\"' + params[\\\"font-family\\\"].split(\\\",\\\")[0].replace(/^['\\\"]+|['\\\"]+$/g, E) + '\\\"');\\n params[\\\"font-size\\\"] && (textpathStyle.fontSize = params[\\\"font-size\\\"]);\\n params[\\\"font-weight\\\"] && (textpathStyle.fontWeight = params[\\\"font-weight\\\"]);\\n params[\\\"font-style\\\"] && (textpathStyle.fontStyle = params[\\\"font-style\\\"]);\\n }\\n if (\\\"arrow-start\\\" in params) {\\n addArrow(res, params[\\\"arrow-start\\\"]);\\n }\\n if (\\\"arrow-end\\\" in params) {\\n addArrow(res, params[\\\"arrow-end\\\"], 1);\\n }\\n if (params.opacity != null ||\\n params[\\\"stroke-width\\\"] != null ||\\n params.fill != null ||\\n params.src != null ||\\n params.stroke != null ||\\n params[\\\"stroke-width\\\"] != null ||\\n params[\\\"stroke-opacity\\\"] != null ||\\n params[\\\"fill-opacity\\\"] != null ||\\n params[\\\"stroke-dasharray\\\"] != null ||\\n params[\\\"stroke-miterlimit\\\"] != null ||\\n params[\\\"stroke-linejoin\\\"] != null ||\\n params[\\\"stroke-linecap\\\"] != null) {\\n var fill = node.getElementsByTagName(fillString),\\n newfill = false;\\n fill = fill && fill[0];\\n !fill && (newfill = fill = createNode(fillString));\\n if (o.type == \\\"image\\\" && params.src) {\\n fill.src = params.src;\\n }\\n params.fill && (fill.on = true);\\n if (fill.on == null || params.fill == \\\"none\\\" || params.fill === null) {\\n fill.on = false;\\n }\\n if (fill.on && params.fill) {\\n var isURL = Str(params.fill).match(R._ISURL);\\n if (isURL) {\\n fill.parentNode == node && node.removeChild(fill);\\n fill.rotate = true;\\n fill.src = isURL[1];\\n fill.type = \\\"tile\\\";\\n var bbox = o.getBBox(1);\\n fill.position = bbox.x + S + bbox.y;\\n o._.fillpos = [bbox.x, bbox.y];\\n\\n R._preload(isURL[1], function () {\\n o._.fillsize = [this.offsetWidth, this.offsetHeight];\\n });\\n } else {\\n fill.color = R.getRGB(params.fill).hex;\\n fill.src = E;\\n fill.type = \\\"solid\\\";\\n if (R.getRGB(params.fill).error && (res.type in {circle: 1, ellipse: 1} || Str(params.fill).charAt() != \\\"r\\\") && addGradientFill(res, params.fill, fill)) {\\n a.fill = \\\"none\\\";\\n a.gradient = params.fill;\\n fill.rotate = false;\\n }\\n }\\n }\\n if (\\\"fill-opacity\\\" in params || \\\"opacity\\\" in params) {\\n var opacity = ((+a[\\\"fill-opacity\\\"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+R.getRGB(params.fill).o + 1 || 2) - 1);\\n opacity = mmin(mmax(opacity, 0), 1);\\n fill.opacity = opacity;\\n if (fill.src) {\\n fill.color = \\\"none\\\";\\n }\\n }\\n node.appendChild(fill);\\n var stroke = (node.getElementsByTagName(\\\"stroke\\\") && node.getElementsByTagName(\\\"stroke\\\")[0]),\\n newstroke = false;\\n !stroke && (newstroke = stroke = createNode(\\\"stroke\\\"));\\n if ((params.stroke && params.stroke != \\\"none\\\") ||\\n params[\\\"stroke-width\\\"] ||\\n params[\\\"stroke-opacity\\\"] != null ||\\n params[\\\"stroke-dasharray\\\"] ||\\n params[\\\"stroke-miterlimit\\\"] ||\\n params[\\\"stroke-linejoin\\\"] ||\\n params[\\\"stroke-linecap\\\"]) {\\n stroke.on = true;\\n }\\n (params.stroke == \\\"none\\\" || params.stroke === null || stroke.on == null || params.stroke == 0 || params[\\\"stroke-width\\\"] == 0) && (stroke.on = false);\\n var strokeColor = R.getRGB(params.stroke);\\n stroke.on && params.stroke && (stroke.color = strokeColor.hex);\\n opacity = ((+a[\\\"stroke-opacity\\\"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+strokeColor.o + 1 || 2) - 1);\\n var width = (toFloat(params[\\\"stroke-width\\\"]) || 1) * .75;\\n opacity = mmin(mmax(opacity, 0), 1);\\n params[\\\"stroke-width\\\"] == null && (width = a[\\\"stroke-width\\\"]);\\n params[\\\"stroke-width\\\"] && (stroke.weight = width);\\n width && width < 1 && (opacity *= width) && (stroke.weight = 1);\\n stroke.opacity = opacity;\\n\\n params[\\\"stroke-linejoin\\\"] && (stroke.joinstyle = params[\\\"stroke-linejoin\\\"] || \\\"miter\\\");\\n stroke.miterlimit = params[\\\"stroke-miterlimit\\\"] || 8;\\n params[\\\"stroke-linecap\\\"] && (stroke.endcap = params[\\\"stroke-linecap\\\"] == \\\"butt\\\" ? \\\"flat\\\" : params[\\\"stroke-linecap\\\"] == \\\"square\\\" ? \\\"square\\\" : \\\"round\\\");\\n if (\\\"stroke-dasharray\\\" in params) {\\n var dasharray = {\\n \\\"-\\\": \\\"shortdash\\\",\\n \\\".\\\": \\\"shortdot\\\",\\n \\\"-.\\\": \\\"shortdashdot\\\",\\n \\\"-..\\\": \\\"shortdashdotdot\\\",\\n \\\". \\\": \\\"dot\\\",\\n \\\"- \\\": \\\"dash\\\",\\n \\\"--\\\": \\\"longdash\\\",\\n \\\"- .\\\": \\\"dashdot\\\",\\n \\\"--.\\\": \\\"longdashdot\\\",\\n \\\"--..\\\": \\\"longdashdotdot\\\"\\n };\\n stroke.dashstyle = dasharray[has](params[\\\"stroke-dasharray\\\"]) ? dasharray[params[\\\"stroke-dasharray\\\"]] : E;\\n }\\n newstroke && node.appendChild(stroke);\\n }\\n if (res.type == \\\"text\\\") {\\n res.paper.canvas.style.display = E;\\n var span = res.paper.span,\\n m = 100,\\n fontSize = a.font && a.font.match(/\\\\d+(?:\\\\.\\\\d*)?(?=px)/);\\n s = span.style;\\n a.font && (s.font = a.font);\\n a[\\\"font-family\\\"] && (s.fontFamily = a[\\\"font-family\\\"]);\\n a[\\\"font-weight\\\"] && (s.fontWeight = a[\\\"font-weight\\\"]);\\n a[\\\"font-style\\\"] && (s.fontStyle = a[\\\"font-style\\\"]);\\n fontSize = toFloat(a[\\\"font-size\\\"] || fontSize && fontSize[0]) || 10;\\n s.fontSize = fontSize * m + \\\"px\\\";\\n res.textpath.string && (span.innerHTML = Str(res.textpath.string).replace(/</g, \\\"<\\\").replace(/&/g, \\\"&\\\").replace(/\\\\n/g, \\\"<br>\\\"));\\n var brect = span.getBoundingClientRect();\\n res.W = a.w = (brect.right - brect.left) / m;\\n res.H = a.h = (brect.bottom - brect.top) / m;\\n // res.paper.canvas.style.display = \\\"none\\\";\\n res.X = a.x;\\n res.Y = a.y + res.H / 2;\\n\\n (\\\"x\\\" in params || \\\"y\\\" in params) && (res.path.v = R.format(\\\"m{0},{1}l{2},{1}\\\", round(a.x * zoom), round(a.y * zoom), round(a.x * zoom) + 1));\\n var dirtyattrs = [\\\"x\\\", \\\"y\\\", \\\"text\\\", \\\"font\\\", \\\"font-family\\\", \\\"font-weight\\\", \\\"font-style\\\", \\\"font-size\\\"];\\n for (var d = 0, dd = dirtyattrs.length; d < dd; d++) if (dirtyattrs[d] in params) {\\n res._.dirty = 1;\\n break;\\n }\\n\\n // text-anchor emulation\\n switch (a[\\\"text-anchor\\\"]) {\\n case \\\"start\\\":\\n res.textpath.style[\\\"v-text-align\\\"] = \\\"left\\\";\\n res.bbx = res.W / 2;\\n break;\\n case \\\"end\\\":\\n res.textpath.style[\\\"v-text-align\\\"] = \\\"right\\\";\\n res.bbx = -res.W / 2;\\n break;\\n default:\\n res.textpath.style[\\\"v-text-align\\\"] = \\\"center\\\";\\n res.bbx = 0;\\n break;\\n }\\n res.textpath.style[\\\"v-text-kern\\\"] = true;\\n }\\n // res.paper.canvas.style.display = E;\\n },\\n addGradientFill = function (o, gradient, fill) {\\n o.attrs = o.attrs || {};\\n var attrs = o.attrs,\\n pow = Math.pow,\\n opacity,\\n oindex,\\n type = \\\"linear\\\",\\n fxfy = \\\".5 .5\\\";\\n o.attrs.gradient = gradient;\\n gradient = Str(gradient).replace(R._radial_gradient, function (all, fx, fy) {\\n type = \\\"radial\\\";\\n if (fx && fy) {\\n fx = toFloat(fx);\\n fy = toFloat(fy);\\n pow(fx - .5, 2) + pow(fy - .5, 2) > .25 && (fy = math.sqrt(.25 - pow(fx - .5, 2)) * ((fy > .5) * 2 - 1) + .5);\\n fxfy = fx + S + fy;\\n }\\n return E;\\n });\\n gradient = gradient.split(/\\\\s*\\\\-\\\\s*/);\\n if (type == \\\"linear\\\") {\\n var angle = gradient.shift();\\n angle = -toFloat(angle);\\n if (isNaN(angle)) {\\n return null;\\n }\\n }\\n var dots = R._parseDots(gradient);\\n if (!dots) {\\n return null;\\n }\\n o = o.shape || o.node;\\n if (dots.length) {\\n o.removeChild(fill);\\n fill.on = true;\\n fill.method = \\\"none\\\";\\n fill.color = dots[0].color;\\n fill.color2 = dots[dots.length - 1].color;\\n var clrs = [];\\n for (var i = 0, ii = dots.length; i < ii; i++) {\\n dots[i].offset && clrs.push(dots[i].offset + S + dots[i].color);\\n }\\n fill.colors = clrs.length ? clrs.join() : \\\"0% \\\" + fill.color;\\n if (type == \\\"radial\\\") {\\n fill.type = \\\"gradientTitle\\\";\\n fill.focus = \\\"100%\\\";\\n fill.focussize = \\\"0 0\\\";\\n fill.focusposition = fxfy;\\n fill.angle = 0;\\n } else {\\n // fill.rotate= true;\\n fill.type = \\\"gradient\\\";\\n fill.angle = (270 - angle) % 360;\\n }\\n o.appendChild(fill);\\n }\\n return 1;\\n },\\n Element = function (node, vml) {\\n this[0] = this.node = node;\\n node.raphael = true;\\n this.id = R._oid++;\\n node.raphaelid = this.id;\\n this.X = 0;\\n this.Y = 0;\\n this.attrs = {};\\n this.paper = vml;\\n this.matrix = R.matrix();\\n this._ = {\\n transform: [],\\n sx: 1,\\n sy: 1,\\n dx: 0,\\n dy: 0,\\n deg: 0,\\n dirty: 1,\\n dirtyT: 1\\n };\\n !vml.bottom && (vml.bottom = this);\\n this.prev = vml.top;\\n vml.top && (vml.top.next = this);\\n vml.top = this;\\n this.next = null;\\n };\\n var elproto = R.el;\\n\\n Element.prototype = elproto;\\n elproto.constructor = Element;\\n elproto.transform = function (tstr) {\\n if (tstr == null) {\\n return this._.transform;\\n }\\n var vbs = this.paper._viewBoxShift,\\n vbt = vbs ? \\\"s\\\" + [vbs.scale, vbs.scale] + \\\"-1-1t\\\" + [vbs.dx, vbs.dy] : E,\\n oldt;\\n if (vbs) {\\n oldt = tstr = Str(tstr).replace(/\\\\.{3}|\\\\u2026/g, this._.transform || E);\\n }\\n R._extractTransform(this, vbt + tstr);\\n var matrix = this.matrix.clone(),\\n skew = this.skew,\\n o = this.node,\\n split,\\n isGrad = ~Str(this.attrs.fill).indexOf(\\\"-\\\"),\\n isPatt = !Str(this.attrs.fill).indexOf(\\\"url(\\\");\\n matrix.translate(1, 1);\\n if (isPatt || isGrad || this.type == \\\"image\\\") {\\n skew.matrix = \\\"1 0 0 1\\\";\\n skew.offset = \\\"0 0\\\";\\n split = matrix.split();\\n if ((isGrad && split.noRotation) || !split.isSimple) {\\n o.style.filter = matrix.toFilter();\\n var bb = this.getBBox(),\\n bbt = this.getBBox(1),\\n dx = bb.x - bbt.x,\\n dy = bb.y - bbt.y;\\n o.coordorigin = (dx * -zoom) + S + (dy * -zoom);\\n setCoords(this, 1, 1, dx, dy, 0);\\n } else {\\n o.style.filter = E;\\n setCoords(this, split.scalex, split.scaley, split.dx, split.dy, split.rotate);\\n }\\n } else {\\n o.style.filter = E;\\n skew.matrix = Str(matrix);\\n skew.offset = matrix.offset();\\n }\\n if (oldt !== null) { // empty string value is true as well\\n this._.transform = oldt;\\n R._extractTransform(this, oldt);\\n }\\n return this;\\n };\\n elproto.rotate = function (deg, cx, cy) {\\n if (this.removed) {\\n return this;\\n }\\n if (deg == null) {\\n return;\\n }\\n deg = Str(deg).split(separator);\\n if (deg.length - 1) {\\n cx = toFloat(deg[1]);\\n cy = toFloat(deg[2]);\\n }\\n deg = toFloat(deg[0]);\\n (cy == null) && (cx = cy);\\n if (cx == null || cy == null) {\\n var bbox = this.getBBox(1);\\n cx = bbox.x + bbox.width / 2;\\n cy = bbox.y + bbox.height / 2;\\n }\\n this._.dirtyT = 1;\\n this.transform(this._.transform.concat([[\\\"r\\\", deg, cx, cy]]));\\n return this;\\n };\\n elproto.translate = function (dx, dy) {\\n if (this.removed) {\\n return this;\\n }\\n dx = Str(dx).split(separator);\\n if (dx.length - 1) {\\n dy = toFloat(dx[1]);\\n }\\n dx = toFloat(dx[0]) || 0;\\n dy = +dy || 0;\\n if (this._.bbox) {\\n this._.bbox.x += dx;\\n this._.bbox.y += dy;\\n }\\n this.transform(this._.transform.concat([[\\\"t\\\", dx, dy]]));\\n return this;\\n };\\n elproto.scale = function (sx, sy, cx, cy) {\\n if (this.removed) {\\n return this;\\n }\\n sx = Str(sx).split(separator);\\n if (sx.length - 1) {\\n sy = toFloat(sx[1]);\\n cx = toFloat(sx[2]);\\n cy = toFloat(sx[3]);\\n isNaN(cx) && (cx = null);\\n isNaN(cy) && (cy = null);\\n }\\n sx = toFloat(sx[0]);\\n (sy == null) && (sy = sx);\\n (cy == null) && (cx = cy);\\n if (cx == null || cy == null) {\\n var bbox = this.getBBox(1);\\n }\\n cx = cx == null ? bbox.x + bbox.width / 2 : cx;\\n cy = cy == null ? bbox.y + bbox.height / 2 : cy;\\n\\n this.transform(this._.transform.concat([[\\\"s\\\", sx, sy, cx, cy]]));\\n this._.dirtyT = 1;\\n return this;\\n };\\n elproto.hide = function () {\\n !this.removed && (this.node.style.display = \\\"none\\\");\\n return this;\\n };\\n elproto.show = function () {\\n !this.removed && (this.node.style.display = E);\\n return this;\\n };\\n // Needed to fix the vml setViewBox issues\\n elproto.auxGetBBox = R.el.getBBox;\\n elproto.getBBox = function(){\\n var b = this.auxGetBBox();\\n if (this.paper && this.paper._viewBoxShift)\\n {\\n var c = {};\\n var z = 1/this.paper._viewBoxShift.scale;\\n c.x = b.x - this.paper._viewBoxShift.dx;\\n c.x *= z;\\n c.y = b.y - this.paper._viewBoxShift.dy;\\n c.y *= z;\\n c.width = b.width * z;\\n c.height = b.height * z;\\n c.x2 = c.x + c.width;\\n c.y2 = c.y + c.height;\\n return c;\\n }\\n return b;\\n };\\n elproto._getBBox = function () {\\n if (this.removed) {\\n return {};\\n }\\n return {\\n x: this.X + (this.bbx || 0) - this.W / 2,\\n y: this.Y - this.H,\\n width: this.W,\\n height: this.H\\n };\\n };\\n elproto.remove = function () {\\n if (this.removed || !this.node.parentNode) {\\n return;\\n }\\n this.paper.__set__ && this.paper.__set__.exclude(this);\\n R.eve.unbind(\\\"raphael.*.*.\\\" + this.id);\\n R._tear(this, this.paper);\\n this.node.parentNode.removeChild(this.node);\\n this.shape && this.shape.parentNode.removeChild(this.shape);\\n for (var i in this) {\\n this[i] = typeof this[i] == \\\"function\\\" ? R._removedFactory(i) : null;\\n }\\n this.removed = true;\\n };\\n elproto.attr = function (name, value) {\\n if (this.removed) {\\n return this;\\n }\\n if (name == null) {\\n var res = {};\\n for (var a in this.attrs) if (this.attrs[has](a)) {\\n res[a] = this.attrs[a];\\n }\\n res.gradient && res.fill == \\\"none\\\" && (res.fill = res.gradient) && delete res.gradient;\\n res.transform = this._.transform;\\n return res;\\n }\\n if (value == null && R.is(name, \\\"string\\\")) {\\n if (name == fillString && this.attrs.fill == \\\"none\\\" && this.attrs.gradient) {\\n return this.attrs.gradient;\\n }\\n var names = name.split(separator),\\n out = {};\\n for (var i = 0, ii = names.length; i < ii; i++) {\\n name = names[i];\\n if (name in this.attrs) {\\n out[name] = this.attrs[name];\\n } else if (R.is(this.paper.customAttributes[name], \\\"function\\\")) {\\n out[name] = this.paper.customAttributes[name].def;\\n } else {\\n out[name] = R._availableAttrs[name];\\n }\\n }\\n return ii - 1 ? out : out[names[0]];\\n }\\n if (this.attrs && value == null && R.is(name, \\\"array\\\")) {\\n out = {};\\n for (i = 0, ii = name.length; i < ii; i++) {\\n out[name[i]] = this.attr(name[i]);\\n }\\n return out;\\n }\\n var params;\\n if (value != null) {\\n params = {};\\n params[name] = value;\\n }\\n value == null && R.is(name, \\\"object\\\") && (params = name);\\n for (var key in params) {\\n eve(\\\"raphael.attr.\\\" + key + \\\".\\\" + this.id, this, params[key]);\\n }\\n if (params) {\\n for (key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], \\\"function\\\")) {\\n var par = this.paper.customAttributes[key].apply(this, [].concat(params[key]));\\n this.attrs[key] = params[key];\\n for (var subkey in par) if (par[has](subkey)) {\\n params[subkey] = par[subkey];\\n }\\n }\\n // this.paper.canvas.style.display = \\\"none\\\";\\n if (params.text && this.type == \\\"text\\\") {\\n this.textpath.string = params.text;\\n }\\n setFillAndStroke(this, params);\\n // this.paper.canvas.style.display = E;\\n }\\n return this;\\n };\\n elproto.toFront = function () {\\n !this.removed && this.node.parentNode.appendChild(this.node);\\n this.paper && this.paper.top != this && R._tofront(this, this.paper);\\n return this;\\n };\\n elproto.toBack = function () {\\n if (this.removed) {\\n return this;\\n }\\n if (this.node.parentNode.firstChild != this.node) {\\n this.node.parentNode.insertBefore(this.node, this.node.parentNode.firstChild);\\n R._toback(this, this.paper);\\n }\\n return this;\\n };\\n elproto.insertAfter = function (element) {\\n if (this.removed) {\\n return this;\\n }\\n if (element.constructor == R.st.constructor) {\\n element = element[element.length - 1];\\n }\\n if (element.node.nextSibling) {\\n element.node.parentNode.insertBefore(this.node, element.node.nextSibling);\\n } else {\\n element.node.parentNode.appendChild(this.node);\\n }\\n R._insertafter(this, element, this.paper);\\n return this;\\n };\\n elproto.insertBefore = function (element) {\\n if (this.removed) {\\n return this;\\n }\\n if (element.constructor == R.st.constructor) {\\n element = element[0];\\n }\\n element.node.parentNode.insertBefore(this.node, element.node);\\n R._insertbefore(this, element, this.paper);\\n return this;\\n };\\n elproto.blur = function (size) {\\n var s = this.node.runtimeStyle,\\n f = s.filter;\\n f = f.replace(blurregexp, E);\\n if (+size !== 0) {\\n this.attrs.blur = size;\\n s.filter = f + S + ms + \\\".Blur(pixelradius=\\\" + (+size || 1.5) + \\\")\\\";\\n s.margin = R.format(\\\"-{0}px 0 0 -{0}px\\\", round(+size || 1.5));\\n } else {\\n s.filter = f;\\n s.margin = 0;\\n delete this.attrs.blur;\\n }\\n return this;\\n };\\n\\n R._engine.path = function (pathString, vml) {\\n var el = createNode(\\\"shape\\\");\\n el.style.cssText = cssDot;\\n el.coordsize = zoom + S + zoom;\\n el.coordorigin = vml.coordorigin;\\n var p = new Element(el, vml),\\n attr = {fill: \\\"none\\\", stroke: \\\"#000\\\"};\\n pathString && (attr.path = pathString);\\n p.type = \\\"path\\\";\\n p.path = [];\\n p.Path = E;\\n setFillAndStroke(p, attr);\\n vml.canvas.appendChild(el);\\n var skew = createNode(\\\"skew\\\");\\n skew.on = true;\\n el.appendChild(skew);\\n p.skew = skew;\\n p.transform(E);\\n return p;\\n };\\n R._engine.rect = function (vml, x, y, w, h, r) {\\n var path = R._rectPath(x, y, w, h, r),\\n res = vml.path(path),\\n a = res.attrs;\\n res.X = a.x = x;\\n res.Y = a.y = y;\\n res.W = a.width = w;\\n res.H = a.height = h;\\n a.r = r;\\n a.path = path;\\n res.type = \\\"rect\\\";\\n return res;\\n };\\n R._engine.ellipse = function (vml, x, y, rx, ry) {\\n var res = vml.path(),\\n a = res.attrs;\\n res.X = x - rx;\\n res.Y = y - ry;\\n res.W = rx * 2;\\n res.H = ry * 2;\\n res.type = \\\"ellipse\\\";\\n setFillAndStroke(res, {\\n cx: x,\\n cy: y,\\n rx: rx,\\n ry: ry\\n });\\n return res;\\n };\\n R._engine.circle = function (vml, x, y, r) {\\n var res = vml.path(),\\n a = res.attrs;\\n res.X = x - r;\\n res.Y = y - r;\\n res.W = res.H = r * 2;\\n res.type = \\\"circle\\\";\\n setFillAndStroke(res, {\\n cx: x,\\n cy: y,\\n r: r\\n });\\n return res;\\n };\\n R._engine.image = function (vml, src, x, y, w, h) {\\n var path = R._rectPath(x, y, w, h),\\n res = vml.path(path).attr({stroke: \\\"none\\\"}),\\n a = res.attrs,\\n node = res.node,\\n fill = node.getElementsByTagName(fillString)[0];\\n a.src = src;\\n res.X = a.x = x;\\n res.Y = a.y = y;\\n res.W = a.width = w;\\n res.H = a.height = h;\\n a.path = path;\\n res.type = \\\"image\\\";\\n fill.parentNode == node && node.removeChild(fill);\\n fill.rotate = true;\\n fill.src = src;\\n fill.type = \\\"tile\\\";\\n res._.fillpos = [x, y];\\n res._.fillsize = [w, h];\\n node.appendChild(fill);\\n setCoords(res, 1, 1, 0, 0, 0);\\n return res;\\n };\\n R._engine.text = function (vml, x, y, text) {\\n var el = createNode(\\\"shape\\\"),\\n path = createNode(\\\"path\\\"),\\n o = createNode(\\\"textpath\\\");\\n x = x || 0;\\n y = y || 0;\\n text = text || \\\"\\\";\\n path.v = R.format(\\\"m{0},{1}l{2},{1}\\\", round(x * zoom), round(y * zoom), round(x * zoom) + 1);\\n path.textpathok = true;\\n o.string = Str(text);\\n o.on = true;\\n el.style.cssText = cssDot;\\n el.coordsize = zoom + S + zoom;\\n el.coordorigin = \\\"0 0\\\";\\n var p = new Element(el, vml),\\n attr = {\\n fill: \\\"#000\\\",\\n stroke: \\\"none\\\",\\n font: R._availableAttrs.font,\\n text: text\\n };\\n p.shape = el;\\n p.path = path;\\n p.textpath = o;\\n p.type = \\\"text\\\";\\n p.attrs.text = Str(text);\\n p.attrs.x = x;\\n p.attrs.y = y;\\n p.attrs.w = 1;\\n p.attrs.h = 1;\\n setFillAndStroke(p, attr);\\n el.appendChild(o);\\n el.appendChild(path);\\n vml.canvas.appendChild(el);\\n var skew = createNode(\\\"skew\\\");\\n skew.on = true;\\n el.appendChild(skew);\\n p.skew = skew;\\n p.transform(E);\\n return p;\\n };\\n R._engine.setSize = function (width, height) {\\n var cs = this.canvas.style;\\n this.width = width;\\n this.height = height;\\n width == +width && (width += \\\"px\\\");\\n height == +height && (height += \\\"px\\\");\\n cs.width = width;\\n cs.height = height;\\n cs.clip = \\\"rect(0 \\\" + width + \\\" \\\" + height + \\\" 0)\\\";\\n if (this._viewBox) {\\n R._engine.setViewBox.apply(this, this._viewBox);\\n }\\n return this;\\n };\\n R._engine.setViewBox = function (x, y, w, h, fit) {\\n R.eve(\\\"raphael.setViewBox\\\", this, this._viewBox, [x, y, w, h, fit]);\\n var paperSize = this.getSize(),\\n width = paperSize.width,\\n height = paperSize.height,\\n H, W;\\n if (fit) {\\n H = height / h;\\n W = width / w;\\n if (w * H < width) {\\n x -= (width - w * H) / 2 / H;\\n }\\n if (h * W < height) {\\n y -= (height - h * W) / 2 / W;\\n }\\n }\\n this._viewBox = [x, y, w, h, !!fit];\\n this._viewBoxShift = {\\n dx: -x,\\n dy: -y,\\n scale: paperSize\\n };\\n this.forEach(function (el) {\\n el.transform(\\\"...\\\");\\n });\\n return this;\\n };\\n var createNode;\\n R._engine.initWin = function (win) {\\n var doc = win.document;\\n if (doc.styleSheets.length < 31) {\\n doc.createStyleSheet().addRule(\\\".rvml\\\", \\\"behavior:url(#default#VML)\\\");\\n } else {\\n // no more room, add to the existing one\\n // http://msdn.microsoft.com/en-us/library/ms531194%28VS.85%29.aspx\\n doc.styleSheets[0].addRule(\\\".rvml\\\", \\\"behavior:url(#default#VML)\\\");\\n }\\n try {\\n !doc.namespaces.rvml && doc.namespaces.add(\\\"rvml\\\", \\\"urn:schemas-microsoft-com:vml\\\");\\n createNode = function (tagName) {\\n return doc.createElement('<rvml:' + tagName + ' class=\\\"rvml\\\">');\\n };\\n } catch (e) {\\n createNode = function (tagName) {\\n return doc.createElement('<' + tagName + ' xmlns=\\\"urn:schemas-microsoft.com:vml\\\" class=\\\"rvml\\\">');\\n };\\n }\\n };\\n R._engine.initWin(R._g.win);\\n R._engine.create = function () {\\n var con = R._getContainer.apply(0, arguments),\\n container = con.container,\\n height = con.height,\\n s,\\n width = con.width,\\n x = con.x,\\n y = con.y;\\n if (!container) {\\n throw new Error(\\\"VML container not found.\\\");\\n }\\n var res = new R._Paper,\\n c = res.canvas = R._g.doc.createElement(\\\"div\\\"),\\n cs = c.style;\\n x = x || 0;\\n y = y || 0;\\n width = width || 512;\\n height = height || 342;\\n res.width = width;\\n res.height = height;\\n width == +width && (width += \\\"px\\\");\\n height == +height && (height += \\\"px\\\");\\n res.coordsize = zoom * 1e3 + S + zoom * 1e3;\\n res.coordorigin = \\\"0 0\\\";\\n res.span = R._g.doc.createElement(\\\"span\\\");\\n res.span.style.cssText = \\\"position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;\\\";\\n c.appendChild(res.span);\\n cs.cssText = R.format(\\\"top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden\\\", width, height);\\n if (container == 1) {\\n R._g.doc.body.appendChild(c);\\n cs.left = x + \\\"px\\\";\\n cs.top = y + \\\"px\\\";\\n cs.position = \\\"absolute\\\";\\n } else {\\n if (container.firstChild) {\\n container.insertBefore(c, container.firstChild);\\n } else {\\n container.appendChild(c);\\n }\\n }\\n res.renderfix = function () {};\\n return res;\\n };\\n R.prototype.clear = function () {\\n R.eve(\\\"raphael.clear\\\", this);\\n this.canvas.innerHTML = E;\\n this.span = R._g.doc.createElement(\\\"span\\\");\\n this.span.style.cssText = \\\"position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;\\\";\\n this.canvas.appendChild(this.span);\\n this.bottom = this.top = null;\\n };\\n R.prototype.remove = function () {\\n R.eve(\\\"raphael.remove\\\", this);\\n this.canvas.parentNode.removeChild(this.canvas);\\n for (var i in this) {\\n this[i] = typeof this[i] == \\\"function\\\" ? R._removedFactory(i) : null;\\n }\\n return true;\\n };\\n\\n var setproto = R.st;\\n for (var method in elproto) if (elproto[has](method) && !setproto[has](method)) {\\n setproto[method] = (function (methodname) {\\n return function () {\\n var arg = arguments;\\n return this.forEach(function (el) {\\n el[methodname].apply(el, arg);\\n });\\n };\\n })(method);\\n }\\n}));\\n\\n// ┌────────────────────────────────────────────────────────────────────┐ \\\\\\\\\\n// │ Raphaël @VERSION - JavaScript Vector Library │ \\\\\\\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\\\\\\n// │ Copyright © 2008-2012 Dmitry Baranovskiy (http://raphaeljs.com) │ \\\\\\\\\\n// │ Copyright © 2008-2012 Sencha Labs (http://sencha.com) │ \\\\\\\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\\\\\\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license.│ \\\\\\\\\\n// └────────────────────────────────────────────────────────────────────┘ \\\\\\\\\\n\\n(function (glob, factory) {\\n if (typeof define === \\\"function\\\" && define.amd) {\\n define(\\\"raphael\\\", [\\\"raphael.core\\\", \\\"raphael.svg\\\", \\\"raphael.vml\\\"], function(Raphael) {\\n return (glob.Raphael = factory(Raphael));\\n });\\n } else if (typeof exports === \\\"object\\\") {\\n var raphael = require(\\\"raphael.core\\\");\\n\\n require(\\\"raphael.svg\\\");\\n require(\\\"raphael.vml\\\");\\n\\n module.exports = factory(raphael);\\n } else {\\n glob.Raphael = factory(glob.Raphael);\\n }\\n}(this, function (Raphael) {\\n return Raphael.ninja();\\n}));\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n/**\\n * FRaphael\\n * \\tAn extension for Raphael.js to make it easier to work with Filter Effects\\n *\\n * Copyright © 2013 Chris Scott <chris.scott@factmint.com>\\n * Delivered with and licensed under the MIT licence\\n *\\n */\\n\\n// Create the global FRaphael object\\n(function(scope) {\\n var\\tversion = \\\"0.0.1\\\",\\n license = \\\"MIT\\\";\\n\\n var\\tns = \\\"http://www.w3.org/2000/svg\\\",\\n idCounter = 0;\\n\\n var FR = {\\n // Object prototype for a filter\\n Filter: function(id) {\\n if (id == undefined) {\\n id = \\\"filter-\\\" + idCounter++;\\n while(FR.filters[id] != undefined) {\\n id = \\\"filter-\\\" + idCounter++;\\n }\\n }\\n\\n if (FR.filters[id] != undefined) {\\n throw \\\"A filter with id \\\" + id + \\\" already exists\\\";\\n }\\n\\n this.element = document.createElementNS(ns, \\\"filter\\\");\\n this.element.setAttribute(\\\"id\\\", id);\\n this.element.setAttribute(\\\"x\\\", \\\"-25%\\\");\\n this.element.setAttribute(\\\"y\\\", \\\"-25%\\\");\\n this.element.setAttribute(\\\"width\\\", \\\"150%\\\");\\n this.element.setAttribute(\\\"height\\\", \\\"150%\\\");\\n\\n this.lastFEResult = null;\\n\\n FR.filters[id] = this;\\n this.id = id;\\n },\\n\\n // Object prototype for an effect\\n FilterEffect: function(type, attributes) {\\n this.element = document.createElementNS(ns, type);\\n for (var key in attributes) {\\n this.element.setAttribute(key, attributes[key]);\\n }\\n },\\n\\n // Return the filter applied to an element or a new filter if none are currently applied\\n getFilter: function(element) {\\n var filterId = element.data(\\\"filterId\\\");\\n var filter = null;\\n\\n if (filterId == undefined) {\\n filterId = \\\"element-filter-\\\" + element.id;\\n filter = element.paper.createFilter(filterId);\\n element.filter(filterId);\\n } else {\\n filter = FR.filters[filterId];\\n }\\n\\n return filter;\\n },\\n\\n // maintain a list of filters by id\\n filters: {}\\n };\\n\\n FR.Filter.prototype = {\\n addEffect: function(type, attributes, children) {\\n var effect = new FR.FilterEffect(type, attributes);\\n\\n if (children) {\\n if (children instanceof Array) {\\n for (var x in children) {\\n if (!children.hasOwnProperty(x)) continue;\\n\\n effect.element.appendChild(children[x].element);\\n }\\n } else {\\n effect.element.appendChild(children.element);\\n }\\n }\\n\\n this.element.appendChild(effect.element);\\n\\n return this;\\n },\\n\\n chainEffect: function(type, attributes, children) {\\n if (attributes == undefined) {\\n attributes = {};\\n }\\n\\n var inId;\\n var outId;\\n if (attributes.in == undefined) {\\n inId = this.getLastResult();\\n } else {\\n inId = attributes.in;\\n }\\n if (attributes.result == undefined) {\\n outId = idCounter++;\\n } else {\\n outId = attributes.result;\\n }\\n\\n this.lastFEResult = outId;\\n\\n attributes.in = inId;\\n attributes.result = outId;\\n\\n this.addEffect(type, attributes, children);\\n\\n return this;\\n },\\n\\n getLastResult: function() {\\n return (this.lastFEResult == undefined) ? \\\"SourceGraphic\\\" : this.lastFEResult;\\n },\\n\\n merge: function(in1, in2, attributes) {\\n var mergeNode1 = new FR.FilterEffect(\\\"feMergeNode\\\", {\\n in: in1\\n });\\n var mergeNode2 = new FR.FilterEffect(\\\"feMergeNode\\\", {\\n in: in2\\n });\\n\\n this.chainEffect(\\\"feMerge\\\", attributes, [mergeNode1, mergeNode2]);\\n\\n return this;\\n },\\n\\n compose: function(in1, in2, operator, attributes) {\\n if (attributes == undefined) {\\n attributes = {};\\n }\\n\\n if (operator == undefined) {\\n operator = \\\"over\\\";\\n }\\n\\n attributes.in = in1;\\n attributes.in2 = in2;\\n attributes.operator = operator;\\n\\n this.chainEffect(\\\"feComposite\\\", attributes);\\n\\n return this;\\n },\\n\\n arithmeticCompose: function(in1, in2, k1, k2, k3, k4) {\\n if (k1 == undefined) {\\n k1 = 0;\\n }\\n if (k2 == undefined) {\\n k2 = 0;\\n }\\n if (k3 == undefined) {\\n k3 = 0;\\n }\\n if (k4 == undefined) {\\n k4 = 0;\\n }\\n\\n this.compose(in1, in2, \\\"arithmetic\\\", {\\n k1: k1,\\n k2: k2,\\n k3: k3,\\n k4: k4\\n });\\n\\n return this;\\n },\\n\\n addBlur: function(stdDeviation, attributes) {\\n if (!stdDeviation) {\\n throw \\\"Standard deviation is required to perform a blur filter\\\";\\n }\\n\\n if (attributes == undefined) {\\n attributes = {};\\n }\\n attributes.stdDeviation = stdDeviation;\\n\\n this.chainEffect(\\\"feGaussianBlur\\\", attributes);\\n\\n return this;\\n },\\n\\n addOffset: function(dx, dy, attributes) {\\n if (dx == undefined | dy == undefined) {\\n throw \\\"dx and dy values are required to perform an offset FE\\\";\\n }\\n\\n if (attributes == undefined) {\\n attributes = {};\\n }\\n attributes.dx = dx;\\n attributes.dy = dy;\\n\\n this.chainEffect(\\\"feOffset\\\", attributes);\\n\\n return this;\\n },\\n\\n addLighting: function(x, y, z, color, type, attributes) {\\n if (x == undefined | y == undefined | z == undefined) {\\n throw \\\"Three co-ordinates are required to create a light source\\\";\\n }\\n\\n var previousResult = this.getLastResult();\\n\\n var id = idCounter++;\\n\\n if (attributes == undefined) {\\n attributes = {};\\n }\\n\\n attributes.result = id;\\n if (color != undefined) {\\n attributes[\\\"lighting-color\\\"] = color;\\n }\\n\\n if (type == undefined || type == \\\"diffuse\\\") {\\n type = \\\"feDiffuseLighting\\\";\\n } else if (type == \\\"specular\\\") {\\n type = \\\"feSpecularLighting\\\";\\n }\\n\\n var lightSource = new FR.FilterEffect(\\\"fePointLight\\\", {\\n x: x,\\n y: y,\\n z: z\\n });\\n\\n this.chainEffect(type, attributes, lightSource).arithmeticCompose(previousResult, id, 3, 0.2, 0, 0);\\n\\n return this;\\n },\\n\\n addShiftToColor: function(color, moveBy, attributes) {\\n if (color == undefined) {\\n throw \\\"A colour string is a required argument to create a colorMatrix\\\";\\n }\\n if (moveBy == undefined) {\\n moveBy = 0.5;\\n }\\n\\n var remainingColor = 1 - moveBy, x = remainingColor;\\n\\n if (attributes == undefined) {\\n attributes = {};\\n }\\n\\n var colorObject = Raphael.color(color);\\n var\\tr = colorObject.r * moveBy / 255,\\n g = colorObject.g * moveBy / 255,\\n b = colorObject.b * moveBy / 255;\\n\\n /**\\n * r'\\tx 0 0 0 r\\t\\tr\\n * g'\\t0 x 0 0 g\\t\\tg\\n * b' =\\t0 0 x 0 b\\t.\\tb\\n * a'\\t0 0 0 1 0\\t\\to\\n * 1\\t\\t\\t\\t\\t1\\n */\\n attributes.values = x + \\\" 0 0 0 \\\" + r + \\\" 0 \\\" + x + \\\" 0 0 \\\" + g + \\\" 0 0 \\\" + x + \\\" 0 \\\" + b + \\\" 0 0 0 1 0 \\\";\\n\\n this.chainEffect(\\\"feColorMatrix\\\", attributes);\\n\\n return this;\\n },\\n\\n addRecolor: function(color, opacity, attributes) {\\n if (color == undefined) {\\n throw \\\"A colour string is a required argument to create a colorMatrix\\\";\\n }\\n if (opacity == undefined) {\\n opacity = 1;\\n }\\n\\n if (attributes == undefined) {\\n attributes = {};\\n }\\n\\n var colorObject = Raphael.color(color);\\n var\\tr = colorObject.r / 255,\\n g = colorObject.g / 255,\\n b = colorObject.b / 255;\\n\\n /**\\n * r'\\t0 0 0 0 r\\t\\tr\\n * g'\\t0 0 0 0 g\\t\\tg\\n * b' =\\t0 0 0 0 b\\t.\\tb\\n * a'\\t0 0 0 a 0\\t\\ta\\n * 1\\t\\t\\t\\t\\t1\\n */\\n attributes.values = \\\"0 0 0 0 \\\" + r + \\\" 0 0 0 0 \\\" + g + \\\" 0 0 0 0 \\\" + b + \\\" 0 0 0 \\\" + opacity + \\\" 0 \\\";\\n\\n this.chainEffect(\\\"feColorMatrix\\\", attributes);\\n\\n return this;\\n },\\n\\n addDesaturate: function(saturation, attributes) {\\n if (saturation == undefined) {\\n saturnation = 0;\\n }\\n\\n if (attributes == undefined) {\\n attributes = {};\\n }\\n\\n attributes.values = saturation;\\n attributes.type = \\\"saturate\\\";\\n\\n this.chainEffect(\\\"feColorMatrix\\\", attributes);\\n\\n return this;\\n },\\n\\n addConvolveMatrix: function(matrix, attributes) {\\n if (matrix == undefined) {\\n throw \\\"A matrix (usually 9 numbers) must be provided to apply a convolve matrix transform\\\";\\n }\\n\\n if (attributes == undefined) {\\n attributes = {};\\n }\\n\\n attributes.kernelMatrix = matrix;\\n\\n this.chainEffect(\\\"feConvolveMatrix\\\", attributes);\\n\\n return this;\\n },\\n\\n createShadow: function(dx, dy, blur, opacity, color) {\\n if (dx == undefined) {\\n throw \\\"dx is required for the shadow effect\\\";\\n }\\n if (dy == undefined) {\\n throw \\\"dy is required for the shadow effect\\\";\\n }\\n if (blur == undefined) {\\n throw \\\"blur (stdDeviation) is required for the shadow effect\\\";\\n }\\n\\n if (opacity == undefined) {\\n opacity = 0.6;\\n }\\n\\n var previousResult = this.getLastResult();\\n\\n if (color == undefined) {\\n color = \\\"#000000\\\";\\n }\\n\\n this.addOffset(dx, dy, {\\n in: \\\"SourceAlpha\\\"\\n });\\n\\n this.addRecolor(color, opacity);\\n\\n this.addBlur(blur);\\n\\n this.merge(this.getLastResult(), previousResult);\\n\\n return this;\\n },\\n\\n createEmboss: function(height, x, y, z) {\\n if (height == undefined) {\\n height = 2;\\n }\\n if (x == undefined) {\\n x = -1000;\\n }\\n if (y == undefined) {\\n y = -5000;\\n }\\n if (z == undefined) {\\n z = 300;\\n }\\n\\n // Create the highlight\\n\\n this.addOffset(height * x / (x + y), height * y / (x + y), {\\n in: \\\"SourceAlpha\\\"\\n });\\n\\n this.addBlur(height * 0.5);\\n\\n var whiteLightSource = new FR.FilterEffect(\\\"fePointLight\\\", {\\n x: x,\\n y: y,\\n z: z\\n });\\n\\n this.chainEffect(\\\"feSpecularLighting\\\", {\\n surfaceScale: height,\\n specularConstant: 0.8,\\n specularExponent: 15\\n }, whiteLightSource);\\n\\n this.compose(this.getLastResult(), \\\"SourceAlpha\\\", \\\"in\\\");\\n var whiteLight = this.getLastResult();\\n\\n // Create the lowlight\\n\\n this.addOffset(height * -1 * x / (x + y), height * -1 * y / (x + y), {\\n in: \\\"SourceAlpha\\\"\\n });\\n\\n this.addBlur(height * 0.5);\\n\\n var darkLightSource = new FR.FilterEffect(\\\"fePointLight\\\", {\\n x: -1 * x,\\n y: -1 * y,\\n z: z\\n });\\n\\n this.chainEffect(\\\"feSpecularLighting\\\", {\\n surfaceScale: height,\\n specularConstant: 1.8,\\n specularExponent: 6\\n }, darkLightSource);\\n\\n this.compose(this.getLastResult(), \\\"SourceAlpha\\\", \\\"in\\\");\\n this.chainEffect(\\\"feColorMatrix\\\", {\\n values: \\\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0\\\"\\n });\\n var darkLight = this.getLastResult();\\n\\n this.arithmeticCompose(whiteLight, darkLight, 0, 0.8, 0.5, 0);\\n\\n this.merge(\\\"SourceGraphic\\\", this.getLastResult());\\n\\n return this;\\n }\\n };\\n\\n scope.FRaphael = FR;\\n})(this);\\n\\n/**\\n * add a filter to the paper by id\\n */\\nRaphael.fn.createFilter = function(id) {\\n var paper = this;\\n var filter = new FRaphael.Filter(id);\\n paper.defs.appendChild(filter.element);\\n\\n return filter;\\n};\\n\\n/**\\n * Apply a filter to an element by id\\n */\\nRaphael.el.filter = function(filter) {\\n var id = (filter instanceof FRaphael.Filter) ? filter.id : filter;\\n\\n this.node.setAttribute(\\\"filter\\\", \\\"url(#\\\" + id + \\\")\\\");\\n this.data(\\\"filterId\\\", id);\\n\\n return this;\\n};\\n\\n/**\\n * Get the current filter for an element or a new one if not\\n */\\nRaphael.el.getFilter = function() {\\n return FRaphael.getFilter(this);\\n};\\n\\n/**\\n * A shorthand method for applying blur\\n */\\nRaphael.el.blur = function(stdDeviation) {\\n if (stdDeviation == undefined) {\\n stdDeviation = 3;\\n }\\n\\n this.getFilter().addBlur(stdDeviation);\\n\\n return this;\\n};\\n\\n/**\\n * A shorthand method for applying a drop shadow\\n */\\nRaphael.el.shadow = function(dx, dy, blur, opacity, color) {\\n if (dx == undefined) {\\n dx = 3;\\n }\\n if (dy == undefined) {\\n dy = 3;\\n }\\n if (blur == undefined) {\\n blur = 3;\\n }\\n\\n this.getFilter().createShadow(dx, dy, blur, opacity, color);\\n\\n return this;\\n};\\n\\n/**\\n * A shorthand method for applying lighting\\n */\\nRaphael.el.light = function(x, y, z, color, type) {\\n if (x == undefined) {\\n x = this.paper.width;\\n }\\n if (y == undefined) {\\n y = 0;\\n }\\n if (z == undefined) {\\n z = 20;\\n }\\n\\n this.getFilter().addLighting(x, y, z, color, type);\\n\\n return this;\\n};\\n\\n/**\\n * A shorthand method for applying a colour shift\\n */\\nRaphael.el.colorShift = function(color, shift) {\\n if (color == undefined) {\\n color = \\\"black\\\";\\n }\\n if (shift == undefined) {\\n shift = 0.5;\\n }\\n\\n this.getFilter().addShiftToColor(color, shift);\\n\\n return this;\\n};\\n\\n/**\\n * A shorthand method for embossing\\n */\\nRaphael.el.emboss = function(height) {\\n this.getFilter().createEmboss(height);\\n\\n return this;\\n};\\n\\n/**\\n * A shorthand method for desaturating\\n */\\nRaphael.el.desaturate = function(saturation) {\\n this.getFilter().addDesaturate(saturation);\\n\\n return this;\\n};\\n\\n/**\\n * A shorthand method for complete desaturation\\n */\\nRaphael.el.greyScale = function() {\\n this.getFilter().addDesaturate(0);\\n\\n return this;\\n};\\n\"\n\n/***/ }),\n\n/***/ \"./node_modules/rgbcolor/index.js\":\n/*!****************************************!*\\\n !*** ./node_modules/rgbcolor/index.js ***!\n \\****************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/*\n\tBased on rgbcolor.js by Stoyan Stefanov <sstoo@gmail.com>\n\thttp://www.phpied.com/rgb-color-parser-in-javascript/\n*/\n\nmodule.exports = function(color_string) {\n this.ok = false;\n this.alpha = 1.0;\n\n // strip any leading #\n if (color_string.charAt(0) == '#') { // remove # if any\n color_string = color_string.substr(1,6);\n }\n\n color_string = color_string.replace(/ /g,'');\n color_string = color_string.toLowerCase();\n\n // before getting into regexps, try simple matches\n // and overwrite the input\n var simple_colors = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dodgerblue: '1e90ff',\n feldspar: 'd19275',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred : 'cd5c5c',\n indigo : '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgrey: 'd3d3d3',\n lightgreen: '90ee90',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslateblue: '8470ff',\n lightslategray: '778899',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '00ff00',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'ff00ff',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370d8',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'd87093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n red: 'ff0000',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n violetred: 'd02090',\n wheat: 'f5deb3',\n white: 'ffffff',\n whitesmoke: 'f5f5f5',\n yellow: 'ffff00',\n yellowgreen: '9acd32'\n };\n color_string = simple_colors[color_string] || color_string;\n // emd of simple type-in colors\n\n // array of color definition objects\n var color_defs = [\n {\n re: /^rgba\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3}),\\s*((?:\\d?\\.)?\\d)\\)$/,\n example: ['rgba(123, 234, 45, 0.8)', 'rgba(255,234,245,1.0)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3]),\n parseFloat(bits[4])\n ];\n }\n },\n {\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n example: ['rgb(123, 234, 45)', 'rgb(255,234,245)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3])\n ];\n }\n },\n {\n re: /^(\\w{2})(\\w{2})(\\w{2})$/,\n example: ['#00ff00', '336699'],\n process: function (bits){\n return [\n parseInt(bits[1], 16),\n parseInt(bits[2], 16),\n parseInt(bits[3], 16)\n ];\n }\n },\n {\n re: /^(\\w{1})(\\w{1})(\\w{1})$/,\n example: ['#fb0', 'f0f'],\n process: function (bits){\n return [\n parseInt(bits[1] + bits[1], 16),\n parseInt(bits[2] + bits[2], 16),\n parseInt(bits[3] + bits[3], 16)\n ];\n }\n }\n ];\n\n // search through the definitions to find a match\n for (var i = 0; i < color_defs.length; i++) {\n var re = color_defs[i].re;\n var processor = color_defs[i].process;\n var bits = re.exec(color_string);\n if (bits) {\n var channels = processor(bits);\n this.r = channels[0];\n this.g = channels[1];\n this.b = channels[2];\n if (channels.length > 3) {\n this.alpha = channels[3];\n }\n this.ok = true;\n }\n\n }\n\n // validate/cleanup values\n this.r = (this.r < 0 || isNaN(this.r)) ? 0 : ((this.r > 255) ? 255 : this.r);\n this.g = (this.g < 0 || isNaN(this.g)) ? 0 : ((this.g > 255) ? 255 : this.g);\n this.b = (this.b < 0 || isNaN(this.b)) ? 0 : ((this.b > 255) ? 255 : this.b);\n this.alpha = (this.alpha < 0) ? 0 : ((this.alpha > 1.0 || isNaN(this.alpha)) ? 1.0 : this.alpha);\n\n // some getters\n this.toRGB = function () {\n return 'rgb(' + this.r + ', ' + this.g + ', ' + this.b + ')';\n }\n this.toRGBA = function () {\n return 'rgba(' + this.r + ', ' + this.g + ', ' + this.b + ', ' + this.alpha + ')';\n }\n this.toHex = function () {\n var r = this.r.toString(16);\n var g = this.g.toString(16);\n var b = this.b.toString(16);\n if (r.length == 1) r = '0' + r;\n if (g.length == 1) g = '0' + g;\n if (b.length == 1) b = '0' + b;\n return '#' + r + g + b;\n }\n\n // help\n this.getHelpXML = function () {\n\n var examples = new Array();\n // add regexps\n for (var i = 0; i < color_defs.length; i++) {\n var example = color_defs[i].example;\n for (var j = 0; j < example.length; j++) {\n examples[examples.length] = example[j];\n }\n }\n // add type-in colors\n for (var sc in simple_colors) {\n examples[examples.length] = sc;\n }\n\n var xml = document.createElement('ul');\n xml.setAttribute('id', 'rgbcolor-examples');\n for (var i = 0; i < examples.length; i++) {\n try {\n var list_item = document.createElement('li');\n var list_color = new RGBColor(examples[i]);\n var example_div = document.createElement('div');\n example_div.style.cssText =\n 'margin: 3px; '\n + 'border: 1px solid black; '\n + 'background:' + list_color.toHex() + '; '\n + 'color:' + list_color.toHex()\n ;\n example_div.appendChild(document.createTextNode('test'));\n var list_item_value = document.createTextNode(\n ' ' + examples[i] + ' -> ' + list_color.toRGB() + ' -> ' + list_color.toHex()\n );\n list_item.appendChild(example_div);\n list_item.appendChild(list_item_value);\n xml.appendChild(list_item);\n\n } catch(e){}\n }\n return xml;\n\n }\n\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/script-loader/addScript.js\":\n/*!*************************************************!*\\\n !*** ./node_modules/script-loader/addScript.js ***!\n \\*************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\nmodule.exports = function(src) {\n\tfunction log(error) {\n\t\t(typeof console !== \"undefined\")\n\t\t&& (console.error || console.log)(\"[Script Loader]\", error);\n\t}\n\n\t// Check for IE =< 8\n\tfunction isIE() {\n\t\treturn typeof attachEvent !== \"undefined\" && typeof addEventListener === \"undefined\";\n\t}\n\n\ttry {\n\t\tif (typeof execScript !== \"undefined\" && isIE()) {\n\t\t\texecScript(src);\n\t\t} else if (typeof eval !== \"undefined\") {\n\t\t\teval.call(null, src);\n\t\t} else {\n\t\t\tlog(\"EvalError: No eval function available\");\n\t\t}\n\t} catch (error) {\n\t\tlog(error);\n\t}\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/shifty/dist/shifty.js\":\n/*!********************************************!*\\\n !*** ./node_modules/shifty/dist/shifty.js ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*! 2.3.1 */\n!function(t,e){ true?module.exports=e():undefined}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"/assets/\",e(e.s=6)}([function(t,e,n){\"use strict\";(function(t){function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=new j,n=e.tween(t);return n.tweenable=e,n}Object.defineProperty(e,\"__esModule\",{value:!0}),e.Tweenable=e.composeEasingObject=e.tweenProps=e.clone=e.each=void 0;var u=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),a=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t};e.tween=o;var c=n(5),s=r(c),f=n(1),h=function(t){return t&&t.__esModule?t:{default:t}}(f),l=n(7),p=r(l),d=\"undefined\"!=typeof window?window:t,m=d.cancelAnimationFrame||d.webkitCancelAnimationFrame||d.oCancelAnimationFrame||d.msCancelAnimationFrame||d.mozCancelRequestAnimationFrame||d.clearTimeout,_=d.requestAnimationFrame||d.webkitRequestAnimationFrame||d.oRequestAnimationFrame||d.msRequestAnimationFrame||d.mozCancelRequestAnimationFrame&&d.mozRequestAnimationFrame||setTimeout,v=function(){},y=e.each=function(t,e){return Object.keys(t).forEach(e)},w=e.clone=function(t){return(0,h.default)({},t)},g=w(s),b=function(t,e,n,r){return t+(e-t)*n(r)},O=e.tweenProps=function(t,e,n,r,i,o,u){var a=t<o?0:(t-o)/i;return y(e,function(t){var i=u[t],o=\"function\"==typeof i?i:g[i];e[t]=b(n[t],r[t],o,a)}),e},M=e.composeEasingObject=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"linear\",n={},r=void 0===e?\"undefined\":a(e);return\"string\"===r||\"function\"===r?y(t,function(t){return n[t]=e}):y(t,function(t){return n[t]=n[t]||e[t]||\"linear\"}),n},j=e.Tweenable=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;i(this,t),this._currentState=e,this._configured=!1,this._scheduleFunction=_,void 0!==n&&this.setConfig(n)}return u(t,[{key:\"_applyFilter\",value:function(e){var n=this,r=t.filters,i=this._filterArgs;y(r,function(t){var o=r[t][e];void 0!==o&&o.apply(n,i)})}},{key:\"_timeoutHandler\",value:function(e){var n=this,r=arguments,i=this._currentState,o=this._delay,u=this._duration,a=this._step,c=this._targetState,s=this._timestamp,f=s+o+u,h=Math.min(e||t.now(),f),l=h>=f,p=u-(f-h);this.isPlaying()&&(l?(a(c,this._attachment,p),this.stop(!0)):(this._scheduleId=this._scheduleFunction.call(d,function(){return n._timeoutHandler.apply(n,r)},1e3/60),this._applyFilter(\"beforeTween\"),h<s+o?(h=1,u=1,s=1):s+=o,O(h,i,this._originalState,c,u,s,this._easing),this._applyFilter(\"afterTween\"),a(i,this._attachment,p)))}},{key:\"tween\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,n=this._attachment,r=this._configured;return this._isTweening?this:(void 0===e&&r||this.setConfig(e),this._timestamp=t.now(),this._start(this.get(),n),this.resume())}},{key:\"setConfig\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._configured=!0,this._attachment=e.attachment,(0,h.default)(this,{_pausedAtTime:null,_scheduleId:null,_delay:e.delay||0,_start:e.start||v,_step:e.step||v,_duration:e.duration||500,_currentState:w(e.from||this.get())}),(0,h.default)(this,{_originalState:this.get(),_targetState:w(e.to||this.get())});var n=this._currentState;this._targetState=(0,h.default)({},n,this._targetState),this._easing=M(n,e.easing),this._filterArgs=[n,this._originalState,this._targetState,this._easing],this._applyFilter(\"tweenCreated\");var r=e.promise||Promise;return this._promise=new r(function(e,n){t._resolve=e,t._reject=n}),this._promise.catch(v),this}},{key:\"get\",value:function(){return w(this._currentState)}},{key:\"set\",value:function(t){this._currentState=t}},{key:\"pause\",value:function(){return this._pausedAtTime=t.now(),this._isPaused=!0,this}},{key:\"resume\",value:function(){return this._isPaused&&(this._timestamp+=t.now()-this._pausedAtTime),this._isPaused=!1,this._isTweening=!0,this._timeoutHandler(),this._promise}},{key:\"seek\",value:function(e){e=Math.max(e,0);var n=t.now();return this._timestamp+e===0?this:(this._timestamp=n-e,this.isPlaying()||(this._isTweening=!0,this._isPaused=!1,this._timeoutHandler(n),this.pause()),this)}},{key:\"stop\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this._attachment,n=this._currentState,r=this._easing,i=this._originalState,o=this._targetState;return this._isTweening=!1,this._isPaused=!1,m(this._scheduleId),t?(this._applyFilter(\"beforeTween\"),O(1,n,i,o,1,0,r),this._applyFilter(\"afterTween\"),this._applyFilter(\"afterTweenEnd\"),this._resolve(n,e)):this._reject(n,e),this}},{key:\"isPlaying\",value:function(){return this._isTweening&&!this._isPaused}},{key:\"setScheduleFunction\",value:function(t){this._scheduleFunction=t}},{key:\"dispose\",value:function(){var t=this;y(this,function(e){return delete t[e]})}}]),t}();(0,h.default)(j,{formulas:g,filters:{token:p},now:Date.now||function(t){return+new Date}})}).call(e,n(4))},function(t,e,n){\"use strict\";function r(t){if(null===t||void 0===t)throw new TypeError(\"Object.assign cannot be called with null or undefined\");return Object(t)}var i=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable;t.exports=function(){try{if(!Object.assign)return!1;var t=new String(\"abc\");if(t[5]=\"de\",\"5\"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e[\"_\"+String.fromCharCode(n)]=n;if(\"0123456789\"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(\"\"))return!1;var r={};return\"abcdefghijklmnopqrst\".split(\"\").forEach(function(t){r[t]=t}),\"abcdefghijklmnopqrst\"===Object.keys(Object.assign({},r)).join(\"\")}catch(t){return!1}}()?Object.assign:function(t,e){for(var n,a,c=r(t),s=1;s<arguments.length;s++){n=Object(arguments[s]);for(var f in n)o.call(n,f)&&(c[f]=n[f]);if(i){a=i(n);for(var h=0;h<a.length;h++)u.call(n,a[h])&&(c[a[h]]=n[a[h]])}}return c}},function(t,e,n){\"use strict\";function r(t,e,n,r,i,o){var u=0,a=0,c=0,s=0,f=0,h=0,l=function(t){return((u*t+a)*t+c)*t},p=function(t){return((s*t+f)*t+h)*t},d=function(t){return(3*u*t+2*a)*t+c},m=function(t){return t>=0?t:0-t},_=function(t,e){var n=void 0,r=void 0,i=void 0,o=void 0,u=void 0,a=void 0;for(i=t,a=0;a<8;a++){if(o=l(i)-t,m(o)<e)return i;if(u=d(i),m(u)<1e-6)break;i-=o/u}if(n=0,r=1,(i=t)<n)return n;if(i>r)return r;for(;n<r;){if(o=l(i),m(o-t)<e)return i;t>o?n=i:r=i,i=.5*(r-n)+n}return i};return c=3*e,a=3*(r-e)-c,u=1-c-a,h=3*n,f=3*(i-n)-h,s=1-h-f,function(t,e){return p(_(t,e))}(t,function(t){return 1/(200*t)}(o))}Object.defineProperty(e,\"__esModule\",{value:!0}),e.unsetBezierFunction=e.setBezierFunction=void 0;var i=n(0),o=n(1),u=function(t){return t&&t.__esModule?t:{default:t}}(o),a=function(t,e,n,i){return function(o){return r(o,t,e,n,i,1)}};e.setBezierFunction=function(t,e,n,r,o){return i.Tweenable.formulas[t]=(0,u.default)(a(e,n,r,o),{displayName:t,x1:e,y1:n,x2:r,y2:o})},e.unsetBezierFunction=function(t){return delete i.Tweenable.formulas[t]}},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.interpolate=void 0;var r=n(0),i=new r.Tweenable;i._filterArgs=[];e.interpolate=function(t,e,n,o){var u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,a=(0,r.clone)(t),c=(0,r.composeEasingObject)(t,o);i.set({}),i._filterArgs=[a,t,e,c],i._applyFilter(\"tweenCreated\"),i._applyFilter(\"beforeTween\");var s=(0,r.tweenProps)(n,a,t,e,1,u,c);return i._applyFilter(\"afterTween\"),s}},function(t,e,n){\"use strict\";var r,i=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t};r=function(){return this}();try{r=r||Function(\"return this\")()||(0,eval)(\"this\")}catch(t){\"object\"===(\"undefined\"==typeof window?\"undefined\":i(window))&&(r=window)}t.exports=r},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});e.linear=function(t){return t},e.easeInQuad=function(t){return Math.pow(t,2)},e.easeOutQuad=function(t){return-(Math.pow(t-1,2)-1)},e.easeInOutQuad=function(t){return(t/=.5)<1?.5*Math.pow(t,2):-.5*((t-=2)*t-2)},e.easeInCubic=function(t){return Math.pow(t,3)},e.easeOutCubic=function(t){return Math.pow(t-1,3)+1},e.easeInOutCubic=function(t){return(t/=.5)<1?.5*Math.pow(t,3):.5*(Math.pow(t-2,3)+2)},e.easeInQuart=function(t){return Math.pow(t,4)},e.easeOutQuart=function(t){return-(Math.pow(t-1,4)-1)},e.easeInOutQuart=function(t){return(t/=.5)<1?.5*Math.pow(t,4):-.5*((t-=2)*Math.pow(t,3)-2)},e.easeInQuint=function(t){return Math.pow(t,5)},e.easeOutQuint=function(t){return Math.pow(t-1,5)+1},e.easeInOutQuint=function(t){return(t/=.5)<1?.5*Math.pow(t,5):.5*(Math.pow(t-2,5)+2)},e.easeInSine=function(t){return 1-Math.cos(t*(Math.PI/2))},e.easeOutSine=function(t){return Math.sin(t*(Math.PI/2))},e.easeInOutSine=function(t){return-.5*(Math.cos(Math.PI*t)-1)},e.easeInExpo=function(t){return 0===t?0:Math.pow(2,10*(t-1))},e.easeOutExpo=function(t){return 1===t?1:1-Math.pow(2,-10*t)},e.easeInOutExpo=function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*--t))},e.easeInCirc=function(t){return-(Math.sqrt(1-t*t)-1)},e.easeOutCirc=function(t){return Math.sqrt(1-Math.pow(t-1,2))},e.easeInOutCirc=function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},e.easeOutBounce=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},e.easeInBack=function(t){var e=1.70158;return t*t*((e+1)*t-e)},e.easeOutBack=function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},e.easeInOutBack=function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},e.elastic=function(t){return-1*Math.pow(4,-8*t)*Math.sin((6*t-1)*(2*Math.PI)/2)+1},e.swingFromTo=function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},e.swingFrom=function(t){var e=1.70158;return t*t*((e+1)*t-e)},e.swingTo=function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},e.bounce=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},e.bouncePast=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?2-(7.5625*(t-=1.5/2.75)*t+.75):t<2.5/2.75?2-(7.5625*(t-=2.25/2.75)*t+.9375):2-(7.5625*(t-=2.625/2.75)*t+.984375)},e.easeFromTo=function(t){return(t/=.5)<1?.5*Math.pow(t,4):-.5*((t-=2)*Math.pow(t,3)-2)},e.easeFrom=function(t){return Math.pow(t,4)},e.easeTo=function(t){return Math.pow(t,.25)}},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=n(0);Object.defineProperty(e,\"Tweenable\",{enumerable:!0,get:function(){return r.Tweenable}}),Object.defineProperty(e,\"tween\",{enumerable:!0,get:function(){return r.tween}});var i=n(3);Object.defineProperty(e,\"interpolate\",{enumerable:!0,get:function(){return i.interpolate}});var o=n(2);Object.defineProperty(e,\"setBezierFunction\",{enumerable:!0,get:function(){return o.setBezierFunction}}),Object.defineProperty(e,\"unsetBezierFunction\",{enumerable:!0,get:function(){return o.unsetBezierFunction}})},function(t,e,n){\"use strict\";function r(t){return parseInt(t,16)}function i(t,e,n){[t,e,n].forEach(_),this._tokenData=g(t)}function o(t,e,n,r){var i=this._tokenData;P(r,i),[t,e,n].forEach(function(t){return b(t,i)})}function u(t,e,n,r){var i=this._tokenData;[t,e,n].forEach(function(t){return F(t,i)}),S(r,i)}Object.defineProperty(e,\"__esModule\",{value:!0}),e.tweenCreated=i,e.beforeTween=o,e.afterTween=u;var a=n(0),c=function(){var t=/[0-9.\\-]+/g.source,e=/,\\s*/.source;return new RegExp(\"rgb\\\\(\"+t+e+t+e+t+\"\\\\)\",\"g\")}(),s=/#([0-9]|[a-f]){3,6}/gi,f=function(t,e){return t.map(function(t,n){return\"_\"+e+\"_\"+n})},h=function(t){var e=t.match(/([^\\-0-9\\.]+)/g);return e?(1===e.length||t.charAt(0).match(/(\\d|\\-|\\.)/))&&e.unshift(\"\"):e=[\"\",\"\"],e.join(\"VAL\")},l=function(t){return t=t.replace(/#/,\"\"),3===t.length&&(t=t.split(\"\"),t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]),[r(t.substr(0,2)),r(t.substr(2,2)),r(t.substr(4,2))]},p=function(t){return\"rgb(\"+l(t).join(\",\")+\")\"},d=function(t,e,n){var r=e.match(t),i=e.replace(t,\"VAL\");return r&&r.forEach(function(t){return i=i.replace(\"VAL\",n(t))}),i},m=function(t){return d(s,t,p)},_=function(t){(0,a.each)(t,function(e){var n=t[e];\"string\"==typeof n&&n.match(s)&&(t[e]=m(n))})},v=function(t){var e=t.match(/[0-9.\\-]+/g).map(Math.floor);return\"\"+t.match(/^.*\\(/)[0]+e.join(\",\")+\")\"},y=function(t){return d(c,t,v)},w=function(t){return t.match(/[0-9.\\-]+/g)},g=function(t){var e={};return(0,a.each)(t,function(n){var r=t[n];\"string\"==typeof r&&(e[n]={formatString:h(r),chunkNames:f(w(r),n)})}),e},b=function(t,e){(0,a.each)(e,function(n){w(t[n]).forEach(function(r,i){return t[e[n].chunkNames[i]]=+r}),delete t[n]})},O=function(t,e){var n={};return e.forEach(function(e){n[e]=t[e],delete t[e]}),n},M=function(t,e){return e.map(function(e){return t[e]})},j=function(t,e){return e.forEach(function(e){return t=t.replace(\"VAL\",+e.toFixed(4))}),t},F=function(t,e){(0,a.each)(e,function(n){var r=e[n],i=r.chunkNames,o=r.formatString,u=j(o,M(O(t,i),i));t[n]=y(u)})},P=function(t,e){(0,a.each)(e,function(n){var r=e[n].chunkNames,i=t[n];\"string\"==typeof i?function(){var e=i.split(\" \"),n=e[e.length-1];r.forEach(function(r,i){return t[r]=e[i]||n})}():r.forEach(function(e){return t[e]=i}),delete t[n]})},S=function(t,e){(0,a.each)(e,function(n){var r=e[n].chunkNames,i=(r.length,t[r[0]]);t[n]=\"string\"==typeof i?r.map(function(e){var n=t[e];return delete t[e],n}).join(\" \"):i})}}])});\n//# sourceMappingURL=shifty.js.map\n\n/***/ }),\n\n/***/ \"./node_modules/stackblur/index.js\":\n/*!*****************************************!*\\\n !*** ./node_modules/stackblur/index.js ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/*\n\nStackBlur - a fast almost Gaussian Blur For Canvas\n\nVersion: \t0.5\nAuthor:\t\tMario Klingemann\nContact: \tmario@quasimondo.com\nWebsite:\thttp://www.quasimondo.com/StackBlurForCanvas\nTwitter:\t@quasimondo\n\nIn case you find this class useful - especially in commercial projects -\nI am not totally unhappy for a small donation to my PayPal account\nmario@quasimondo.de\n\nOr support me on flattr: \nhttps://flattr.com/thing/72791/StackBlur-a-fast-almost-Gaussian-Blur-Effect-for-CanvasJavascript\n\nCopyright (c) 2010 Mario Klingemann\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the \"Software\"), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n*/\n\nvar mul_table = [\n 512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,\n 454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,\n 482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,\n 437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,\n 497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,\n 320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,\n 446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,\n 329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,\n 505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,\n 399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,\n 324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,\n 268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,\n 451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,\n 385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,\n 332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,\n 289,287,285,282,280,278,275,273,271,269,267,265,263,261,259];\n \n \nvar shg_table = [\n\t 9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, \n\t\t17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, \n\t\t19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20,\n\t\t20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21,\n\t\t21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,\n\t\t21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, \n\t\t22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,\n\t\t22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, \n\t\t23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n\t\t23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n\t\t23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, \n\t\t23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, \n\t\t24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n\t\t24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n\t\t24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n\t\t24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24 ];\n\nfunction blur( pixels, width, height, radius )\n{\n\tif ( isNaN(radius) || radius < 1 ) return;\n\tradius |= 0;\n\n\tvar x, y, i, p, yp, yi, yw, r_sum, g_sum, b_sum, a_sum, \n\tr_out_sum, g_out_sum, b_out_sum, a_out_sum,\n\tr_in_sum, g_in_sum, b_in_sum, a_in_sum, \n\tpr, pg, pb, pa, rbs;\n\t\t\t\n\tvar div = radius + radius + 1;\n\tvar w4 = width << 2;\n\tvar widthMinus1 = width - 1;\n\tvar heightMinus1 = height - 1;\n\tvar radiusPlus1 = radius + 1;\n\tvar sumFactor = radiusPlus1 * ( radiusPlus1 + 1 ) / 2;\n\t\n\tvar stackStart = new BlurStack();\n\tvar stack = stackStart;\n\tfor ( i = 1; i < div; i++ )\n\t{\n\t\tstack = stack.next = new BlurStack();\n\t\tif ( i == radiusPlus1 ) var stackEnd = stack;\n\t}\n\tstack.next = stackStart;\n\tvar stackIn = null;\n\tvar stackOut = null;\n\t\n\tyw = yi = 0;\n\t\n\tvar mul_sum = mul_table[radius];\n\tvar shg_sum = shg_table[radius];\n\t\n\tfor ( y = 0; y < height; y++ )\n\t{\n\t\tr_in_sum = g_in_sum = b_in_sum = a_in_sum = r_sum = g_sum = b_sum = a_sum = 0;\n\t\t\n\t\tr_out_sum = radiusPlus1 * ( pr = pixels[yi] );\n\t\tg_out_sum = radiusPlus1 * ( pg = pixels[yi+1] );\n\t\tb_out_sum = radiusPlus1 * ( pb = pixels[yi+2] );\n\t\ta_out_sum = radiusPlus1 * ( pa = pixels[yi+3] );\n\t\t\n\t\tr_sum += sumFactor * pr;\n\t\tg_sum += sumFactor * pg;\n\t\tb_sum += sumFactor * pb;\n\t\ta_sum += sumFactor * pa;\n\t\t\n\t\tstack = stackStart;\n\t\t\n\t\tfor( i = 0; i < radiusPlus1; i++ )\n\t\t{\n\t\t\tstack.r = pr;\n\t\t\tstack.g = pg;\n\t\t\tstack.b = pb;\n\t\t\tstack.a = pa;\n\t\t\tstack = stack.next;\n\t\t}\n\t\t\n\t\tfor( i = 1; i < radiusPlus1; i++ )\n\t\t{\n\t\t\tp = yi + (( widthMinus1 < i ? widthMinus1 : i ) << 2 );\n\t\t\tr_sum += ( stack.r = ( pr = pixels[p])) * ( rbs = radiusPlus1 - i );\n\t\t\tg_sum += ( stack.g = ( pg = pixels[p+1])) * rbs;\n\t\t\tb_sum += ( stack.b = ( pb = pixels[p+2])) * rbs;\n\t\t\ta_sum += ( stack.a = ( pa = pixels[p+3])) * rbs;\n\t\t\t\n\t\t\tr_in_sum += pr;\n\t\t\tg_in_sum += pg;\n\t\t\tb_in_sum += pb;\n\t\t\ta_in_sum += pa;\n\t\t\t\n\t\t\tstack = stack.next;\n\t\t}\n\t\t\n\t\t\n\t\tstackIn = stackStart;\n\t\tstackOut = stackEnd;\n\t\tfor ( x = 0; x < width; x++ )\n\t\t{\n\t\t\tpixels[yi+3] = pa = (a_sum * mul_sum) >> shg_sum;\n\t\t\tif ( pa != 0 )\n\t\t\t{\n\t\t\t\tpa = 255 / pa;\n\t\t\t\tpixels[yi] = ((r_sum * mul_sum) >> shg_sum) * pa;\n\t\t\t\tpixels[yi+1] = ((g_sum * mul_sum) >> shg_sum) * pa;\n\t\t\t\tpixels[yi+2] = ((b_sum * mul_sum) >> shg_sum) * pa;\n\t\t\t} else {\n\t\t\t\tpixels[yi] = pixels[yi+1] = pixels[yi+2] = 0;\n\t\t\t}\n\t\t\t\n\t\t\tr_sum -= r_out_sum;\n\t\t\tg_sum -= g_out_sum;\n\t\t\tb_sum -= b_out_sum;\n\t\t\ta_sum -= a_out_sum;\n\t\t\t\n\t\t\tr_out_sum -= stackIn.r;\n\t\t\tg_out_sum -= stackIn.g;\n\t\t\tb_out_sum -= stackIn.b;\n\t\t\ta_out_sum -= stackIn.a;\n\t\t\t\n\t\t\tp = ( yw + ( ( p = x + radius + 1 ) < widthMinus1 ? p : widthMinus1 ) ) << 2;\n\t\t\t\n\t\t\tr_in_sum += ( stackIn.r = pixels[p]);\n\t\t\tg_in_sum += ( stackIn.g = pixels[p+1]);\n\t\t\tb_in_sum += ( stackIn.b = pixels[p+2]);\n\t\t\ta_in_sum += ( stackIn.a = pixels[p+3]);\n\t\t\t\n\t\t\tr_sum += r_in_sum;\n\t\t\tg_sum += g_in_sum;\n\t\t\tb_sum += b_in_sum;\n\t\t\ta_sum += a_in_sum;\n\t\t\t\n\t\t\tstackIn = stackIn.next;\n\t\t\t\n\t\t\tr_out_sum += ( pr = stackOut.r );\n\t\t\tg_out_sum += ( pg = stackOut.g );\n\t\t\tb_out_sum += ( pb = stackOut.b );\n\t\t\ta_out_sum += ( pa = stackOut.a );\n\t\t\t\n\t\t\tr_in_sum -= pr;\n\t\t\tg_in_sum -= pg;\n\t\t\tb_in_sum -= pb;\n\t\t\ta_in_sum -= pa;\n\t\t\t\n\t\t\tstackOut = stackOut.next;\n\n\t\t\tyi += 4;\n\t\t}\n\t\tyw += width;\n\t}\n\n\t\n\tfor ( x = 0; x < width; x++ )\n\t{\n\t\tg_in_sum = b_in_sum = a_in_sum = r_in_sum = g_sum = b_sum = a_sum = r_sum = 0;\n\t\t\n\t\tyi = x << 2;\n\t\tr_out_sum = radiusPlus1 * ( pr = pixels[yi]);\n\t\tg_out_sum = radiusPlus1 * ( pg = pixels[yi+1]);\n\t\tb_out_sum = radiusPlus1 * ( pb = pixels[yi+2]);\n\t\ta_out_sum = radiusPlus1 * ( pa = pixels[yi+3]);\n\t\t\n\t\tr_sum += sumFactor * pr;\n\t\tg_sum += sumFactor * pg;\n\t\tb_sum += sumFactor * pb;\n\t\ta_sum += sumFactor * pa;\n\t\t\n\t\tstack = stackStart;\n\t\t\n\t\tfor( i = 0; i < radiusPlus1; i++ )\n\t\t{\n\t\t\tstack.r = pr;\n\t\t\tstack.g = pg;\n\t\t\tstack.b = pb;\n\t\t\tstack.a = pa;\n\t\t\tstack = stack.next;\n\t\t}\n\t\t\n\t\typ = width;\n\t\t\n\t\tfor( i = 1; i <= radius; i++ )\n\t\t{\n\t\t\tyi = ( yp + x ) << 2;\n\t\t\t\n\t\t\tr_sum += ( stack.r = ( pr = pixels[yi])) * ( rbs = radiusPlus1 - i );\n\t\t\tg_sum += ( stack.g = ( pg = pixels[yi+1])) * rbs;\n\t\t\tb_sum += ( stack.b = ( pb = pixels[yi+2])) * rbs;\n\t\t\ta_sum += ( stack.a = ( pa = pixels[yi+3])) * rbs;\n\t\t \n\t\t\tr_in_sum += pr;\n\t\t\tg_in_sum += pg;\n\t\t\tb_in_sum += pb;\n\t\t\ta_in_sum += pa;\n\t\t\t\n\t\t\tstack = stack.next;\n\t\t\n\t\t\tif( i < heightMinus1 )\n\t\t\t{\n\t\t\t\typ += width;\n\t\t\t}\n\t\t}\n\t\t\n\t\tyi = x;\n\t\tstackIn = stackStart;\n\t\tstackOut = stackEnd;\n\t\tfor ( y = 0; y < height; y++ )\n\t\t{\n\t\t\tp = yi << 2;\n\t\t\tpixels[p+3] = pa = (a_sum * mul_sum) >> shg_sum;\n\t\t\tif ( pa > 0 )\n\t\t\t{\n\t\t\t\tpa = 255 / pa;\n\t\t\t\tpixels[p] = ((r_sum * mul_sum) >> shg_sum ) * pa;\n\t\t\t\tpixels[p+1] = ((g_sum * mul_sum) >> shg_sum ) * pa;\n\t\t\t\tpixels[p+2] = ((b_sum * mul_sum) >> shg_sum ) * pa;\n\t\t\t} else {\n\t\t\t\tpixels[p] = pixels[p+1] = pixels[p+2] = 0;\n\t\t\t}\n\t\t\t\n\t\t\tr_sum -= r_out_sum;\n\t\t\tg_sum -= g_out_sum;\n\t\t\tb_sum -= b_out_sum;\n\t\t\ta_sum -= a_out_sum;\n\t\t \n\t\t\tr_out_sum -= stackIn.r;\n\t\t\tg_out_sum -= stackIn.g;\n\t\t\tb_out_sum -= stackIn.b;\n\t\t\ta_out_sum -= stackIn.a;\n\t\t\t\n\t\t\tp = ( x + (( ( p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1 ) * width )) << 2;\n\t\t\t\n\t\t\tr_sum += ( r_in_sum += ( stackIn.r = pixels[p]));\n\t\t\tg_sum += ( g_in_sum += ( stackIn.g = pixels[p+1]));\n\t\t\tb_sum += ( b_in_sum += ( stackIn.b = pixels[p+2]));\n\t\t\ta_sum += ( a_in_sum += ( stackIn.a = pixels[p+3]));\n\t\t \n\t\t\tstackIn = stackIn.next;\n\t\t\t\n\t\t\tr_out_sum += ( pr = stackOut.r );\n\t\t\tg_out_sum += ( pg = stackOut.g );\n\t\t\tb_out_sum += ( pb = stackOut.b );\n\t\t\ta_out_sum += ( pa = stackOut.a );\n\t\t\t\n\t\t\tr_in_sum -= pr;\n\t\t\tg_in_sum -= pg;\n\t\t\tb_in_sum -= pb;\n\t\t\ta_in_sum -= pa;\n\t\t\t\n\t\t\tstackOut = stackOut.next;\n\t\t\t\n\t\t\tyi += width;\n\t\t}\n\t}\n}\n\nfunction BlurStack()\n{\n\tthis.r = 0;\n\tthis.g = 0;\n\tthis.b = 0;\n\tthis.a = 0;\n\tthis.next = null;\n}\n\nmodule.exports = blur;\n\n/***/ }),\n\n/***/ \"./node_modules/style-loader/lib/addStyles.js\":\n/*!****************************************************!*\\\n !*** ./node_modules/style-loader/lib/addStyles.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target) {\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = __webpack_require__(/*! ./urls */ \"./node_modules/style-loader/lib/urls.js\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n if (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertInto + \" \" + options.insertAt.before);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t result = options.transform(obj.css);\n\n\t if (result) {\n\t \t// If transform returns a value, use that instead of the original css.\n\t \t// This allows running runtime transformations on the css.\n\t \tobj.css = result;\n\t } else {\n\t \t// If the transform function returns a falsy value, don't add this css.\n\t \t// This allows conditional loading of css\n\t \treturn function() {\n\t \t\t// noop\n\t \t};\n\t }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default. Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/style-loader/lib/urls.js\":\n/*!***********************************************!*\\\n !*** ./node_modules/style-loader/lib/urls.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/webpack/buildin/global.js\":\n/*!***********************************!*\\\n !*** (webpack)/buildin/global.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n\n/***/ \"./node_modules/xmldom/dom-parser.js\":\n/*!*******************************************!*\\\n !*** ./node_modules/xmldom/dom-parser.js ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction DOMParser(options){\r\n\tthis.options = options ||{locator:{}};\r\n\t\r\n}\r\nDOMParser.prototype.parseFromString = function(source,mimeType){\r\n\tvar options = this.options;\r\n\tvar sax = new XMLReader();\r\n\tvar domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler\r\n\tvar errorHandler = options.errorHandler;\r\n\tvar locator = options.locator;\r\n\tvar defaultNSMap = options.xmlns||{};\r\n\tvar entityMap = {'lt':'<','gt':'>','amp':'&','quot':'\"','apos':\"'\"}\r\n\tif(locator){\r\n\t\tdomBuilder.setDocumentLocator(locator)\r\n\t}\r\n\t\r\n\tsax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator);\r\n\tsax.domBuilder = options.domBuilder || domBuilder;\r\n\tif(/\\/x?html?$/.test(mimeType)){\r\n\t\tentityMap.nbsp = '\\xa0';\r\n\t\tentityMap.copy = '\\xa9';\r\n\t\tdefaultNSMap['']= 'http://www.w3.org/1999/xhtml';\r\n\t}\r\n\tdefaultNSMap.xml = defaultNSMap.xml || 'http://www.w3.org/XML/1998/namespace';\r\n\tif(source){\r\n\t\tsax.parse(source,defaultNSMap,entityMap);\r\n\t}else{\r\n\t\tsax.errorHandler.error(\"invalid doc source\");\r\n\t}\r\n\treturn domBuilder.doc;\r\n}\r\nfunction buildErrorHandler(errorImpl,domBuilder,locator){\r\n\tif(!errorImpl){\r\n\t\tif(domBuilder instanceof DOMHandler){\r\n\t\t\treturn domBuilder;\r\n\t\t}\r\n\t\terrorImpl = domBuilder ;\r\n\t}\r\n\tvar errorHandler = {}\r\n\tvar isCallback = errorImpl instanceof Function;\r\n\tlocator = locator||{}\r\n\tfunction build(key){\r\n\t\tvar fn = errorImpl[key];\r\n\t\tif(!fn && isCallback){\r\n\t\t\tfn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl;\r\n\t\t}\r\n\t\terrorHandler[key] = fn && function(msg){\r\n\t\t\tfn('[xmldom '+key+']\\t'+msg+_locator(locator));\r\n\t\t}||function(){};\r\n\t}\r\n\tbuild('warning');\r\n\tbuild('error');\r\n\tbuild('fatalError');\r\n\treturn errorHandler;\r\n}\r\n\r\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\r\n/**\r\n * +ContentHandler+ErrorHandler\r\n * +LexicalHandler+EntityResolver2\r\n * -DeclHandler-DTDHandler \r\n * \r\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\r\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\r\n */\r\nfunction DOMHandler() {\r\n this.cdata = false;\r\n}\r\nfunction position(locator,node){\r\n\tnode.lineNumber = locator.lineNumber;\r\n\tnode.columnNumber = locator.columnNumber;\r\n}\r\n/**\r\n * @see org.xml.sax.ContentHandler#startDocument\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\r\n */ \r\nDOMHandler.prototype = {\r\n\tstartDocument : function() {\r\n \tthis.doc = new DOMImplementation().createDocument(null, null, null);\r\n \tif (this.locator) {\r\n \tthis.doc.documentURI = this.locator.systemId;\r\n \t}\r\n\t},\r\n\tstartElement:function(namespaceURI, localName, qName, attrs) {\r\n\t\tvar doc = this.doc;\r\n\t var el = doc.createElementNS(namespaceURI, qName||localName);\r\n\t var len = attrs.length;\r\n\t appendElement(this, el);\r\n\t this.currentElement = el;\r\n\t \r\n\t\tthis.locator && position(this.locator,el)\r\n\t for (var i = 0 ; i < len; i++) {\r\n\t var namespaceURI = attrs.getURI(i);\r\n\t var value = attrs.getValue(i);\r\n\t var qName = attrs.getQName(i);\r\n\t\t\tvar attr = doc.createAttributeNS(namespaceURI, qName);\r\n\t\t\tthis.locator &&position(attrs.getLocator(i),attr);\r\n\t\t\tattr.value = attr.nodeValue = value;\r\n\t\t\tel.setAttributeNode(attr)\r\n\t }\r\n\t},\r\n\tendElement:function(namespaceURI, localName, qName) {\r\n\t\tvar current = this.currentElement\r\n\t\tvar tagName = current.tagName;\r\n\t\tthis.currentElement = current.parentNode;\r\n\t},\r\n\tstartPrefixMapping:function(prefix, uri) {\r\n\t},\r\n\tendPrefixMapping:function(prefix) {\r\n\t},\r\n\tprocessingInstruction:function(target, data) {\r\n\t var ins = this.doc.createProcessingInstruction(target, data);\r\n\t this.locator && position(this.locator,ins)\r\n\t appendElement(this, ins);\r\n\t},\r\n\tignorableWhitespace:function(ch, start, length) {\r\n\t},\r\n\tcharacters:function(chars, start, length) {\r\n\t\tchars = _toString.apply(this,arguments)\r\n\t\t//console.log(chars)\r\n\t\tif(chars){\r\n\t\t\tif (this.cdata) {\r\n\t\t\t\tvar charNode = this.doc.createCDATASection(chars);\r\n\t\t\t} else {\r\n\t\t\t\tvar charNode = this.doc.createTextNode(chars);\r\n\t\t\t}\r\n\t\t\tif(this.currentElement){\r\n\t\t\t\tthis.currentElement.appendChild(charNode);\r\n\t\t\t}else if(/^\\s*$/.test(chars)){\r\n\t\t\t\tthis.doc.appendChild(charNode);\r\n\t\t\t\t//process xml\r\n\t\t\t}\r\n\t\t\tthis.locator && position(this.locator,charNode)\r\n\t\t}\r\n\t},\r\n\tskippedEntity:function(name) {\r\n\t},\r\n\tendDocument:function() {\r\n\t\tthis.doc.normalize();\r\n\t},\r\n\tsetDocumentLocator:function (locator) {\r\n\t if(this.locator = locator){// && !('lineNumber' in locator)){\r\n\t \tlocator.lineNumber = 0;\r\n\t }\r\n\t},\r\n\t//LexicalHandler\r\n\tcomment:function(chars, start, length) {\r\n\t\tchars = _toString.apply(this,arguments)\r\n\t var comm = this.doc.createComment(chars);\r\n\t this.locator && position(this.locator,comm)\r\n\t appendElement(this, comm);\r\n\t},\r\n\t\r\n\tstartCDATA:function() {\r\n\t //used in characters() methods\r\n\t this.cdata = true;\r\n\t},\r\n\tendCDATA:function() {\r\n\t this.cdata = false;\r\n\t},\r\n\t\r\n\tstartDTD:function(name, publicId, systemId) {\r\n\t\tvar impl = this.doc.implementation;\r\n\t if (impl && impl.createDocumentType) {\r\n\t var dt = impl.createDocumentType(name, publicId, systemId);\r\n\t this.locator && position(this.locator,dt)\r\n\t appendElement(this, dt);\r\n\t }\r\n\t},\r\n\t/**\r\n\t * @see org.xml.sax.ErrorHandler\r\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\r\n\t */\r\n\twarning:function(error) {\r\n\t\tconsole.warn('[xmldom warning]\\t'+error,_locator(this.locator));\r\n\t},\r\n\terror:function(error) {\r\n\t\tconsole.error('[xmldom error]\\t'+error,_locator(this.locator));\r\n\t},\r\n\tfatalError:function(error) {\r\n\t\tconsole.error('[xmldom fatalError]\\t'+error,_locator(this.locator));\r\n\t throw error;\r\n\t}\r\n}\r\nfunction _locator(l){\r\n\tif(l){\r\n\t\treturn '\\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']'\r\n\t}\r\n}\r\nfunction _toString(chars,start,length){\r\n\tif(typeof chars == 'string'){\r\n\t\treturn chars.substr(start,length)\r\n\t}else{//java sax connect width xmldom on rhino(what about: \"? && !(chars instanceof String)\")\r\n\t\tif(chars.length >= start+length || start){\r\n\t\t\treturn new java.lang.String(chars,start,length)+'';\r\n\t\t}\r\n\t\treturn chars;\r\n\t}\r\n}\r\n\r\n/*\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\r\n * used method of org.xml.sax.ext.LexicalHandler:\r\n * #comment(chars, start, length)\r\n * #startCDATA()\r\n * #endCDATA()\r\n * #startDTD(name, publicId, systemId)\r\n *\r\n *\r\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\r\n * #endDTD()\r\n * #startEntity(name)\r\n * #endEntity(name)\r\n *\r\n *\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\r\n * IGNORED method of org.xml.sax.ext.DeclHandler\r\n * \t#attributeDecl(eName, aName, type, mode, value)\r\n * #elementDecl(name, model)\r\n * #externalEntityDecl(name, publicId, systemId)\r\n * #internalEntityDecl(name, value)\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\r\n * IGNORED method of org.xml.sax.EntityResolver2\r\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\r\n * #resolveEntity(publicId, systemId)\r\n * #getExternalSubset(name, baseURI)\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\r\n * IGNORED method of org.xml.sax.DTDHandler\r\n * #notationDecl(name, publicId, systemId) {};\r\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\r\n */\r\n\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,function(key){\r\n\tDOMHandler.prototype[key] = function(){return null}\r\n})\r\n\r\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */\r\nfunction appendElement (hander,node) {\r\n if (!hander.currentElement) {\r\n hander.doc.appendChild(node);\r\n } else {\r\n hander.currentElement.appendChild(node);\r\n }\r\n}//appendChild and setAttributeNS are preformance key\r\n\r\n//if(typeof require == 'function'){\r\n\tvar XMLReader = __webpack_require__(/*! ./sax */ \"./node_modules/xmldom/sax.js\").XMLReader;\r\n\tvar DOMImplementation = exports.DOMImplementation = __webpack_require__(/*! ./dom */ \"./node_modules/xmldom/dom.js\").DOMImplementation;\r\n\texports.XMLSerializer = __webpack_require__(/*! ./dom */ \"./node_modules/xmldom/dom.js\").XMLSerializer ;\r\n\texports.DOMParser = DOMParser;\r\n//}\r\n\n\n/***/ }),\n\n/***/ \"./node_modules/xmldom/dom.js\":\n/*!************************************!*\\\n !*** ./node_modules/xmldom/dom.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/*\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n */\n\nfunction copy(src,dest){\n\tfor(var p in src){\n\t\tdest[p] = src[p];\n\t}\n}\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */\nfunction _extends(Class,Super){\n\tvar pt = Class.prototype;\n\tif(Object.create){\n\t\tvar ppt = Object.create(Super.prototype)\n\t\tpt.__proto__ = ppt;\n\t}\n\tif(!(pt instanceof Super)){\n\t\tfunction t(){};\n\t\tt.prototype = Super.prototype;\n\t\tt = new t();\n\t\tcopy(pt,t);\n\t\tClass.prototype = pt = t;\n\t}\n\tif(pt.constructor != Class){\n\t\tif(typeof Class != 'function'){\n\t\t\tconsole.error(\"unknow Class:\"+Class)\n\t\t}\n\t\tpt.constructor = Class\n\t}\n}\nvar htmlns = 'http://www.w3.org/1999/xhtml' ;\n// Node Types\nvar NodeType = {}\nvar ELEMENT_NODE = NodeType.ELEMENT_NODE = 1;\nvar ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2;\nvar TEXT_NODE = NodeType.TEXT_NODE = 3;\nvar CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4;\nvar ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5;\nvar ENTITY_NODE = NodeType.ENTITY_NODE = 6;\nvar PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar COMMENT_NODE = NodeType.COMMENT_NODE = 8;\nvar DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9;\nvar DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10;\nvar DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar NOTATION_NODE = NodeType.NOTATION_NODE = 12;\n\n// ExceptionCode\nvar ExceptionCode = {}\nvar ExceptionMessage = {};\nvar INDEX_SIZE_ERR = ExceptionCode.INDEX_SIZE_ERR = ((ExceptionMessage[1]=\"Index size error\"),1);\nvar DOMSTRING_SIZE_ERR = ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2]=\"DOMString size error\"),2);\nvar HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3]=\"Hierarchy request error\"),3);\nvar WRONG_DOCUMENT_ERR = ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4]=\"Wrong document\"),4);\nvar INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]=\"Invalid character\"),5);\nvar NO_DATA_ALLOWED_ERR = ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6]=\"No data allowed\"),6);\nvar NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]=\"No modification allowed\"),7);\nvar NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8]=\"Not found\"),8);\nvar NOT_SUPPORTED_ERR = ExceptionCode.NOT_SUPPORTED_ERR = ((ExceptionMessage[9]=\"Not supported\"),9);\nvar INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = ((ExceptionMessage[10]=\"Attribute in use\"),10);\n//level2\nvar INVALID_STATE_ERR \t= ExceptionCode.INVALID_STATE_ERR \t= ((ExceptionMessage[11]=\"Invalid state\"),11);\nvar SYNTAX_ERR \t= ExceptionCode.SYNTAX_ERR \t= ((ExceptionMessage[12]=\"Syntax error\"),12);\nvar INVALID_MODIFICATION_ERR \t= ExceptionCode.INVALID_MODIFICATION_ERR \t= ((ExceptionMessage[13]=\"Invalid modification\"),13);\nvar NAMESPACE_ERR \t= ExceptionCode.NAMESPACE_ERR \t= ((ExceptionMessage[14]=\"Invalid namespace\"),14);\nvar INVALID_ACCESS_ERR \t= ExceptionCode.INVALID_ACCESS_ERR \t= ((ExceptionMessage[15]=\"Invalid access\"),15);\n\n\nfunction DOMException(code, message) {\n\tif(message instanceof Error){\n\t\tvar error = message;\n\t}else{\n\t\terror = this;\n\t\tError.call(this, ExceptionMessage[code]);\n\t\tthis.message = ExceptionMessage[code];\n\t\tif(Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n\t}\n\terror.code = code;\n\tif(message) this.message = this.message + \": \" + message;\n\treturn error;\n};\nDOMException.prototype = Error.prototype;\ncopy(ExceptionCode,DOMException)\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */\nfunction NodeList() {\n};\nNodeList.prototype = {\n\t/**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */\n\tlength:0, \n\t/**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long \n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index. \n\t */\n\titem: function(index) {\n\t\treturn this[index] || null;\n\t},\n\ttoString:function(isHTML,nodeFilter){\n\t\tfor(var buf = [], i = 0;i<this.length;i++){\n\t\t\tserializeToString(this[i],buf,isHTML,nodeFilter);\n\t\t}\n\t\treturn buf.join('');\n\t}\n};\nfunction LiveNodeList(node,refresh){\n\tthis._node = node;\n\tthis._refresh = refresh\n\t_updateLiveList(this);\n}\nfunction _updateLiveList(list){\n\tvar inc = list._node._inc || list._node.ownerDocument._inc;\n\tif(list._inc != inc){\n\t\tvar ls = list._refresh(list._node);\n\t\t//console.log(ls.length)\n\t\t__set__(list,'length',ls.length);\n\t\tcopy(ls,list);\n\t\tlist._inc = inc;\n\t}\n}\nLiveNodeList.prototype.item = function(i){\n\t_updateLiveList(this);\n\treturn this[i];\n}\n\n_extends(LiveNodeList,NodeList);\n/**\n * \n * Objects implementing the NamedNodeMap interface are used to represent collections of nodes that can be accessed by name. Note that NamedNodeMap does not inherit from NodeList; NamedNodeMaps are not maintained in any particular order. Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index, but this is simply to allow convenient enumeration of the contents of a NamedNodeMap, and does not imply that the DOM specifies an order to these Nodes.\n * NamedNodeMap objects in the DOM are live.\n * used for attributes or DocumentType entities \n */\nfunction NamedNodeMap() {\n};\n\nfunction _findNodeIndex(list,node){\n\tvar i = list.length;\n\twhile(i--){\n\t\tif(list[i] === node){return i}\n\t}\n}\n\nfunction _addNamedNode(el,list,newAttr,oldAttr){\n\tif(oldAttr){\n\t\tlist[_findNodeIndex(list,oldAttr)] = newAttr;\n\t}else{\n\t\tlist[list.length++] = newAttr;\n\t}\n\tif(el){\n\t\tnewAttr.ownerElement = el;\n\t\tvar doc = el.ownerDocument;\n\t\tif(doc){\n\t\t\toldAttr && _onRemoveAttribute(doc,el,oldAttr);\n\t\t\t_onAddAttribute(doc,el,newAttr);\n\t\t}\n\t}\n}\nfunction _removeNamedNode(el,list,attr){\n\t//console.log('remove attr:'+attr)\n\tvar i = _findNodeIndex(list,attr);\n\tif(i>=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i<lastIndex){\n\t\t\tlist[i] = list[++i]\n\t\t}\n\t\tlist.length = lastIndex;\n\t\tif(el){\n\t\t\tvar doc = el.ownerDocument;\n\t\t\tif(doc){\n\t\t\t\t_onRemoveAttribute(doc,el,attr);\n\t\t\t\tattr.ownerElement = null;\n\t\t\t}\n\t\t}\n\t}else{\n\t\tthrow DOMException(NOT_FOUND_ERR,new Error(el.tagName+'@'+attr))\n\t}\n}\nNamedNodeMap.prototype = {\n\tlength:0,\n\titem:NodeList.prototype.item,\n\tgetNamedItem: function(key) {\n//\t\tif(key.indexOf(':')>0 || key == 'xmlns'){\n//\t\t\treturn null;\n//\t\t}\n\t\t//console.log()\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar attr = this[i];\n\t\t\t//console.log(attr.nodeName,key)\n\t\t\tif(attr.nodeName == key){\n\t\t\t\treturn attr;\n\t\t\t}\n\t\t}\n\t},\n\tsetNamedItem: function(attr) {\n\t\tvar el = attr.ownerElement;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\tvar oldAttr = this.getNamedItem(attr.nodeName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\t/* returns Node */\n\tsetNamedItemNS: function(attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR\n\t\tvar el = attr.ownerElement, oldAttr;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\toldAttr = this.getNamedItemNS(attr.namespaceURI,attr.localName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\n\t/* returns Node */\n\tremoveNamedItem: function(key) {\n\t\tvar attr = this.getNamedItem(key);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t\t\n\t\t\n\t},// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR\n\t\n\t//for level2\n\tremoveNamedItemNS:function(namespaceURI,localName){\n\t\tvar attr = this.getNamedItemNS(namespaceURI,localName);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t},\n\tgetNamedItemNS: function(namespaceURI, localName) {\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar node = this[i];\n\t\t\tif(node.localName == localName && node.namespaceURI == namespaceURI){\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n};\n/**\n * @see http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490\n */\nfunction DOMImplementation(/* Object */ features) {\n\tthis._features = {};\n\tif (features) {\n\t\tfor (var feature in features) {\n\t\t\t this._features = features[feature];\n\t\t}\n\t}\n};\n\nDOMImplementation.prototype = {\n\thasFeature: function(/* string */ feature, /* string */ version) {\n\t\tvar versions = this._features[feature.toLowerCase()];\n\t\tif (versions && (!version || version in versions)) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateDocument:function(namespaceURI, qualifiedName, doctype){// raises:INVALID_CHARACTER_ERR,NAMESPACE_ERR,WRONG_DOCUMENT_ERR\n\t\tvar doc = new Document();\n\t\tdoc.implementation = this;\n\t\tdoc.childNodes = new NodeList();\n\t\tdoc.doctype = doctype;\n\t\tif(doctype){\n\t\t\tdoc.appendChild(doctype);\n\t\t}\n\t\tif(qualifiedName){\n\t\t\tvar root = doc.createElementNS(namespaceURI,qualifiedName);\n\t\t\tdoc.appendChild(root);\n\t\t}\n\t\treturn doc;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateDocumentType:function(qualifiedName, publicId, systemId){// raises:INVALID_CHARACTER_ERR,NAMESPACE_ERR\n\t\tvar node = new DocumentType();\n\t\tnode.name = qualifiedName;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.publicId = publicId;\n\t\tnode.systemId = systemId;\n\t\t// Introduced in DOM Level 2:\n\t\t//readonly attribute DOMString internalSubset;\n\t\t\n\t\t//TODO:..\n\t\t// readonly attribute NamedNodeMap entities;\n\t\t// readonly attribute NamedNodeMap notations;\n\t\treturn node;\n\t}\n};\n\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */\n\nfunction Node() {\n};\n\nNode.prototype = {\n\tfirstChild : null,\n\tlastChild : null,\n\tpreviousSibling : null,\n\tnextSibling : null,\n\tattributes : null,\n\tparentNode : null,\n\tchildNodes : null,\n\townerDocument : null,\n\tnodeValue : null,\n\tnamespaceURI : null,\n\tprefix : null,\n\tlocalName : null,\n\t// Modified in DOM Level 2:\n\tinsertBefore:function(newChild, refChild){//raises \n\t\treturn _insertBefore(this,newChild,refChild);\n\t},\n\treplaceChild:function(newChild, oldChild){//raises \n\t\tthis.insertBefore(newChild,oldChild);\n\t\tif(oldChild){\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t},\n\tremoveChild:function(oldChild){\n\t\treturn _removeChild(this,oldChild);\n\t},\n\tappendChild:function(newChild){\n\t\treturn this.insertBefore(newChild,null);\n\t},\n\thasChildNodes:function(){\n\t\treturn this.firstChild != null;\n\t},\n\tcloneNode:function(deep){\n\t\treturn cloneNode(this.ownerDocument||this,this,deep);\n\t},\n\t// Modified in DOM Level 2:\n\tnormalize:function(){\n\t\tvar child = this.firstChild;\n\t\twhile(child){\n\t\t\tvar next = child.nextSibling;\n\t\t\tif(next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE){\n\t\t\t\tthis.removeChild(next);\n\t\t\t\tchild.appendData(next.data);\n\t\t\t}else{\n\t\t\t\tchild.normalize();\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t}\n\t},\n \t// Introduced in DOM Level 2:\n\tisSupported:function(feature, version){\n\t\treturn this.ownerDocument.implementation.hasFeature(feature,version);\n\t},\n // Introduced in DOM Level 2:\n hasAttributes:function(){\n \treturn this.attributes.length>0;\n },\n lookupPrefix:function(namespaceURI){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tfor(var n in map){\n \t\t\t\tif(map[n] == namespaceURI){\n \t\t\t\t\treturn n;\n \t\t\t\t}\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI:function(prefix){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tif(prefix in map){\n \t\t\t\treturn map[prefix] ;\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace:function(namespaceURI){\n \tvar prefix = this.lookupPrefix(namespaceURI);\n \treturn prefix == null;\n }\n};\n\n\nfunction _xmlEncoder(c){\n\treturn c == '<' && '<' ||\n c == '>' && '>' ||\n c == '&' && '&' ||\n c == '\"' && '"' ||\n '&#'+c.charCodeAt()+';'\n}\n\n\ncopy(NodeType,Node);\ncopy(NodeType,Node.prototype);\n\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */\nfunction _visitNode(node,callback){\n\tif(callback(node)){\n\t\treturn true;\n\t}\n\tif(node = node.firstChild){\n\t\tdo{\n\t\t\tif(_visitNode(node,callback)){return true}\n }while(node=node.nextSibling)\n }\n}\n\n\n\nfunction Document(){\n}\nfunction _onAddAttribute(doc,el,newAttr){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns == 'http://www.w3.org/2000/xmlns/'){\n\t\t//update namespace\n\t\tel._nsMap[newAttr.prefix?newAttr.localName:''] = newAttr.value\n\t}\n}\nfunction _onRemoveAttribute(doc,el,newAttr,remove){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns == 'http://www.w3.org/2000/xmlns/'){\n\t\t//update namespace\n\t\tdelete el._nsMap[newAttr.prefix?newAttr.localName:'']\n\t}\n}\nfunction _onUpdateChild(doc,el,newChild){\n\tif(doc && doc._inc){\n\t\tdoc._inc++;\n\t\t//update childNodes\n\t\tvar cs = el.childNodes;\n\t\tif(newChild){\n\t\t\tcs[cs.length++] = newChild;\n\t\t}else{\n\t\t\t//console.log(1)\n\t\t\tvar child = el.firstChild;\n\t\t\tvar i = 0;\n\t\t\twhile(child){\n\t\t\t\tcs[i++] = child;\n\t\t\t\tchild =child.nextSibling;\n\t\t\t}\n\t\t\tcs.length = i;\n\t\t}\n\t}\n}\n\n/**\n * attributes;\n * children;\n * \n * writeable properties:\n * nodeValue,Attr:value,CharacterData:data\n * prefix\n */\nfunction _removeChild(parentNode,child){\n\tvar previous = child.previousSibling;\n\tvar next = child.nextSibling;\n\tif(previous){\n\t\tprevious.nextSibling = next;\n\t}else{\n\t\tparentNode.firstChild = next\n\t}\n\tif(next){\n\t\tnext.previousSibling = previous;\n\t}else{\n\t\tparentNode.lastChild = previous;\n\t}\n\t_onUpdateChild(parentNode.ownerDocument,parentNode);\n\treturn child;\n}\n/**\n * preformance key(refChild == null)\n */\nfunction _insertBefore(parentNode,newChild,nextChild){\n\tvar cp = newChild.parentNode;\n\tif(cp){\n\t\tcp.removeChild(newChild);//remove and update\n\t}\n\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\tvar newFirst = newChild.firstChild;\n\t\tif (newFirst == null) {\n\t\t\treturn newChild;\n\t\t}\n\t\tvar newLast = newChild.lastChild;\n\t}else{\n\t\tnewFirst = newLast = newChild;\n\t}\n\tvar pre = nextChild ? nextChild.previousSibling : parentNode.lastChild;\n\n\tnewFirst.previousSibling = pre;\n\tnewLast.nextSibling = nextChild;\n\t\n\t\n\tif(pre){\n\t\tpre.nextSibling = newFirst;\n\t}else{\n\t\tparentNode.firstChild = newFirst;\n\t}\n\tif(nextChild == null){\n\t\tparentNode.lastChild = newLast;\n\t}else{\n\t\tnextChild.previousSibling = newLast;\n\t}\n\tdo{\n\t\tnewFirst.parentNode = parentNode;\n\t}while(newFirst !== newLast && (newFirst= newFirst.nextSibling))\n\t_onUpdateChild(parentNode.ownerDocument||parentNode,parentNode);\n\t//console.log(parentNode.lastChild.nextSibling == null)\n\tif (newChild.nodeType == DOCUMENT_FRAGMENT_NODE) {\n\t\tnewChild.firstChild = newChild.lastChild = null;\n\t}\n\treturn newChild;\n}\nfunction _appendSingleChild(parentNode,newChild){\n\tvar cp = newChild.parentNode;\n\tif(cp){\n\t\tvar pre = parentNode.lastChild;\n\t\tcp.removeChild(newChild);//remove and update\n\t\tvar pre = parentNode.lastChild;\n\t}\n\tvar pre = parentNode.lastChild;\n\tnewChild.parentNode = parentNode;\n\tnewChild.previousSibling = pre;\n\tnewChild.nextSibling = null;\n\tif(pre){\n\t\tpre.nextSibling = newChild;\n\t}else{\n\t\tparentNode.firstChild = newChild;\n\t}\n\tparentNode.lastChild = newChild;\n\t_onUpdateChild(parentNode.ownerDocument,parentNode,newChild);\n\treturn newChild;\n\t//console.log(\"__aa\",parentNode.lastChild.nextSibling == null)\n}\nDocument.prototype = {\n\t//implementation : null,\n\tnodeName : '#document',\n\tnodeType : DOCUMENT_NODE,\n\tdoctype : null,\n\tdocumentElement : null,\n\t_inc : 1,\n\t\n\tinsertBefore : function(newChild, refChild){//raises \n\t\tif(newChild.nodeType == DOCUMENT_FRAGMENT_NODE){\n\t\t\tvar child = newChild.firstChild;\n\t\t\twhile(child){\n\t\t\t\tvar next = child.nextSibling;\n\t\t\t\tthis.insertBefore(child,refChild);\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t\treturn newChild;\n\t\t}\n\t\tif(this.documentElement == null && newChild.nodeType == ELEMENT_NODE){\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\t\t\n\t\treturn _insertBefore(this,newChild,refChild),(newChild.ownerDocument = this),newChild;\n\t},\n\tremoveChild : function(oldChild){\n\t\tif(this.documentElement == oldChild){\n\t\t\tthis.documentElement = null;\n\t\t}\n\t\treturn _removeChild(this,oldChild);\n\t},\n\t// Introduced in DOM Level 2:\n\timportNode : function(importedNode,deep){\n\t\treturn importNode(this,importedNode,deep);\n\t},\n\t// Introduced in DOM Level 2:\n\tgetElementById :\tfunction(id){\n\t\tvar rtv = null;\n\t\t_visitNode(this.documentElement,function(node){\n\t\t\tif(node.nodeType == ELEMENT_NODE){\n\t\t\t\tif(node.getAttribute('id') == id){\n\t\t\t\t\trtv = node;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\treturn rtv;\n\t},\n\t\n\t//document factory method:\n\tcreateElement :\tfunction(tagName){\n\t\tvar node = new Element();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = tagName;\n\t\tnode.tagName = tagName;\n\t\tnode.childNodes = new NodeList();\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\tcreateDocumentFragment :\tfunction(){\n\t\tvar node = new DocumentFragment();\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\treturn node;\n\t},\n\tcreateTextNode :\tfunction(data){\n\t\tvar node = new Text();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateComment :\tfunction(data){\n\t\tvar node = new Comment();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateCDATASection :\tfunction(data){\n\t\tvar node = new CDATASection();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateProcessingInstruction :\tfunction(target,data){\n\t\tvar node = new ProcessingInstruction();\n\t\tnode.ownerDocument = this;\n\t\tnode.tagName = node.target = target;\n\t\tnode.nodeValue= node.data = data;\n\t\treturn node;\n\t},\n\tcreateAttribute :\tfunction(name){\n\t\tvar node = new Attr();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.name = name;\n\t\tnode.nodeName\t= name;\n\t\tnode.localName = name;\n\t\tnode.specified = true;\n\t\treturn node;\n\t},\n\tcreateEntityReference :\tfunction(name){\n\t\tvar node = new EntityReference();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.nodeName\t= name;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateElementNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Element();\n\t\tvar pl = qualifiedName.split(':');\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tnode.childNodes = new NodeList();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.tagName = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateAttributeNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Attr();\n\t\tvar pl = qualifiedName.split(':');\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.name = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tnode.specified = true;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\treturn node;\n\t}\n};\n_extends(Document,Node);\n\n\nfunction Element() {\n\tthis._nsMap = {};\n};\nElement.prototype = {\n\tnodeType : ELEMENT_NODE,\n\thasAttribute : function(name){\n\t\treturn this.getAttributeNode(name)!=null;\n\t},\n\tgetAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name);\n\t\treturn attr && attr.value || '';\n\t},\n\tgetAttributeNode : function(name){\n\t\treturn this.attributes.getNamedItem(name);\n\t},\n\tsetAttribute : function(name, value){\n\t\tvar attr = this.ownerDocument.createAttribute(name);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tremoveAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name)\n\t\tattr && this.removeAttributeNode(attr);\n\t},\n\t\n\t//four real opeartion method\n\tappendChild:function(newChild){\n\t\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\t\treturn this.insertBefore(newChild,null);\n\t\t}else{\n\t\t\treturn _appendSingleChild(this,newChild);\n\t\t}\n\t},\n\tsetAttributeNode : function(newAttr){\n\t\treturn this.attributes.setNamedItem(newAttr);\n\t},\n\tsetAttributeNodeNS : function(newAttr){\n\t\treturn this.attributes.setNamedItemNS(newAttr);\n\t},\n\tremoveAttributeNode : function(oldAttr){\n\t\t//console.log(this == oldAttr.ownerElement)\n\t\treturn this.attributes.removeNamedItem(oldAttr.nodeName);\n\t},\n\t//get real attribute name,and remove it by removeAttributeNode\n\tremoveAttributeNS : function(namespaceURI, localName){\n\t\tvar old = this.getAttributeNodeNS(namespaceURI, localName);\n\t\told && this.removeAttributeNode(old);\n\t},\n\t\n\thasAttributeNS : function(namespaceURI, localName){\n\t\treturn this.getAttributeNodeNS(namespaceURI, localName)!=null;\n\t},\n\tgetAttributeNS : function(namespaceURI, localName){\n\t\tvar attr = this.getAttributeNodeNS(namespaceURI, localName);\n\t\treturn attr && attr.value || '';\n\t},\n\tsetAttributeNS : function(namespaceURI, qualifiedName, value){\n\t\tvar attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tgetAttributeNodeNS : function(namespaceURI, localName){\n\t\treturn this.attributes.getNamedItemNS(namespaceURI, localName);\n\t},\n\t\n\tgetElementsByTagName : function(tagName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n\tgetElementsByTagNameNS : function(namespaceURI, localName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t\t\n\t\t});\n\t}\n};\nDocument.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;\nDocument.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;\n\n\n_extends(Element,Node);\nfunction Attr() {\n};\nAttr.prototype.nodeType = ATTRIBUTE_NODE;\n_extends(Attr,Node);\n\n\nfunction CharacterData() {\n};\nCharacterData.prototype = {\n\tdata : '',\n\tsubstringData : function(offset, count) {\n\t\treturn this.data.substring(offset, offset+count);\n\t},\n\tappendData: function(text) {\n\t\ttext = this.data+text;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t},\n\tinsertData: function(offset,text) {\n\t\tthis.replaceData(offset,0,text);\n\t\n\t},\n\tappendChild:function(newChild){\n\t\tthrow new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])\n\t},\n\tdeleteData: function(offset, count) {\n\t\tthis.replaceData(offset,count,\"\");\n\t},\n\treplaceData: function(offset, count, text) {\n\t\tvar start = this.data.substring(0,offset);\n\t\tvar end = this.data.substring(offset+count);\n\t\ttext = start + text + end;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t}\n}\n_extends(CharacterData,Node);\nfunction Text() {\n};\nText.prototype = {\n\tnodeName : \"#text\",\n\tnodeType : TEXT_NODE,\n\tsplitText : function(offset) {\n\t\tvar text = this.data;\n\t\tvar newText = text.substring(offset);\n\t\ttext = text.substring(0, offset);\n\t\tthis.data = this.nodeValue = text;\n\t\tthis.length = text.length;\n\t\tvar newNode = this.ownerDocument.createTextNode(newText);\n\t\tif(this.parentNode){\n\t\t\tthis.parentNode.insertBefore(newNode, this.nextSibling);\n\t\t}\n\t\treturn newNode;\n\t}\n}\n_extends(Text,CharacterData);\nfunction Comment() {\n};\nComment.prototype = {\n\tnodeName : \"#comment\",\n\tnodeType : COMMENT_NODE\n}\n_extends(Comment,CharacterData);\n\nfunction CDATASection() {\n};\nCDATASection.prototype = {\n\tnodeName : \"#cdata-section\",\n\tnodeType : CDATA_SECTION_NODE\n}\n_extends(CDATASection,CharacterData);\n\n\nfunction DocumentType() {\n};\nDocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;\n_extends(DocumentType,Node);\n\nfunction Notation() {\n};\nNotation.prototype.nodeType = NOTATION_NODE;\n_extends(Notation,Node);\n\nfunction Entity() {\n};\nEntity.prototype.nodeType = ENTITY_NODE;\n_extends(Entity,Node);\n\nfunction EntityReference() {\n};\nEntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;\n_extends(EntityReference,Node);\n\nfunction DocumentFragment() {\n};\nDocumentFragment.prototype.nodeName =\t\"#document-fragment\";\nDocumentFragment.prototype.nodeType =\tDOCUMENT_FRAGMENT_NODE;\n_extends(DocumentFragment,Node);\n\n\nfunction ProcessingInstruction() {\n}\nProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;\n_extends(ProcessingInstruction,Node);\nfunction XMLSerializer(){}\nXMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter){\n\treturn nodeSerializeToString.call(node,isHtml,nodeFilter);\n}\nNode.prototype.toString = nodeSerializeToString;\nfunction nodeSerializeToString(isHtml,nodeFilter){\n\tvar buf = [];\n\tvar refNode = this.nodeType == 9?this.documentElement:this;\n\tvar prefix = refNode.prefix;\n\tvar uri = refNode.namespaceURI;\n\t\n\tif(uri && prefix == null){\n\t\t//console.log(prefix)\n\t\tvar prefix = refNode.lookupPrefix(uri);\n\t\tif(prefix == null){\n\t\t\t//isHTML = true;\n\t\t\tvar visibleNamespaces=[\n\t\t\t{namespace:uri,prefix:null}\n\t\t\t//{namespace:uri,prefix:''}\n\t\t\t]\n\t\t}\n\t}\n\tserializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces);\n\t//console.log('###',this.nodeType,uri,prefix,buf.join(''))\n\treturn buf.join('');\n}\nfunction needNamespaceDefine(node,isHTML, visibleNamespaces) {\n\tvar prefix = node.prefix||'';\n\tvar uri = node.namespaceURI;\n\tif (!prefix && !uri){\n\t\treturn false;\n\t}\n\tif (prefix === \"xml\" && uri === \"http://www.w3.org/XML/1998/namespace\" \n\t\t|| uri == 'http://www.w3.org/2000/xmlns/'){\n\t\treturn false;\n\t}\n\t\n\tvar i = visibleNamespaces.length \n\t//console.log('@@@@',node.tagName,prefix,uri,visibleNamespaces)\n\twhile (i--) {\n\t\tvar ns = visibleNamespaces[i];\n\t\t// get namespace prefix\n\t\t//console.log(node.nodeType,node.tagName,ns.prefix,prefix)\n\t\tif (ns.prefix == prefix){\n\t\t\treturn ns.namespace != uri;\n\t\t}\n\t}\n\t//console.log(isHTML,uri,prefix=='')\n\t//if(isHTML && prefix ==null && uri == 'http://www.w3.org/1999/xhtml'){\n\t//\treturn false;\n\t//}\n\t//node.flag = '11111'\n\t//console.error(3,true,node.flag,node.prefix,node.namespaceURI)\n\treturn true;\n}\nfunction serializeToString(node,buf,isHTML,nodeFilter,visibleNamespaces){\n\tif(nodeFilter){\n\t\tnode = nodeFilter(node);\n\t\tif(node){\n\t\t\tif(typeof node == 'string'){\n\t\t\t\tbuf.push(node);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}else{\n\t\t\treturn;\n\t\t}\n\t\t//buf.sort.apply(attrs, attributeSorter);\n\t}\n\tswitch(node.nodeType){\n\tcase ELEMENT_NODE:\n\t\tif (!visibleNamespaces) visibleNamespaces = [];\n\t\tvar startVisibleNamespaces = visibleNamespaces.length;\n\t\tvar attrs = node.attributes;\n\t\tvar len = attrs.length;\n\t\tvar child = node.firstChild;\n\t\tvar nodeName = node.tagName;\n\t\t\n\t\tisHTML = (htmlns === node.namespaceURI) ||isHTML \n\t\tbuf.push('<',nodeName);\n\t\t\n\t\t\n\t\t\n\t\tfor(var i=0;i<len;i++){\n\t\t\t// add namespaces for attributes\n\t\t\tvar attr = attrs.item(i);\n\t\t\tif (attr.prefix == 'xmlns') {\n\t\t\t\tvisibleNamespaces.push({ prefix: attr.localName, namespace: attr.value });\n\t\t\t}else if(attr.nodeName == 'xmlns'){\n\t\t\t\tvisibleNamespaces.push({ prefix: '', namespace: attr.value });\n\t\t\t}\n\t\t}\n\t\tfor(var i=0;i<len;i++){\n\t\t\tvar attr = attrs.item(i);\n\t\t\tif (needNamespaceDefine(attr,isHTML, visibleNamespaces)) {\n\t\t\t\tvar prefix = attr.prefix||'';\n\t\t\t\tvar uri = attr.namespaceURI;\n\t\t\t\tvar ns = prefix ? ' xmlns:' + prefix : \" xmlns\";\n\t\t\t\tbuf.push(ns, '=\"' , uri , '\"');\n\t\t\t\tvisibleNamespaces.push({ prefix: prefix, namespace:uri });\n\t\t\t}\n\t\t\tserializeToString(attr,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t}\n\t\t// add namespace for current node\t\t\n\t\tif (needNamespaceDefine(node,isHTML, visibleNamespaces)) {\n\t\t\tvar prefix = node.prefix||'';\n\t\t\tvar uri = node.namespaceURI;\n\t\t\tvar ns = prefix ? ' xmlns:' + prefix : \" xmlns\";\n\t\t\tbuf.push(ns, '=\"' , uri , '\"');\n\t\t\tvisibleNamespaces.push({ prefix: prefix, namespace:uri });\n\t\t}\n\t\t\n\t\tif(child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)){\n\t\t\tbuf.push('>');\n\t\t\t//if is cdata child node\n\t\t\tif(isHTML && /^script$/i.test(nodeName)){\n\t\t\t\twhile(child){\n\t\t\t\t\tif(child.data){\n\t\t\t\t\t\tbuf.push(child.data);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tserializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t\t\t\t}\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}else\n\t\t\t{\n\t\t\t\twhile(child){\n\t\t\t\t\tserializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuf.push('</',nodeName,'>');\n\t\t}else{\n\t\t\tbuf.push('/>');\n\t\t}\n\t\t// remove added visible namespaces\n\t\t//visibleNamespaces.length = startVisibleNamespaces;\n\t\treturn;\n\tcase DOCUMENT_NODE:\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tserializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t\treturn;\n\tcase ATTRIBUTE_NODE:\n\t\treturn buf.push(' ',node.name,'=\"',node.value.replace(/[<&\"]/g,_xmlEncoder),'\"');\n\tcase TEXT_NODE:\n\t\treturn buf.push(node.data.replace(/[<&]/g,_xmlEncoder));\n\tcase CDATA_SECTION_NODE:\n\t\treturn buf.push( '<![CDATA[',node.data,']]>');\n\tcase COMMENT_NODE:\n\t\treturn buf.push( \"<!--\",node.data,\"-->\");\n\tcase DOCUMENT_TYPE_NODE:\n\t\tvar pubid = node.publicId;\n\t\tvar sysid = node.systemId;\n\t\tbuf.push('<!DOCTYPE ',node.name);\n\t\tif(pubid){\n\t\t\tbuf.push(' PUBLIC \"',pubid);\n\t\t\tif (sysid && sysid!='.') {\n\t\t\t\tbuf.push( '\" \"',sysid);\n\t\t\t}\n\t\t\tbuf.push('\">');\n\t\t}else if(sysid && sysid!='.'){\n\t\t\tbuf.push(' SYSTEM \"',sysid,'\">');\n\t\t}else{\n\t\t\tvar sub = node.internalSubset;\n\t\t\tif(sub){\n\t\t\t\tbuf.push(\" [\",sub,\"]\");\n\t\t\t}\n\t\t\tbuf.push(\">\");\n\t\t}\n\t\treturn;\n\tcase PROCESSING_INSTRUCTION_NODE:\n\t\treturn buf.push( \"<?\",node.target,\" \",node.data,\"?>\");\n\tcase ENTITY_REFERENCE_NODE:\n\t\treturn buf.push( '&',node.nodeName,';');\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\tdefault:\n\t\tbuf.push('??',node.nodeName);\n\t}\n}\nfunction importNode(doc,node,deep){\n\tvar node2;\n\tswitch (node.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tnode2 = node.cloneNode(false);\n\t\tnode2.ownerDocument = doc;\n\t\t//var attrs = node2.attributes;\n\t\t//var len = attrs.length;\n\t\t//for(var i=0;i<len;i++){\n\t\t\t//node2.setAttributeNodeNS(importNode(doc,attrs.item(i),deep));\n\t\t//}\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tbreak;\n\tcase ATTRIBUTE_NODE:\n\t\tdeep = true;\n\t\tbreak;\n\t//case ENTITY_REFERENCE_NODE:\n\t//case PROCESSING_INSTRUCTION_NODE:\n\t////case TEXT_NODE:\n\t//case CDATA_SECTION_NODE:\n\t//case COMMENT_NODE:\n\t//\tdeep = false;\n\t//\tbreak;\n\t//case DOCUMENT_NODE:\n\t//case DOCUMENT_TYPE_NODE:\n\t//cannot be imported.\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\t//can not hit in level3\n\t//default:throw e;\n\t}\n\tif(!node2){\n\t\tnode2 = node.cloneNode(false);//false\n\t}\n\tnode2.ownerDocument = doc;\n\tnode2.parentNode = null;\n\tif(deep){\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tnode2.appendChild(importNode(doc,child,deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n//\n//var _relationMap = {firstChild:1,lastChild:1,previousSibling:1,nextSibling:1,\n//\t\t\t\t\tattributes:1,childNodes:1,parentNode:1,documentElement:1,doctype,};\nfunction cloneNode(doc,node,deep){\n\tvar node2 = new node.constructor();\n\tfor(var n in node){\n\t\tvar v = node[n];\n\t\tif(typeof v != 'object' ){\n\t\t\tif(v != node2[n]){\n\t\t\t\tnode2[n] = v;\n\t\t\t}\n\t\t}\n\t}\n\tif(node.childNodes){\n\t\tnode2.childNodes = new NodeList();\n\t}\n\tnode2.ownerDocument = doc;\n\tswitch (node2.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tvar attrs\t= node.attributes;\n\t\tvar attrs2\t= node2.attributes = new NamedNodeMap();\n\t\tvar len = attrs.length\n\t\tattrs2._ownerElement = node2;\n\t\tfor(var i=0;i<len;i++){\n\t\t\tnode2.setAttributeNode(cloneNode(doc,attrs.item(i),true));\n\t\t}\n\t\tbreak;;\n\tcase ATTRIBUTE_NODE:\n\t\tdeep = true;\n\t}\n\tif(deep){\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tnode2.appendChild(cloneNode(doc,child,deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n\nfunction __set__(object,key,value){\n\tobject[key] = value\n}\n//do dynamic\ntry{\n\tif(Object.defineProperty){\n\t\tObject.defineProperty(LiveNodeList.prototype,'length',{\n\t\t\tget:function(){\n\t\t\t\t_updateLiveList(this);\n\t\t\t\treturn this.$$length;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(Node.prototype,'textContent',{\n\t\t\tget:function(){\n\t\t\t\treturn getTextContent(this);\n\t\t\t},\n\t\t\tset:function(data){\n\t\t\t\tswitch(this.nodeType){\n\t\t\t\tcase ELEMENT_NODE:\n\t\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\t\twhile(this.firstChild){\n\t\t\t\t\t\tthis.removeChild(this.firstChild);\n\t\t\t\t\t}\n\t\t\t\t\tif(data || String(data)){\n\t\t\t\t\t\tthis.appendChild(this.ownerDocument.createTextNode(data));\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\t//TODO:\n\t\t\t\t\tthis.data = data;\n\t\t\t\t\tthis.value = data;\n\t\t\t\t\tthis.nodeValue = data;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\t\n\t\tfunction getTextContent(node){\n\t\t\tswitch(node.nodeType){\n\t\t\tcase ELEMENT_NODE:\n\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\tvar buf = [];\n\t\t\t\tnode = node.firstChild;\n\t\t\t\twhile(node){\n\t\t\t\t\tif(node.nodeType!==7 && node.nodeType !==8){\n\t\t\t\t\t\tbuf.push(getTextContent(node));\n\t\t\t\t\t}\n\t\t\t\t\tnode = node.nextSibling;\n\t\t\t\t}\n\t\t\t\treturn buf.join('');\n\t\t\tdefault:\n\t\t\t\treturn node.nodeValue;\n\t\t\t}\n\t\t}\n\t\t__set__ = function(object,key,value){\n\t\t\t//console.log(value)\n\t\t\tobject['$$'+key] = value\n\t\t}\n\t}\n}catch(e){//ie8\n}\n\n//if(typeof require == 'function'){\n\texports.DOMImplementation = DOMImplementation;\n\texports.XMLSerializer = XMLSerializer;\n//}\n\n\n/***/ }),\n\n/***/ \"./node_modules/xmldom/sax.js\":\n/*!************************************!*\\\n !*** ./node_modules/xmldom/sax.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\r\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\r\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\r\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]///\\u10000-\\uEFFFF\r\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\r\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\r\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\r\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\r\n\r\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\r\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\r\nvar S_TAG = 0;//tag name offerring\r\nvar S_ATTR = 1;//attr name offerring \r\nvar S_ATTR_SPACE=2;//attr name end and space offer\r\nvar S_EQ = 3;//=space?\r\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\r\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\r\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\r\nvar S_TAG_CLOSE = 7;//closed el<el />\r\n\r\nfunction XMLReader(){\r\n\t\r\n}\r\n\r\nXMLReader.prototype = {\r\n\tparse:function(source,defaultNSMap,entityMap){\r\n\t\tvar domBuilder = this.domBuilder;\r\n\t\tdomBuilder.startDocument();\r\n\t\t_copy(defaultNSMap ,defaultNSMap = {})\r\n\t\tparse(source,defaultNSMap,entityMap,\r\n\t\t\t\tdomBuilder,this.errorHandler);\r\n\t\tdomBuilder.endDocument();\r\n\t}\r\n}\r\nfunction parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){\r\n\tfunction fixedFromCharCode(code) {\r\n\t\t// String.prototype.fromCharCode does not supports\r\n\t\t// > 2 bytes unicode chars directly\r\n\t\tif (code > 0xffff) {\r\n\t\t\tcode -= 0x10000;\r\n\t\t\tvar surrogate1 = 0xd800 + (code >> 10)\r\n\t\t\t\t, surrogate2 = 0xdc00 + (code & 0x3ff);\r\n\r\n\t\t\treturn String.fromCharCode(surrogate1, surrogate2);\r\n\t\t} else {\r\n\t\t\treturn String.fromCharCode(code);\r\n\t\t}\r\n\t}\r\n\tfunction entityReplacer(a){\r\n\t\tvar k = a.slice(1,-1);\r\n\t\tif(k in entityMap){\r\n\t\t\treturn entityMap[k]; \r\n\t\t}else if(k.charAt(0) === '#'){\r\n\t\t\treturn fixedFromCharCode(parseInt(k.substr(1).replace('x','0x')))\r\n\t\t}else{\r\n\t\t\terrorHandler.error('entity not found:'+a);\r\n\t\t\treturn a;\r\n\t\t}\r\n\t}\r\n\tfunction appendText(end){//has some bugs\r\n\t\tif(end>start){\r\n\t\t\tvar xt = source.substring(start,end).replace(/&#?\\w+;/g,entityReplacer);\r\n\t\t\tlocator&&position(start);\r\n\t\t\tdomBuilder.characters(xt,0,end-start);\r\n\t\t\tstart = end\r\n\t\t}\r\n\t}\r\n\tfunction position(p,m){\r\n\t\twhile(p>=lineEnd && (m = linePattern.exec(source))){\r\n\t\t\tlineStart = m.index;\r\n\t\t\tlineEnd = lineStart + m[0].length;\r\n\t\t\tlocator.lineNumber++;\r\n\t\t\t//console.log('line++:',locator,startPos,endPos)\r\n\t\t}\r\n\t\tlocator.columnNumber = p-lineStart+1;\r\n\t}\r\n\tvar lineStart = 0;\r\n\tvar lineEnd = 0;\r\n\tvar linePattern = /.*(?:\\r\\n?|\\n)|.*$/g\r\n\tvar locator = domBuilder.locator;\r\n\t\r\n\tvar parseStack = [{currentNSMap:defaultNSMapCopy}]\r\n\tvar closeMap = {};\r\n\tvar start = 0;\r\n\twhile(true){\r\n\t\ttry{\r\n\t\t\tvar tagStart = source.indexOf('<',start);\r\n\t\t\tif(tagStart<0){\r\n\t\t\t\tif(!source.substr(start).match(/^\\s*$/)){\r\n\t\t\t\t\tvar doc = domBuilder.doc;\r\n\t \t\t\tvar text = doc.createTextNode(source.substr(start));\r\n\t \t\t\tdoc.appendChild(text);\r\n\t \t\t\tdomBuilder.currentElement = text;\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif(tagStart>start){\r\n\t\t\t\tappendText(tagStart);\r\n\t\t\t}\r\n\t\t\tswitch(source.charAt(tagStart+1)){\r\n\t\t\tcase '/':\r\n\t\t\t\tvar end = source.indexOf('>',tagStart+3);\r\n\t\t\t\tvar tagName = source.substring(tagStart+2,end);\r\n\t\t\t\tvar config = parseStack.pop();\r\n\t\t\t\tif(end<0){\r\n\t\t\t\t\t\r\n\t \t\ttagName = source.substring(tagStart+2).replace(/[\\s<].*/,'');\r\n\t \t\t//console.error('#@@@@@@'+tagName)\r\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' is not complete:'+config.tagName);\r\n\t \t\tend = tagStart+1+tagName.length;\r\n\t \t}else if(tagName.match(/\\s</)){\r\n\t \t\ttagName = tagName.replace(/[\\s<].*/,'');\r\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' maybe not complete');\r\n\t \t\tend = tagStart+1+tagName.length;\r\n\t\t\t\t}\r\n\t\t\t\t//console.error(parseStack.length,parseStack)\r\n\t\t\t\t//console.error(config);\r\n\t\t\t\tvar localNSMap = config.localNSMap;\r\n\t\t\t\tvar endMatch = config.tagName == tagName;\r\n\t\t\t\tvar endIgnoreCaseMach = endMatch || config.tagName&&config.tagName.toLowerCase() == tagName.toLowerCase()\r\n\t\t if(endIgnoreCaseMach){\r\n\t\t \tdomBuilder.endElement(config.uri,config.localName,tagName);\r\n\t\t\t\t\tif(localNSMap){\r\n\t\t\t\t\t\tfor(var prefix in localNSMap){\r\n\t\t\t\t\t\t\tdomBuilder.endPrefixMapping(prefix) ;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(!endMatch){\r\n\t\t \terrorHandler.fatalError(\"end tag name: \"+tagName+' is not match the current start tagName:'+config.tagName );\r\n\t\t\t\t\t}\r\n\t\t }else{\r\n\t\t \tparseStack.push(config)\r\n\t\t }\r\n\t\t\t\t\r\n\t\t\t\tend++;\r\n\t\t\t\tbreak;\r\n\t\t\t\t// end elment\r\n\t\t\tcase '?':// <?...?>\r\n\t\t\t\tlocator&&position(tagStart);\r\n\t\t\t\tend = parseInstruction(source,tagStart,domBuilder);\r\n\t\t\t\tbreak;\r\n\t\t\tcase '!':// <!doctype,<![CDATA,<!--\r\n\t\t\t\tlocator&&position(tagStart);\r\n\t\t\t\tend = parseDCC(source,tagStart,domBuilder,errorHandler);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tlocator&&position(tagStart);\r\n\t\t\t\tvar el = new ElementAttributes();\r\n\t\t\t\tvar currentNSMap = parseStack[parseStack.length-1].currentNSMap;\r\n\t\t\t\t//elStartEnd\r\n\t\t\t\tvar end = parseElementStartPart(source,tagStart,el,currentNSMap,entityReplacer,errorHandler);\r\n\t\t\t\tvar len = el.length;\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\tif(!el.closed && fixSelfClosed(source,end,el.tagName,closeMap)){\r\n\t\t\t\t\tel.closed = true;\r\n\t\t\t\t\tif(!entityMap.nbsp){\r\n\t\t\t\t\t\terrorHandler.warning('unclosed xml attribute');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(locator && len){\r\n\t\t\t\t\tvar locator2 = copyLocator(locator,{});\r\n\t\t\t\t\t//try{//attribute position fixed\r\n\t\t\t\t\tfor(var i = 0;i<len;i++){\r\n\t\t\t\t\t\tvar a = el[i];\r\n\t\t\t\t\t\tposition(a.offset);\r\n\t\t\t\t\t\ta.locator = copyLocator(locator,{});\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//}catch(e){console.error('@@@@@'+e)}\r\n\t\t\t\t\tdomBuilder.locator = locator2\r\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\r\n\t\t\t\t\t\tparseStack.push(el)\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdomBuilder.locator = locator;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\r\n\t\t\t\t\t\tparseStack.push(el)\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\r\n\t\t\t\t\r\n\t\t\t\tif(el.uri === 'http://www.w3.org/1999/xhtml' && !el.closed){\r\n\t\t\t\t\tend = parseHtmlSpecialContent(source,end,el.tagName,entityReplacer,domBuilder)\r\n\t\t\t\t}else{\r\n\t\t\t\t\tend++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}catch(e){\r\n\t\t\terrorHandler.error('element parse error: '+e)\r\n\t\t\t//errorHandler.error('element parse error: '+e);\r\n\t\t\tend = -1;\r\n\t\t\t//throw e;\r\n\t\t}\r\n\t\tif(end>start){\r\n\t\t\tstart = end;\r\n\t\t}else{\r\n\t\t\t//TODO: 这里有可能sax回退,有位置错误风险\r\n\t\t\tappendText(Math.max(tagStart,start)+1);\r\n\t\t}\r\n\t}\r\n}\r\nfunction copyLocator(f,t){\r\n\tt.lineNumber = f.lineNumber;\r\n\tt.columnNumber = f.columnNumber;\r\n\treturn t;\r\n}\r\n\r\n/**\r\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\r\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\r\n */\r\nfunction parseElementStartPart(source,start,el,currentNSMap,entityReplacer,errorHandler){\r\n\tvar attrName;\r\n\tvar value;\r\n\tvar p = ++start;\r\n\tvar s = S_TAG;//status\r\n\twhile(true){\r\n\t\tvar c = source.charAt(p);\r\n\t\tswitch(c){\r\n\t\tcase '=':\r\n\t\t\tif(s === S_ATTR){//attrName\r\n\t\t\t\tattrName = source.slice(start,p);\r\n\t\t\t\ts = S_EQ;\r\n\t\t\t}else if(s === S_ATTR_SPACE){\r\n\t\t\t\ts = S_EQ;\r\n\t\t\t}else{\r\n\t\t\t\t//fatalError: equal must after attrName or space after attrName\r\n\t\t\t\tthrow new Error('attribute equal must after attrName');\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\tcase '\\'':\r\n\t\tcase '\"':\r\n\t\t\tif(s === S_EQ || s === S_ATTR //|| s == S_ATTR_SPACE\r\n\t\t\t\t){//equal\r\n\t\t\t\tif(s === S_ATTR){\r\n\t\t\t\t\terrorHandler.warning('attribute value must after \"=\"')\r\n\t\t\t\t\tattrName = source.slice(start,p)\r\n\t\t\t\t}\r\n\t\t\t\tstart = p+1;\r\n\t\t\t\tp = source.indexOf(c,start)\r\n\t\t\t\tif(p>0){\r\n\t\t\t\t\tvalue = source.slice(start,p).replace(/&#?\\w+;/g,entityReplacer);\r\n\t\t\t\t\tel.add(attrName,value,start-1);\r\n\t\t\t\t\ts = S_ATTR_END;\r\n\t\t\t\t}else{\r\n\t\t\t\t\t//fatalError: no end quot match\r\n\t\t\t\t\tthrow new Error('attribute value no end \\''+c+'\\' match');\r\n\t\t\t\t}\r\n\t\t\t}else if(s == S_ATTR_NOQUOT_VALUE){\r\n\t\t\t\tvalue = source.slice(start,p).replace(/&#?\\w+;/g,entityReplacer);\r\n\t\t\t\t//console.log(attrName,value,start,p)\r\n\t\t\t\tel.add(attrName,value,start);\r\n\t\t\t\t//console.dir(el)\r\n\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed start quot('+c+')!!');\r\n\t\t\t\tstart = p+1;\r\n\t\t\t\ts = S_ATTR_END\r\n\t\t\t}else{\r\n\t\t\t\t//fatalError: no equal before\r\n\t\t\t\tthrow new Error('attribute value must after \"=\"');\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\tcase '/':\r\n\t\t\tswitch(s){\r\n\t\t\tcase S_TAG:\r\n\t\t\t\tel.setTagName(source.slice(start,p));\r\n\t\t\tcase S_ATTR_END:\r\n\t\t\tcase S_TAG_SPACE:\r\n\t\t\tcase S_TAG_CLOSE:\r\n\t\t\t\ts =S_TAG_CLOSE;\r\n\t\t\t\tel.closed = true;\r\n\t\t\tcase S_ATTR_NOQUOT_VALUE:\r\n\t\t\tcase S_ATTR:\r\n\t\t\tcase S_ATTR_SPACE:\r\n\t\t\t\tbreak;\r\n\t\t\t//case S_EQ:\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(\"attribute invalid close char('/')\")\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\tcase ''://end document\r\n\t\t\t//throw new Error('unexpected end of input')\r\n\t\t\terrorHandler.error('unexpected end of input');\r\n\t\t\tif(s == S_TAG){\r\n\t\t\t\tel.setTagName(source.slice(start,p));\r\n\t\t\t}\r\n\t\t\treturn p;\r\n\t\tcase '>':\r\n\t\t\tswitch(s){\r\n\t\t\tcase S_TAG:\r\n\t\t\t\tel.setTagName(source.slice(start,p));\r\n\t\t\tcase S_ATTR_END:\r\n\t\t\tcase S_TAG_SPACE:\r\n\t\t\tcase S_TAG_CLOSE:\r\n\t\t\t\tbreak;//normal\r\n\t\t\tcase S_ATTR_NOQUOT_VALUE://Compatible state\r\n\t\t\tcase S_ATTR:\r\n\t\t\t\tvalue = source.slice(start,p);\r\n\t\t\t\tif(value.slice(-1) === '/'){\r\n\t\t\t\t\tel.closed = true;\r\n\t\t\t\t\tvalue = value.slice(0,-1)\r\n\t\t\t\t}\r\n\t\t\tcase S_ATTR_SPACE:\r\n\t\t\t\tif(s === S_ATTR_SPACE){\r\n\t\t\t\t\tvalue = attrName;\r\n\t\t\t\t}\r\n\t\t\t\tif(s == S_ATTR_NOQUOT_VALUE){\r\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!!');\r\n\t\t\t\t\tel.add(attrName,value.replace(/&#?\\w+;/g,entityReplacer),start)\r\n\t\t\t\t}else{\r\n\t\t\t\t\tif(currentNSMap[''] !== 'http://www.w3.org/1999/xhtml' || !value.match(/^(?:disabled|checked|selected)$/i)){\r\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed value!! \"'+value+'\" instead!!')\r\n\t\t\t\t\t}\r\n\t\t\t\t\tel.add(value,value,start)\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase S_EQ:\r\n\t\t\t\tthrow new Error('attribute value missed!!');\r\n\t\t\t}\r\n//\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\r\n\t\t\treturn p;\r\n\t\t/*xml space '\\x20' | #x9 | #xD | #xA; */\r\n\t\tcase '\\u0080':\r\n\t\t\tc = ' ';\r\n\t\tdefault:\r\n\t\t\tif(c<= ' '){//space\r\n\t\t\t\tswitch(s){\r\n\t\t\t\tcase S_TAG:\r\n\t\t\t\t\tel.setTagName(source.slice(start,p));//tagName\r\n\t\t\t\t\ts = S_TAG_SPACE;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase S_ATTR:\r\n\t\t\t\t\tattrName = source.slice(start,p)\r\n\t\t\t\t\ts = S_ATTR_SPACE;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase S_ATTR_NOQUOT_VALUE:\r\n\t\t\t\t\tvar value = source.slice(start,p).replace(/&#?\\w+;/g,entityReplacer);\r\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!!');\r\n\t\t\t\t\tel.add(attrName,value,start)\r\n\t\t\t\tcase S_ATTR_END:\r\n\t\t\t\t\ts = S_TAG_SPACE;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t//case S_TAG_SPACE:\r\n\t\t\t\t//case S_EQ:\r\n\t\t\t\t//case S_ATTR_SPACE:\r\n\t\t\t\t//\tvoid();break;\r\n\t\t\t\t//case S_TAG_CLOSE:\r\n\t\t\t\t\t//ignore warning\r\n\t\t\t\t}\r\n\t\t\t}else{//not space\r\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\r\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\r\n\t\t\t\tswitch(s){\r\n\t\t\t\t//case S_TAG:void();break;\r\n\t\t\t\t//case S_ATTR:void();break;\r\n\t\t\t\t//case S_ATTR_NOQUOT_VALUE:void();break;\r\n\t\t\t\tcase S_ATTR_SPACE:\r\n\t\t\t\t\tvar tagName = el.tagName;\r\n\t\t\t\t\tif(currentNSMap[''] !== 'http://www.w3.org/1999/xhtml' || !attrName.match(/^(?:disabled|checked|selected)$/i)){\r\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed value!! \"'+attrName+'\" instead2!!')\r\n\t\t\t\t\t}\r\n\t\t\t\t\tel.add(attrName,attrName,start);\r\n\t\t\t\t\tstart = p;\r\n\t\t\t\t\ts = S_ATTR;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase S_ATTR_END:\r\n\t\t\t\t\terrorHandler.warning('attribute space is required\"'+attrName+'\"!!')\r\n\t\t\t\tcase S_TAG_SPACE:\r\n\t\t\t\t\ts = S_ATTR;\r\n\t\t\t\t\tstart = p;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase S_EQ:\r\n\t\t\t\t\ts = S_ATTR_NOQUOT_VALUE;\r\n\t\t\t\t\tstart = p;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase S_TAG_CLOSE:\r\n\t\t\t\t\tthrow new Error(\"elements closed character '/' and '>' must be connected to\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}//end outer switch\r\n\t\t//console.log('p++',p)\r\n\t\tp++;\r\n\t}\r\n}\r\n/**\r\n * @return true if has new namespace define\r\n */\r\nfunction appendElement(el,domBuilder,currentNSMap){\r\n\tvar tagName = el.tagName;\r\n\tvar localNSMap = null;\r\n\t//var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\r\n\tvar i = el.length;\r\n\twhile(i--){\r\n\t\tvar a = el[i];\r\n\t\tvar qName = a.qName;\r\n\t\tvar value = a.value;\r\n\t\tvar nsp = qName.indexOf(':');\r\n\t\tif(nsp>0){\r\n\t\t\tvar prefix = a.prefix = qName.slice(0,nsp);\r\n\t\t\tvar localName = qName.slice(nsp+1);\r\n\t\t\tvar nsPrefix = prefix === 'xmlns' && localName\r\n\t\t}else{\r\n\t\t\tlocalName = qName;\r\n\t\t\tprefix = null\r\n\t\t\tnsPrefix = qName === 'xmlns' && ''\r\n\t\t}\r\n\t\t//can not set prefix,because prefix !== ''\r\n\t\ta.localName = localName ;\r\n\t\t//prefix == null for no ns prefix attribute \r\n\t\tif(nsPrefix !== false){//hack!!\r\n\t\t\tif(localNSMap == null){\r\n\t\t\t\tlocalNSMap = {}\r\n\t\t\t\t//console.log(currentNSMap,0)\r\n\t\t\t\t_copy(currentNSMap,currentNSMap={})\r\n\t\t\t\t//console.log(currentNSMap,1)\r\n\t\t\t}\r\n\t\t\tcurrentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\r\n\t\t\ta.uri = 'http://www.w3.org/2000/xmlns/'\r\n\t\t\tdomBuilder.startPrefixMapping(nsPrefix, value) \r\n\t\t}\r\n\t}\r\n\tvar i = el.length;\r\n\twhile(i--){\r\n\t\ta = el[i];\r\n\t\tvar prefix = a.prefix;\r\n\t\tif(prefix){//no prefix attribute has no namespace\r\n\t\t\tif(prefix === 'xml'){\r\n\t\t\t\ta.uri = 'http://www.w3.org/XML/1998/namespace';\r\n\t\t\t}if(prefix !== 'xmlns'){\r\n\t\t\t\ta.uri = currentNSMap[prefix || '']\r\n\t\t\t\t\r\n\t\t\t\t//{console.log('###'+a.qName,domBuilder.locator.systemId+'',currentNSMap,a.uri)}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tvar nsp = tagName.indexOf(':');\r\n\tif(nsp>0){\r\n\t\tprefix = el.prefix = tagName.slice(0,nsp);\r\n\t\tlocalName = el.localName = tagName.slice(nsp+1);\r\n\t}else{\r\n\t\tprefix = null;//important!!\r\n\t\tlocalName = el.localName = tagName;\r\n\t}\r\n\t//no prefix element has default namespace\r\n\tvar ns = el.uri = currentNSMap[prefix || ''];\r\n\tdomBuilder.startElement(ns,localName,tagName,el);\r\n\t//endPrefixMapping and startPrefixMapping have not any help for dom builder\r\n\t//localNSMap = null\r\n\tif(el.closed){\r\n\t\tdomBuilder.endElement(ns,localName,tagName);\r\n\t\tif(localNSMap){\r\n\t\t\tfor(prefix in localNSMap){\r\n\t\t\t\tdomBuilder.endPrefixMapping(prefix) \r\n\t\t\t}\r\n\t\t}\r\n\t}else{\r\n\t\tel.currentNSMap = currentNSMap;\r\n\t\tel.localNSMap = localNSMap;\r\n\t\t//parseStack.push(el);\r\n\t\treturn true;\r\n\t}\r\n}\r\nfunction parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){\r\n\tif(/^(?:script|textarea)$/i.test(tagName)){\r\n\t\tvar elEndStart = source.indexOf('</'+tagName+'>',elStartEnd);\r\n\t\tvar text = source.substring(elStartEnd+1,elEndStart);\r\n\t\tif(/[&<]/.test(text)){\r\n\t\t\tif(/^script$/i.test(tagName)){\r\n\t\t\t\t//if(!/\\]\\]>/.test(text)){\r\n\t\t\t\t\t//lexHandler.startCDATA();\r\n\t\t\t\t\tdomBuilder.characters(text,0,text.length);\r\n\t\t\t\t\t//lexHandler.endCDATA();\r\n\t\t\t\t\treturn elEndStart;\r\n\t\t\t\t//}\r\n\t\t\t}//}else{//text area\r\n\t\t\t\ttext = text.replace(/&#?\\w+;/g,entityReplacer);\r\n\t\t\t\tdomBuilder.characters(text,0,text.length);\r\n\t\t\t\treturn elEndStart;\r\n\t\t\t//}\r\n\t\t\t\r\n\t\t}\r\n\t}\r\n\treturn elStartEnd+1;\r\n}\r\nfunction fixSelfClosed(source,elStartEnd,tagName,closeMap){\r\n\t//if(tagName in closeMap){\r\n\tvar pos = closeMap[tagName];\r\n\tif(pos == null){\r\n\t\t//console.log(tagName)\r\n\t\tpos = source.lastIndexOf('</'+tagName+'>')\r\n\t\tif(pos<elStartEnd){//忘记闭合\r\n\t\t\tpos = source.lastIndexOf('</'+tagName)\r\n\t\t}\r\n\t\tcloseMap[tagName] =pos\r\n\t}\r\n\treturn pos<elStartEnd;\r\n\t//} \r\n}\r\nfunction _copy(source,target){\r\n\tfor(var n in source){target[n] = source[n]}\r\n}\r\nfunction parseDCC(source,start,domBuilder,errorHandler){//sure start with '<!'\r\n\tvar next= source.charAt(start+2)\r\n\tswitch(next){\r\n\tcase '-':\r\n\t\tif(source.charAt(start + 3) === '-'){\r\n\t\t\tvar end = source.indexOf('-->',start+4);\r\n\t\t\t//append comment source.substring(4,end)//<!--\r\n\t\t\tif(end>start){\r\n\t\t\t\tdomBuilder.comment(source,start+4,end-start-4);\r\n\t\t\t\treturn end+3;\r\n\t\t\t}else{\r\n\t\t\t\terrorHandler.error(\"Unclosed comment\");\r\n\t\t\t\treturn -1;\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\t//error\r\n\t\t\treturn -1;\r\n\t\t}\r\n\tdefault:\r\n\t\tif(source.substr(start+3,6) == 'CDATA['){\r\n\t\t\tvar end = source.indexOf(']]>',start+9);\r\n\t\t\tdomBuilder.startCDATA();\r\n\t\t\tdomBuilder.characters(source,start+9,end-start-9);\r\n\t\t\tdomBuilder.endCDATA() \r\n\t\t\treturn end+3;\r\n\t\t}\r\n\t\t//<!DOCTYPE\r\n\t\t//startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId) \r\n\t\tvar matchs = split(source,start);\r\n\t\tvar len = matchs.length;\r\n\t\tif(len>1 && /!doctype/i.test(matchs[0][0])){\r\n\t\t\tvar name = matchs[1][0];\r\n\t\t\tvar pubid = len>3 && /^public$/i.test(matchs[2][0]) && matchs[3][0]\r\n\t\t\tvar sysid = len>4 && matchs[4][0];\r\n\t\t\tvar lastMatch = matchs[len-1]\r\n\t\t\tdomBuilder.startDTD(name,pubid && pubid.replace(/^(['\"])(.*?)\\1$/,'$2'),\r\n\t\t\t\t\tsysid && sysid.replace(/^(['\"])(.*?)\\1$/,'$2'));\r\n\t\t\tdomBuilder.endDTD();\r\n\t\t\t\r\n\t\t\treturn lastMatch.index+lastMatch[0].length\r\n\t\t}\r\n\t}\r\n\treturn -1;\r\n}\r\n\r\n\r\n\r\nfunction parseInstruction(source,start,domBuilder){\r\n\tvar end = source.indexOf('?>',start);\r\n\tif(end){\r\n\t\tvar match = source.substring(start,end).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)\\s*$/);\r\n\t\tif(match){\r\n\t\t\tvar len = match[0].length;\r\n\t\t\tdomBuilder.processingInstruction(match[1], match[2]) ;\r\n\t\t\treturn end+2;\r\n\t\t}else{//error\r\n\t\t\treturn -1;\r\n\t\t}\r\n\t}\r\n\treturn -1;\r\n}\r\n\r\n/**\r\n * @param source\r\n */\r\nfunction ElementAttributes(source){\r\n\t\r\n}\r\nElementAttributes.prototype = {\r\n\tsetTagName:function(tagName){\r\n\t\tif(!tagNamePattern.test(tagName)){\r\n\t\t\tthrow new Error('invalid tagName:'+tagName)\r\n\t\t}\r\n\t\tthis.tagName = tagName\r\n\t},\r\n\tadd:function(qName,value,offset){\r\n\t\tif(!tagNamePattern.test(qName)){\r\n\t\t\tthrow new Error('invalid attribute:'+qName)\r\n\t\t}\r\n\t\tthis[this.length++] = {qName:qName,value:value,offset:offset}\r\n\t},\r\n\tlength:0,\r\n\tgetLocalName:function(i){return this[i].localName},\r\n\tgetLocator:function(i){return this[i].locator},\r\n\tgetQName:function(i){return this[i].qName},\r\n\tgetURI:function(i){return this[i].uri},\r\n\tgetValue:function(i){return this[i].value}\r\n//\t,getIndex:function(uri, localName)){\r\n//\t\tif(localName){\r\n//\t\t\t\r\n//\t\t}else{\r\n//\t\t\tvar qName = uri\r\n//\t\t}\r\n//\t},\r\n//\tgetValue:function(){return this.getValue(this.getIndex.apply(this,arguments))},\r\n//\tgetType:function(uri,localName){}\r\n//\tgetType:function(i){},\r\n}\r\n\r\n\r\n\r\n\r\nfunction _set_proto_(thiz,parent){\r\n\tthiz.__proto__ = parent;\r\n\treturn thiz;\r\n}\r\nif(!(_set_proto_({},_set_proto_.prototype) instanceof _set_proto_)){\r\n\t_set_proto_ = function(thiz,parent){\r\n\t\tfunction p(){};\r\n\t\tp.prototype = parent;\r\n\t\tp = new p();\r\n\t\tfor(parent in thiz){\r\n\t\t\tp[parent] = thiz[parent];\r\n\t\t}\r\n\t\treturn p;\r\n\t}\r\n}\r\n\r\nfunction split(source,start){\r\n\tvar match;\r\n\tvar buf = [];\r\n\tvar reg = /'[^']+'|\"[^\"]+\"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;\r\n\treg.lastIndex = start;\r\n\treg.exec(source);//skip <\r\n\twhile(match = reg.exec(source)){\r\n\t\tbuf.push(match);\r\n\t\tif(match[1])return buf;\r\n\t}\r\n}\r\n\r\nexports.XMLReader = XMLReader;\r\n\r\n\n\n/***/ }),\n\n/***/ \"./src/Canvas.js\":\n/*!***********************!*\\\n !*** ./src/Canvas.js ***!\n \\***********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n/**\n * @class\n * A scrolling Canvas that contains Figures. Call `add(draw2d.Figure)` to add shapes to the Viewport.\n *\n *\n * @author Andreas Herz\n */\n_packages2.default.Canvas = Class.extend(\n/** @lends draw2d.Canvas.prototype */\n{\n\n NAME: \"draw2d.Canvas\",\n\n /**\n * Create a new canvas with the given HTML DOM references.\n *\n * @param {String} canvasId the id of the DOM element to use a parent container\n */\n init: function init(canvasId, width, height) {\n var _this = this;\n\n this.setScrollArea(document.body);\n this.canvasId = canvasId;\n this.html = $(\"#\" + canvasId);\n this.html.css({ \"cursor\": \"default\" });\n if (!isNaN(parseFloat(width)) && !isNaN(parseFloat(height))) {\n this.initialWidth = parseInt(width);\n this.initialHeight = parseInt(height);\n this.html.height(this.initialHeight).width(this.initialWidth);\n } else {\n this.initialWidth = this.getWidth();\n this.initialHeight = this.getHeight();\n }\n\n // avoid the \"highlighting\" in iPad, iPhone if the user tab/touch on the canvas.\n // .... I didn't like this.\n this.html.css({ \"-webkit-tap-highlight-color\": \"rgba(0,0,0,0)\" });\n\n // Drag&Drop handling from foreign DIV into the Canvas\n // Only available in combination with jQuery-UI\n //\n // Create the droppable area for the css class \"draw2d_droppable\"\n // This can be done by a palette of toolbar or something else.\n // For more information see : http://jqueryui.com/demos/droppable/\n //\n $(this.html).droppable({\n accept: '.draw2d_droppable',\n over: function over(event, ui) {\n _this.onDragEnter(ui.draggable);\n },\n out: function out(event, ui) {\n _this.onDragLeave(ui.draggable);\n },\n drop: function drop(event, ui) {\n event = _this._getEvent(event);\n var helperPos = $(ui.helper).position();\n var pos = _this.fromDocumentToCanvasCoordinate(event.clientX, event.clientY);\n _this.onDrop(ui.draggable, pos.getX() - (event.clientX - helperPos.left) + 5, pos.getY() - (event.clientY - helperPos.top) + 5, event.shiftKey, event.ctrlKey);\n }\n });\n\n // Create the jQuery-Draggable for the palette -> canvas drag&drop interaction\n //\n $(\".draw2d_droppable\").draggable({\n appendTo: \"body\",\n stack: \"body\",\n zIndex: 27000,\n helper: \"clone\",\n drag: function drag(event, ui) {\n event = _this._getEvent(event);\n var pos = _this.fromDocumentToCanvasCoordinate(event.clientX, event.clientY);\n _this.onDrag(ui.draggable, pos.getX(), pos.getY(), event.shiftKey, event.ctrlKey);\n },\n stop: function stop(e, ui) {},\n start: function start(e, ui) {\n $(ui.helper).addClass(\"shadow\");\n }\n });\n\n // painting stuff\n //\n if (!isNaN(parseFloat(height))) {\n this.paper = Raphael(canvasId, width, height);\n } else {\n this.paper = Raphael(canvasId, this.getWidth(), this.getHeight());\n }\n this.paper.canvas.style.position = \"absolute\";\n\n // Status handling\n //\n this.zoomPolicy = null; // default ZoomEditPolicy\n this.zoomFactor = 1.0; // range [0.001..10]\n this.selection = new _packages2.default.Selection();\n this.currentDropTarget = null;\n this.currentHoverFigure = null;\n\n // installed to all added figures to avoid that a figure can be placed outside the canvas area\n // during a drag&drop operation\n this.regionDragDropConstraint = new _packages2.default.policy.figure.RegionEditPolicy(0, 0, this.getWidth(), this.getHeight());\n\n // event handling since version 5.0.0\n this.eventSubscriptions = {};\n\n this.editPolicy = new _packages2.default.util.ArrayList();\n\n // internal document with all figures, ports, ....\n //\n this.figures = new _packages2.default.util.ArrayList();\n this.lines = new _packages2.default.util.ArrayList(); // crap - why are connections not just figures. Design by accident\n this.commonPorts = new _packages2.default.util.ArrayList();\n\n // all visible resize handles which can be drag&drop around. Selection handles like AntRectangleSelectionFeedback\n // are not part of this collection. Required for hitTest only\n this.resizeHandles = new _packages2.default.util.ArrayList();\n\n // The CommandStack for undo/redo operations\n //\n this.commandStack = new _packages2.default.command.CommandStack();\n\n // INTERSECTION/CROSSING handling for connections and lines\n //\n this.linesToRepaintAfterDragDrop = new _packages2.default.util.ArrayList();\n this.lineIntersections = new _packages2.default.util.ArrayList();\n\n // alternative/legacy zoom implementation\n // this.installEditPolicy( new draw2d.policy.canvas.ZoomPolicy()); // Responsible for zooming\n this.installEditPolicy(new _packages2.default.policy.canvas.WheelZoomPolicy()); // Responsible for zooming with mouse wheel\n this.installEditPolicy(new _packages2.default.policy.canvas.DefaultKeyboardPolicy()); // Handles the keyboard interaction\n this.installEditPolicy(new _packages2.default.policy.canvas.BoundingboxSelectionPolicy()); // Responsible for selection handling\n this.installEditPolicy(new _packages2.default.policy.canvas.DropInterceptorPolicy()); // Responsible for drop operations\n this.installEditPolicy(new _packages2.default.policy.connection.ComposedConnectionCreatePolicy( // Responsible for connection creation....\n [new _packages2.default.policy.connection.DragConnectionCreatePolicy(), // ....via drag/´drop\n new _packages2.default.policy.connection.ClickConnectionCreatePolicy() // or clicking on the ports and canvas.\n ]));\n\n // Calculate all intersection between the different lines\n //\n this.commandStack.addEventListener(function (event) {\n if (event.isPostChangeEvent() === true) {\n _this.calculateConnectionIntersection();\n _this.linesToRepaintAfterDragDrop.each(function (i, line) {\n line.svgPathString = null;\n line.repaint();\n });\n _this.linesToRepaintAfterDragDrop = new _packages2.default.util.ArrayList();\n }\n });\n\n // DragDrop status handling\n //\n this.mouseDown = false;\n this.mouseDownX = 0;\n this.mouseDownY = 0;\n this.mouseDragDiffX = 0;\n this.mouseDragDiffY = 0;\n\n this.html.bind(\"mouseup touchend\", function (event) {\n if (_this.mouseDown === false) {\n return;\n }\n\n event = _this._getEvent(event);\n _this.calculateConnectionIntersection();\n\n _this.mouseDown = false;\n var pos = _this.fromDocumentToCanvasCoordinate(event.clientX, event.clientY);\n _this.editPolicy.each(function (i, policy) {\n policy.onMouseUp(_this, pos.x, pos.y, event.shiftKey, event.ctrlKey);\n });\n\n _this.mouseDragDiffX = 0;\n _this.mouseDragDiffY = 0;\n });\n\n this.html.bind(\"mousemove touchmove\", function (event) {\n event = _this._getEvent(event);\n var pos = _this.fromDocumentToCanvasCoordinate(event.clientX, event.clientY);\n if (_this.mouseDown === false) {\n // mouseEnter/mouseLeave events for Figures. Don't use the Raphael or DOM native functions.\n // Raphael didn't work for Rectangle with transparent fill (events only fired for the border line)\n // DOM didn't work well for lines. No eclipse area - you must hit the line exact to retrieve the event.\n // In this case I implement my own stuff...again and again.\n //\n // don't break the main event loop if one element fires an error during enter/leave event.\n try {\n var hover = _this.getBestFigure(pos.x, pos.y);\n if (hover !== _this.currentHoverFigure && _this.currentHoverFigure !== null) {\n _this.currentHoverFigure.onMouseLeave(); // deprecated\n _this.currentHoverFigure.fireEvent(\"mouseleave\");\n _this.fireEvent(\"mouseleave\", { figure: _this.currentHoverFigure });\n }\n if (hover !== _this.currentHoverFigure && hover !== null) {\n hover.onMouseEnter();\n hover.fireEvent(\"mouseenter\");\n _this.fireEvent(\"mouseenter\", { figure: hover });\n }\n _this.currentHoverFigure = hover;\n } catch (exc) {\n // just write it to the console\n console.log(exc);\n }\n\n _this.editPolicy.each(function (i, policy) {\n policy.onMouseMove(_this, pos.x, pos.y, event.shiftKey, event.ctrlKey);\n });\n _this.fireEvent(\"mousemove\", {\n x: pos.x,\n y: pos.y,\n shiftKey: event.shiftKey,\n ctrlKey: event.ctrlKey,\n hoverFigure: _this.currentHoverFigure\n });\n } else {\n var diffXAbs = (event.clientX - _this.mouseDownX) * _this.zoomFactor;\n var diffYAbs = (event.clientY - _this.mouseDownY) * _this.zoomFactor;\n _this.editPolicy.each(function (i, policy) {\n policy.onMouseDrag(_this, diffXAbs, diffYAbs, diffXAbs - _this.mouseDragDiffX, diffYAbs - _this.mouseDragDiffY, event.shiftKey, event.ctrlKey);\n });\n _this.mouseDragDiffX = diffXAbs;\n _this.mouseDragDiffY = diffYAbs;\n _this.fireEvent(\"mousemove\", {\n x: pos.x,\n y: pos.y,\n shiftKey: event.shiftKey,\n ctrlKey: event.ctrlKey,\n hoverFigure: _this.currentHoverFigure\n });\n }\n });\n\n this.html.bind(\"mousedown\", function (event) {\n try {\n var pos = null;\n switch (event.which) {\n case 1: //touch pressed\n case 0:\n //Left mouse button pressed\n try {\n event.preventDefault();\n event = _this._getEvent(event);\n _this.mouseDownX = event.clientX;\n _this.mouseDownY = event.clientY;\n _this.mouseDragDiffX = 0;\n _this.mouseDragDiffY = 0;\n pos = _this.fromDocumentToCanvasCoordinate(event.clientX, event.clientY);\n _this.mouseDown = true;\n _this.editPolicy.each(function (i, policy) {\n policy.onMouseDown(_this, pos.x, pos.y, event.shiftKey, event.ctrlKey);\n });\n } catch (exc) {\n console.log(exc);\n }\n break;\n case 3:\n //Right mouse button pressed\n event.preventDefault();\n if (typeof event.stopPropagation !== \"undefined\") event.stopPropagation();\n event = _this._getEvent(event);\n pos = _this.fromDocumentToCanvasCoordinate(event.clientX, event.clientY);\n _this.onRightMouseDown(pos.x, pos.y, event.shiftKey, event.ctrlKey);\n return false;\n case 2:\n //Middle mouse button pressed\n break;\n default:\n //You have a strange mouse\n }\n } catch (exc) {\n console.log(exc);\n }\n });\n\n // Catch the dblclick and route them to the Canvas hook.\n //\n this.html.on(\"dblclick\", function (event) {\n event = _this._getEvent(event);\n\n _this.mouseDownX = event.clientX;\n _this.mouseDownY = event.clientY;\n var pos = _this.fromDocumentToCanvasCoordinate(event.clientX, event.clientY);\n _this.onDoubleClick(pos.x, pos.y, event.shiftKey, event.ctrlKey);\n });\n\n // Catch the click event and route them to the canvas hook\n //\n this.html.on(\"click\", function (event) {\n event = _this._getEvent(event);\n\n // fire only the click event if we didn't move the mouse (drag&drop)\n //\n if (_this.mouseDownX === event.clientX || _this.mouseDownY === event.clientY) {\n var pos = _this.fromDocumentToCanvasCoordinate(event.clientX, event.clientY);\n _this.onClick(pos.x, pos.y, event.shiftKey, event.ctrlKey);\n }\n });\n\n // Important: MozMousePixelScroll is required to prevent 1px scrolling\n // in FF event if we call \"e.preventDefault()\"\n this.html.on('MozMousePixelScroll DOMMouseScroll mousewheel', function (e) {\n var event = _this._getEvent(e);\n var pos = _this.fromDocumentToCanvasCoordinate(event.originalEvent.clientX, event.originalEvent.clientY);\n\n var delta = 0;\n if (e.type === 'mousewheel') {\n delta = e.originalEvent.wheelDelta * -1;\n } else if (e.type === 'DOMMouseScroll') {\n delta = 40 * e.originalEvent.detail;\n }\n\n var returnValue = _this.onMouseWheel(delta, pos.x, pos.y, event.shiftKey, event.ctrlKey);\n\n if (returnValue === false) {\n e.preventDefault();\n }\n });\n\n // Catch the keyUp and CTRL-key and route them to the Canvas hook.\n //\n this.keyupCallback = function (event) {\n // don't initiate the delete command if the event comes from an INPUT field. In this case the user want delete\n // a character in the input field and not the related shape\n var target = $(event.target);\n if (!target.is(\"input\") && !target.is(\"textarea\")) {\n _this.editPolicy.each(function (i, policy) {\n if (policy instanceof _packages2.default.policy.canvas.KeyboardPolicy) {\n policy.onKeyUp(_this, event.keyCode, event.shiftKey, event.ctrlKey);\n }\n });\n }\n };\n $(document).bind(\"keyup\", this.keyupCallback);\n\n // Catch the keyDown and CTRL-key and route them to the Canvas hook.\n //\n this.keydownCallback = function (event) {\n // don't initiate the delete command if the event comes from an INPUT field. In this case the user want delete\n // a character in the input field and not the related shape\n var target = $(event.target);\n if (!target.is(\"input\") && !target.is(\"textarea\")) {\n _this.editPolicy.each(function (i, policy) {\n if (policy instanceof _packages2.default.policy.canvas.KeyboardPolicy) {\n policy.onKeyDown(_this, event.keyCode, event.shiftKey, event.ctrlKey);\n }\n });\n }\n };\n $(document).bind(\"keydown\", this.keydownCallback);\n },\n\n /**\n *\n * Call this method if you didn't need the canvas anymore. The method unregister all even handlers\n * and frees all resources. The canvas is unusable after this call\n *\n * @since. 4.7.4\n */\n destroy: function destroy() {\n this.clear();\n $(document).unbind(\"keydown\", this.keydownCallback);\n $(document).unbind(\"keyup\", this.keyupCallback);\n // reset the event handlers of the canvas without any notice\n //\n this.eventSubscriptions = {};\n\n try {\n this.paper.remove();\n } catch (exc) {\n // breaks in some ie7 version....don't care about this because ie7/8 isn't a state of the art browser ;-)\n }\n },\n\n /**\n *\n * Reset the canvas and delete all model elements.<br>\n * You can now reload another model to the canvas with a {@link draw2d.io.Reader}\n *\n * @since 1.1.0\n * @returns {this}\n */\n clear: function clear() {\n // notice all listener that the canvas will be cleared\n this.fireEvent(\"clear\");\n\n var _this = this;\n\n this.lines.clone().each(function (i, e) {\n _this.remove(e);\n });\n\n this.figures.clone().each(function (i, e) {\n _this.remove(e);\n });\n\n this.zoomFactor = 1.0;\n this.selection.clear();\n this.currentDropTarget = null;\n\n // internal document with all figures, ports, ....\n //\n this.figures = new _packages2.default.util.ArrayList();\n this.lines = new _packages2.default.util.ArrayList();\n this.commonPorts = new _packages2.default.util.ArrayList();\n\n this.commandStack.markSaveLocation();\n\n // INTERSECTION/CROSSING handling for connections and lines\n //\n this.linesToRepaintAfterDragDrop = new _packages2.default.util.ArrayList();\n this.lineIntersections = new _packages2.default.util.ArrayList();\n\n return this;\n },\n\n /**\n *\n * Callback for any kind of image export tools to trigger the canvas to hide all unwanted\n * decorations. The method is called e.g. from the draw2d.io.png.Writer\n *\n * @since 4.0.0\n * @@interface\n */\n hideDecoration: function hideDecoration() {},\n\n /**\n *\n * callback method for any image export writer to reactivate the decoration\n * of the canvas. e.g. grids, rulers,...\n *\n *\n * @since 4.0.0\n * @template\n */\n showDecoration: function showDecoration() {},\n\n /**\n *\n * Calculate all connection intersection of the canvas.\n * Required for \"bridging\" or \"crossing decoration\"\n *\n * @private\n */\n calculateConnectionIntersection: function calculateConnectionIntersection() {\n var _this2 = this;\n\n this.lineIntersections = new _packages2.default.util.ArrayList();\n var lines = this.getLines().clone();\n\n var _loop = function _loop() {\n var l1 = lines.removeElementAt(0);\n lines.each(function (ii, l2) {\n var partInter = l1.intersection(l2);\n if (partInter.getSize() > 0) {\n _this2.lineIntersections.add({ line: l1, other: l2, intersection: partInter });\n _this2.lineIntersections.add({ line: l2, other: l1, intersection: partInter });\n }\n });\n };\n\n while (lines.getSize() > 0) {\n _loop();\n }\n\n return this;\n },\n\n /**\n *\n *\n * Install a new selection and edit policy into the canvas\n *\n * @since 2.2.0\n * @param {draw2d.policy.EditPolicy} policy\n */\n installEditPolicy: function installEditPolicy(policy) {\n var _this3 = this;\n\n // a canvas can handle only one selection policy\n //\n if (policy instanceof _packages2.default.policy.canvas.SelectionPolicy) {\n // reset old selection before install new selection strategy\n this.getSelection().getAll().each(function (i, figure) {\n figure.unselect();\n });\n\n // remove existing selection policy\n this.editPolicy.grep(function (p) {\n var stay = !(p instanceof _packages2.default.policy.canvas.SelectionPolicy);\n if (stay === false) {\n p.onUninstall(_this3);\n }\n return stay;\n });\n }\n // only one zoom policy at once\n //\n else if (policy instanceof _packages2.default.policy.canvas.ZoomPolicy) {\n // remove existing zoom policy\n this.editPolicy.grep(function (p) {\n var stay = !(p instanceof _packages2.default.policy.canvas.ZoomPolicy);\n if (stay === false) {\n p.onUninstall(_this3);\n }\n return stay;\n });\n // replace the short cut handle for faster access\n this.zoomPolicy = policy;\n } else if (policy instanceof _packages2.default.policy.connection.ConnectionCreatePolicy) {\n this.editPolicy.grep(function (p) {\n var stay = !(p instanceof _packages2.default.policy.connection.ConnectionCreatePolicy);\n if (stay === false) {\n p.onUninstall(_this3);\n }\n return stay;\n });\n } else if (policy instanceof _packages2.default.policy.canvas.DropInterceptorPolicy) {}\n // think about if I allow to install only one drop policy\n\n\n // remove doublicate edit policies\n if (policy.NAME) {\n this.uninstallEditPolicy(policy.NAME);\n }\n\n policy.onInstall(this);\n this.editPolicy.add(policy);\n\n return this;\n },\n\n /**\n *\n *\n * UnInstall the selection and edit policy from the canvas.\n *\n * @since 2.2.0\n * @param {draw2d.policy.EditPolicy|String} policy\n */\n uninstallEditPolicy: function uninstallEditPolicy(policy) {\n if (policy === null) {\n return; //silently\n }\n\n // either remove exact the policy instance...\n //\n var removed = this.editPolicy.remove(policy);\n if (removed !== null) {\n removed.onUninstall(this);\n if (removed instanceof _packages2.default.policy.canvas.ZoomPolicy) {\n this.zoomPolicy = null;\n }\n } else {\n // ..or all of the same class if the policy isn't installed before\n // With this kind of behaviour it is possible to deinstall all policies with\n // the same class at once\n //\n var _this = this;\n var name = typeof policy === \"string\" ? policy : policy.NAME;\n this.editPolicy.grep(function (p) {\n if (p.NAME === name) {\n p.onUninstall(_this);\n // remove short cut handle to the zoom policy\n if (p instanceof _packages2.default.policy.canvas.ZoomPolicy) {\n _this.zoomPolicy = null;\n }\n return false;\n }\n return true;\n });\n }\n return this;\n },\n\n getDropInterceptorPolicies: function getDropInterceptorPolicies() {\n return this.editPolicy.clone().grep(function (p) {\n return p instanceof _packages2.default.policy.canvas.DropInterceptorPolicy;\n });\n },\n\n /**\n *\n * Set the new zoom factor for the canvas. The value must be between [0.01..10]\n *\n * // you can register an eventhandler if the zoom factor did change\n * canvas.on(\"zoom\", function(emitterFigure, zoomData){\n * alert(\"canvas zoomed to:\"+zoomData.value);\n * });\n *\n * @param {Number} zoomFactor new zoom factor. range [0.001..10]. 1.0 is no zoom.\n * @param {Boolean} [animated] set it to true for smooth zoom in/out\n */\n setZoom: function setZoom(zoomFactor, animated) {\n // redirect this legacy method to the new CanvasEditPolicy\n //\n if (this.zoomPolicy) {\n this.zoomPolicy.setZoom(zoomFactor, animated);\n }\n },\n\n /**\n *\n * Return the current zoom factor of the canvas.\n *\n * @returns {Number}\n */\n getZoom: function getZoom() {\n return this.zoomFactor;\n },\n\n /**\n *\n * Return the dimension of the drawing area\n *\n * @since 4.4.0\n * @returns {draw2d.geo.Rectangle}\n */\n getDimension: function getDimension() {\n return new _packages2.default.geo.Rectangle(0, 0, this.initialWidth, this.initialHeight);\n },\n\n /**\n *\n * Tells the canvas to resize. If you do not specific any parameters\n * the canvas will attempt to determine the height and width by the enclosing bounding box\n * of all elements and set the dimension accordingly. If you would like to set the dimension\n * explicitly pass in an draw2d.geo.Rectangle or an object with <b>height</b> and <b>width</b> properties.\n *\n * @since 4.4.0\n * @param {draw2d.geo.Rectangle} [dim] the dimension to set or null for autodetect\n * @param {Number} [height] the height of the canvas if the first argument is a number and not a Rectangle\n */\n setDimension: function setDimension(dim, height) {\n if (typeof dim === \"undefined\") {\n var widths = this.getFigures().clone().map(function (f) {\n return f.getAbsoluteX() + f.getWidth();\n });\n var heights = this.getFigures().clone().map(function (f) {\n return f.getAbsoluteY() + f.getHeight();\n });\n this.initialHeight = Math.max.apply(Math, _toConsumableArray(heights.asArray()));\n this.initialWidth = Math.max.apply(Math, _toConsumableArray(widths.asArray()));\n } else if (dim instanceof _packages2.default.geo.Rectangle) {\n this.initialWidth = dim.w;\n this.initialHeight = dim.h;\n } else if (typeof dim.width === \"number\" && typeof dim.height === \"number\") {\n this.initialWidth = dim.width;\n this.initialHeight = dim.height;\n } else if (typeof dim === \"number\" && typeof height === \"number\") {\n this.initialWidth = dim;\n this.initialHeight = height;\n }\n this.html.css({ \"width\": this.initialWidth + \"px\", \"height\": this.initialHeight + \"px\" });\n this.paper.setSize(this.initialWidth, this.initialHeight);\n this.setZoom(this.zoomFactor, false);\n\n return this;\n },\n\n /**\n *\n * Transforms a document coordinate to canvas coordinate.\n *\n * @param {Number} x the x coordinate relative to the window\n * @param {Number} y the y coordinate relative to the window\n *\n * @returns {draw2d.geo.Point} The coordinate in relation to the canvas [0,0] position\n */\n fromDocumentToCanvasCoordinate: function fromDocumentToCanvasCoordinate(x, y) {\n return new _packages2.default.geo.Point((x - this.getAbsoluteX() + this.getScrollLeft()) * this.zoomFactor, (y - this.getAbsoluteY() + this.getScrollTop()) * this.zoomFactor);\n },\n\n /**\n *\n * Transforms a canvas coordinate to document coordinate.\n *\n * @param {Number} x the x coordinate in the canvas\n * @param {Number} y the y coordinate in the canvas\n *\n * @returns {draw2d.geo.Point} the coordinate in relation to the document [0,0] position\n */\n fromCanvasToDocumentCoordinate: function fromCanvasToDocumentCoordinate(x, y) {\n return new _packages2.default.geo.Point(x * (1 / this.zoomFactor) + this.getAbsoluteX() - this.getScrollLeft(), y * (1 / this.zoomFactor) + this.getAbsoluteY() - this.getScrollTop());\n },\n\n /**\n *\n * The DOM host of the canvas\n *\n * @returns {HTMLElement}\n */\n getHtmlContainer: function getHtmlContainer() {\n return this.html;\n },\n\n /**\n *\n * Return a common event object independed if we run on an iPad or desktop.\n *\n * @param event\n * @returns {DOMEventObject}\n * @private\n */\n _getEvent: function _getEvent(event) {\n // check for iPad, Android touch events\n //\n if (typeof event.originalEvent !== \"undefined\") {\n if (event.originalEvent.touches && event.originalEvent.touches.length) {\n return event.originalEvent.touches[0];\n } else if (event.originalEvent.changedTouches && event.originalEvent.changedTouches.length) {\n return event.originalEvent.changedTouches[0];\n }\n }\n return event;\n },\n\n /**\n *\n *\n * Set the area which are scrolling the canvas. This can be a jquery selector or\n * a jQuery node.\n *\n * @param {String/HTMLElement} elementSelector\n * @returns {this}\n **/\n setScrollArea: function setScrollArea(elementSelector) {\n this.scrollArea = $(elementSelector);\n\n return this;\n },\n\n /**\n *\n *\n * return the scrolling area of the canvas. This is jQuery object\n *\n * @returns {JQueryElement}\n **/\n getScrollArea: function getScrollArea() {\n return this.scrollArea;\n },\n\n /**\n *\n * The left scroll position.\n *\n * @returns {Number} the left scroll offset of the canvas\n **/\n getScrollLeft: function getScrollLeft() {\n return this.getScrollArea().scrollLeft();\n },\n\n /**\n *\n * The top scroll position\n *\n * @returns {Number} the top scroll offset of the cnavas.\n **/\n getScrollTop: function getScrollTop() {\n return this.getScrollArea().scrollTop();\n },\n\n /**\n *\n * Set left scroll position.\n *\n * @param {Number} left the left scroll offset of the canvas\n **/\n setScrollLeft: function setScrollLeft(left) {\n this.getScrollArea().scrollLeft(left);\n\n return this;\n },\n\n /**\n *\n * set top scroll position\n *\n * @param {Number} top the top scroll offset of the canvas.\n **/\n setScrollTop: function setScrollTop(top) {\n this.getScrollArea().scrollTop(top);\n\n return this;\n },\n\n /**\n *\n * set the new scroll position of the canvas\n *\n * @param {Number} top the top scroll offset of the canvas.\n * @param {Number} left the left scroll offset of the canvas\n * @since 5.8.0\n **/\n scrollTo: function scrollTo(top, left) {\n this.getScrollArea().scrollTop(top).scrollLeft(left);\n\n return this;\n },\n\n /**\n *\n * The absolute document x offset.\n *\n * @returns {Number}\n **/\n getAbsoluteX: function getAbsoluteX() {\n return this.html.offset().left;\n },\n\n /**\n *\n * The absolute document y offset.\n *\n * @returns {Number}\n **/\n getAbsoluteY: function getAbsoluteY() {\n return this.html.offset().top;\n },\n\n /**\n *\n * Return the width of the canvas\n *\n * @returns {Number}\n **/\n getWidth: function getWidth() {\n return this.html.width();\n },\n\n /**\n *\n * Return the height of the canvas.\n *\n * @returns {Number}\n **/\n getHeight: function getHeight() {\n return this.html.height();\n },\n\n /**\n *\n * Add a figure at the given x/y coordinate. This method fires an event.\n *\n * Example:\n *\n * canvas.on(\"figure:add\", function(emitter, event){\n * alert(\"figure added:\");\n * });\n *\n * // or more general if you want catch all figure related events\n * //\n * canvas.on(\"figure\", function(emitter, event){\n * // use event.figure.getCanvas()===null to determine if the\n * // figure part of the canvas\n *\n * alert(\"figure added or removed:\");\n * });\n *\n * @param {draw2d.Figure} figure The figure to add.\n * @param {Number/draw2d.geo.Point} [x] The new x coordinate of the figure or the x/y coordinate if it is an draw2d.geo.Point\n * @param {Number} [y] The y position.\n **/\n add: function add(figure, x, y) {\n if (figure.getCanvas() === this) {\n return;\n }\n\n if (figure instanceof _packages2.default.shape.basic.Line) {\n this.lines.add(figure);\n this.linesToRepaintAfterDragDrop = this.lines;\n } else {\n this.figures.add(figure);\n if (typeof y !== \"undefined\") {\n figure.setPosition(x, y);\n } else if (typeof x !== \"undefined\") {\n figure.setPosition(x);\n }\n }\n figure.setCanvas(this);\n\n // to avoid drag&drop outside of this canvas\n figure.installEditPolicy(this.regionDragDropConstraint);\n\n // important initial call\n figure.getShapeElement();\n\n // init a repaint of the figure. This enforce that all properties\n // ( color, dim, stroke,...) will be set and pushed to SVG node.\n figure.repaint();\n\n // fire the figure:add event before the \"move\" event and after the figure.repaint() call!\n // - the move event can only be fired if the figure part of the canvas.\n // and in this case the notification event should be fired to the listener before\n this.fireEvent(\"figure:add\", { figure: figure, canvas: this });\n\n // fire the event that the figure is part of the canvas\n figure.fireEvent(\"added\", { figure: figure, canvas: this });\n\n // ...now we can fire the initial move event\n figure.fireEvent(\"move\", { figure: figure, x: figure.getX(), y: figure.getY(), dx: 0, dy: 0 });\n\n // this is only required if the used router requires the crossing information\n // of the connections\n if (figure instanceof _packages2.default.shape.basic.PolyLine) {\n this.calculateConnectionIntersection();\n this.linesToRepaintAfterDragDrop.each(function (i, line) {\n line.svgPathString = null;\n line.repaint();\n });\n this.linesToRepaintAfterDragDrop = new _packages2.default.util.ArrayList();\n }\n\n return this;\n },\n\n /**\n *\n * Remove a figure or connection from the Canvas. This method fires an event\n * which can be catched.\n *\n * Example:\n *\n * canvas.on(\"figure:remove\", function(emitter, event){\n * alert(\"figure removed:\");\n * });\n *\n * // or more general if you want catch all figure related events\n * //\n * canvas.on(\"figure\", function(emitter, event){\n * // use event.figure.getCanvas()===null to determine if the\n * // figure part of the canvas\n *\n * alert(\"figure added or removed:\");\n * });\n *\n *\n * @param {draw2d.Figure} figure The figure to remove\n **/\n remove: function remove(figure) {\n var _this4 = this;\n\n // don't fire events of calll callbacks if the fire isn'T part of this canvas\n //\n if (figure.getCanvas() !== this) {\n return this;\n }\n\n // remove the figure from a selection handler as well and cleanup the\n // selection feedback\n if (this.getSelection().contains(figure)) {\n this.editPolicy.each(function (i, policy) {\n if (typeof policy.unselect === \"function\") {\n policy.unselect(_this4, figure);\n }\n });\n }\n\n if (figure instanceof _packages2.default.shape.basic.Line) {\n this.lines.remove(figure);\n } else {\n this.figures.remove(figure);\n }\n\n figure.setCanvas(null);\n\n if (figure instanceof _packages2.default.Connection) {\n figure.disconnect();\n }\n\n this.fireEvent(\"figure:remove\", { figure: figure });\n\n figure.fireEvent(\"removed\", { figure: figure, canvas: this });\n\n return this;\n },\n\n /**\n *\n * Returns all lines/connections in this workflow/canvas.<br>\n *\n * @returns {draw2d.util.ArrayList}\n **/\n getLines: function getLines() {\n return this.lines;\n },\n\n /**\n *\n * Returns the internal figures.<br>\n *\n * @returns {draw2d.util.ArrayList}\n **/\n getFigures: function getFigures() {\n return this.figures;\n },\n\n /**\n *\n * Returns the line or connection with the given id.\n *\n * @param {String} id The id of the line.\n *\n * @returns {draw2d.shape.basic.Line}\n **/\n getLine: function getLine(id) {\n var count = this.lines.getSize();\n for (var i = 0; i < count; i++) {\n var line = this.lines.get(i);\n if (line.getId() === id) {\n return line;\n }\n }\n return null;\n },\n\n /**\n *\n * Returns the figure with the given id.\n *\n * @param {String} id The id of the figure.\n * @returns {draw2d.Figure}\n **/\n getFigure: function getFigure(id) {\n var figure = null;\n this.figures.each(function (i, e) {\n if (e.id === id) {\n figure = e;\n return false;\n }\n });\n return figure;\n },\n\n /**\n *\n * Return all intersections draw2d.geo.Point between the given line and all other\n * lines in the canvas.\n *\n * @param {draw2d.shape.basic.Line} line the line for the intersection test\n * @returns {draw2d.util.ArrayList}\n */\n getIntersection: function getIntersection(line) {\n var result = new _packages2.default.util.ArrayList();\n\n this.lineIntersections.each(function (i, entry) {\n if (entry.line === line) {\n entry.intersection.each(function (j, p) {\n result.add({ x: p.x, y: p.y, justTouching: p.justTouching, other: entry.other });\n });\n }\n });\n\n return result;\n },\n\n /**\n *\n * Adjust the coordinate with the installed SnapToHelper.\n *\n * @param {draw2d.Figure} figure The related figure\n * @param {draw2d.geo.Point} pos The position to adjust\n *\n * @returns {draw2d.geo.Point} the adjusted position\n * @private\n **/\n snapToHelper: function snapToHelper(figure, pos) {\n var _this5 = this;\n\n // disable snapToPos if we have select more than one element\n // which are currently in Drag&Drop operation\n //\n if (this.getSelection().getSize() > 1) {\n return pos;\n }\n\n var orig = pos.clone();\n this.editPolicy.each(function (i, policy) {\n if (policy instanceof _packages2.default.policy.canvas.SnapToEditPolicy) {\n pos = policy.snap(_this5, figure, pos, orig);\n }\n });\n\n return pos;\n },\n\n /**\n *\n * Register a port to the canvas. This is required for other ports to find a valid drop target.\n *\n * @param {draw2d.Port} port The new port which has been added to the Canvas.\n **/\n registerPort: function registerPort(port) {\n // All elements have the same drop targets.\n //\n if (!this.commonPorts.contains(port)) {\n this.commonPorts.add(port);\n }\n\n return this;\n },\n\n /**\n *\n * Remove a port from the internal cnavas registration. Now other ports can't find the\n * port anymore as drop target. The port itself is still visible.\n *\n * @param {draw2d.Port} port The port to unregister as potential drop target\n * @private\n * @returns {this}\n **/\n unregisterPort: function unregisterPort(port) {\n this.commonPorts.remove(port);\n\n return this;\n },\n\n /**\n *\n * Return all ports in the canvas\n *\n * @returns {draw2d.util.ArrayList} all ports from all figures\n */\n getAllPorts: function getAllPorts() {\n return this.commonPorts;\n },\n\n /**\n *\n * Returns the command stack for the Canvas. Required for undo/redo support.\n *\n * @returns {draw2d.command.CommandStack}\n **/\n getCommandStack: function getCommandStack() {\n return this.commandStack;\n },\n\n /**\n *\n * Returns the current selected figure in the Canvas.\n *\n * @returns {draw2d.Figure}\n **/\n getPrimarySelection: function getPrimarySelection() {\n return this.selection.getPrimary();\n },\n\n /**\n *\n * Returns the current selection.\n *\n * @returns {draw2d.Selection}\n **/\n getSelection: function getSelection() {\n return this.selection;\n },\n\n /**\n *\n * Set the current selected figure or figures in the canvas.<br>\n * <br>\n * You can hand over a draw2d.util.ArrayList since version 4.8.0 for multiple selection.\n *\n * @param {draw2d.Figure| draw2d.util.ArrayList} object The figure or list of figures to select.\n * @returns {this}\n **/\n setCurrentSelection: function setCurrentSelection(object) {\n var _this6 = this;\n\n // deselect the current selected figures\n //\n // clone the array (getAll) before iterate and modify the initial array\n this.selection.getAll().each(function (i, e) {\n _this6.editPolicy.each(function (i, policy) {\n if (typeof policy.unselect === \"function\") {\n policy.unselect(_this6, e);\n }\n });\n });\n this.addSelection(object);\n\n return this;\n },\n\n /**\n *\n * Add the current figure to the selection. If a single selection policy is installed in the\n * canvas the selection before is reseted and the figure is the one and only selection.\n *\n * @param {draw2d.Figure | draw2d.util.ArrayList} object The figure(s) to add to the selection\n * @since 4.6.0\n * @returns {this}\n **/\n addSelection: function addSelection(object) {\n var _this7 = this;\n\n var add = function add(i, figure) {\n _this7.editPolicy.each(function (i, policy) {\n if (typeof policy.select === \"function\") {\n policy.select(_this7, figure);\n }\n });\n };\n\n if (object instanceof _packages2.default.util.ArrayList || object instanceof _packages2.default.Selection) {\n object.each(add);\n } else {\n add(0, object);\n }\n\n return this;\n },\n\n /**\n *\n * Returns the best figure at the location [x,y]. It is a simple hit test. Keep in mind that only visible objects\n * are returned.\n *\n *\n * @param {Number} x The x position.\n * @param {Number} y The y position.\n * @param {draw2d.Figure|Array|Class} [blacklist] The figures or class which should be ignored.\n * @param {draw2d.Figure|Array|Class} [whitelist] The figures or class should be considered.\n *\n * @returns {draw2d.Figure}\n **/\n getBestFigure: function getBestFigure(x, y, blacklist, whitelist) {\n if (!Array.isArray(blacklist)) {\n if (blacklist) blacklist = [blacklist];else blacklist = [];\n }\n\n if (!Array.isArray(whitelist)) {\n if (whitelist) whitelist = [whitelist];else whitelist = [];\n }\n\n var result = null;\n var testFigure = null;\n\n var isInList = function isInList(testFigure, list) {\n for (var i = 0, len = list.length; i < len; i++) {\n var considering = list[i];\n if (typeof considering === \"function\") {\n if (testFigure instanceof considering) {\n return true;\n }\n } else if (considering === testFigure || considering.contains(testFigure)) {\n return true;\n }\n }\n return false;\n };\n var isInBlacklist = function isInBlacklist(item) {\n return isInList(item, blacklist);\n };\n // empty whitelist means that every kind of object is allowed\n var isInWhitelist = whitelist.length === 0 ? function () {\n return true;\n } : function (item) {\n return isInList(item, whitelist);\n };\n\n // tool method to check recursive a figure for hitTest\n //\n var checkRecursive = function checkRecursive(children) {\n children.each(function (i, e) {\n var c = e.figure;\n checkRecursive(c.children);\n if (result === null && c.isVisible() && c.hitTest(x, y) && !isInBlacklist(c) && isInWhitelist(c)) {\n result = c;\n }\n return result === null; // break the each-loop if we found an element\n });\n };\n\n // ResizeHandles\n //\n for (var i = 0, len = this.resizeHandles.getSize(); i < len; i++) {\n testFigure = this.resizeHandles.get(i);\n if (testFigure.isVisible() && testFigure.hitTest(x, y) && !isInBlacklist(testFigure) && isInWhitelist(testFigure)) {\n return testFigure;\n }\n }\n\n // Checking ports\n //\n for (var _i = 0, _len = this.commonPorts.getSize(); _i < _len; _i++) {\n var port = this.commonPorts.get(_i);\n // check first a children of the figure\n //\n checkRecursive(port.children);\n\n if (result === null && port.isVisible() && port.hitTest(x, y) && !isInBlacklist(port) && isInWhitelist(port)) {\n result = port;\n }\n\n if (result !== null) {\n return result;\n }\n }\n\n // Check now the common objects.\n // run reverse to aware the z-oder of the figures\n for (var _i2 = this.figures.getSize() - 1; _i2 >= 0; _i2--) {\n var figure = this.figures.get(_i2);\n // check first a children of the figure\n //\n checkRecursive(figure.children);\n\n // ...and the figure itself\n //\n if (result === null && figure.isVisible() && figure.hitTest(x, y) && !isInBlacklist(figure) && isInWhitelist(figure)) {\n result = figure;\n break;\n }\n }\n\n var figureResult = result;\n var childResult = null;\n var lineResult = this.getBestLine(x, y, blacklist, whitelist);\n result = null;\n\n // Check the children of the lines as well\n // Not selectable/draggable. But should receive onClick/onDoubleClick events\n // as well.\n var count = this.lines.getSize();\n for (var _i3 = 0; _i3 < count; _i3++) {\n var line = this.lines.get(_i3);\n // check first a children of the figure\n //\n checkRecursive(line.children);\n\n if (result !== null) {\n childResult = result;\n break;\n }\n }\n\n var figureIndex = figureResult !== null ? $(figureResult.shape.node).index() : -1;\n var childIndex = childResult !== null ? $(childResult.shape.node).index() : -1;\n var lineIndex = lineResult !== null ? $(lineResult.shape.node).index() : -1;\n var array = [{ i: figureIndex, f: figureResult }, { i: childIndex, f: childResult }, { i: lineIndex, f: lineResult }];\n array = array.filter(function (e) {\n return e.i !== -1;\n });\n array = array.sort(function (a, b) {\n return b.i - a.i;\n });\n\n if (array.length > 0) {\n result = array[0].f;\n }\n\n return result;\n },\n\n /**\n *\n * Return the line which match the hands over coordinate\n *\n * @param {Number} x the x-coordinate for the hit test\n * @param {Number} y the x-coordinate for the hit test\n * @param {draw2d.shape.basic.Line} [lineToIgnore] a possible line which should be ignored for the hit test\n *\n * @private\n * @returns {draw2d.shape.basic.Line}\n **/\n getBestLine: function getBestLine(x, y, lineToIgnore) {\n if (!Array.isArray(lineToIgnore)) {\n if (lineToIgnore instanceof _packages2.default.Figure) {\n lineToIgnore = [lineToIgnore];\n } else {\n lineToIgnore = [];\n }\n }\n var count = this.lines.getSize();\n\n for (var i = 0; i < count; i++) {\n var line = this.lines.get(i);\n if (line.isVisible() === true && line.hitTest(x, y) === true && $.inArray(line, lineToIgnore) === -1) {\n return line;\n }\n }\n return null;\n },\n\n /**\n *\n * Called by the framework during drag&drop operations.<br>\n * Droppable can be setup with:\n * <pre>\n * $(\".draw2d_droppable\").draggable({\n * appendTo:\"#container\",\n * stack:\"#container\",\n * zIndex: 27000,\n * helper:\"clone\",\n * start: function(e, ui){$(ui.helper).addClass(\"shadow\");}\n * });\n * </pre>\n * Draw2D use the jQuery draggable/droppable lib. Please inspect\n * http://jqueryui.com/demos/droppable/ for further information.\n *\n * @param {HTMLElement} draggedDomNode The DOM element which is currently dragging\n *\n * @template\n **/\n onDragEnter: function onDragEnter(draggedDomNode) {},\n\n /**\n *\n * Called if the DragDrop object is moving around.<br>\n * <br>\n * Draw2D use the jQuery draggable/droppable lib. Please inspect\n * http://jqueryui.com/demos/droppable/ for further information.\n *\n * @param {HTMLElement} draggedDomNode The dragged DOM element.\n * @param {Number} x the x coordinate of the drag\n * @param {Number} y the y coordinate of the drag\n *\n * @template\n **/\n onDrag: function onDrag(draggedDomNode, x, y) {},\n\n /**\n *\n * Called if the DragDrop object leaving the current hover figure.<br>\n * <br>\n * Graphiti use the jQuery draggable/droppable lib. Please inspect\n * http://jqueryui.com/demos/droppable/ for further information.\n *\n * @param {HTMLElement} draggedDomNode The figure which is currently dragging\n *\n * @template\n **/\n onDragLeave: function onDragLeave(draggedDomNode) {},\n\n /**\n *\n * Called if the user drop the droppedDomNode onto the canvas.<br>\n * <br>\n * Draw2D use the jQuery draggable/droppable lib. Please inspect\n * http://jqueryui.com/demos/droppable/ for further information.\n *\n * @param {HTMLElement} droppedDomNode The dropped DOM element.\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @template\n **/\n onDrop: function onDrop(droppedDomNode, x, y, shiftKey, ctrlKey) {},\n\n /**\n *\n * Callback method for the double click event. The x/y coordinates are relative to the top left\n * corner of the canvas.\n *\n * @private\n **/\n onDoubleClick: function onDoubleClick(x, y, shiftKey, ctrlKey) {\n // check if a line has been hit\n //\n var figure = this.getBestFigure(x, y);\n\n // or a line/connection. May we should test the line before a figure..?\n // (since 4.0.0)\n if (figure === null) {\n figure = this.getBestLine(x, y);\n }\n\n this.fireEvent(\"dblclick\", { figure: figure, x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n\n // forward the event to all install policies as well.\n // (since 4.0.0)\n this.editPolicy.each(function (i, policy) {\n policy.onDoubleClick(figure, x, y, shiftKey, ctrlKey);\n });\n },\n\n /**\n *\n * @param {Number} x the x coordinate of the event\n * @param {Number} y the y coordinate of the event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @private\n **/\n onClick: function onClick(x, y, shiftKey, ctrlKey) {\n // check if a figure has been hit\n //\n var figure = this.getBestFigure(x, y);\n\n this.fireEvent(\"click\", {\n figure: figure,\n x: x,\n y: y,\n relX: figure !== null ? x - figure.getAbsoluteX() : 0,\n relY: figure !== null ? y - figure.getAbsoluteY() : 0,\n shiftKey: shiftKey,\n ctrlKey: ctrlKey\n });\n\n // forward the event to all install policies as well.\n // (since 3.0.0)\n this.editPolicy.each(function (i, policy) {\n policy.onClick(figure, x, y, shiftKey, ctrlKey);\n });\n },\n\n /**\n *\n * The user has triggered a right click. Redirect them to a responsible figure.\n *\n * @param {Number} x The x-coordinate of the click\n * @param {Number} y The y-coordinate of the click\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @private\n * @since 1.1.0\n **/\n onRightMouseDown: function onRightMouseDown(x, y, shiftKey, ctrlKey) {\n var figure = this.getBestFigure(x, y);\n this.fireEvent(\"contextmenu\", { figure: figure, x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n\n if (figure !== null) {\n figure.fireEvent(\"contextmenu\", { figure: figure, x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n // @deprecated legacy call\n figure.onContextMenu(x, y);\n\n // forward the event to all installed policies of the figure\n // soft migration from onHookXYZ to Policies.\n // since 4.4.0\n figure.editPolicy.each(function (i, policy) {\n policy.onRightMouseDown(figure, x, y, shiftKey, ctrlKey);\n });\n }\n\n // forward the event to all install policies as well.\n // (since 4.4.0)\n this.editPolicy.each(function (i, policy) {\n policy.onRightMouseDown(figure, x, y, shiftKey, ctrlKey);\n });\n },\n\n /**\n *\n * @param {Number} wheelDelta the delata of the wheel rotation\n * @param {Number} x the x coordinate of the event\n * @param {Number} y the y coordinate of the event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @private\n **/\n onMouseWheel: function onMouseWheel(wheelDelta, x, y, shiftKey, ctrlKey) {\n var returnValue = true;\n this.fireEvent(\"wheel\", { wheelDelta: wheelDelta, x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n\n // forward the event to all install policies as well.\n // (since 3.0.0)\n this.editPolicy.each(function (i, policy) {\n returnValue = policy.onMouseWheel(wheelDelta, x, y, shiftKey, ctrlKey) && returnValue;\n });\n\n return returnValue;\n },\n\n // NEW EVENT HANDLING SINCE VERSION 5.0.0\n /**\n *\n * Execute all handlers and behaviors attached to the canvas for the given event type.\n *\n *\n * @param {String} event the event to trigger\n * @param {Object} [args] optional parameters for the triggered event callback\n * @private\n * @since 5.0.0\n */\n fireEvent: function fireEvent(event, args) {\n if (typeof this.eventSubscriptions[event] === 'undefined') {\n return;\n }\n\n var subscribers = this.eventSubscriptions[event];\n for (var i = 0; i < subscribers.length; i++) {\n try {\n subscribers[i](this, args);\n } catch (exc) {\n console.log(exc);\n console.log(subscribers[i]);\n debugger;\n }\n }\n },\n\n /**\n *\n * Attach an event handler function for one or more events to the canvas.\n * To remove events bound with .on(), see {@link #off}.\n *\n * possible events are:<br>\n * <ul>\n * <li>reset</li>\n * <li>select</li>\n * </ul>\n *\n * Example:\n *\n * canvas.on(\"clear\", function(emitter, event){\n * alert(\"canvas.clear() called.\");\n * });\n *\n * canvas.on(\"select\", function(emitter,event){\n * alert(\"figure selected\");\n * });\n *\n * canvas.on(\"unselect\", function(emitter,event){\n * alert(\"figure unselected\");\n * });\n * \n * @param {String} event One or more space-separated event types\n * @param {Function} callback A function to execute when the event is triggered.\n * @param {draw2d.Canvas} callback.emitter the emitter of the event\n * @param {Object} [callback.obj] optional event related data\n *\n * @since 5.0.0\n */\n on: function on(event, callback) {\n var events = event.split(\" \");\n for (var i = 0; i < events.length; i++) {\n if (typeof this.eventSubscriptions[events[i]] === 'undefined') {\n this.eventSubscriptions[events[i]] = [];\n }\n this.eventSubscriptions[events[i]].push(callback);\n }\n return this;\n },\n\n /**\n *\n * The `off()` method removes event handlers that were attached with {@link #on}.<br>\n * Calling .off() with no arguments removes all handlers attached to the canvas.<br>\n * <br>\n * If a simple event name such as \"reset\" is provided, all events of that type are removed from the canvas.\n *\n *\n * @param {String|Function} eventOrFunction the event name of the registerd function\n * @since 5.0.0\n */\n off: function off(eventOrFunction) {\n if (typeof eventOrFunction === \"undefined\") {\n this.eventSubscriptions = {};\n } else if (typeof eventOrFunction === 'string') {\n this.eventSubscriptions[eventOrFunction] = [];\n } else {\n for (var event in this.eventSubscriptions) {\n this.eventSubscriptions[event] = this.eventSubscriptions[event].filter(function (callback) {\n return callback !== eventOrFunction;\n });\n }\n }\n\n return this;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/Configuration.js\":\n/*!******************************!*\\\n !*** ./src/Configuration.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.Configuration = {\n version: \"@VERSION@\",\n i18n: {\n command: {\n move: \"Move Shape\",\n assignShape: \"Add Shapes to Composite\",\n groupShapes: \"Group Shapes\",\n ungroupShapes: \"Ungroup Shapes\",\n deleteShape: \"Delete Shape\",\n moveShape: \"Move Shape\",\n moveLine: \"Move Line\",\n addShape: \"Add Shape\",\n moveVertex: \"Move Vertex\",\n moveVertices: \"Move Vertices\",\n deleteVertex: \"Delete Vertex\",\n resizeShape: \"Resize Shape\",\n rotateShape: \"Rotate Shape\",\n collection: \"Execute Commands\",\n addVertex: \"Add Vertex\",\n changeAttributes: \"Change Attributes\",\n connectPorts: \"Connect Ports\"\n },\n menu: {\n deleteSegment: \"Delete Segment\",\n addSegment: \"Add Segment\"\n },\n dialog: {\n filenamePrompt: \"Enter Filename:\"\n }\n },\n\n factory: {\n // all selection policies calles this method to create a ResizeHandle.\n // It is possible to replace this method with a custom implementation\n // @since 5.2.0\n createResizeHandle: function createResizeHandle(owner, type, width, height) {\n // create a custom SelectionPolicy instead\n console.log(\"deprecated call factory.createResizeHandle\");\n\n return new _packages2.default.ResizeHandle({ owner: owner, type: type, width: width, height: height });\n },\n // The commands an canvas calles this method to create a new connection.\n // all parameters are optional.\n // @since 5.3.0\n // @deprecated\n createConnection: function createConnection(sourcePort, targetPort, callback, dropTarget) {\n console.log(\"deprecated call factory.createConnection\");\n debugger;\n return new _packages2.default.Connection();\n },\n // @since 5.3.0\n createInputPort: function createInputPort(relatedFigure) {\n return new _packages2.default.InputPort();\n },\n // @since 5.3.0\n createOutputPort: function createOutputPort(relatedFigure) {\n return new _packages2.default.OutputPort();\n },\n // @since 5.3.0\n createHybridPort: function createHybridPort(relatedFigure) {\n return new _packages2.default.HybridPort();\n }\n }\n};\n\n/***/ }),\n\n/***/ \"./src/Connection.js\":\n/*!***************************!*\\\n !*** ./src/Connection.js ***!\n \\***************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Connections figures are used to display a line between two points. The Connection interface extends\n * {@link draw2d.shape.basic.PolyLine PolyLine}.<br>\n * The source and target endpoints of a connection are each defined using a {@link draw2d.layout.anchor.ConnectionAnchor ConnectionAnchor}.\n * These endpoints, along with any other points on the connection, are set by the connection's {@link draw2d.layout.connection.ConnectionRouter ConnectionRouter}.\n * <br>\n * Usually every connection in a drawing has the same router instance. Connections with\n * common endpoints can share anchor instances as well.\n *\n * <h2>Connection Usage</h2>\n *\n * Connections are created and added just like any other figure. Unlike normal figures, you must not set the\n * bounds of a connection. Instead, you must provide the source and target port and let the connection router\n * calculate the connection's points. The connection then determines its own bounding box.<br>\n * <br>\n * A connection has a simple router by default - one that can connect the source and target anchors. But additional routers\n * are available and can be set on the connection. Some routers can handle constraints for the connection. Note that when\n * setting a routing constraint on a connection, you must first set the router which will use that constraint.<br>\n * <br>\n *\n * <b>TODO:<br></b>\n * <i>\n * A convenient way to share the router with all connections and to place connections above the drawing is to use a\n * ConnectionLayer. The layer has a connection router property which it shares with every child that's a connection.\n * You can update this property and easily change every connection's router at once.\n * </i>\n * <br>\n * <br>\n * <h2>Routing and Anchors</h2>\n * A connection always has a router and it must set at least two ports on the connection: the source and target\n * endpoints. By default, or when set to null, the connection's routing will be performed by an internal default router.\n * The ends are placed with the help of {@link draw2d.layout.anchor.ConnectionAnchor anchors}. An\n * {@link draw2d.layout.anchor.ConnectionAnchor anchors} is a fixed or calculated location, usually associated with some\n * figure. For example, the {@link draw2d.layout.anchor.ChopboxConnectionAnchor ChopboxAnchor} finds the point at which a\n * line going to the reference point intersects a box, such as the bounds of a figure. The reference point is either\n * the anchor at the opposite end, or a bendpoint or some other point nearest to the anchor.\n * <br>\n * {@img jsdoc_chopbox.gif ChopboxAnchor}\n * <br>\n * The router calculates the endpoints and any other points in the middle of the connection. It then sets the points on the\n * connection by calling {@link draw2d.shape.basic.PolyLine#addPoint Polyline.addPoint}. The connection's existing point list\n * can be reused to reduce garbage, but the points must be set on the connection anyway so that it knows about any changes made.\n * <br>\n * <h2>Adding Decorations and Children to Connections</h2>\n * Like most figures, Connection supports the addition of children. The children might be a label that\n * decorate the connection. The placement of each type of decoration can vary, so a {@link draw2d.layout.locator.ConnectionLocator ConnectionLocator}\n * is used to delegate to each child's constraint object, a Locator. <br>\n * <br>\n * {@link draw2d.decoration.connection.Decorator Decorator} can be used to create and render a rotatable shape at\n * the end or start of a connection like arrows or boxes. Examples are {@link draw2d.decoration.connection.ArrowDecorator ArrowDecorator}, {@link draw2d.decoration.connection.BarDecorator BarDecorator} or {@link draw2d.decoration.connection.CircleDecorator CircleDecorator}\n * <br>\n * <h2>Connection Layout</h2>\n * Connections extend the process of validation and layout to include routing. Since layout is the process of positioning children, routing must\n * come first. This allows a child's locator to operate on the connection's newly-routed points.<br>\n * Check out [Class System Guide](#!/guide/class_system) for additional reading.\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.basic.PolyLine\n */\n\n_packages2.default.Connection = _packages2.default.shape.basic.PolyLine.extend(\n/** @lends draw2d.Connection.prototype */\n{\n\n NAME: \"draw2d.Connection\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.sourcePort = null;\n this.targetPort = null;\n\n this.oldPoint = null;\n\n this.sourceDecorator = null;\n /*:draw2d.ConnectionDecorator*/\n this.targetDecorator = null;\n /*:draw2d.ConnectionDecorator*/\n\n // decoration of the polyline\n //\n this.sourceDecoratorNode = null;\n this.targetDecoratorNode = null;\n\n // helper let to restore the initial visual representation if the user drag&drop\n // the port outside of the browser window. In this case some events get lost and\n // I can restore the initial state of the connection if the mouse comes in the browser window\n // again.\n this.isMoving = false;\n\n var _this = this;\n this.moveListener = function (figure) {\n if (figure === _this.sourcePort) {\n _this.setStartPoint(_this.sourcePort.getAbsoluteX(), _this.sourcePort.getAbsoluteY());\n } else {\n _this.setEndPoint(_this.targetPort.getAbsoluteX(), _this.targetPort.getAbsoluteY());\n }\n };\n\n this._super((0, _extend2.default)({\n color: \"#129CE4\",\n stroke: 2,\n // outlineStroke:1,\n // outlineColor:\"#ffffff\",\n radius: 3\n }, attr), (0, _extend2.default)({\n sourceDecorator: this.setSourceDecorator,\n targetDecorator: this.setTargetDecorator,\n source: this.setSource,\n target: this.setTarget\n }, setter), (0, _extend2.default)({\n sourceDecorator: this.getSourceDecorator,\n targetDecorator: this.getTargetDecorator,\n source: this.getSource,\n target: this.getTarget\n }, getter));\n },\n\n /**\n * @private\n **/\n disconnect: function disconnect() {\n if (this.sourcePort !== null) {\n this.sourcePort.off(this.moveListener);\n this.sourcePort.connections.remove(this);\n\n // fire the events to all listener\n this.sourcePort.fireEvent(\"disconnect\", { port: this.sourcePort, connection: this });\n if (this.canvas !== null) {\n this.canvas.fireEvent(\"disconnect\", { \"port\": this.sourcePort, \"connection\": this });\n }\n this.sourcePort.onDisconnect(this);\n\n this.fireSourcePortRouteEvent();\n }\n\n if (this.targetPort !== null) {\n this.targetPort.off(this.moveListener);\n this.targetPort.connections.remove(this);\n\n // fire the events to all listener\n this.targetPort.fireEvent(\"disconnect\", { port: this.targetPort, connection: this });\n if (this.canvas !== null) {\n this.canvas.fireEvent(\"disconnect\", { \"port\": this.targetPort, \"connection\": this });\n }\n this.targetPort.onDisconnect(this);\n\n this.fireTargetPortRouteEvent();\n }\n },\n\n /**\n * @private\n **/\n reconnect: function reconnect() {\n if (this.sourcePort !== null) {\n this.sourcePort.on(\"move\", this.moveListener);\n this.sourcePort.connections.add(this);\n\n // fire the events to all listener\n this.sourcePort.fireEvent(\"connect\", { port: this.sourcePort, connection: this });\n if (this.canvas !== null) {\n this.canvas.fireEvent(\"connect\", { \"port\": this.sourcePort, \"connection\": this });\n }\n this.sourcePort.onConnect(this);\n\n this.fireSourcePortRouteEvent();\n }\n\n if (this.targetPort !== null) {\n this.targetPort.on(\"move\", this.moveListener);\n this.targetPort.connections.add(this);\n\n // fire the events to all listener\n this.targetPort.fireEvent(\"connect\", { port: this.targetPort, connection: this });\n if (this.canvas !== null) {\n this.canvas.fireEvent(\"connect\", { \"port\": this.targetPort, \"connection\": this });\n }\n this.targetPort.onConnect(this);\n\n this.fireTargetPortRouteEvent();\n }\n this.routingRequired = true;\n this.repaint();\n },\n\n /**\n * You can't drag&drop the resize handles of a connector.\n *\n * @returns {Boolean}\n **/\n isResizeable: function isResizeable() {\n return this.isDraggable();\n },\n\n /**\n *\n * Add a child figure to the Connection. The hands over figure doesn't support drag&drop\n * operations. It's only a decorator for the connection.<br>\n * Mainly for labels or other fancy decorations :-)\n *\n * @param {draw2d.Figure} child the figure to add as decoration to the connection.\n * @param {draw2d.layout.locator.ConnectionLocator} locator the locator for the child.\n * @param {Number} [index] optional index where to insert the figure\n * @returns {this}\n **/\n add: function add(child, locator, index) {\n // just to ensure the right interface for the locator.\n // The base class needs only 'draw2d.layout.locator.Locator'.\n if (!(locator instanceof _packages2.default.layout.locator.ConnectionLocator)) {\n throw \"Locator must implement the class draw2d.layout.locator.ConnectionLocator\";\n }\n\n this._super(child, locator, index);\n },\n\n /**\n *\n * Set the ConnectionDecorator for this object.\n *\n * @param {draw2d.decoration.connection.Decorator} decorator the new source decorator for the connection\n * @returns {this}\n **/\n setSourceDecorator: function setSourceDecorator(decorator) {\n if (this.sourceDecorator) {\n this.sourceDecorator.setParent(null);\n }\n this.sourceDecorator = decorator;\n this.routingRequired = true;\n this.sourceDecorator.setParent(this);\n if (this.sourceDecoratorNode !== null) {\n this.sourceDecoratorNode.remove();\n this.sourceDecoratorNode = null;\n }\n this.repaint();\n\n return this;\n },\n\n /**\n *\n * Get the current source ConnectionDecorator for this object.\n *\n * @returns draw2d.decoration.connection.Decorator\n **/\n getSourceDecorator: function getSourceDecorator() {\n return this.sourceDecorator;\n },\n\n /**\n *\n * Set the ConnectionDecorator for this object.\n *\n * @param {draw2d.decoration.connection.Decorator} decorator the new target decorator for the connection\n * @returns {this}\n **/\n setTargetDecorator: function setTargetDecorator(decorator) {\n if (this.targetDecorator) {\n this.targetDecorator.setParent(null);\n }\n this.targetDecorator = decorator;\n this.routingRequired = true;\n this.targetDecorator.setParent(this);\n if (this.targetDecoratorNode !== null) {\n this.targetDecoratorNode.remove();\n this.targetDecoratorNode = null;\n }\n this.repaint();\n\n return this;\n },\n\n /**\n *\n * Get the current target ConnectionDecorator for this object.\n *\n * @returns draw2d.decoration.connection.Decorator\n **/\n getTargetDecorator: function getTargetDecorator() {\n return this.targetDecorator;\n },\n\n /**\n *\n * Calculate the path of the polyline.\n *\n * @param {Object} routingHints some helper attributes for the router\n * @param {Boolean} routingHints.startMoved is true if just the start location has moved\n * @param {Boolean} routingHints.destMoved is true if the destination location has changed\n * @private\n */\n calculatePath: function calculatePath(routingHints) {\n\n if (this.sourcePort === null || this.targetPort === null) {\n return this;\n }\n\n this._super(routingHints);\n\n if (this.shape !== null) {\n var z1 = this.sourcePort.getZOrder();\n var z2 = this.targetPort.getZOrder();\n z1 < z2 ? this.toBack(this.sourcePort) : this.toBack(this.targetPort);\n }\n\n return this;\n },\n\n /**\n * @private\n **/\n repaint: function repaint(attributes) {\n var _this2 = this;\n\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n if (this.sourcePort === null || this.targetPort === null) {\n return;\n }\n\n this._super(attributes);\n\n // paint the decorator if any exists\n //\n if (this.targetDecorator !== null && this.targetDecoratorNode === null) {\n this.targetDecoratorNode = this.targetDecorator.paint(this.getCanvas().paper);\n }\n\n if (this.sourceDecorator !== null && this.sourceDecoratorNode === null) {\n this.sourceDecoratorNode = this.sourceDecorator.paint(this.getCanvas().paper);\n }\n\n // translate/transform the decorations to the end/start of the connection\n // and rotate them as well\n //\n if (this.sourceDecoratorNode !== null) {\n var start = this.getVertices().first();\n this.sourceDecoratorNode.transform(\"r\" + this.getStartAngle() + \",\" + start.x + \",\" + start.y + \" t\" + start.x + \",\" + start.y);\n // propagate the color and the opacity to the decoration as well\n this.sourceDecoratorNode.attr({ opacity: this.alpha });\n // apply the color of the connection if the decoration doesn't have any\n if (this.sourceDecorator.getColor() === null) {\n this.sourceDecoratorNode.attr({ \"stroke\": \"#\" + this.lineColor.hex() });\n } else {\n this.sourceDecoratorNode.attr({ \"stroke\": \"#\" + this.sourceDecorator.getColor().hex() });\n }\n this.sourceDecoratorNode.forEach(function (shape) {\n shape.node.setAttribute(\"class\", _this2.cssClass !== null ? _this2.cssClass : \"\");\n });\n }\n\n if (this.targetDecoratorNode !== null) {\n var end = this.getVertices().last();\n this.targetDecoratorNode.transform(\"r\" + this.getEndAngle() + \",\" + end.x + \",\" + end.y + \" t\" + end.x + \",\" + end.y);\n this.targetDecoratorNode.attr({ opacity: this.alpha });\n // apply the color of the connection if the decoration doesn't have any\n if (this.targetDecorator.getColor() === null) {\n this.targetDecoratorNode.attr({ \"stroke\": \"#\" + this.lineColor.hex() });\n } else {\n this.targetDecoratorNode.attr({ \"stroke\": \"#\" + this.targetDecorator.getColor().hex() });\n }\n this.targetDecoratorNode.forEach(function (shape) {\n shape.node.setAttribute(\"class\", _this2.cssClass !== null ? _this2.cssClass : \"\");\n });\n }\n },\n\n /**\n *\n * The x-offset related to the canvas.\n * Didn't provided by a connection. Return always '0'. This is required\n * for children position calculation. (e.g. Label decoration)\n *\n * @returns {Number} the x-offset to the parent figure\n **/\n getAbsoluteX: function getAbsoluteX() {\n return 0;\n },\n\n /**\n *\n * The y-offset related to the canvas.\n * Didn't provided by a connection. Return always '0'. This is required\n * for children position calculation. (e.g. Label decoration)\n *\n * @returns {Number} The y-offset to the parent figure.\n **/\n getAbsoluteY: function getAbsoluteY() {\n return 0;\n },\n\n postProcess: function postProcess(postProcessCache) {\n this.router.postProcess(this, this.getCanvas(), postProcessCache);\n },\n\n /**\n *\n * Don't call them manually. This will be done by the framework.<br>\n * Will be called if the object are moved via drag and drop.\n * Sub classes can override this method to implement additional stuff. Don't forget to call\n * the super implementation via <code>this._super(dx, dy, dx2, dy2);</code>\n * @private\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n **/\n onDrag: function onDrag(dx, dy, dx2, dy2) {\n var _this3 = this;\n\n if (this.command === null) {\n return;\n }\n\n // Delegate the drag&drop operation to the router. The router has\n // all the meta information how to update start/end vertices\n //\n this.router.onDrag(this, dx, dy, dx2, dy2);\n\n this.command.updateVertices(this.getVertices().clone());\n\n // notify all installed policies\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.onDrag(_this3.canvas, _this3);\n }\n });\n\n this.svgPathString = null;\n this.repaint();\n\n // Update the resize handles if the user change the position of the\n // element via an API call.\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this3.canvas, _this3);\n }\n });\n\n this.fireEvent(\"move\", { figure: this, dx: dx, dy: dx });\n },\n\n /**\n *\n * Moves the element so it is the closest to the viewer’s eyes, on top of other elements. Additional\n * the internal model changed as well.\n *\n * Optional: Inserts current object in front of the given one.\n *\n * @param {draw2d.Figure} [figure] move current object in front of the given one.\n * @since 3.0.0\n */\n toFront: function toFront(figure) {\n this._super(figure);\n\n // ensure that the decoration is always in front of the connection\n //\n if (this.shape !== null) {\n if (this.targetDecoratorNode !== null) {\n this.targetDecoratorNode.insertAfter(this.shape);\n }\n if (this.sourceDecoratorNode !== null) {\n this.sourceDecoratorNode.insertAfter(this.shape);\n }\n }\n\n return this;\n },\n\n /**\n *\n * Moves the element to the background. Additional\n * the internal model changed as well.\n *\n * @param {draw2d.Figure} [figure] move this object behind of the 'figure'.\n * @since 4.7.2\n */\n toBack: function toBack(figure) {\n this._super(figure);\n\n if (this.shape !== null) {\n if (this.targetDecoratorNode !== null) {\n this.targetDecoratorNode.insertAfter(this.shape);\n }\n if (this.sourceDecoratorNode !== null) {\n this.sourceDecoratorNode.insertAfter(this.shape);\n }\n }\n\n return this;\n },\n\n /**\n *\n * Return the recalculated position of the start point with the usage of\n * the installed connection anchor locator.\n *\n * @returns {draw2d.geo.Point}\n * @deprecated\n **/\n getStartPoint: function getStartPoint(refPoint) {\n return this.getStartPosition(refPoint);\n },\n\n getStartPosition: function getStartPosition(refPoint) {\n if (this.isMoving === false) {\n if (refPoint) {\n return this.sourcePort.getConnectionAnchorLocation(refPoint, this);\n }\n return this.sourcePort.getConnectionAnchorLocation(this.targetPort.getConnectionAnchorReferencePoint(this), this);\n }\n\n return this._super();\n },\n\n /**\n *\n * Return the recalculated position of the start point with the usage of\n * the installed connection anchor locator.\n *\n * @returns {draw2d.geo.Point}\n * @deprecated\n **/\n getEndPoint: function getEndPoint(refPoint) {\n return this.getEndPosition(refPoint);\n },\n\n getEndPosition: function getEndPosition(refPoint) {\n if (this.isMoving === false) {\n if (refPoint) {\n return this.targetPort.getConnectionAnchorLocation(refPoint, this);\n }\n return this.targetPort.getConnectionAnchorLocation(this.sourcePort.getConnectionAnchorReferencePoint(this), this);\n }\n\n return this._super();\n },\n\n /**\n *\n * Set the new source port of this connection. This enforce a repaint of the connection.\n *\n * @param {draw2d.Port} port The new source port of this connection.\n *\n **/\n setSource: function setSource(port) {\n if (this.sourcePort !== null) {\n this.sourcePort.off(this.moveListener);\n this.sourcePort.connections.remove(this);\n this.sourcePort.fireEvent(\"disconnect\", { port: this.sourcePort, connection: this });\n // it is possible that a connection has already a port but is not assigned to\n // a canvas. In this case we must check if the canvas set correct before we fire this event\n if (this.canvas !== null) {\n this.canvas.fireEvent(\"disconnect\", { \"port\": this.sourcePort, \"connection\": this });\n }\n this.sourcePort.onDisconnect(this);\n }\n\n this.sourcePort = port;\n if (this.sourcePort === null) {\n return;\n }\n\n this.routingRequired = true;\n this.fireSourcePortRouteEvent();\n this.sourcePort.connections.add(this);\n this.sourcePort.on(\"move\", this.moveListener);\n if (this.canvas !== null) {\n this.canvas.fireEvent(\"connect\", { \"port\": this.sourcePort, \"connection\": this });\n }\n this.sourcePort.fireEvent(\"connect\", { port: this.sourcePort, connection: this });\n this.sourcePort.onConnect(this);\n\n this.setStartPoint(port.getAbsoluteX(), port.getAbsoluteY());\n this.fireEvent(\"connect\", { \"port\": this.sourcePort, \"connection\": this });\n },\n\n /**\n *\n * Returns the source port of this connection.\n *\n * @returns {draw2d.Port}\n **/\n getSource: function getSource() {\n return this.sourcePort;\n },\n\n /**\n *\n * Set the target port of this connection. This enforce a repaint of the connection.\n *\n * @param {draw2d.Port} port The new target port of this connection\n **/\n setTarget: function setTarget(port) {\n if (this.targetPort !== null) {\n this.targetPort.off(this.moveListener);\n this.targetPort.connections.remove(this);\n this.targetPort.fireEvent(\"disconnect\", { port: this.targetPort, connection: this });\n // it is possible that a connection has already a port but is not assigned to\n // a canvas. In this case we must check if the canvas set correct before we fire this event\n if (this.canvas !== null) {\n this.canvas.fireEvent(\"disconnect\", { \"port\": this.targetPort, \"connection\": this });\n }\n this.targetPort.onDisconnect(this);\n }\n\n this.targetPort = port;\n if (this.targetPort === null) {\n return;\n }\n\n this.routingRequired = true;\n this.fireTargetPortRouteEvent();\n this.targetPort.connections.add(this);\n this.targetPort.on(\"move\", this.moveListener);\n if (this.canvas !== null) {\n this.canvas.fireEvent(\"connect\", { \"port\": this.targetPort, \"connection\": this });\n }\n this.targetPort.fireEvent(\"connect\", { port: this.targetPort, connection: this });\n this.targetPort.onConnect(this);\n\n this.setEndPoint(port.getAbsoluteX(), port.getAbsoluteY());\n this.fireEvent(\"connect\", { \"port\": this.targetPort, \"connection\": this });\n },\n\n /**\n *\n * Returns the target port of this connection.\n *\n * @returns {draw2d.Port}\n **/\n getTarget: function getTarget() {\n return this.targetPort;\n },\n\n /**\n *\n * Method returns true if the connection has at least one common draw2d.Port with the given connection.\n *\n * @param {draw2d.Connection} other\n *\n * @returns {Boolean}\n */\n sharingPorts: function sharingPorts(other) {\n return this.sourcePort == other.sourcePort || this.sourcePort == other.targetPort || this.targetPort == other.sourcePort || this.targetPort == other.targetPort;\n },\n\n /**\n *\n * Set the canvas element of this figures.\n *\n * @param {draw2d.Canvas} canvas the new parent of the figure or null\n */\n setCanvas: function setCanvas(canvas) {\n if (this.canvas === canvas) {\n return; // nothing to do\n }\n\n var notiCanvas = this.canvas == null ? canvas : this.canvas;\n\n this._super(canvas);\n\n if (this.sourceDecoratorNode !== null) {\n this.sourceDecoratorNode.remove();\n this.sourceDecoratorNode = null;\n }\n\n if (this.targetDecoratorNode !== null) {\n this.targetDecoratorNode.remove();\n this.targetDecoratorNode = null;\n }\n\n if (this.canvas === null) {\n if (this.sourcePort !== null) {\n this.sourcePort.off(this.moveListener);\n notiCanvas.fireEvent(\"disconnect\", { \"port\": this.sourcePort, \"connection\": this });\n this.sourcePort.onDisconnect(this);\n }\n if (this.targetPort !== null) {\n this.targetPort.off(this.moveListener);\n notiCanvas.fireEvent(\"disconnect\", { \"port\": this.targetPort, \"connection\": this });\n this.targetPort.onDisconnect(this);\n }\n } else {\n\n if (this.sourcePort !== null) {\n this.sourcePort.on(\"move\", this.moveListener);\n this.canvas.fireEvent(\"connect\", { \"port\": this.sourcePort, \"connection\": this });\n this.sourcePort.onConnect(this);\n }\n if (this.targetPort !== null) {\n this.targetPort.on(\"move\", this.moveListener);\n this.canvas.fireEvent(\"connect\", { \"port\": this.targetPort, \"connection\": this });\n this.targetPort.onConnect(this);\n }\n }\n },\n\n /**\n * Returns the angle of the connection at the output port (source)\n *\n **/\n getStartAngle: function getStartAngle() {\n // return a good default value if the connection is not routed at the\n // moment\n if (this.lineSegments.getSize() === 0) {\n return 0;\n }\n\n var p1 = this.lineSegments.get(0).start;\n var p2 = this.lineSegments.get(0).end;\n if (this.router instanceof _packages2.default.layout.connection.SplineConnectionRouter) {\n p2 = this.lineSegments.get(5).end;\n }\n var length = Math.sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y));\n var angle = -(180 / Math.PI) * Math.asin((p1.y - p2.y) / length);\n\n if (angle < 0) {\n if (p2.x < p1.x) {\n angle = Math.abs(angle) + 180;\n } else {\n angle = 360 - Math.abs(angle);\n }\n } else {\n if (p2.x < p1.x) {\n angle = 180 - angle;\n }\n }\n return angle;\n },\n\n getEndAngle: function getEndAngle() {\n // return a good default value if the connection is not routed at the\n // moment\n if (this.lineSegments.getSize() === 0) {\n return 90;\n }\n\n var p1 = this.lineSegments.get(this.lineSegments.getSize() - 1).end;\n var p2 = this.lineSegments.get(this.lineSegments.getSize() - 1).start;\n if (this.router instanceof _packages2.default.layout.connection.SplineConnectionRouter) {\n p2 = this.lineSegments.get(this.lineSegments.getSize() - 5).end;\n }\n var length = Math.sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y));\n var angle = -(180 / Math.PI) * Math.asin((p1.y - p2.y) / length);\n\n if (angle < 0) {\n if (p2.x < p1.x) {\n angle = Math.abs(angle) + 180;\n } else {\n angle = 360 - Math.abs(angle);\n }\n } else {\n if (p2.x < p1.x) {\n angle = 180 - angle;\n }\n }\n return angle;\n },\n\n /**\n * @private\n **/\n fireSourcePortRouteEvent: function fireSourcePortRouteEvent() {\n this.sourcePort.getConnections().each(function (i, conn) {\n conn.routingRequired = true;\n conn.repaint();\n });\n },\n\n /**\n * @private\n **/\n fireTargetPortRouteEvent: function fireTargetPortRouteEvent() {\n // enforce a repaint of all connections which are related to this port\n // this is required for a \"FanConnectionRouter\" or \"ShortesPathConnectionRouter\"\n //\n this.targetPort.getConnections().each(function (i, conn) {\n conn.routingRequired = true;\n conn.repaint();\n });\n },\n\n /**\n *\n * Returns the Command to perform the specified Request or null.\n *\n * @param {draw2d.command.CommandType} request describes the Command being requested\n *\n * @returns {draw2d.command.Command} null or a Command\n **/\n createCommand: function createCommand(request) {\n if (request.getPolicy() === _packages2.default.command.CommandType.MOVE) {\n if (this.isDraggable()) {\n return new _packages2.default.command.CommandMoveVertices(this);\n }\n }\n\n if (request.getPolicy() === _packages2.default.command.CommandType.MOVE_BASEPOINT) {\n // DragDrop of a connection doesn't create a undo command at this point. This will be done in\n // the onDrop method\n return new _packages2.default.command.CommandReconnect(this);\n }\n\n return this._super(request);\n },\n\n /**\n *\n * Return an objects with all important attributes for XML or JSON serialization\n *\n * @returns {Object}\n */\n getPersistentAttributes: function getPersistentAttributes() {\n var memento = this._super();\n\n var parentNode = this.getSource().getParent();\n while (parentNode.getParent() !== null) {\n parentNode = parentNode.getParent();\n }\n memento.source = {\n node: parentNode.getId(),\n port: this.getSource().getName()\n };\n\n parentNode = this.getTarget().getParent();\n while (parentNode.getParent() !== null) {\n parentNode = parentNode.getParent();\n }\n memento.target = {\n node: parentNode.getId(),\n port: this.getTarget().getName()\n };\n\n if (this.sourceDecorator !== null) {\n memento.source.decoration = this.sourceDecorator.NAME;\n }\n\n if (this.targetDecorator !== null) {\n memento.target.decoration = this.targetDecorator.NAME;\n }\n\n return memento;\n },\n\n /**\n *\n * Read all attributes from the serialized properties and transfer them into the shape.\n *\n * @param {Object} memento\n * @returns {this}\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n\n // nothing to to for the connection creation. This will be done in the draw2d.io.Reader\n // implementation\n //\n // restore your custom attributes here\n if (typeof memento.target.decoration !== \"undefined\" && memento.target.decoration != null) {\n this.setTargetDecorator(eval(\"new \" + memento.target.decoration));\n }\n\n if (typeof memento.source.decoration !== \"undefined\" && memento.source.decoration != null) {\n this.setSourceDecorator(eval(\"new \" + memento.source.decoration));\n }\n\n return this;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/Figure.js\":\n/*!***********************!*\\\n !*** ./src/Figure.js ***!\n \\***********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _JSONUtil = __webpack_require__(/*! util/JSONUtil */ \"./src/util/JSONUtil.js\");\n\nvar _JSONUtil2 = _interopRequireDefault(_JSONUtil);\n\nvar _UUID = __webpack_require__(/*! util/UUID */ \"./src/util/UUID.js\");\n\nvar _UUID2 = _interopRequireDefault(_UUID);\n\nvar _extend = __webpack_require__(/*! util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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 _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n/**\n * @class\n * Base class for all draw2d shapes-\n *\n */\n_packages2.default.Figure = Class.extend(\n/** @lends draw2d.Figure.prototype */\n{\n NAME: \"draw2d.Figure\",\n MIN_TIMER_INTERVAL: 50, // minimum timer interval in milliseconds\n\n /**\n * Creates a new Figure object\n *\n * @param attr\n * @param setter\n * @param getter\n */\n init: function init(attr, setter, getter) {\n var _this2 = this;\n\n // @private\n this.setterWhitelist = (0, _extend2.default)({\n // id the unique id of the figure\n id: this.setId,\n // x the x offset of the figure in relation to the parent figure or canvas\n x: this.setX,\n // y the y offset of the figure in relation to the parent figure or canvas\n y: this.setY,\n // width the new width of the figure. Considering the minWidth of the shape\n width: this.setWidth,\n // height the new height of the figure. Considering the minHeight of the shape\n height: this.setHeight,\n // boundingBox set the new bounding box of the shape\n boundingBox: this.setBoundingBox,\n // minWidth the new min width of the figure.\n minWidth: this.setMinWidth,\n // minHeight the new min height of the figure.\n minHeight: this.setMinHeight,\n // cssClass the css class of the shape. can be used to style the shape via CSS3 (SVG only)\n cssClass: this.setCssClass,\n // userData additional custom data which can be stored by the shape\n userData: this.setUserData,\n // draggable drives the dragging behaviour of the shape\n draggable: this.setDraggable,\n // resizeable drives the resizeable behaviour of the shape\n resizeable: this.setResizeable,\n // selectable drives the selectable behaviour of the shape\n selectable: this.setSelectable,\n // angle the rotation angle of the shape. At the moment only 90 degree increments are possible\n angle: this.setRotationAngle,\n // alpha the the alpha/opacity of the shape. value must be between [0..1]\n alpha: this.setAlpha,\n // opacity the the alpha/opacity of the shape. value must be between [0..1]\n opacity: this.setAlpha,\n // glow the glow flag for the shape. The representation of the \"glow\" depends on the shape\n glow: this.setGlow,\n // visible set the visibility flag of the shape\n visible: this.setVisible,\n // keepAspectRatio indicate if the shape should keep the aspect ratio during resize\n keepAspectRatio: this.setKeepAspectRatio\n }, setter);\n\n this.getterWhitelist = (0, _extend2.default)({\n id: this.getId,\n visible: this.isVisible,\n angle: this.getRotationAngle,\n x: this.getX,\n y: this.getY,\n userData: this.getUserData,\n width: this.getWidth,\n height: this.getHeight,\n draggable: this.isDraggable,\n resizeable: this.isResizeable,\n selectable: this.isSelectable,\n alpha: this.getAlpha,\n opacity: this.getAlpha\n }, getter);\n\n // all figures has an unique id. Required for figure get and persistence storage\n this.id = _UUID2.default.create();\n\n // required for the SelectionEditPolicy to indicate the type of figure\n // which the user clicks\n this.isResizeHandle = false;\n\n // for undo/redo operation. It holds the command during a drag/drop operation\n // and execute it on the CommandStack if the user drop the figure.\n this.command = null;\n\n // the assigned canvas\n this.canvas = null;\n\n // the RaphaelJS element reference\n this.shape = null;\n\n // possible decorations ( e.g. a Label) of the Connection\n // children are fixed bounded the figure. Most of the events of the child will bee\n // routed to the parent\n this.children = new _packages2.default.util.ArrayList();\n\n // behavior flags\n //\n this.selectable = true;\n this.deleteable = true;\n this.resizeable = true;\n this.draggable = true;\n this.visible = true;\n // since 4.1.0.\n this.keepAspectRatio = false;\n\n this.canSnapToHelper = true;\n this.snapToGridAnchor = new _packages2.default.geo.Point(0, 0); // hot spot for snap to grid\n this.editPolicy = new _packages2.default.util.ArrayList();\n\n // timer for animation or automatic update\n //\n this.timerId = -1;\n this.timerInterval = 0;\n\n // possible parent of the figure.\n // @see: this.children\n this.parent = null;\n\n // a figure can be part of a StrongComposite like a group, ...\n //\n this.composite = null;\n\n // generic handle for the JSON read/write of user defined data\n this.userData = null;\n\n // appearance, position and dim properties\n //\n this.x = 0;\n this.y = 0;\n this.minHeight = 5;\n this.minWidth = 5;\n this.rotationAngle = 0;\n // add the name of the class to the css attribute\n this.cssClass = this.NAME.replace(new RegExp(\"[.]\", \"g\"), \"_\");\n\n this.width = this.getMinWidth();\n this.height = this.getMinHeight();\n\n this.alpha = 1.0;\n\n // internal status flags for the Drag&Drop operation handling and other stuff\n //\n this.isInDragDrop = false;\n\n this.ox = 0;\n this.oy = 0;\n this.repaintBlocked = false;\n this.lastAppliedAttributes = {};\n this.selectionHandles = new _packages2.default.util.ArrayList();\n this.panningDelegate = null;\n\n // even handling since version 5.0.0\n this.eventSubscriptions = {};\n\n this.relocateChildrenEventCallback = function () {\n _this2.children.each(function (i, e) {\n e.locator.relocate(i, e.figure);\n });\n };\n\n // new approach to delegate selection requests.\n //\n this.defaultSelectionAdapter = this.selectionAdapter = function () {\n return _this2;\n };\n\n // install default selection handler. Can be overridden or replaced\n this.installEditPolicy(new _packages2.default.policy.figure.RectangleSelectionFeedbackPolicy());\n\n // the new style attr call with object attributes\n this.attr(attr);\n },\n\n /**\n *\n * Read or set shape attributes.<br>\n * When no value is given, reads specified attribute from the element.<br>\n * When value is given, sets the attribute to that value.\n * Multiple attributes can be set by passing an object with name-value pairs.\n *\n * let figure = new draw2d.shape.basic.Rectangle();\n * figure.attr('x'); //=> read value\n * figure.attr('x', 30); //=> set value\n *\n * // multiple attributes:\n * figure.attr({\n * x: 30,\n * y: 40,\n * width : 200,\n * height: 50,\n * cssClass: \"red_border_figure\"\n * });\n *\n * // it is possible to override any method of the figure as well\n * // Instead of inheritance you can just override the callback methods\n * // like\n * //\n * figure.attr({\n * onClick : function(){\n * alert(\"click\");\n * }\n * });\n *\n * // or you can pass the attr values in the constructor\n * //\n * let clickFigure = new draw2d.shape.basic.Rectangle({\n * onClick : function(){\n * alert(\"click\");\n * }\n * });\n *\n *\n * Additional you can set the user defined values (userData) with this method\n * using the dot-notation. User defined values are always part of the exported\n * JSON data.\n *\n * // setting multiple attributes:\n * figure.attr({\n * \"userData.my.property.x\": 30,\n * \"userData.my.property.y\": 40\n * });\n *\n * Also set using array notation is possible for the userData:\n *\n * // dot notation and array brackets:\n * figure.attr({\n * \"userData.my.names[0]\": \"John\",\n * \"userData.my.names[1]\": \"Doe\"\n * });\n *\n *\n * The Object returned should be the equivalent structured object:\n *\n * let obj = figure.getUserData();\n *\n * That is, where obj is equivalent to:\n *\n * let obj = {\n * my:{\n * property:{\n * x: 30,\n * y: 40\n * },\n * names: [\"John\", \"Doe\"]\n * }\n * };\n *\n *\n *\n * @param {String/Object} name\n * @param {Object} [value]\n * @since 5.0.1\n * @experimental\n * @returns {Object} either the requested attribute if this method used as getter or `this` if the method uses as setter\n **/\n attr: function attr(name, value) {\n var _this = this;\n var orig = this.repaintBlocked;\n\n try {\n // call of attr as setter method with {name1:val1, name2:val2 } argument list\n //\n if ($.isPlainObject(name)) {\n for (var key in name) {\n // user can set the \"userData\" with path notation. In this case we\n // expand the path to a real JSON object and set the data.\n // index/brackets are allowed too.\n //\n if (key.substring(0, 9) === \"userData.\") {\n if (this.userData === null) {\n this.userData = {};\n }\n _JSONUtil2.default.set({ userData: this.userData }, key, name[key]);\n this.fireEvent(\"change:\" + key, { value: name[key] });\n } else {\n var func = this.setterWhitelist[key];\n var param = name[key];\n if (func && param !== undefined) {\n func.call(this, param);\n }\n // maybe the user adds a function as property to the attr call\n // e.g.:\n // {\n // doIt: function(){}\n // }\n //\n // in this case we assign the method to this object and wrap it with \"this\" as context\n // a very, very simple method to replace default implemenations of the object\n else if (typeof name[key] === \"function\") {\n this[key] = param.bind(this);\n }\n }\n }\n } else if (typeof name === \"string\") {\n // call attr as getter\n //\n if (typeof value === \"undefined\") {\n var getter = this.getterWhitelist[name];\n if (typeof getter === \"function\") {\n return getter.call(this);\n }\n // or it is a userData path notation like \"userData.any.path.value\"\n else if (name.substring(0, 9) === \"userData.\") {\n var data = { userData: this.userData };\n return _JSONUtil2.default.get(data, name);\n }\n return; // undefined\n }\n // call attr as simple setter with (key , value)\n //\n\n // the value can be a function. In this case we must call the value().\n if (typeof value === \"function\") {\n value = value();\n }\n if (name.substring(0, 9) === \"userData.\") {\n if (this.userData === null) {\n this.userData = {};\n }\n _JSONUtil2.default.set({ userData: this.userData }, name, value);\n this.fireEvent(\"change:\" + name, { value: value });\n } else {\n var setter = this.setterWhitelist[name];\n if (setter) {\n setter.call(this, value);\n }\n }\n }\n // may it is a array of attributes used for the getter\n //\n else if (Array.isArray(name)) {\n return Object.assign.apply(Object, [{}].concat(_toConsumableArray(Object.keys(name).map(function (k) {\n return _defineProperty({}, k, _this.attr(k));\n }))));\n }\n // generic getter of all registered attributes\n else if (typeof name === \"undefined\") {\n var result = {};\n for (var _key in this.getterWhitelist) {\n result[_key] = this.getterWhitelist[_key].call(this);\n }\n return result;\n }\n } finally {\n this.repaintBlocked = orig;\n }\n // this.repaint();\n\n return this;\n },\n\n /**\n * Return a copy of the object, filtered to only have values for the whitelisted keys.\n * @deprecated\n */\n pick: function pick(obj, var_keys) {\n var keys = typeof arguments[1] !== 'string' ? arguments[1] : Array.prototype.slice.call(arguments, 1);\n var out = {},\n key = void 0;\n for (key in keys) {\n if (typeof obj[key] !== \"undefined\") out[key] = obj[key];\n }\n return out;\n },\n\n /**\n *\n * Add the figure to the current selection and propagate this to all edit policies.\n *\n * @param {Boolean} [asPrimarySelection] true if the element should be the primary selection\n * @private\n */\n select: function select(asPrimarySelection) {\n if (typeof asPrimarySelection === \"undefined\") {\n asPrimarySelection = true;\n }\n\n // apply all EditPolicy for select Operations\n //\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.SelectionPolicy) {\n e.onSelect(_this.canvas, _this, asPrimarySelection);\n }\n });\n\n if (this.canvas !== null) {\n this.canvas.getSelection().add(this);\n }\n\n this.fireEvent(\"select\", { figure: this });\n\n return this;\n },\n\n /**\n *\n * Unselect the figure and propagete this event to all edit policies.\n *\n * @private\n **/\n unselect: function unselect() {\n var _this = this;\n // apply all EditPolicy for select Operations\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.SelectionPolicy) {\n e.onUnselect(_this.canvas, _this);\n }\n });\n\n if (this.canvas !== null) {\n this.canvas.getSelection().remove(this);\n }\n\n this.fireEvent(\"unselect\", { figure: this });\n return this;\n },\n\n /**\n *\n * Returns a function which returns the the figure which must handle the selection handling.\n *\n * @param {Function} [adapter] function which returns the figure which handles the selection handling\n */\n setSelectionAdapter: function setSelectionAdapter(adapter) {\n if (adapter == null) {\n this.selectionAdapter = this.defaultSelectionAdapter;\n } else {\n this.selectionAdapter = adapter;\n }\n\n return this;\n },\n\n /**\n *\n *\n * @returns {Function}\n */\n getSelectionAdapter: function getSelectionAdapter() {\n return this.selectionAdapter;\n },\n\n /**\n *\n * Returns true if the figure part of the current canvas selection.\n *\n * @since 5.5.6\n *\n * @returns {Boolean}\n */\n isSelected: function isSelected() {\n if (this.canvas !== null) {\n return this.canvas.getSelection().contains(this);\n }\n\n return false;\n },\n\n /**\n *\n * Allows a user to attach (or remove) data to an element, without needing to create a custom figure or shape.\n * The data must be a valid JSON object.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * userData: object\n * });\n *\n * @since 2.7.2\n * @param {Object} object\n */\n setUserData: function setUserData(object) {\n this.userData = object;\n this.fireEvent(\"change:userData\", { value: object });\n return this;\n },\n\n /**\n *\n * Returns any user data set previously on the given figure by setUserData.\n *\n * @since 2.7.2\n * @returns {Object}\n */\n getUserData: function getUserData() {\n return this.userData;\n },\n\n /**\n *\n * Return the UUID of this element.\n *\n * @returns {String}\n */\n getId: function getId() {\n return this.id;\n },\n\n /**\n *\n * Set the id of this element.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * id: newId\n * });\n *\n * @param {String} newId the new id for this figure\n */\n setId: function setId(newId) {\n this.id = newId;\n\n return this;\n },\n\n /**\n *\n * Return the css styling class name of the element.\n *\n *\n * @returns {String}\n */\n getCssClass: function getCssClass() {\n return this.cssClass;\n },\n\n /**\n *\n * Set the css class of the node.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * \"cssClass\": \"red_border_figure\"\n * });\n *\n * @param {String} cssClass the new css class name of the node\n * @since 2.9.0\n */\n setCssClass: function setCssClass(cssClass) {\n this.cssClass = cssClass === null ? null : cssClass.trim();\n\n if (this.shape === null) {\n return this;\n }\n\n if (this.cssClass === null) {\n this.shape.node.removeAttribute(\"class\");\n } else {\n this.shape.node.setAttribute(\"class\", this.cssClass);\n }\n this.fireEvent(\"change:cssClass\", { value: this.cssClass });\n\n return this;\n },\n\n /**\n *\n * The method will return true if the class is assigned to the element, even if other classes also are.\n *\n * @param {String} className the class name to check\n * @since 2.9.0\n */\n hasCssClass: function hasCssClass(className) {\n if (this.cssClass === null) {\n return false;\n }\n\n return new RegExp(' ' + className.trim() + ' ').test(' ' + this.cssClass + ' ');\n },\n\n /**\n *\n * Add a CSS class to the figure.<br>\n * It's important to note that this method does not replace a class. It simply adds the class,\n * appending it to any which may already be assigned to the elements.\n *\n * @param {String} className\n * @since 2.9.0\n */\n addCssClass: function addCssClass(className) {\n className = className.trim();\n if (!this.hasCssClass(className)) {\n if (this.cssClass === null) {\n this.setCssClass(className);\n } else {\n this.setCssClass(this.cssClass + ' ' + className);\n }\n this.fireEvent(\"change:cssClass\", { value: this.cssClass });\n }\n\n return this;\n },\n\n /**\n *\n *\n * Remove the given css class name from the figure\n *\n * @param {String} className the css class name to add\n */\n removeCssClass: function removeCssClass(className) {\n className = className.trim();\n var newClass = ' ' + this.cssClass.replace(/[\\t\\r\\n]/g, ' ') + ' ';\n if (this.hasCssClass(className)) {\n while (newClass.indexOf(' ' + className + ' ') >= 0) {\n newClass = newClass.replace(' ' + className + ' ', ' ');\n }\n this.setCssClass(newClass.replace(/^\\s+|\\s+$/g, ''));\n this.fireEvent(\"change:cssClass\", { value: this.cssClass });\n }\n\n return this;\n },\n\n /**\n *\n *\n * Add or remove the given css class name from the figure\n *\n * @param {String} className the class name to toggle\n */\n toggleCssClass: function toggleCssClass(className) {\n className = className.trim();\n var newClass = ' ' + this.cssClass.replace(/[\\t\\r\\n]/g, ' ') + ' ';\n if (this.hasCssClass(className)) {\n while (newClass.indexOf(' ' + className + ' ') >= 0) {\n newClass = newClass.replace(' ' + className + ' ', ' ');\n }\n this.setCssClass(newClass.replace(/^\\s+|\\s+$/g, ''));\n } else {\n this.setCssClass(this.cssClass + ' ' + className);\n }\n this.fireEvent(\"change:cssClass\", { value: this.cssClass });\n\n return this;\n },\n\n /**\n *\n * Set the canvas element of this figures. This can be used to determine whenever an element\n * is added or removed to the canvas.\n *\n * @param {draw2d.Canvas} canvas the new parent of the figure or null\n */\n setCanvas: function setCanvas(canvas) {\n // remove the shape if we reset the canvas and the element\n // was already drawn\n if (canvas === null && this.shape !== null) {\n if (this.isSelected()) {\n this.unselect();\n }\n this.shape.remove();\n this.shape = null;\n }\n\n this.canvas = canvas;\n\n if (this.canvas !== null) {\n this.getShapeElement();\n }\n\n // reset the attribute cache. We must start by paint all attributes\n //\n this.lastAppliedAttributes = {};\n\n if (canvas === null) {\n this.stopTimer();\n } else {\n if (this.timerInterval >= this.MIN_TIMER_INTERVAL) {\n this.startTimer(this.timerInterval);\n }\n }\n\n this.children.each(function (i, e) {\n e.figure.setCanvas(canvas);\n });\n\n return this;\n },\n\n /**\n *\n * Return the current assigned canvas container.\n *\n * @returns {draw2d.Canvas}\n */\n getCanvas: function getCanvas() {\n return this.canvas;\n },\n\n /**\n *\n * Start a timer which calls the onTimer method in the given interval.\n *\n * @param {Number} milliSeconds\n */\n startTimer: function startTimer(milliSeconds) {\n var _this3 = this;\n\n this.stopTimer();\n this.timerInterval = Math.max(this.MIN_TIMER_INTERVAL, milliSeconds);\n\n if (this.canvas !== null) {\n this.timerId = window.setInterval(function () {\n _this3.onTimer();\n _this3.fireEvent(\"timer\");\n }, this.timerInterval);\n }\n\n return this;\n },\n\n /**\n *\n * Stop the internal timer.\n *\n */\n stopTimer: function stopTimer() {\n if (this.timerId >= 0) {\n window.clearInterval(this.timerId);\n this.timerId = -1;\n }\n\n return this;\n },\n\n /**\n *\n * Callback method for the internal timer handling<br>\n * Inherit classes must override this method if they want use the timer feature.\n *\n * // Alternatively you can register for this event with\n * figure.on(\"timer\", function(emitter){\n * alert(\"timer fired\");\n * });\n *\n * @template\n */\n onTimer: function onTimer() {},\n\n /**\n *\n * Moves the element so it is the closest to the viewer’s eyes, on top of other elements. Additional\n * the internal model changed as well.\n *\n * Optional: Inserts current object in front of the given one.\n *\n * @param {draw2d.Figure} [figure] move current object in front of the given one.\n * @since 3.0.0\n */\n toFront: function toFront(figure) {\n var _this4 = this;\n\n // ensure that the z-oder is still correct if the figure is assigned\n // to a StrongComposite\n //\n if (this.composite instanceof _packages2.default.shape.composite.StrongComposite && typeof figure !== \"undefined\") {\n var indexFigure = figure.getZOrder();\n var indexComposite = this.composite.getZOrder();\n if (indexFigure < indexComposite) {\n figure = this.composite;\n }\n }\n\n if (typeof figure === \"undefined\") {\n this.getShapeElement().toFront();\n\n if (this.canvas !== null) {\n var figures = this.canvas.getFigures();\n var lines = this.canvas.getLines();\n if (figures.remove(this) !== null) {\n figures.add(this);\n } else if (lines.remove(this) !== null) {\n lines.add(this);\n }\n }\n } else {\n this.getShapeElement().insertAfter(figure.getTopLevelShapeElement());\n\n if (this.canvas !== null) {\n var _figures = this.canvas.getFigures();\n var _lines = this.canvas.getLines();\n if (_figures.remove(this) !== null) {\n var index = _figures.indexOf(figure);\n _figures.insertElementAt(this, index + 1);\n } else if (_lines.remove(this) !== null) {\n _lines.add(this);\n }\n }\n }\n\n // bring all children in front of the parent\n this.children.each(function (i, child) {\n child.figure.toFront(_this4);\n });\n\n // and last but not lease the ResizeHandles if any present\n //\n this.selectionHandles.each(function (i, handle) {\n handle.toFront();\n });\n\n return this;\n },\n\n /**\n *\n * Moves the element to the background. Additional\n * the internal model changed as well.\n *\n * @since 4.7.2\n */\n toBack: function toBack(figure) {\n // it is not allowed that a figure is behind an assigned composite\n //\n if (this.composite instanceof _packages2.default.shape.composite.StrongComposite) {\n this.toFront(this.composite);\n return;\n }\n\n if (this.canvas !== null) {\n var figures = this.canvas.getFigures();\n var lines = this.canvas.getLines();\n if (figures.remove(this) !== null) {\n figures.insertElementAt(this, 0);\n } else if (lines.remove(this) !== null) {\n lines.insertElementAt(this, 0);\n }\n if (typeof figure !== \"undefined\") {\n this.getShapeElement().insertBefore(figure.getShapeElement());\n } else {\n this.getShapeElement().toBack();\n }\n }\n\n // Bring all children in front of \"this\" figure\n //\n var _this = this;\n this.children.each(function (i, child) {\n child.figure.toFront(_this);\n }, true);\n\n return this;\n },\n\n /**\n *\n * Install a new edit policy to the figure. Each editpolicy is able to focus on a single editing\n * task or group of related tasks. This also allows editing behavior to be selectively reused across\n * different figure implementations. Also, behavior can change dynamically, such as when the layouts\n * or routing methods change.\n *\n * Example for limited DragDrop behavior can be a draw2d.layout.constraint.RegionConstriantPolicy.\n *\n * @param {draw2d.policy.EditPolicy} policy\n */\n installEditPolicy: function installEditPolicy(policy) {\n var _this5 = this;\n\n // it is only possible to install one SelectionFeedbackPolicy at once\n //\n if (policy instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy) {\n this.editPolicy.grep(function (p) {\n var stay = !(p instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy);\n if (!stay) {\n p.onUninstall(_this5);\n }\n return stay;\n });\n }\n\n // It is only allowed to install a policy of the same type once\n //\n this.editPolicy.grep(function (p) {\n var stay = p.__proto__ !== policy.__proto__;\n if (!stay) {\n p.onUninstall(_this5);\n }\n return stay;\n });\n\n policy.onInstall(this);\n this.editPolicy.add(policy);\n\n return this;\n },\n\n /**\n *\n *\n * UnInstall the edit policy from the figure. Either the instance itself if found\n * or all kind of the given edit policies.\n *\n *\n * @param {draw2d.policy.EditPolicy} policy\n * @since 4.81\n */\n uninstallEditPolicy: function uninstallEditPolicy(policy) {\n var removedPolicy = this.editPolicy.remove(policy);\n\n // we found the policy and we are happy\n //\n if (removedPolicy !== null) {\n removedPolicy.onUninstall(this);\n return;\n }\n\n // The policy isn'T part of the figure. In this case we \"think\" the user want\n // deinstall all instances of the policy\n //\n var _this = this;\n var name = typeof policy === \"string\" ? policy : policy.NAME;\n this.editPolicy.grep(function (p) {\n if (p.NAME === name) {\n p.onUninstall(_this);\n return false;\n }\n return true;\n });\n },\n\n /**\n * Add a child figure to the figure. The hands over figure doesn't support drag&drop\n * operations. It's only a decorator for the connection.<br>\n * Mainly for labels or other decorations\n *\n *\n * let start = new draw2d.shape.node.Start({x:80, y:150});\n * start.add(new draw2d.shape.basic.Label({text:\"Test Label\"}), new draw2d.layout.locator.TopLocator());\n *\n * canvas.add( start);\n *\n *\n * @param {draw2d.Figure} child the figure to add as decoration to the connection.\n * @param {draw2d.layout.locator.Locator} locator the locator for the child.\n * @param {Number} [index] optional index where to insert the figure\n * @returns {this}\n **/\n add: function add(child, locator, index) {\n if (typeof locator === \"undefined\" || locator === null) {\n throw \"Second parameter 'locator' is required for method 'Figure#add'\";\n }\n\n // the child is now a slave of the parent\n //\n child.setParent(this);\n\n // inform the locator that a new child is bounded to the parent\n // The call must happen after parent assignment. Reason: the locator\n // can override some behaviours which are propagated from the parent.\n //\n locator.bind(this, child);\n\n child.on(\"resize\", this.relocateChildrenEventCallback);\n\n if (!isNaN(parseInt(index))) {\n this.children.insertElementAt({ figure: child, locator: locator }, index);\n } else {\n this.children.add({ figure: child, locator: locator });\n }\n\n if (this.canvas !== null) {\n child.setCanvas(this.canvas);\n }\n\n this.repaint();\n\n return this;\n },\n\n /**\n *\n * Remove the child figure from this figure and the canvas\n *\n * @param {draw2d.Figure} child the figure to remove.\n *\n * @returns {Object} the removed tupple of figure/locator or null if the child isn't found\n * @returns {draw2d.Figure} return.figure The removed figure\n * @returns {draw2d.shape.layout.Layout} return.locator The used locator of the figure\n *\n * @since 5.0.0\n **/\n remove: function remove(child) {\n if (typeof child === \"undefined\" || child === null) {\n debug.warn(\"The parameter child is required for Figure.remove\");\n return null;\n }\n\n var removed = null;\n this.children.grep(function (e) {\n var stay = e.figure !== child;\n if (!stay) {\n removed = e;\n }\n return stay;\n });\n\n if (removed !== null) {\n child.setParent(null);\n child.setCanvas(null);\n removed.locator.unbind(this, child);\n child.off(this.relocateChildrenEventCallback);\n\n this.repaint();\n return removed;\n }\n\n return null;\n },\n\n /**\n *\n * Return all children/decorations of this shape which has been added with\n * draw2d.Figure.add\n *\n * @returns {draw2d.util.ArrayList}\n */\n getChildren: function getChildren() {\n return this.children.clone().map(function (e) {\n return e.figure;\n });\n },\n\n /**\n *\n * Remove all children/decorations of this shape\n *\n */\n resetChildren: function resetChildren() {\n this.children.each(function (i, e) {\n e.figure.setCanvas(null);\n });\n this.children = new _packages2.default.util.ArrayList();\n this.repaint();\n\n return this;\n },\n\n /**\n *\n * return the current SVG shape element or create it on demand.\n *\n * @protected\n */\n getShapeElement: function getShapeElement() {\n if (this.shape !== null) {\n return this.shape;\n }\n\n this.shape = this.createShapeElement();\n if (!this.isVisible()) {\n this.shape.hide();\n }\n\n // add CSS class to enable styling of the element with CSS rules/files\n //\n if (this.cssClass !== null) {\n this.shape.node.setAttribute(\"class\", this.cssClass);\n }\n\n return this.shape;\n },\n\n /**\n *\n * Get the top level shape element. May the figure has a set of SVG elements. In this case this\n * method must return the top level node.<br>\n * This method is used for the toFront/toBack method to order the nodes in the correct way.\n *\n * @since 5.0.0\n * @private\n */\n getTopLevelShapeElement: function getTopLevelShapeElement() {\n return this.getShapeElement();\n },\n\n /**\n *\n * Inherited classes must override this method to implement it's own draw functionality.\n *\n * @template\n * @abstract\n */\n createShapeElement: function createShapeElement() {\n throw \"Inherited class [\" + this.NAME + \"] must override the abstract method createShapeElement\";\n },\n\n /**\n *\n * propagate all attributes like color, stroke,... to the shape element\n *\n * @param {Object} [attributes] the style attributes for the SVG shape\n * @private\n **/\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return this;\n }\n var _this = this;\n attributes = attributes || {};\n\n if (this.visible === true) {\n if (this.shape.isVisible() === false) {\n if (!isNaN(parseFloat(attributes.visibleDuration))) {\n $(this.shape.node).fadeIn(attributes.visibleDuration, function () {\n _this.shape.show();\n });\n } else {\n this.shape.show();\n }\n }\n } else {\n if (this.shape.isVisible() === true) {\n if (!isNaN(parseFloat(attributes.visibleDuration))) {\n $(this.shape.node).fadeOut(attributes.visibleDuration, function () {\n _this.shape.hide();\n });\n } else {\n this.shape.hide();\n }\n }\n return this;\n }\n\n // enrich with common properties\n attributes.opacity = this.alpha;\n\n // performance improvement\n // Only apply attributes which has changed. This ends in a big performance improvement\n // because the raphael shape isn't redraw at all.\n //\n attributes = _JSONUtil2.default.flatDiff(attributes, this.lastAppliedAttributes);\n this.lastAppliedAttributes = attributes;\n\n if (Object.getOwnPropertyNames(attributes).length > 0) {\n this.shape.attr(attributes);\n }\n\n this.applyTransformation();\n\n // Relocate all children of the figure if the dimension or location of the\n // shape has changed\n //\n if (\"x\" in attributes || \"width\" in attributes || \"cx\" in attributes || \"path\" in attributes) {\n this.children.each(function (i, e) {\n e.locator.relocate(i, e.figure);\n });\n }\n\n return this;\n },\n\n /**\n *\n * apply a transformation to the shape like rotation, translate,..\n *\n * @private\n * @template\n */\n applyTransformation: function applyTransformation() {\n return this;\n },\n\n /**\n *\n * Highlight the element or remove the highlighting\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * glow: flag\n * });\n *\n * @param {Boolean} flag indicates glow/noGlow\n * @template\n */\n setGlow: function setGlow(flag) {\n // do nothing in the base class.\n // Subclasses must implement this method.\n\n return this;\n },\n\n /**\n *\n * Allow dragging only when the cursor is over a specific part of the figure.\n * <br>\n * Override this method to specify the bounding box of an element or a draw2d.util.ArrayList\n * of draw2d.geo.Rectangle of bounding boxes used to drag the figure. The returned coordinates\n * are absolute coordinates to the canvas.\n * <br>\n * <br>\n * Default implementation returns <b>null</b> to indicate to use the complete figures as\n * drag handle.\n *\n * @since 5.6.0\n * @returns {draw2d.geo.Rectangle|draw2d.util.ArrayList}\n */\n getHandleBBox: function getHandleBBox() {\n return null;\n },\n\n /**\n *\n * Called if the drag and drop action begins. You can return [false] if you\n * want avoid that the figure can be move.\n *\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @returns {Boolean} true if the figure accepts dragging\n **/\n onDragStart: function onDragStart(x, y, shiftKey, ctrlKey) {\n this.isInDragDrop = false;\n\n // Check whenever the figures has a drag-handle. Allow drag&drop\n // operation only if the x/y is inside this area.\n //\n // @since 5.6.0\n var bbox = this.getHandleBBox();\n if (bbox !== null && bbox.translate(this.getAbsolutePosition().scale(-1)).hitTest(x, y) === false) {\n // design failure: we must catch the figure below the mouse to forward\n // the panning event to this figure. Special handling to provide sliders\n // and other UI elements which requires the panning event. Hack.\n this.panningDelegate = this.getBestChild(this.getX() + x, this.getY() + y);\n if (this.panningDelegate !== null) {\n // transform x/y relative to the panning figure and request the dragStart event\n this.panningDelegate.onDragStart(x - this.panningDelegate.x, y - this.panningDelegate.y, shiftKey, ctrlKey);\n }\n return false;\n }\n\n this.command = this.createCommand(new _packages2.default.command.CommandType(_packages2.default.command.CommandType.MOVE));\n\n if (this.command !== null) {\n this.ox = this.getX();\n this.oy = this.getY();\n this.isInDragDrop = true;\n\n // notify all installed policies\n //\n var _this = this;\n var canStartDrag = true;\n\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n canStartDrag = canStartDrag && e.onDragStart(_this.canvas, _this, x, y, shiftKey, ctrlKey);\n }\n });\n\n if (canStartDrag) {\n // fire an event\n // @since 5.3.3\n this.fireEvent(\"dragstart\", { x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n }\n return canStartDrag;\n }\n\n return false;\n },\n\n /**\n *\n * Don't call them manually. This will be done by the framework.<br>\n * Will be called if the object are moved via drag and drop.\n * Sub classes can override this method to implement additional stuff. Don't forget to call\n * the super implementation via <code>this._super(dx, dy, dx2, dy2);</code>\n *\n * @private\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n **/\n onDrag: function onDrag(dx, dy, dx2, dy2, shiftKey, ctrlKey) {\n var _this6 = this;\n\n // apply all EditPolicy for DragDrop Operations. This is something like\n // an policy that forces that an object can only move vertical, horizontal or in a given\n // rectangle.\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n var _newPos = e.adjustPosition(_this6, _this6.ox + dx, _this6.oy + dy);\n if (_newPos) {\n dx = _newPos.x - _this6.ox;\n dy = _newPos.y - _this6.oy;\n }\n }\n });\n var newPos = new _packages2.default.geo.Point(this.ox + dx, this.oy + dy);\n\n // Adjust the new location if the object can snap to a helper\n // like grid, geometry, ruler,...\n //\n if (this.getCanSnapToHelper()) {\n newPos = this.getCanvas().snapToHelper(this, newPos);\n }\n\n this.setPosition(newPos);\n\n // notify all installed policies that the object has moved.\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.onDrag(_this6.canvas, _this6);\n }\n });\n\n // notify all installed listener that th object has moved\n // @since 5.3.3\n this.fireEvent(\"drag\", { dx: dx, dy: dy, dx2: dx2, dy2: dy2, shiftKey: shiftKey, ctrlKey: ctrlKey });\n },\n\n /**\n *\n * Called by the framework if the figure returns false for the drag operation. In this\n * case we send a \"panning\" event - mouseDown + mouseMove. This is very useful for\n * UI-Widget like slider, spinner,...\n *\n * // You can alternatively register an event handler with:\n * figure.on(\"panning\", function(emitter, eventData){\n * alert(\"panning of the figure called\");\n * });\n *\n * @param {Number} dx the x difference between the mouse down operation and now\n * @param {Number} dy the y difference between the mouse down operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n */\n onPanning: function onPanning(dx, dy, dx2, dy2, shiftKey, ctrlKey) {},\n\n /**\n *\n * Called by the framework if the panning event of the figures ends. This happens\n * after the mous up event if the panning is active.\n *\n * // You can alternatively register an event handler with:\n * figure.on(\"panningEnd\", function(emitter){\n * alert(\"panning of the figure called\");\n * });\n *\n */\n onPanningEnd: function onPanningEnd() {},\n\n /**\n *\n * Will be called after a drag and drop action.<br>\n * Sub classes can override this method to implement additional stuff. Don't forget to call\n * the super implementation via <code>this._super();</code>\n *\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n **/\n onDragEnd: function onDragEnd(x, y, shiftKey, ctrlKey) {\n var _this7 = this;\n\n // Element ist zwar schon an seine Position, das Command muss aber trotzdem\n // in dem CommandStack gelegt werden damit das Undo funktioniert.\n //\n if (this.command !== null) {\n this.command.setPosition(this.x, this.y);\n this.canvas.getCommandStack().execute(this.command);\n this.command = null;\n }\n this.isInDragDrop = false;\n this.panningDelegate = null;\n\n // notify all installed policies\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.onDragEnd(_this7.canvas, _this7, x, y, shiftKey, ctrlKey);\n }\n });\n\n this.fireEvent(\"move\", { x: this.getX(), y: this.getY(), dx: 0, dy: 0 });\n this.fireEvent(\"change:x\", { x: this.getX(), dx: 0 });\n this.fireEvent(\"change:y\", { y: this.getY(), dy: 0 });\n\n // fire an event\n // @since 5.3.3\n this.fireEvent(\"dragend\", { x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n },\n\n /**\n *\n * Called by the framework during drag&drop operations if the user drag a figure over this figure\n *\n * @param {draw2d.Figure} draggedFigure The figure which is currently dragging\n *\n * @returns {draw2d.Figure} the figure which should receive the drop event or null if the element didn't want a drop event\n * @since 6.1.0\n * @private\n **/\n delegateTarget: function delegateTarget(draggedFigure) {\n var _this8 = this;\n\n var delegate = draggedFigure;\n this.getCanvas().getDropInterceptorPolicies().each(function (i, policy) {\n delegate = policy.delegateTarget(draggedFigure, _this8);\n if (delegate !== null) {\n return false; // break the loop\n }\n });\n\n return delegate;\n },\n\n /**\n *\n * Called by the framework during drag&drop operations if the user drag a figure over this figure\n *\n * @param {draw2d.Figure} draggedFigure The figure which is currently dragging\n *\n * @template\n **/\n onDragEnter: function onDragEnter(draggedFigure) {},\n\n /**\n *\n * Called if the DragDrop object leaving the current hover figure.\n *\n * @param {draw2d.Figure} draggedFigure The figure which is currently dragging\n * @template\n **/\n onDragLeave: function onDragLeave(draggedFigure) {},\n\n /**\n *\n * Called if the user drop this element onto the dropTarget. This event is ONLY fired if the\n * shape return \"this\" in the {@link draw2d.Figure#onDragEnter} method.\n *\n *\n * @param {draw2d.Figure} dropTarget The drop target.\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n **/\n onDrop: function onDrop(dropTarget, x, y, shiftKey, ctrlKey) {},\n\n /**\n *\n * Called if the user dropped an figure onto this element. This event is ONLY fired if the\n * in the canvas installed {@link draw2d.policy.canvas.DropInterceptorPolicy} allow this.\n *\n *\n * @param {draw2d.Figure} droppedFigure The dropped figure.\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n * @since 4.8.0\n **/\n onCatch: function onCatch(droppedFigure, x, y, shiftKey, ctrlKey) {},\n\n /**\n *\n * Callback method for the mouse enter event. Usefull for mouse hover-effects.\n * Override this method for your own effects. Don't call them manually.\n *\n * @template\n **/\n onMouseEnter: function onMouseEnter() {},\n\n /**\n *\n * Callback method for the mouse leave event. Useful for mouse hover-effects.\n *\n * @template\n **/\n onMouseLeave: function onMouseLeave() {},\n\n /**\n *\n * Called when a user dbl clicks on the element\n *\n * // Alternatively you can register an event with:\n * //\n * figure.on(\"dblclick\", function(emitter, event){\n * alert(\"user dbl click on the figure\");\n * });\n *\n * @template\n */\n onDoubleClick: function onDoubleClick() {},\n\n /**\n *\n * Called when a user clicks on the element.\n *\n * // You can alternatively register an event handler with:\n * figure.on(\"click\", function(emitter, event){\n * alert(\"user click on the figure\");\n * });\n *\n * @template\n * @deprecated\n */\n onClick: function onClick() {},\n\n /**\n *\n * called by the framework if the figure should show the context menu.<br>\n * The strategy to show the context menu depends on the platform. Either looong press or\n * right click with the mouse.\n *\n * // Alternatively you register for this event with:\n * figure.on(\"contextmenu\", function(emitter, event){\n * alert(\"user press the right mouse button for a context menu\");\n * });\n *\n * @param {Number} x the x-coordinate to show the menu\n * @param {Number} y the y-coordinate to show the menu\n * @since 1.1.0\n * @template\n */\n onContextMenu: function onContextMenu(x, y) {},\n\n /**\n *\n * Set the alpha blending of this figure.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * \"alpha\": percent\n * });\n *\n * // ...or:\n * figure.attr({\n * \"opacity\": percent\n * });\n *\n * @param {Number} percent value between [0..1].\n **/\n setAlpha: function setAlpha(percent) {\n percent = Math.min(1, Math.max(0, parseFloat(percent)));\n if (percent === this.alpha) {\n return;\n }\n\n this.alpha = percent;\n this.repaint();\n this.fireEvent(\"change:opacity\", { value: this.alpha });\n\n return this;\n },\n\n /**\n *\n * Return the alpha blending of the figure\n *\n * @returns {Number} the current alpha blending\n */\n getAlpha: function getAlpha() {\n return this.alpha;\n },\n\n /**\n *\n * Set the rotation angle in degree [0..356]<br>\n * <b>Only steps of 90 degree is working well</b>\n * <br>\n * // Alternatively you can use the attr method:\n * figure.attr({\n * angle: angle\n * });\n *\n * @param {Number} angle the rotation angle in degree\n */\n setRotationAngle: function setRotationAngle(angle) {\n var _this9 = this;\n\n this.rotationAngle = angle;\n\n // Update the resize handles if the user change the position of the element via an API call.\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this9.canvas, _this9);\n }\n });\n\n this.fireEvent(\"change:angle\", { value: this.rotationAngle });\n this.repaint();\n\n return this;\n },\n\n /**\n *\n * return the rotation angle of the figure in degree of [0..356].\n *\n * <br>\n * <b>NOTE: this method is pre alpha and not for production. Only steps of 90 degree is working well</b>\n * <br>\n * @returns {Number}\n */\n getRotationAngle: function getRotationAngle() {\n return this.rotationAngle;\n },\n\n /**\n *\n * Show/hide the element. The element didn't receive any mouse events (click, dblclick) if you hide the\n * figure.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * visible: flag\n * });\n *\n * @param {Boolean} flag\n * @param {Number} [duration] the optional number for the fadeIn /fadeOut of the figure\n * @since 1.1.0\n */\n setVisible: function setVisible(flag, duration) {\n flag = !!flag;\n if (flag === this.visible) {\n return;\n }\n this.visible = flag;\n\n this.repaint({ visibleDuration: duration });\n\n if (this.visible) {\n this.fireEvent(\"show\");\n } else {\n this.fireEvent(\"hide\");\n }\n this.fireEvent(\"change:visibility\", { value: this.visible });\n\n return this;\n },\n\n /**\n *\n * Return true if the figure visible.\n *\n * @returns {Boolean}\n * @since 1.1.0\n */\n isVisible: function isVisible() {\n return this.visible && this.shape !== null;\n },\n\n /**\n *\n * Guarantee, that the figure width/height will not be distorted. Applicable before calling setDimension().\n * It is false by default.\n *\n * @since 4.1.0\n * @param {Boolean} flag boolean flag if the figure should respect the aspect ratio\n */\n setKeepAspectRatio: function setKeepAspectRatio(flag) {\n this.keepAspectRatio = flag;\n\n return this;\n },\n\n /**\n *\n * Return the flag if the shape keep the aspect ratio.\n *\n * @since 4.1.0\n */\n getKeepAspectRatio: function getKeepAspectRatio() {\n return this.keepAspectRatio;\n },\n\n /**\n *\n * Return the current z-index of the element. Currently this is an expensive method. The index will be calculated\n * all the time. Caching is not implemented at the moment.\n *\n * @returns {Number}\n */\n getZOrder: function getZOrder() {\n if (this.shape === null) {\n return -1;\n }\n\n var i = 0;\n var child = this.shape.node;\n while ((child = child.previousSibling) !== null) {\n i++;\n }\n return i;\n },\n\n /**\n *\n * Set the flag if this object can snap to grid or geometry.\n * A window of dialog should set this flag to false.\n *\n * @param {Boolean} flag The snap to grid/geometry enable flag.\n *\n **/\n setCanSnapToHelper: function setCanSnapToHelper(flag) {\n this.canSnapToHelper = !!flag;\n\n return this;\n },\n\n /**\n *\n * Returns true if the figure can snap to any helper like a grid, guide, geometrie\n * or something else.\n *\n * @returns {Boolean}\n **/\n getCanSnapToHelper: function getCanSnapToHelper() {\n return this.canSnapToHelper;\n },\n\n /**\n *\n * @returns {draw2d.geo.Point}\n **/\n getSnapToGridAnchor: function getSnapToGridAnchor() {\n return this.snapToGridAnchor;\n },\n\n /**\n *\n * Set the hot spot for all snapTo### operations.\n *\n * @param {draw2d.geo.Point} point\n **/\n setSnapToGridAnchor: function setSnapToGridAnchor(point) {\n this.snapToGridAnchor = point;\n\n return this;\n },\n\n /**\n *\n * Set the width of the figure and consider the minWidth attribute\n *\n * @param {Number} width the new width of the figure\n * @since 5.1.0\n */\n setWidth: function setWidth(width) {\n this.setDimension(parseFloat(width), this.getHeight());\n this.fireEvent(\"change:width\", { value: this.width });\n\n return this;\n },\n\n /**\n *\n * The current width of the figure.\n *\n * @type {Number}\n **/\n getWidth: function getWidth() {\n return this.width;\n },\n\n /**\n *\n * Set the heigth of the figure and consider the minWidth attribute\n *\n * @param {Number} height the new height of the figure\n * @since 5.1.0\n */\n setHeight: function setHeight(height) {\n this.setDimension(this.getWidth(), parseFloat(height));\n this.fireEvent(\"change:height\", { value: this.height });\n\n return this;\n },\n\n /**\n *\n * The current height of the figure.\n *\n * @returns {Number}\n **/\n getHeight: function getHeight() {\n return this.height;\n },\n\n /**\n *\n * This value is relevant for the interactive resize of the figure.\n *\n * @returns {Number} Returns the min. width of this object.\n */\n getMinWidth: function getMinWidth() {\n return this.minWidth;\n },\n\n /**\n *\n * Set the minimum width of this figure\n *\n * @param {Number} w\n */\n setMinWidth: function setMinWidth(w) {\n this.minWidth = parseFloat(w);\n this.fireEvent(\"change:minWidth\", { value: this.minWidth });\n\n // fit the width with the new constraint\n this.setWidth(this.getWidth());\n\n return this;\n },\n\n /**\n *\n * This value is relevant for the interactive resize of the figure.\n *\n * @returns {Number} Returns the min. height of this object.\n */\n getMinHeight: function getMinHeight() {\n return this.minHeight;\n },\n\n /**\n *\n * Set the minimum height of the figure.\n *\n * @param {Number} h\n */\n setMinHeight: function setMinHeight(h) {\n this.minHeight = parseFloat(h);\n this.fireEvent(\"change:minHeight\", { value: this.minHeight });\n\n // fit the height with the new constraint\n this.setHeight(this.getHeight());\n\n return this;\n },\n\n /**\n *\n * the the x-offset related to the parent figure or canvas\n *\n * @param {Number} x the new x offset of the figure\n * @since 5.0.8\n */\n setX: function setX(x) {\n this.setPosition(parseFloat(x), this.y);\n return this;\n },\n\n /**\n *\n * The x-offset related to the parent figure or canvas.\n *\n * @returns {Number} the x-offset to the parent figure\n **/\n getX: function getX() {\n return this.x;\n },\n\n /**\n *\n * the the y-offset related to the parent figure or canvas\n *\n * @param {Number} y the new x offset of the figure\n * @since 5.0.8\n */\n setY: function setY(y) {\n this.setPosition(this.x, parseFloat(y));\n return this;\n },\n\n /**\n *\n * The y-offset related to the parent figure or canvas.\n *\n * @returns {Number} The y-offset to the parent figure.\n **/\n getY: function getY() {\n return this.y;\n },\n\n /**\n *\n * The x-offset related to the canvas.\n *\n * @returns {Number} the x-offset to the canvas\n **/\n getAbsoluteX: function getAbsoluteX() {\n if (!this.parent) {\n return this.getX();\n }\n\n return this.getX() + this.parent.getAbsoluteX();\n },\n\n /**\n *\n * The y-offset related to the canvas.\n *\n * @returns {Number} The y-offset to the canvas.\n **/\n getAbsoluteY: function getAbsoluteY() {\n if (!this.parent) {\n return this.getY();\n }\n return this.getY() + this.parent.getAbsoluteY();\n },\n\n /**\n *\n * Returns the absolute y-position of the port.\n *\n * @type {draw2d.geo.Point}\n **/\n getAbsolutePosition: function getAbsolutePosition() {\n return new _packages2.default.geo.Point(this.getAbsoluteX(), this.getAbsoluteY());\n },\n\n /**\n *\n * Returns the absolute y-position of the port.\n *\n * @returns {draw2d.geo.Rectangle}\n **/\n getAbsoluteBounds: function getAbsoluteBounds() {\n return new _packages2.default.geo.Rectangle(this.getAbsoluteX(), this.getAbsoluteY(), this.getWidth(), this.getHeight());\n },\n\n /**\n *\n * Set the position of the object.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * x: x,\n * y: y\n * });\n *\n * @param {Number|draw2d.geo.Point} x The new x coordinate of the figure or the x/y coordinate if it is an draw2d.geo.Point\n * @param {Number} [y] The new y coordinate of the figure\n **/\n setPosition: function setPosition(x, y) {\n var _this10 = this;\n\n if (typeof x === \"undefined\") {\n debugger;\n }\n\n var oldPos = { x: this.x, y: this.y };\n\n if (x instanceof _packages2.default.geo.Point) {\n this.x = x.x;\n this.y = x.y;\n } else {\n this.x = x;\n this.y = y;\n }\n\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n var newPos = e.adjustPosition(_this10, _this10.x, _this10.y);\n _this10.x = newPos.x;\n _this10.y = newPos.y;\n }\n });\n\n this.repaint();\n\n // Update the resize handles if the user change the position of the\n // element via an API call.\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this10.canvas, _this10);\n }\n });\n\n var event = {\n x: this.x,\n y: this.y,\n dx: this.x - oldPos.x,\n dy: this.y - oldPos.y\n };\n this.fireEvent(\"move\", event);\n this.fireEvent(\"change:x\", event);\n this.fireEvent(\"change:y\", event);\n\n return this;\n },\n\n /**\n *\n * Get the current position of the figure\n *\n * @returns {draw2d.geo.Point}\n * @since 2.0.0\n */\n getPosition: function getPosition() {\n return new _packages2.default.geo.Point(this.getX(), this.getY());\n },\n\n /**\n *\n * Translate the figure with the given x/y offset.\n *\n * @param {Number} dx The x offset to translate\n * @param {Number} dy The y offset to translate\n **/\n translate: function translate(dx, dy) {\n this.setPosition(this.getX() + dx, this.getY() + dy);\n\n return this;\n },\n\n /**\n *\n * Set the new width and height of the figure.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * width: w,\n * height: h\n * });\n *\n * @param {Number} w The new width of the figure\n * @param {Number} h The new height of the figure\n **/\n setDimension: function setDimension(w, h) {\n var _this11 = this;\n\n var old = { width: this.width, height: this.height };\n\n w = Math.max(this.getMinWidth(), w);\n h = Math.max(this.getMinHeight(), h);\n\n if (this.width === w && this.height === h) {\n // required if an inherit figure changed the w/h to a given constraint.\n // In this case the Resize handles must be informed that the shape didn't resized.\n // because the minWidth/minHeight did have a higher prio.\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this11.canvas, _this11);\n }\n });\n return this;\n }\n\n // apply all EditPolicy to adjust/modify the new dimension\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n var newDim = e.adjustDimension(_this11, w, h);\n w = newDim.w;\n h = newDim.h;\n }\n });\n\n // respect the aspect ratio if required\n //\n if (this.keepAspectRatio === true) {\n if (w >= this.getMinWidth()) {\n // scale the height to the given ratio\n h = this.getHeight() * (w / this.getWidth());\n // and apply the new dimension only if the values are in range of the given constraints\n if (h >= this.getMinHeight()) {\n this.width = w;\n this.height = h;\n }\n }\n } else {\n this.width = Math.max(this.getMinWidth(), w);\n this.height = Math.max(this.getMinHeight(), h);\n }\n\n this.repaint();\n\n this.fireEvent(\"resize\");\n this.fireEvent(\"change:dimension\", { height: this.height, width: this.width, old: old });\n\n // Update the resize handles if the user change the position of the element via an API call.\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this11.canvas, _this11);\n }\n });\n\n return this;\n },\n\n /**\n *\n * Set the bounding box of the figure\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * width: w,\n * height: h,\n * x: x,\n * y: y\n * });\n *\n * // or\n * figure.attr({\n * boundingBox: {x:1, y:100, width:30, height:30}\n * });\n *\n * @param {draw2d.geo.Rectangle} rect\n * @since 4.8.0\n */\n setBoundingBox: function setBoundingBox(rect) {\n rect = new _packages2.default.geo.Rectangle(rect);\n\n var orig = this.repaintBlocked;\n this.repaintBlocked = true;\n this.setPosition(rect.x, rect.y);\n this.repaintBlocked = orig;\n this.setDimension(rect.w, rect.h);\n\n return this;\n },\n\n /**\n *\n * Returns the bounding box of the figure in absolute position to the canvas.\n *\n * @returns {draw2d.geo.Rectangle}\n **/\n getBoundingBox: function getBoundingBox() {\n return new _packages2.default.geo.Rectangle(this.getAbsoluteX(), this.getAbsoluteY(), this.getWidth(), this.getHeight());\n },\n\n /**\n *\n * Returns the bounding box of the figure in absolute position to the canvas. All child shapes included.\n * The result BoundingBox spans the parent figured plus all children.\n *\n * @returns {draw2d.geo.Rectangle}\n **/\n getOuterBoundingBox: function getOuterBoundingBox() {\n var parentBB = new _packages2.default.geo.Rectangle(this.getAbsoluteX(), this.getAbsoluteY(), this.getWidth(), this.getHeight());\n this.getChildren().each(function (i, child) {\n var childBB = child.getOuterBoundingBox();\n parentBB.merge(childBB);\n });\n return parentBB;\n },\n\n /**\n *\n * Detect whenever the hands over coordinate is inside the figure.\n * The default implementation is a simple bounding box test.\n *\n * @param {Number} iX\n * @param {Number} iY\n * @param {Number} [corona]\n *\n * @returns {Boolean}\n */\n hitTest: function hitTest(iX, iY, corona) {\n if (typeof corona === \"number\") {\n return this.getBoundingBox().scale(corona, corona).hitTest(iX, iY);\n }\n return this.getBoundingBox().hitTest(iX, iY);\n },\n\n /**\n *\n * Switch on/off the drag drop behaviour of this object\n *\n * @param {Boolean} flag The new drag drop indicator\n **/\n setDraggable: function setDraggable(flag) {\n this.draggable = !!flag;\n\n return this;\n },\n\n /**\n *\n * Get the Drag drop enable flag\n *\n * @returns {Boolean} The new drag drop indicator\n **/\n isDraggable: function isDraggable() {\n // delegate to the composite if given\n if (this.composite !== null) {\n return this.composite.isMemberDraggable(this, this.draggable);\n }\n\n return this.draggable;\n },\n\n /**\n *\n * Returns the true if the figure can be resized.\n *\n * @returns {Boolean}\n **/\n isResizeable: function isResizeable() {\n return this.resizeable;\n },\n\n /**\n *\n * You can change the resizeable behaviour of this object. Hands over [false] and\n * the figure has no resizehandles if you select them with the mouse.<br>\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * resizeable: flag\n * });\n *\n * @param {Boolean} flag The resizeable flag.\n **/\n setResizeable: function setResizeable(flag) {\n this.resizeable = !!flag;\n this.fireEvent(\"change:resizeable\", { value: this.resizeable });\n\n return this;\n },\n\n /**\n *\n * Indicates whenever the element is selectable by user interaction or API.\n *\n * @returns {Boolean}\n **/\n isSelectable: function isSelectable() {\n // delegate to the composite if given\n if (this.composite !== null) {\n return this.composite.isMemberSelectable(this, this.selectable);\n }\n\n return this.selectable;\n },\n\n /**\n *\n * You can change the selectable behavior of this object. Hands over [false] and\n * the figure has no selection handles if you try to select them with the mouse.<br>\n *\n * @param {Boolean} flag The selectable flag.\n **/\n setSelectable: function setSelectable(flag) {\n this.selectable = !!flag;\n this.fireEvent(\"change:selectable\", { value: this.selectable });\n\n return this;\n },\n\n /**\n *\n * Return true if the object doesn't care about the aspect ratio.\n * You can change the height and width independent.<br>\n *\n * Replaced with \"getKeepAspectRatio\"\n * @returns {Boolean}\n * @deprecated\n */\n isStrechable: function isStrechable() {\n return !this.getKeepAspectRatio();\n },\n\n /**\n *\n * Return false if you avoid that the user can delete your figure.\n * Sub class can override this method.\n *\n * @returns {Boolean}\n **/\n isDeleteable: function isDeleteable() {\n return this.deleteable;\n },\n\n /**\n *\n * Set the flag if the shape is deleteable.\n *\n * @param {Boolean} flag enable or disable flag for the delete operation\n **/\n setDeleteable: function setDeleteable(flag) {\n this.deleteable = !!flag;\n this.fireEvent(\"change:deleteable\", { value: this.deleteable });\n\n return this;\n },\n\n /**\n *\n * Set the parent of this figure.\n * Don't call them manually.\n *\n * @param {draw2d.Figure} parent The new parent of this figure\n * @private\n **/\n setParent: function setParent(parent) {\n this.parent = parent;\n\n if (parent !== null) {\n // inherit the selection handling impl from the parent\n this.setSelectionAdapter(parent.getSelectionAdapter());\n } else {\n // use default\n this.setSelectionAdapter(null);\n }\n\n return this;\n },\n\n /**\n *\n * Get the parent of this figure.\n *\n * @returns {draw2d.Figure}\n **/\n getParent: function getParent() {\n return this.parent;\n },\n\n /**\n *\n * Check to see if a figure is a descendant of another figure.\n * <br>\n * The contains() method returns true if the figure provided by the argument is a descendant of this figure,\n * whether it is a direct child or nested more deeply. Otherwise, it returns false.\n *\n * @param {draw2d.Figure} containedFigure The figure that may be contained by (a descendant of) this figure.\n * @since 5.5.4\n */\n contains: function contains(containedFigure) {\n if (containedFigure.getParent() === this) {\n return true;\n }\n\n for (var i = 0, len = this.children.getSize(); i < len; i++) {\n var child = this.children.get(i).figure;\n if (child.contains(containedFigure)) {\n return true;\n }\n }\n return false;\n },\n\n /**\n *\n * Get the top most parent of this figure. This can be an layout figure or parent container\n *\n * @returns {draw2d.Figure}\n * @since 5.0.6\n **/\n getRoot: function getRoot() {\n var root = this.parent;\n while (root !== null && root.parent !== null) {\n root = root.parent;\n }\n return root;\n },\n\n /**\n *\n * Set the assigned composite of this figure.\n *\n * @param {draw2d.shape.composite.StrongComposite} composite The assigned composite of this figure\n * @since 4.8.0\n **/\n setComposite: function setComposite(composite) {\n if (composite !== null && !(composite instanceof _packages2.default.shape.composite.StrongComposite)) {\n throw \"'composite must inherit from 'draw2d.shape.composite.StrongComposite'\";\n }\n\n this.composite = composite;\n\n return this;\n },\n\n /**\n *\n * Get the assigned composite of this figure.\n *\n * @returns {draw2d.shape.composite.StrongComposite}\n * @since 4.8.0\n **/\n getComposite: function getComposite() {\n return this.composite;\n },\n\n /**\n *\n * Execute all handlers and behaviors attached to the figure for the given event type.\n *\n *\n * @param {String} event the event to trigger\n * @param {Object} [args] optional parameters for the triggered event callback\n *\n * @since 5.0.0\n */\n fireEvent: function fireEvent(event, args) {\n try {\n if (typeof this.eventSubscriptions[event] === 'undefined') {\n return;\n }\n\n // avoid recursion\n if (this._inEvent === true) {\n return;\n }\n this._inEvent = true;\n var subscribers = this.eventSubscriptions[event];\n for (var i = 0; i < subscribers.length; i++) {\n subscribers[i](this, args);\n }\n } catch (exc) {\n console.log(exc);\n throw exc;\n } finally {\n this._inEvent = false;\n\n // fire a generic change event if an attribute has changed\n // required for some DataBinding frameworks or for the Backbone.Model compatibility\n // the event \"change\" with the corresponding attribute name as additional parameter\n if (event.substring(0, 7) === \"change:\") {\n this.fireEvent(\"change\", event.substring(7));\n }\n }\n },\n\n /**\n *\n * Attach an event handler function for one or more events to the figure.\n * To remove events bound with .on(), see {@link #off}.\n *\n * possible events are:<br>\n * <ul>\n * <li>click</li>\n * <li>dblclick</li>\n * <li>move</li>\n * <li>resize</li>\n * <li>timer</li>\n * <li>contextmenu</li>\n * <li>show</li>\n * <li>hide</li>\n * <li>added</li>\n * <li>removed</li>\n * <li>change:[attr]</li>\n * </ul>\n *\n * @param {String} event One or more space-separated event types\n * @param {Function} callback A function to execute when the event is triggered.\n * @param {draw2d.Figure} callback.emitter the emitter of the event\n * @param {Object} [callback.obj] optional event related data\n * @param {Object} [context] optional context of the function callback.\n * @since 5.0.0\n */\n on: function on(event, callback, context) {\n var events = event.split(\" \");\n if (typeof callback === \"undefined\") {\n debugger;\n }\n // the \"context\" param is add to be compatible with Backbone.Model.\n // The project \"backbone.ModelBinder\" requires this signature and we want to be nice.\n //\n if (context) {\n callback = callback.bind(context);\n callback.___originalCallback = callback;\n }\n\n for (var i = 0; i < events.length; i++) {\n if (typeof this.eventSubscriptions[events[i]] === 'undefined') {\n this.eventSubscriptions[events[i]] = [];\n }\n // avoid duplicate registration for the same event with the same callback method\n if (-1 !== $.inArray(callback, this.eventSubscriptions[events[i]])) {\n // debugger\n } else {\n this.eventSubscriptions[events[i]].push(callback);\n }\n }\n return this;\n },\n\n /**\n *\n * The .off() method removes event handlers that were attached with {@link #on}.<br>\n * Calling .off() with no arguments removes all handlers attached to the elements.<br>\n * <br>\n * If a simple event name such as \"move\" is provided, all events of that type are removed from the figure.\n *\n *\n * @param {String|Function} eventOrFunction the event name of the registerd function or the function itself\n * @since 5.0.0\n */\n off: function off(eventOrFunction) {\n if (typeof eventOrFunction === \"undefined\") {\n this.eventSubscriptions = {};\n } else if (typeof eventOrFunction === 'string') {\n this.eventSubscriptions[eventOrFunction] = [];\n } else {\n for (var event in this.eventSubscriptions) {\n this.eventSubscriptions[event] = this.eventSubscriptions[event].filter(function (callback) {\n if (typeof callback.___originalCallback !== \"undefined\") {\n return callback.___originalCallback !== eventOrFunction;\n }\n return callback !== eventOrFunction;\n });\n }\n }\n\n return this;\n },\n\n /**\n *\n * Returns the best figure at the location [x,y]. It is a simple hit test. Keep in mind that only visible objects\n * are returned.\n *\n * @param {Number} x The x position.\n * @param {Number} y The y position.\n * @param {draw2d.Figure|Array} [figureToIgnore] The figures which should be ignored.\n **/\n getBestChild: function getBestChild(x, y, figureToIgnore) {\n if (!Array.isArray(figureToIgnore)) {\n if (figureToIgnore instanceof _packages2.default.Figure) {\n figureToIgnore = [figureToIgnore];\n } else {\n figureToIgnore = [];\n }\n }\n\n var result = null;\n\n // tool method to check recursive a figure for hitTest\n //\n var checkRecursive = function checkRecursive(children) {\n children.each(function (i, e) {\n var c = e.figure;\n checkRecursive(c.children);\n if (result === null && c.isVisible() === true && c.hitTest(x, y) === true && $.inArray(c, figureToIgnore) === -1) {\n result = c;\n }\n return result === null; // break the each-loop if we found an element\n });\n };\n\n checkRecursive(this.children);\n\n return result;\n },\n\n /**\n *\n * Returns the Command to perform the specified Request or null.\n *\n * @param {draw2d.command.CommandType} request describes the Command being requested\n * @returns {draw2d.command.Command} null or a Command\n * @private\n **/\n createCommand: function createCommand(request) {\n if (request === null) {\n return null;\n }\n\n if (request.getPolicy() === _packages2.default.command.CommandType.MOVE) {\n if (!this.isDraggable()) {\n return null;\n }\n return new _packages2.default.command.CommandMove(this);\n }\n\n if (request.getPolicy() === _packages2.default.command.CommandType.DELETE) {\n if (!this.isDeleteable()) {\n return null;\n }\n return new _packages2.default.command.CommandDelete(this);\n }\n\n if (request.getPolicy() === _packages2.default.command.CommandType.RESIZE) {\n if (!this.isResizeable()) {\n return null;\n }\n return new _packages2.default.command.CommandResize(this);\n }\n\n return null;\n },\n\n /**\n *\n * Clone the figure. <br>\n * You must override and implement the methods <b>getPersistentAttributes</b> and <b>setPersistentAttributes</b> for your custom\n * figures if the have special attributes.\n *\n * The clone() method performs a deep copy of the object, meaning that it copies the children, ports and decorations\n * per default. You can control the clone procedure with the 'cloneMetaData'.\n *\n *\n * @param {Object} [cloneMetaData] controls the clone procedure\n * @param {Boolean} [cloneMetaData.excludeChildren] set it to true if you want exclude the children.\n *\n * @since 4.1.0\n * @experimental\n */\n clone: function clone(cloneMetaData) {\n cloneMetaData = (0, _extend2.default)({ excludeChildren: false }, cloneMetaData);\n\n var clone = eval(\"new \" + this.NAME + \"();\");\n var initialId = clone.id;\n\n clone.setPersistentAttributes(this.getPersistentAttributes());\n\n clone.id = initialId;\n\n // add all decorations to the memento\n //\n if (cloneMetaData.excludeChildren === false) {\n clone.resetChildren();\n this.children.each(function (i, entry) {\n var child = entry.figure.clone();\n // we can ignore the locator if this didn't provide a \"correct\" name, this can happen in some\n // Layout shapes like VerticalLayout or Horziontal Layout. This figures injects it own kind\n // of layouter...so didn'T care about this.\n\n var locator = entry.locator.NAME ? eval(\"new \" + entry.locator.NAME + \"();\") : null;\n clone.add(child, locator);\n });\n }\n\n return clone;\n },\n\n /**\n *\n * Return an objects with all important attributes for XML or JSON serialization\n *\n * @return {Object} all attributes of the figure required for the persistency\n */\n getPersistentAttributes: function getPersistentAttributes() {\n // force deep copy of userData to avoid side effects in the clone method.\n //\n var memento = {\n type: this.NAME,\n id: this.id,\n x: this.getX(),\n y: this.getY(),\n width: this.width,\n height: this.height,\n alpha: this.alpha,\n selectable: this.selectable,\n draggable: this.draggable,\n angle: this.rotationAngle,\n userData: (0, _extend2.default)(true, {}, this.userData)\n };\n\n if (this.cssClass !== null) {\n memento.cssClass = this.cssClass;\n }\n\n if (this.composite !== null) {\n memento.composite = this.composite.getId();\n }\n\n return memento;\n },\n\n /**\n *\n * Read all attributes from the serialized properties and transfer them into the shape.\n *\n * @param {Object} memento\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this.id = memento.id;\n this.setPosition(parseFloat(memento.x), parseFloat(memento.y));\n\n // width and height are optional parameter for the JSON stuff.\n // We use the defaults if the attributes not present\n if (typeof memento.width !== \"undefined\") {\n this.width = parseFloat(memento.width);\n }\n\n if (typeof memento.height !== \"undefined\") {\n this.height = parseFloat(memento.height);\n }\n\n if (typeof memento.userData !== \"undefined\") {\n this.userData = memento.userData;\n }\n\n if (typeof memento.selectable !== \"undefined\") {\n this.selectable = memento.selectable;\n }\n\n if (typeof memento.draggable !== \"undefined\") {\n this.draggable = memento.draggable;\n }\n\n if (typeof memento.cssClass !== \"undefined\") {\n this.setCssClass(memento.cssClass);\n }\n\n if (typeof memento.alpha !== \"undefined\") {\n this.setAlpha(parseFloat(memento.alpha));\n }\n\n if (typeof memento.angle !== \"undefined\") {\n this.rotationAngle = parseFloat(memento.angle);\n }\n\n return this;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/HeadlessCanvas.js\":\n/*!*******************************!*\\\n !*** ./src/HeadlessCanvas.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Required for Node.js draw2d model read/write operations.\n *\n * @inheritable\n * @author Andreas Herz\n */\n\n_packages2.default.HeadlessCanvas = Class.extend(\n/** @lends draw2d.HeadlessCanvas.prototype */\n\n/** @lends draw2d.HeadlessCanvas.prototype */\n{\n\n NAME: \"draw2d.HeadlessCanvas\",\n\n /**\n * Create a new canvas with the given HTML DOM references.\n *\n * @param {String} canvasId the id of the DOM element to use a parent container\n */\n init: function init() {\n // internal document with all figures, ports, ....\n //\n this.figures = new _packages2.default.util.ArrayList();\n this.lines = new _packages2.default.util.ArrayList(); // crap - why are connections not just figures. Design by accident\n this.commonPorts = new _packages2.default.util.ArrayList();\n\n this.eventSubscriptions = {};\n\n // The CommandStack for undo/redo operations\n //\n this.commandStack = new _packages2.default.command.CommandStack();\n },\n\n /**\n * \n * Reset the canvas and delete all model elements.<br>\n * You can now reload another model to the canvas with a {@link draw2d.io.Reader}\n *\n * @since 1.1.0\n */\n clear: function clear() {\n // internal document with all figures, ports, ....\n //\n this.figures = new _packages2.default.util.ArrayList();\n this.lines = new _packages2.default.util.ArrayList();\n this.commonPorts = new _packages2.default.util.ArrayList();\n\n this.commandStack.markSaveLocation();\n\n return this;\n },\n\n calculateConnectionIntersection: function calculateConnectionIntersection() {},\n\n /**\n * \n * Callback for any kind of image export tools to trigger the canvas to hide all unwanted\n * decorations. The method is called e.g. from the draw2d.io.png.Writer\n *\n * @since 4.0.0\n * @template\n */\n hideDecoration: function hideDecoration() {},\n\n /**\n * \n * callback method for any image export writer to reactivate the decoration\n * of the canvas. e.g. grids, rulers,...\n *\n *\n * @since 4.0.0\n * @template\n */\n showDecoration: function showDecoration() {},\n\n /**\n * \n * Add a figure at the given x/y coordinate. This method fires an event.\n *\n * Example:\n *\n * canvas.on(\"figure:add\", function(emitter, event){\n * alert(\"figure added:\");\n * });\n *\n * // or more general if you want catch all figure related events\n * //\n * canvas.on(\"figure\", function(emitter, event){\n * // use event.figure.getCanvas()===null to determine if the\n * // figure part of the canvas\n *\n * alert(\"figure added or removed:\");\n * });\n *\n * @param {draw2d.Figure} figure The figure to add.\n * @param {Number/draw2d.geo.Point} [x] The new x coordinate of the figure or the x/y coordinate if it is an draw2d.geo.Point\n * @param {Number} [y] The y position.\n **/\n add: function add(figure, x, y) {\n if (figure.getCanvas() === this) {\n return;\n }\n\n if (figure instanceof _packages2.default.shape.basic.Line) {\n this.lines.add(figure);\n } else {\n this.figures.add(figure);\n }\n figure.canvas = this;\n\n return this;\n },\n\n /**\n * \n * Returns all lines/connections in this workflow/canvas.<br>\n *\n * @protected\n * @returns {draw2d.util.ArrayList}\n **/\n getLines: function getLines() {\n return this.lines;\n },\n\n /**\n * \n * Returns the internal figures.<br>\n *\n * @protected\n * @returns {draw2d.util.ArrayList}\n **/\n getFigures: function getFigures() {\n return this.figures;\n },\n\n /**\n * \n * Returns the line or connection with the given id.\n *\n * @param {String} id The id of the line.\n *\n * @returns {draw2d.shape.basic.Line}\n **/\n getLine: function getLine(id) {\n var count = this.lines.getSize();\n for (var i = 0; i < count; i++) {\n var line = this.lines.get(i);\n if (line.getId() === id) {\n return line;\n }\n }\n return null;\n },\n\n /**\n * \n * Returns the figure with the given id.\n *\n * @param {String} id The id of the figure.\n * @returns {draw2d.Figure}\n **/\n getFigure: function getFigure(id) {\n var figure = null;\n this.figures.each(function (i, e) {\n if (e.id === id) {\n figure = e;\n return false;\n }\n });\n return figure;\n },\n\n /**\n * \n * Register a port to the canvas. This is required for other ports to find a valid drop target.\n *\n * @param {draw2d.Port} port The new port which has been added to the Canvas.\n **/\n registerPort: function registerPort(port) {\n // All elements have the same drop targets.\n //\n if (!this.commonPorts.contains(port)) {\n this.commonPorts.add(port);\n }\n\n return this;\n },\n\n /**\n * \n * Return all ports in the canvas\n *\n */\n getAllPorts: function getAllPorts() {\n return this.commonPorts;\n },\n\n /**\n * \n * Returns the command stack for the Canvas. Required for undo/redo support.\n *\n * @returns {draw2d.command.CommandStack}\n **/\n getCommandStack: function getCommandStack() {\n return this.commandStack;\n },\n\n // NEW EVENT HANDLING SINCE VERSION 5.0.0\n /**\n * \n * Execute all handlers and behaviors attached to the canvas for the given event type.\n *\n *\n * @param {String} event the event to trigger\n * @param {Object} [args] optional parameters for the triggered event callback\n *\n * @since 5.0.0\n */\n fireEvent: function fireEvent(event, args) {\n if (typeof this.eventSubscriptions[event] === 'undefined') {\n return;\n }\n\n var subscribers = this.eventSubscriptions[event];\n for (var i = 0; i < subscribers.length; i++) {\n try {\n subscribers[i](this, args);\n } catch (exc) {\n console.log(exc);\n console.log(subscribers[i]);\n debugger;\n }\n }\n },\n\n /**\n * \n * Attach an event handler function for one or more events to the canvas.\n * To remove events bound with .on(), see {@link #off}.\n *\n * possible events are:<br>\n * <ul>\n * <li>reset</li>\n * <li>select</li>\n * </ul>\n *\n * Example:\n *\n * canvas.on(\"clear\", function(emitter, event){\n * alert(\"canvas.clear() called.\");\n * });\n *\n * canvas.on(\"select\", function(emitter,event){\n * if(event.figure!==null){\n * alert(\"figure selected\");\n * }\n * else{\n * alert(\"selection cleared\");\n * }\n * });\n *\n * @param {String} event One or more space-separated event types\n * @param {Function} callback A function to execute when the event is triggered.\n * @param {draw2d.Canvas} callback.emitter the emitter of the event\n * @param {Object} [callback.obj] optional event related data\n *\n * @since 5.0.0\n */\n on: function on(event, callback) {\n var events = event.split(\" \");\n for (var i = 0; i < events.length; i++) {\n if (typeof this.eventSubscriptions[events[i]] === 'undefined') {\n this.eventSubscriptions[events[i]] = [];\n }\n this.eventSubscriptions[events[i]].push(callback);\n }\n return this;\n },\n\n /**\n * \n * The .off() method removes event handlers that were attached with {@link #on}.<br>\n * Calling .off() with no arguments removes all handlers attached to the canvas.<br>\n * <br>\n * If a simple event name such as \"reset\" is provided, all events of that type are removed from the canvas.\n *\n *\n * @param {String|Function} eventOrFunction the event name of the registerd function\n * @since 5.0.0\n */\n off: function off(eventOrFunction) {\n if (typeof eventOrFunction === \"undefined\") {\n this.eventSubscriptions = {};\n } else if (typeof eventOrFunction === 'string') {\n this.eventSubscriptions[eventOrFunction] = [];\n } else {\n for (var event in this.eventSubscriptions) {\n this.eventSubscriptions[event] = this.eventSubscriptions[event].filter(function (callback) {\n return callback !== eventOrFunction;\n });\n }\n }\n\n return this;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/HybridPort.js\":\n/*!***************************!*\\\n !*** ./src/HybridPort.js ***!\n \\***************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * A HybridPort can work as Input and as Output port in the same way for a {@link draw2d.Connection}.\n *\n * @author Andreas Herz\n * @extends draw2d.Port\n */\n_packages2.default.HybridPort = _packages2.default.Port.extend(\n/** @lends draw2d.HybridPort.prototype */\n{\n NAME: \"draw2d.HybridPort\",\n\n /**\n * Create a new HybridPort element\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n // responsive for the arrangement of the port\n // calculates the x/y coordinates in relation to the parent node\n this.locator = new _packages2.default.layout.locator.InputPortLocator();\n },\n\n /**\n * @param {draw2d.command.CommandType} request The requested operation to perform on the object\n * @returns {draw2d.command.Command} The matching command to the requested operation.\n */\n createCommand: function createCommand(request) {\n // Connect request between two ports\n //\n if (request.getPolicy() === _packages2.default.command.CommandType.CONNECT) {\n\n if (request.source.getParent().getId() === request.target.getParent().getId()) {\n return null;\n }\n\n if (request.source instanceof _packages2.default.InputPort) {\n // This is the difference to the InputPort implementation of createCommand.\n return new _packages2.default.command.CommandConnect(request.target, request.source, request.source);\n } else if (request.source instanceof _packages2.default.OutputPort) {\n // This is the different to the OutputPort implementation of createCommand\n return new _packages2.default.command.CommandConnect(request.source, request.target, request.source);\n } else if (request.source instanceof _packages2.default.HybridPort) {\n // This is the different to the OutputPort implementation of createCommand\n return new _packages2.default.command.CommandConnect(request.target, request.source, request.source);\n }\n\n return null;\n }\n\n // ...else call the base class\n return this._super(request);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/InputPort.js\":\n/*!**************************!*\\\n !*** ./src/InputPort.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * A InputPort is the start anchor for a {@link draw2d.Connection}.\n *\n * @author Andreas Herz\n * @extend draw2d.Port\n */\n_packages2.default.InputPort = _packages2.default.Port.extend(\n/** @lends draw2d.InputPort.prototype */\n{\n\n NAME: \"draw2d.InputPort\",\n\n /**\n * Create a new InputPort element\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n // responsive for the arrangement of the port\n // calculates the x/y coordinates in relation to the parent node\n this.locator = new _packages2.default.layout.locator.InputPortLocator();\n },\n\n /**\n * @inheritdoc\n */\n createCommand: function createCommand(request) {\n // Connect request between two ports\n //\n if (request.getPolicy() === _packages2.default.command.CommandType.CONNECT) {\n return new _packages2.default.command.CommandConnect(request.source, request.target, request.source);\n }\n\n // ...else call the base class\n return this._super(request);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/OutputPort.js\":\n/*!***************************!*\\\n !*** ./src/OutputPort.js ***!\n \\***************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * A OutputPort is the start anchor for a {@link draw2d.Connection}.\n *\n * @author Andreas Herz\n * @extends draw2d.Port\n */\n_packages2.default.OutputPort = _packages2.default.Port.extend(\n/** @lends draw2d.OutputPort.prototype */\n{\n\n NAME: \"draw2d.OutputPort\",\n\n /**\n * Create a new OutputPort element\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n // responsive for the arrangement of the port\n // calculates the x/y coordinates in relation to the parent node\n this.locator = new _packages2.default.layout.locator.OutputPortLocator();\n },\n\n /**\n * @inheritdoc\n */\n createCommand: function createCommand(request) {\n // Connect request between two ports\n //\n if (request.getPolicy() === _packages2.default.command.CommandType.CONNECT) {\n // source and target are changed.\n return new _packages2.default.command.CommandConnect(request.target, request.source, request.source);\n }\n\n // ...else call the base class\n return this._super(request);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/Port.js\":\n/*!*********************!*\\\n !*** ./src/Port.js ***!\n \\*********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ./util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * A port is an object that is used to establish a connection between a node and a {@link draw2d.Connection}. The port can\n * be placed anywhere within a node ( see {@link draw2d.layout.locator.PortLocator} for details)\n *\n *\n * @author Andreas Herz\n * @param {Object} [attr] the configuration of the shape\n * @extends draw2d.shape.basic.Circle\n */\n\n_packages2.default.Port = _packages2.default.shape.basic.Circle.extend(\n/** @lends draw2d.Port.prototype */\n{\n\n NAME: \"draw2d.Port\",\n\n DEFAULT_BORDER_COLOR: new _packages2.default.util.Color(\"#1B1B1B\"),\n\n init: function init(attr, setter, getter) {\n var _this2 = this;\n\n this.locator = null;\n this.lighterBgColor = null;\n this.name = null;\n this.coronaWidth = 5; // the corona width for the hitTest method. Useful during drag&drop of ports. Better SnapTo behavior.\n\n this._super((0, _extend2.default)({\n bgColor: \"#4f6870\",\n stroke: 1,\n diameter: 10,\n color: \"#1B1B1B\",\n selectable: false\n }, attr), (0, _extend2.default)({\n coronaWidth: this.setCoronaWidth,\n semanticGroup: this.setSemanticGroup\n }, setter), (0, _extend2.default)({\n coronaWidth: this.getCoronaWidth,\n semanticGroup: this.getSemanticGroup\n }, getter));\n\n // status vars for user interaction\n //\n this.ox = this.x;\n this.oy = this.y;\n this.corona = null; // draw2d.shape.basic.Circle\n this.useGradient = true;\n\n this.preferredConnectionDirection = null;\n\n // current attached connections\n this.connections = new _packages2.default.util.ArrayList();\n\n this.moveListener = function (emitter, event) {\n _this2.repaint();\n // Falls sich der parent bewegt hat, dann muss der Port dies seinen\n // Connections mitteilen\n _this2.fireEvent(\"move\", { figure: _this2, dx: 0, dy: 0 });\n };\n\n this.connectionAnchor = new _packages2.default.layout.anchor.ConnectionAnchor(this);\n\n // for dynamic diagrams. A Port can have a value which is set by a connector\n //\n this.value = null;\n this.maxFanOut = Number.MAX_SAFE_INTEGER;\n\n // semantic group. Only ports in the same semantic group can be connected\n //\n this.semanticGroup = \"global\";\n\n this.setCanSnapToHelper(false);\n\n // uninstall all default selection policies. This is not required for Ports\n this.editPolicy.each(function (i, policy) {\n return _this2.uninstallEditPolicy(policy);\n });\n\n this.installEditPolicy(new _packages2.default.policy.port.IntrusivePortsFeedbackPolicy());\n // this.installEditPolicy(new draw2d.policy.port.ElasticStrapFeedbackPolicy());\n\n // a port handles the selection handling always by its own regardless if\n // the port is part of an composite, node, group or whatever.\n this.portSelectionAdapter = function () {\n return _this2;\n };\n },\n\n getSelectionAdapter: function getSelectionAdapter() {\n return this.portSelectionAdapter;\n },\n\n /**\n *\n * set the maximal possible count of connections for this port.<br>\n * This method din't delete any connection if you reduce the number and a bunch of\n * connection are bounded already.\n *\n * @param {Number} count the maximal number of connection related to this port\n * @returns {this}\n */\n setMaxFanOut: function setMaxFanOut(count) {\n this.maxFanOut = Math.max(1, count);\n this.fireEvent(\"change:maxFanOut\", { value: this.maxFanOut });\n\n return this;\n },\n\n /**\n *\n * return the maximal possible connections (in+out) for this port.\n *\n * @returns {Number}\n */\n getMaxFanOut: function getMaxFanOut() {\n return this.maxFanOut;\n },\n\n /**\n *\n * Set the semantic group of this port. Only ports in the same semantic group\n * can be connected.\n *\n * The default for all ports is \"global\"\n *\n * @param {String} group the semantic group of this port\n * @returns {this}\n */\n setSemanticGroup: function setSemanticGroup(group) {\n this.semanticGroup = group;\n this.fireEvent(\"change:semanticGroup\", { value: this.semanticGroup });\n\n return this;\n },\n\n /**\n *\n * Get the semantic group of this port. Only ports in the same semantic group\n * can be connected.\n *\n * The default for all ports is \"global\"\n *\n * @returns {String}\n */\n getSemanticGroup: function getSemanticGroup() {\n return this.semanticGroup;\n },\n\n /**\n *\n * Set the Anchor for this object. An anchor is responsible for the endpoint calculation\n * of an connection. just visible representation.\n *\n * @param {draw2d.layout.anchor.ConnectionAnchor} [anchor] the new source anchor for the connection or \"null\" to use the default anchor.\n * @returns {this}\n **/\n setConnectionAnchor: function setConnectionAnchor(anchor) {\n // set some good defaults.\n if (typeof anchor === \"undefined\" || anchor === null) {\n anchor = new _packages2.default.layout.anchor.ConnectionAnchor();\n }\n\n this.connectionAnchor = anchor;\n this.connectionAnchor.setOwner(this);\n\n // the anchor has changed. In this case all connections needs an change event to recalculate\n // the anchor and the routing itself\n this.fireEvent(\"move\", { figure: this, dx: 0, dy: 0 });\n\n return this;\n },\n\n getConnectionAnchorLocation: function getConnectionAnchorLocation(referencePoint, inquiringConnection) {\n return this.connectionAnchor.getLocation(referencePoint, inquiringConnection);\n },\n\n getConnectionAnchorReferencePoint: function getConnectionAnchorReferencePoint(inquiringConnection) {\n return this.connectionAnchor.getReferencePoint(inquiringConnection);\n },\n\n /**\n *\n * Returns the **direction** for the connection in relation to the given port and it's parent.\n *\n * <p>\n * Possible values:\n * <ul>\n * <li>draw2d.geo.Rectangle.DIRECTION_UP</li>\n * <li>draw2d.geo.Rectangle.DIRECTION_RIGHT</li>\n * <li>draw2d.geo.Rectangle.DIRECTION_DOWN</li>\n * <li>draw2d.geo.Rectangle.DIRECTION_LEFT</li>\n * </ul>\n * <p>\n *\n * @param {draw2d.Port} peerPort the counterpart port\n *\n * @returns {Number} the direction.\n */\n getConnectionDirection: function getConnectionDirection(peerPort) {\n // return the calculated connection direction if the port didn't have set any\n //\n if (typeof this.preferredConnectionDirection === \"undefined\" || this.preferredConnectionDirection === null) {\n return this.getParent().getBoundingBox().getDirection(this.getAbsolutePosition());\n }\n\n return this.preferredConnectionDirection;\n },\n\n /**\n *\n * Set the **direction** for the connection in relation to the given port and it's parent.\n *\n * <p>\n * Possible values:\n * <ul>\n * <li>up -> 0</li>\n * <li>right -> 1</li>\n * <li>down -> 2</li>\n * <li>left -> 3</li>\n * <li>calculated -> null</li>\n * </ul>\n * <p>\n *\n * @since 5.2.1\n * @param {Number} direction the preferred connection direction.\n * @returns {this}\n */\n setConnectionDirection: function setConnectionDirection(direction) {\n this.preferredConnectionDirection = direction;\n\n // needs an change event to recalculate the route\n this.fireEvent(\"move\", { figure: this, dx: 0, dy: 0 });\n\n return this;\n },\n\n /**\n *\n * Set the locator/layouter of the port. A locator is responsive for the x/y arrangement of the\n * port in relation to the parent node.\n *\n * @param {draw2d.layout.locator.Locator} locator\n * @returns {this}\n */\n setLocator: function setLocator(locator) {\n this.locator = locator;\n\n return this;\n },\n\n /**\n *\n * Get the locator/layouter of the port. A locator is responsive for the x/y arrangement of the\n * port in relation to the parent node.\n *\n * @since 4.2.0\n */\n getLocator: function getLocator() {\n return this.locator;\n },\n\n /**\n *\n * Set the new background color of the figure. It is possible to hands over\n * <code>null</code> to set the background transparent.\n *\n * @param {draw2d.util.Color|String} color The new background color of the figure\n * @returns {this}\n **/\n setBackgroundColor: function setBackgroundColor(color) {\n this.lighterBgColor = new _packages2.default.util.Color(color).lighter(0.3).rgba();\n this._super(color);\n\n return this;\n },\n\n /**\n *\n * Set a value for the port. This is useful for interactive/dynamic diagrams like circuits, simulator,...\n *\n * @param {Object} value the new value for the port\n * @returns {this}\n */\n setValue: function setValue(value) {\n\n if (value === this.value) {\n return this;\n }\n var old = this.value;\n this.value = value;\n if (this.getParent() !== null) {\n this.getParent().onPortValueChanged(this);\n }\n this.fireEvent(\"change:value\", { value: this.value, old: old });\n\n return this;\n },\n\n /**\n *\n * Return the user defined value of the port.\n *\n * @returns {Object}\n */\n getValue: function getValue() {\n return this.value;\n },\n\n /**\n * @private\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = attributes || {};\n\n // a port did have the 0/0 coordinate in the center and not in the top/left corner\n //\n attributes.cx = this.getAbsoluteX();\n attributes.cy = this.getAbsoluteY();\n attributes.rx = this.width / 2;\n attributes.ry = attributes.rx;\n attributes.cursor = \"move\";\n\n if (this.getAlpha() < 0.9 || this.useGradient === false) {\n attributes.fill = this.bgColor.rgba();\n } else {\n attributes.fill = [\"90\", this.bgColor.hash(), this.lighterBgColor].join(\"-\");\n }\n\n this._super(attributes);\n },\n\n /**\n * @inheritdoc\n *\n **/\n onMouseEnter: function onMouseEnter() {\n this._oldstroke = this.getStroke();\n this.setStroke(2);\n },\n\n /**\n * @inheritdoc\n *\n **/\n onMouseLeave: function onMouseLeave() {\n this.setStroke(this._oldstroke);\n },\n\n /**\n *\n * Returns a {@link draw2d.util.ArrayList} of {@link draw2d.Connection}s of all related connections to this port.\n *\n * @returns {draw2d.util.ArrayList}\n **/\n getConnections: function getConnections() {\n return this.connections;\n },\n\n /**\n * @private\n */\n setParent: function setParent(parent) {\n if (this.parent !== null) {\n this.parent.off(this.moveListener);\n }\n\n this._super(parent);\n\n if (this.parent !== null) {\n this.parent.on(\"move\", this.moveListener);\n }\n },\n\n /**\n *\n * Returns the corona width of the Port. The corona width will be used during the\n * drag&drop of a port.\n *\n * @returns {Number}\n **/\n getCoronaWidth: function getCoronaWidth() {\n return this.coronaWidth;\n },\n\n /**\n *\n * Set the corona width of the Port. The corona width will be used during the\n * drag&drop of a port. You can drop a port in the corona of this port to create\n * a connection. It is not necessary to drop exactly on the port.\n *\n * @param {Number} width The new corona width of the port\n * @returns {this}\n **/\n setCoronaWidth: function setCoronaWidth(width) {\n this.coronaWidth = width;\n\n return this;\n },\n\n /**\n * @inheritdoc\n *\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @returns {Boolean}\n * @private\n **/\n onDragStart: function onDragStart(x, y, shiftKey, ctrlKey) {\n // just allow the DragOperation if the port didn't have reached the max fanOut\n // limit.\n if (this.getConnections().getSize() >= this.maxFanOut) {\n return false;\n }\n\n var _this = this;\n\n // this.getShapeElement().insertAfter(this.parent.getShapeElement());\n // don't call the super method. This creates a command and this is not necessary for a port\n this.ox = this.x;\n this.oy = this.y;\n\n var canStartDrag = true;\n\n // notify all installed policies\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n // DragStart operation can send a veto for the dragStart\n // @since 6.1.0\n canStartDrag = canStartDrag && e.onDragStart(_this.canvas, _this, x, y, shiftKey, ctrlKey);\n }\n });\n\n return canStartDrag;\n },\n\n /**\n * @inheritdoc\n *\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n *\n * @private\n **/\n onDrag: function onDrag(dx, dy, dx2, dy2, shiftKey, ctrlKey) {\n // TODO: warum wurde diese methode überschrieben?!\n this._super(dx, dy);\n },\n\n /**\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @private\n **/\n onDragEnd: function onDragEnd(x, y, shiftKey, ctrlKey) {\n // Don't call the parent implementation. This will create an CommandMove object\n // and store them o the CommandStack for the undo operation. This makes no sense for a\n // port.\n // draw2d.shape.basic.Rectangle.prototype.onDragEnd.call(this); DON'T call the super implementation!!!\n\n this.setAlpha(1.0);\n\n // 1.) Restore the old Position of the node\n //\n this.setPosition(this.ox, this.oy);\n },\n\n /**\n *\n * Called if the user drop this element onto the dropTarget\n *\n * @param {draw2d.Figure} dropTarget The drop target.\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @@private\n **/\n onDrop: function onDrop(dropTarget, x, y, shiftKey, ctrlKey) {},\n\n /**\n *\n * Callback method if a new connection has created with this port\n *\n * // Alternatively you register for this event with:\n * port.on(\"connect\", function(emitterPort, connection){\n * alert(\"port connected\");\n * });\n *\n * @param {draw2d.Connection} connection The connection which has been created\n * @since 2.5.1\n *\n * @template\n **/\n onConnect: function onConnect(connection) {},\n\n /**\n *\n * Callback method if a new connection has created with this port\n *\n * // Alternatively you register for this event with:\n * port.on(\"connect\", function(emitterPort, connection){\n * alert(\"port disconnected\");\n * });\n *\n * @param {draw2d.Connection} connection The connection which has been deleted\n * @since 2.5.1\n *\n * @template\n **/\n onDisconnect: function onDisconnect(connection) {},\n\n /**\n *\n * Return the name of this port.\n *\n * @returns {String}\n **/\n getName: function getName() {\n return this.name;\n },\n\n /**\n *\n * Set the name of this port. The name of the port can be referenced by the lookup of\n * ports in the node.\n *\n *\n * @param {String} name The new name of this port.\n * @returns {this}\n **/\n setName: function setName(name) {\n this.name = name;\n\n return this;\n },\n\n /**\n *\n * Hit test for ports. This method respect the corona diameter of the port for the hit test.\n * The corona width can be set with {@link draw2d.Port#setCoronaWidth}\n *\n * @param {Number} iX\n * @param {Number} iY\n * @param {Number} [corona]\n * @returns {Boolean}\n */\n hitTest: function hitTest(iX, iY, corona) {\n var x = this.getAbsoluteX() - this.coronaWidth - this.getWidth() / 2;\n var y = this.getAbsoluteY() - this.coronaWidth - this.getHeight() / 2;\n var iX2 = x + this.getWidth() + this.coronaWidth * 2;\n var iY2 = y + this.getHeight() + this.coronaWidth * 2;\n\n return iX >= x && iX <= iX2 && iY >= y && iY <= iY2;\n },\n\n /**\n *\n * Highlight this port\n *\n * @param {Boolean} flag indicator if the figure should glow.\n * @returns {this}\n */\n setGlow: function setGlow(flag) {\n if (flag === true && this.corona === null) {\n this.corona = new _packages2.default.Corona();\n this.corona.setDimension(this.getWidth() + this.getCoronaWidth() * 2, this.getWidth() + this.getCoronaWidth() * 2);\n this.corona.setPosition(this.getAbsoluteX() - this.getCoronaWidth() - this.getWidth() / 2, this.getAbsoluteY() - this.getCoronaWidth() - this.getHeight() / 2);\n\n this.corona.setCanvas(this.getCanvas());\n\n // important inital\n this.corona.getShapeElement();\n this.corona.repaint();\n } else if (flag === false && this.corona !== null) {\n this.corona.setCanvas(null);\n this.corona = null;\n }\n\n return this;\n },\n\n /**\n *\n * Set the diameter of the port. The center of the circle will be retained.\n *\n * @param {Number} d The new diameter of the circle.\n * @since 4.0.0\n * @returns {this}\n **/\n setDiameter: function setDiameter(d) {\n //let center = this.getCenter()\n this.setDimension(d, d);\n // the port has its center in the middle. In this case there is no need to shift the center of the circle\n // like it is done in the base implementation.\n //this.setCenter(center)\n this.fireEvent(\"change:diameter\", { value: d });\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n createCommand: function createCommand(request) {\n // the port has its own implementation of the CommandMove\n //\n if (request.getPolicy() === _packages2.default.command.CommandType.MOVE) {\n if (!this.isDraggable()) {\n return null;\n }\n return new _packages2.default.command.CommandMovePort(this);\n }\n\n return null;\n },\n\n /**\n *\n * Called from the figure itself when any position changes happens. All listener\n * will be informed.\n * <br>\n * DON'T fire this event if the Port is during a Drag&Drop operation. This can happen\n * if we try to connect two ports\n *\n * @private\n **/\n fireEvent: function fireEvent(event, args) {\n if (this.isInDragDrop === true && event !== \"drag\") {\n return;\n }\n\n this._super(event, args);\n },\n\n /**\n *\n * Return an objects with all important attributes for XML or JSON serialization\n *\n * @return {Object} all attributes required for the persistency\n */\n getPersistentAttributes: function getPersistentAttributes() {\n var memento = this._super();\n\n memento.maxFanOut = this.maxFanOut;\n memento.name = this.name;\n memento.semanticGroup = this.semanticGroup;\n\n // defined by the locator. Don't persist\n //\n delete memento.x;\n delete memento.y;\n\n // ports didn't have children ports. In this case we\n // delete this attribute as well to avoid confusions.\n //\n delete memento.ports;\n\n return memento;\n },\n\n /**\n *\n * Read all attributes from the serialized properties and transfer them into the shape.\n *\n * @param {Object} memento\n * @returns {this}\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n\n if (typeof memento.maxFanOut !== \"undefined\") {\n // Big bug in the past.\n // I used Number.MAX_VALUE as maxFanOut which is 1.7976931348623157e+308\n // parseInt creates \"1\" during the reading of the JSON - which is crap.\n // BIG BIG BUG!!! my fault.\n // Now check if the memento.maxFanOut is a number and take this without crappy parsing.\n if (typeof memento.maxFanOut === \"number\") {\n this.maxFanOut = memento.maxFanOut;\n } else {\n this.maxFanOut = Math.max(1, parseInt(memento.maxFanOut));\n }\n }\n\n if (typeof memento.name !== \"undefined\") {\n this.setName(memento.name);\n }\n\n if (typeof memento.semanticGroup !== \"undefined\") {\n this.setSemanticGroup(memento.semanticGroup);\n }\n\n return this;\n }\n});\n\n/**\n * @class\n * Glow effect for ports. Just for internal use.\n *\n * @private\n * @extend draw2d.shape.basic.Circle\n */\n_packages2.default.Corona = _packages2.default.shape.basic.Circle.extend(\n/** @lends draw2d.shape.basic.Circle.prototype */\n{\n\n init: function init() {\n this._super();\n this.setAlpha(0.3);\n this.setBackgroundColor(new _packages2.default.util.Color(178, 225, 255));\n this.setColor(new _packages2.default.util.Color(102, 182, 252));\n },\n\n /**\n *\n * the the opacity of the element.\n *\n * @param {Number} percent\n */\n setAlpha: function setAlpha(percent) {\n this._super(Math.min(0.3, percent));\n this.setDeleteable(false);\n this.setDraggable(false);\n this.setResizeable(false);\n this.setSelectable(false);\n\n return this;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/ResizeHandle.js\":\n/*!*****************************!*\\\n !*** ./src/ResizeHandle.js ***!\n \\*****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ./util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * The Resizehandles for Figures.\n\n * <pre>\n * Possible Type:\n *\n * 1 2 3\n * O-----------O-------------O\n * | |\n * | |\n * 8 O + 9 O 4\n * | |\n * | |\n * O-----------O-------------O\n * 7 6 5\n * </pre>\n *\n * @author Andreas Herz\n * @extends draw2d.shape.basic.Rectangle\n */\n_packages2.default.ResizeHandle = _packages2.default.shape.basic.Rectangle.extend(\n/** @lends draw2d.ResizeHandle.prototype */\n{\n\n NAME: \"draw2d.ResizeHandle\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {draw2d.Figure} the owner if the resize handle\n * @param {Number} type the type of the ResizeHandle.\n */\n init: function init(attr, setter, getter) {\n var _this = this;\n\n this.zoomCallback = function () {\n _this.attr({\n width: _this.origWidth * _this.getCanvas().getZoom(),\n height: _this.origHeight * _this.getCanvas().getZoom(),\n radius: _this.origRadius * _this.getCanvas().getZoom(),\n stroke: _this.origStroke * _this.getCanvas().getZoom()\n });\n\n // size of the ResizeHandle has changed. Force a reposition of handle\n //\n if (!_this.blockEvent) _this.owner.fireEvent(\"move\", {});\n };\n\n this._super((0, _extend2.default)({\n // set some good defaults\n bgColor: \"#FDFDFD\",\n stroke: 0.5,\n width: 10,\n height: 10,\n minWidth: 0.3,\n minHeight: 0.3,\n color: \"#a0a0a0\",\n radius: 1,\n selectable: false\n // and allow to override them\n }, attr), (0, _extend2.default)({\n owner: this.setOwner,\n type: this.setType\n }, setter), (0, _extend2.default)({\n owner: this.getOwner,\n type: this.getType\n }, getter));\n\n // required in the SelectionEditPolicy to indicate the type of figure\n // which the user clicks\n this.isResizeHandle = true;\n\n this.command = null;\n this.commandMove = null;\n this.commandResize = null;\n this.useGradient = true;\n\n this.origRadius = this.radius;\n this.origWidth = this.width;\n this.origHeight = this.height;\n this.origStroke = this.stroke;\n },\n\n /**\n *\n * The edge of the rectangle for the snapTo mechanism.\n *\n * @return {draw2d.SnapToHelper} enum of the direction (NORTH, NORTH_WEST, EAST,...)\n */\n getSnapToDirection: function getSnapToDirection() {\n switch (this.type) {\n case 1:\n return _packages2.default.SnapToHelper.NORTH_WEST;\n case 2:\n return _packages2.default.SnapToHelper.NORTH;\n case 3:\n return _packages2.default.SnapToHelper.NORTH_EAST;\n case 4:\n return _packages2.default.SnapToHelper.EAST;\n case 5:\n return _packages2.default.SnapToHelper.SOUTH_EAST;\n case 6:\n return _packages2.default.SnapToHelper.SOUTH;\n case 7:\n return _packages2.default.SnapToHelper.SOUTH_WEST;\n case 8:\n return _packages2.default.SnapToHelper.WEST;\n case 9:\n return _packages2.default.SnapToHelper.NSEW;\n default:\n return _packages2.default.SnapToHelper.EAST;\n }\n },\n\n /**\n * @inheritdoc\n */\n createShapeElement: function createShapeElement() {\n this.shape = this._super();\n\n this.shape.node.setAttribute(\"type\", this.type);\n this.updateCursor(this.shape);\n\n return this.shape;\n },\n\n /**\n *\n * Returns the current used SVG as string\n *\n * @returns {String}\n */\n getOwner: function getOwner() {\n return this.owner;\n },\n\n setOwner: function setOwner(owner) {\n this.owner = owner;\n\n return this;\n },\n\n /**\n *\n * Returns the current used SVG as string\n *\n * @returns {String}\n */\n getType: function getType() {\n return this.type;\n },\n\n setType: function setType(type) {\n this.type = type;\n\n return this;\n },\n\n /**\n *\n * calculate and set the cursor of the reize handle\n * @private\n */\n updateCursor: function updateCursor(shape) {\n if (shape === null) {\n return this;\n }\n\n if (this.isDraggable() === false) {\n shape.attr({ \"cursor\": \"default\" });\n return this;\n }\n\n switch (this.type) {\n case 1:\n shape.attr({ \"cursor\": \"nw-resize\" });\n break;\n case 2:\n shape.attr({ \"cursor\": \"n-resize\" });\n break;\n case 3:\n shape.attr({ \"cursor\": \"ne-resize\" });\n break;\n case 4:\n shape.attr({ \"cursor\": \"e-resize\" });\n break;\n case 5:\n shape.attr({ \"cursor\": \"se-resize\" });\n break;\n case 6:\n shape.attr({ \"cursor\": \"s-resize\" });\n break;\n case 7:\n shape.attr({ \"cursor\": \"sw-resize\" });\n break;\n case 8:\n shape.attr({ \"cursor\": \"w-resize\" });\n break;\n default:\n shape.attr({ \"cursor\": \"move\" });\n break;\n }\n return this;\n },\n\n /**\n *\n * Adjust the draggable flag of the resize handle and update the cursor of the shape in relation\n * to the type of resize handle. north, south,west,..\n *\n * @param flag\n * @returns {this}\n */\n setDraggable: function setDraggable(flag) {\n this._super(flag);\n this.updateCursor(this.shape);\n\n return this;\n },\n\n /**\n *\n * Will be called if the drag and drop action beginns. You can return [false] if you\n * want avoid that the figure can be move.\n *\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @returns {Boolean} true whenever the drag drop operation is allowed.\n **/\n onDragStart: function onDragStart(x, y, shiftKey, ctrlKey) {\n // This happens if the selected figure has set the \"nonResizeable\" flag\n // In this case the ResizeHandle can't be dragged. => no resize\n //\n if (!this.isDraggable()) {\n return false;\n }\n\n this.ox = this.getAbsoluteX();\n this.oy = this.getAbsoluteY();\n\n this.commandMove = this.owner.createCommand(new _packages2.default.command.CommandType(_packages2.default.command.CommandType.MOVE));\n this.commandResize = this.owner.createCommand(new _packages2.default.command.CommandType(_packages2.default.command.CommandType.RESIZE));\n\n return true;\n },\n\n /**\n *\n * Called by the framework if the figure is moved by user interaction.\n *\n * @param {Number} dx the move x offset\n * @param {Number} dy the move y offset\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n *\n */\n onDrag: function onDrag(dx, dy, dx2, dy2) {\n if (this.isDraggable() === false) {\n return;\n }\n\n var oldX = this.getAbsoluteX();\n var oldY = this.getAbsoluteY();\n\n // call the super.drag method with all snapTo### handler and adjustments\n this._super(dx, dy, dx2, dy2);\n\n var diffX = this.getAbsoluteX() - oldX;\n var diffY = this.getAbsoluteY() - oldY;\n\n var obj = this.owner;\n var objPosX = obj.getAbsoluteX();\n var objPosY = obj.getAbsoluteY();\n var objWidth = obj.getWidth();\n var objHeight = obj.getHeight();\n\n var newX = null;\n var newY = null;\n var corrPos = null;\n switch (this.type) {\n case 1:\n obj.setDimension(objWidth - diffX, objHeight - diffY);\n newX = objPosX + (objWidth - obj.getWidth());\n newY = objPosY + (objHeight - obj.getHeight());\n obj.setPosition(newX, newY);\n break;\n case 2:\n obj.setDimension(objWidth, objHeight - diffY);\n newX = objPosX;\n newY = objPosY + (objHeight - obj.getHeight());\n obj.setPosition(newX, newY);\n break;\n case 3:\n obj.setDimension(objWidth + diffX, objHeight - diffY);\n newX = objPosX;\n newY = objPosY + (objHeight - obj.getHeight());\n obj.setPosition(newX, newY);\n break;\n case 4:\n obj.setDimension(objWidth + diffX, objHeight);\n break;\n case 5:\n obj.setDimension(objWidth + diffX, objHeight + diffY);\n break;\n case 6:\n obj.setDimension(objWidth, objHeight + diffY);\n break;\n case 7:\n obj.setDimension(objWidth - diffX, objHeight + diffY);\n newX = objPosX + (objWidth - obj.getWidth());\n newY = objPosY;\n obj.setPosition(newX, newY);\n break;\n case 8:\n obj.setDimension(objWidth - diffX, objHeight);\n newX = objPosX + (objWidth - obj.getWidth());\n newY = objPosY;\n obj.setPosition(newX, newY);\n break;\n }\n\n if (newX !== null) {\n // may the setPosition has changed regarding any constraint or edit policies. In this case\n // we must adjust the dimension with the related correction\n //\n corrPos = obj.getPosition();\n if (corrPos.x !== newX || corrPos.y !== newY) {\n obj.setDimension(obj.getWidth() - (corrPos.x - newX), obj.getHeight() - (corrPos.y - newY));\n }\n }\n },\n\n /**\n *\n * Will be called after a drag and drop action.<br>\n *\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @private\n **/\n onDragEnd: function onDragEnd(x, y, shiftKey, ctrlKey) {\n if (!this.isDraggable()) {\n return;\n }\n\n // An non draggable resizeHandle doesn't create a move/resize command.\n // This happens if the selected figure has set the \"nonResizeable\" flag.\n //\n if (this.commandMove !== null) {\n this.commandMove.setPosition(this.owner.getX(), this.owner.getY());\n this.canvas.getCommandStack().execute(this.commandMove);\n this.commandMove = null;\n }\n\n if (this.commandResize !== null) {\n this.commandResize.setDimension(this.owner.getWidth(), this.owner.getHeight());\n this.canvas.getCommandStack().execute(this.commandResize);\n this.commandResize = null;\n }\n },\n\n /**\n * Set the position of the object.<br>\n * The ResizeHandle overrides the Figure.setPosition method. The base\n * class updates the resize handles during the update of the Dimension/Position. This\n * is not neccessary for the ResizeHandles. Performance issue.\n *\n * @param {Number|draw2d.geo.Point} x The new x coordinate of the figure\n * @param {Number} y The new y coordinate of the figure\n **/\n setPosition: function setPosition(x, y) {\n // don't call base implementation. Base implementation will show\n // ResizeHandles...but I'm the ResizeHandle\n if (x instanceof _packages2.default.geo.Point) {\n this.x = x.x;\n this.y = x.y;\n } else {\n this.x = x;\n this.y = y;\n }\n\n if (this.repaintBlocked === true || this.shape === null) {\n return this;\n }\n\n // performance improvement by setting the coordinates direct.\n this.shape.attr({ x: this.x, y: this.y });\n\n this.applyTransformation();\n },\n\n /**\n *\n * Set the new dimension of the the ResizeHandle. If you didn't pass any width/height the best default for the\n * platform will be used.\n *\n * Additional the \"snapTo\" anchor is re-calculated in relation to the type of ResizeHandle\n *\n * @param {Number} [width] new width of the resize handle\n * @param {Number} [height] new width of the resize handle\n */\n setDimension: function setDimension(width, height) {\n\n if (typeof height !== \"undefined\") {\n this._super(width, height);\n } else {\n if (_packages2.default.isTouchDevice) {\n this._super(15, 15);\n } else {\n this._super(8, 8);\n }\n }\n\n var offset = this.getWidth();\n var offset2 = offset / 2;\n\n switch (this.type) {\n case 1:\n this.setSnapToGridAnchor(new _packages2.default.geo.Point(offset, offset));\n break;\n case 2:\n this.setSnapToGridAnchor(new _packages2.default.geo.Point(offset2, offset));\n break;\n case 3:\n this.setSnapToGridAnchor(new _packages2.default.geo.Point(0, offset));\n break;\n case 4:\n this.setSnapToGridAnchor(new _packages2.default.geo.Point(0, offset2));\n break;\n case 5:\n this.setSnapToGridAnchor(new _packages2.default.geo.Point(0, 0));\n break;\n case 6:\n this.setSnapToGridAnchor(new _packages2.default.geo.Point(offset2, 0));\n break;\n case 7:\n this.setSnapToGridAnchor(new _packages2.default.geo.Point(offset, 0));\n break;\n case 8:\n this.setSnapToGridAnchor(new _packages2.default.geo.Point(offset, offset2));\n break;\n case 9:\n this.setSnapToGridAnchor(new _packages2.default.geo.Point(offset2, offset2));\n break;\n }\n\n return this;\n },\n\n /**\n *\n * Show the ResizeHandle and add it to the canvas.<br>\n * Additional bring it in to the front of other figures if we didn't use\n * an overlayCanvas.\n *\n * If the ResizeHandle is place inside an overlayCanvas it is automatically on top.\n *\n * @param {draw2d.Canvas} canvas the canvas to use\n **/\n show: function show(canvas) {\n // don't call the parent function. The parent functions delete this object\n // and a resize handle can't be deleted.\n this.setCanvas(canvas);\n\n this.canvas.resizeHandles.add(this);\n this.shape.insertAfter(this.owner.getShapeElement());\n\n try {\n this.blockEvent = true;\n this.zoomCallback();\n } finally {\n this.blockEvent = false;\n }\n this.repaint();\n\n return this;\n },\n\n /**\n *\n * Hide the resize handle and remove it from the canvas.\n *\n **/\n hide: function hide() {\n // don't call the parent function. The parent functions delete this object\n // and a resize handle shouldn't be deleted.\n if (this.shape === null) {\n return;\n }\n\n this.canvas.resizeHandles.remove(this);\n this.setCanvas(null);\n\n return this;\n },\n\n setCanvas: function setCanvas(canvas) {\n\n if (this.canvas !== null) {\n this.canvas.off(this.zoomCallback);\n }\n\n this._super(canvas);\n\n if (this.canvas !== null) {\n this.canvas.on(\"zoom\", this.zoomCallback);\n }\n },\n\n /**\n *\n * Set the new background color of the figure. It is possible to hands over\n * <code>null</code> to set the background transparent.\n *\n * @param {draw2d.util.Color} color The new background color of the figure\n **/\n setBackgroundColor: function setBackgroundColor(color) {\n color = new _packages2.default.util.Color(color);\n\n this.bgGradient = \"90-\" + color.darker(0.2).hash() + \"-\" + color.hash();\n this._super(color);\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n repaint: function repaint(attributes) {\n\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = attributes || {};\n\n if (this.bgColor.hash() === \"none\") {\n attributes.fill = \"none\";\n } else if (this.getAlpha() < 0.9 || this.useGradient === false) {\n attributes.fill = this.bgColor.rgba();\n } else {\n attributes.fill = this.bgGradient;\n }\n\n this._super(attributes);\n },\n\n /**\n *\n * return true if the element can be used in combination with the\n * SnapToHelper feature.\n *\n * @returns {Boolean}\n **/\n supportsSnapToHelper: function supportsSnapToHelper() {\n return true;\n },\n\n /**\n *\n * Override this method and redirect them to the cavas. A ResizeHandle didn't support\n * Keyboard interaction at the moment.\n *\n * @param {Number} keyCode the id of the pressed key\n * @param {Boolean} ctrl true if the user has pressed the CTRL/STRG key as well.\n **/\n onKeyDown: function onKeyDown(keyCode, ctrl) {\n // don't call the parent function. The parent functions delete this object\n // and a resize handle can't be deleted.\n this.canvas.onKeyDown(keyCode, ctrl);\n },\n\n /**\n * @inheritdoc\n */\n fireEvent: function fireEvent(event, args) {\n // A resizeHandle doesn't fire this event.\n // Normally this set the document dirty. This is not necessary for a ResizeHandle.\n }\n});\n\n/***/ }),\n\n/***/ \"./src/SVGFigure.js\":\n/*!**************************!*\\\n !*** ./src/SVGFigure.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Abstract class which can handle plain SVG content.\n *\n * @author Andreas Herz\n * @extends draw2d.SetFigure\n */\n_packages2.default.SVGFigure = _packages2.default.SetFigure.extend(\n/** @lends draw2d.SVGFigure.prototype */\n{\n\n NAME: \"draw2d.SVGFigure\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.svg = null;\n\n this._super((0, _extend2.default)({}, attr), (0, _extend2.default)({\n svg: this.setSVG\n }, setter), (0, _extend2.default)({\n svg: this.getSVG\n }, getter));\n },\n\n /**\n * @inheritdoc\n */\n createSet: function createSet() {\n // legacy behaviour. Legacy code of Draw2D didn't have the \"svg\" attribute.\n // in this case we must call the overridden method \"getSVG\" to retrieve the SVG from inherit\n // the inherit class.\n //\n if (this.svg === null) {\n this.svg = this.getSVG();\n }\n\n return this.importSVG(this.canvas, this.svg);\n },\n\n /**\n * \n * Returns the current used SVG as string\n * @returns {String}\n */\n getSVG: function getSVG() {\n return this.svg;\n },\n\n /**\n * \n * Set the SVG of this shape\n *\n * @param {String} svg The new SVG to render as String\n * @param {Number} [duration] the optional duration for the change of the SVG of the figure\n *\n * @returns {draw2d.SVGFigure}\n */\n setSVG: function setSVG(svg, duration) {\n this.svg = svg;\n\n // SVG has changed. Update the rendering\n //\n if (this.canvas !== null && this.svgNodes !== null) {\n var newSVGNodes = this.createSet();\n if (!isNaN(parseFloat(duration))) {\n newSVGNodes.hide();\n newSVGNodes.insertAfter(this.svgNodes);\n var oldSVG = this.svgNodes;\n this.svgNodes = newSVGNodes;\n this.applyTransformation();\n oldSVG.forEach(function (shape) {\n $(shape.node).fadeOut(duration, function () {\n shape.remove();\n });\n });\n newSVGNodes.forEach(function (shape) {\n $(shape.node).fadeIn(duration);\n });\n } else {\n newSVGNodes.insertAfter(this.svgNodes);\n this.svgNodes.remove();\n this.svgNodes = newSVGNodes;\n this.applyTransformation();\n }\n }\n\n return this;\n },\n\n /**\n * \n * Helper method to transform the SVG string into a raphaelJS set.\n *\n * @private\n */\n importSVG: function importSVG(canvas, rawSVG) {\n\n var set = canvas.paper.set();\n\n try {\n if (typeof rawSVG === 'undefined') {\n throw 'No data was provided.';\n }\n\n // Override the dimension from the JSON if the SVG contains any\n //\n var svgDOM = $(rawSVG);\n\n // set the dimension of the element if the JSON import didn't provide\n // a dimension already\n //\n if (typeof this._dimensionReadFromJSON === \"undefined\") {\n if (svgDOM.attr(\"width\") && svgDOM.attr(\"height\")) {\n this.setDimension(parseFloat(svgDOM.attr(\"width\")), parseFloat(svgDOM.attr(\"height\")));\n }\n delete this._dimensionReadFromJSON;\n }\n\n var findStyle = new RegExp('([a-z0-9\\-]+) ?: ?([^ ;]+)[ ;]?', 'gi');\n\n svgDOM.children().each(function (i, element) {\n //element = $(element);\n var shape = null;\n var style = null;\n var attr = {};\n var node = element.tagName;\n\n // remove the namespace of the node if existing. This can happen in IE8\n //\n var index = node.indexOf(\":\");\n if (index != -1) node = node.substr(index + 1);\n\n // map some element to Raphael specifix attributes or ignore some unknown attributes\n //\n $(element.attributes).each(function () {\n switch (this.nodeName) {\n case 'stroke-dasharray':\n attr[this.nodeName] = '- ';\n break;\n case 'style':\n style = this.nodeValue;\n break;\n case 'id':\n case 'xml:space':\n // just to ignore\n break;\n default:\n if (this.value) {\n attr[this.nodeName] = this.value;\n } else {\n // @deprecated\n attr[this.nodeName] = this.nodeValue;\n }\n break;\n }\n });\n\n if (style !== null) {\n while (findStyle.exec(style)) {\n attr[RegExp.$1] = RegExp.$2;\n }\n }\n\n // set some good defaults if the element didn't provide a stroke-width but has a \"stroke\" attribute\n //\n if (typeof attr['stroke-width'] === 'undefined') {\n attr['stroke-width'] = typeof attr.stroke === 'undefined' ? 0 : 1.2;\n }\n\n switch (node) {\n case 'rect':\n shape = canvas.paper.rect();\n\n // transfer rx-SVG attribute to the \"r\" attribute of raphael\n if (typeof attr[\"rx\"] !== \"undefined\") {\n attr.r = parseInt(attr.rx);\n delete attr.rx;\n }\n break;\n case 'circle':\n shape = canvas.paper.circle();\n break;\n case 'ellipse':\n shape = canvas.paper.ellipse();\n break;\n case 'path':\n attr.fill = \"none\";\n shape = canvas.paper.path(attr.d);\n break;\n case 'line':\n attr.d = \"M \" + attr.x1 + \" \" + attr.y1 + \"L\" + attr.x2 + \" \" + attr.y2;\n attr.fill = \"none\";\n shape = canvas.paper.path(attr.d);\n break;\n case 'polyline':\n var path = attr.points;\n attr.d = \"M \" + path.replace(\" \", \" L\");\n shape = canvas.paper.path(attr.d);\n break;\n case 'polygon':\n shape = canvas.paper.polygon(attr.points);\n break;\n case 'image':\n shape = canvas.paper.image();\n break;\n case 'tspan':\n case 'text':\n if (element.childNodes.length > 0) {\n var child = element.firstChild;\n do {\n switch (child.nodeType) {\n case 2: //ATTRIBUTE_NODE\n case 4: //CDATA_SECTION_NODE\n case 5: //ENTITY_REFERENCE_NODE\n case 6: //ENTITY_NODE\n case 7: //PROCESSING_INSTRUCTION_NODE\n case 8: //COMMENT_NODE\n case 9: //DOCUMENT_NODE\n case 10: //DOCUMENT_TYPE_NODE\n case 11: //DOCUMENT_FRAGMENT_NODE\n case 12:\n //NOTATION_NODE\n return;\n case 3:\n //TEXT_NODE\n // redirect to the parent node if we found a simple TEXT without any attributes\n child = element;\n break;\n case 1: //ELEMENT_NODE\n }\n var subShape = canvas.paper.text(0, 0, $(child).text());\n var subAttr = { \"x\": parseFloat(child.attributes.x.value), \"y\": parseFloat(child.attributes.y.value) };\n subAttr[\"text-anchor\"] = \"start\";\n if (typeof child.attributes[\"text-anchor\"] !== \"undefined\") {\n subAttr[\"text-anchor\"] = child.attributes[\"text-anchor\"].value;\n } else if (typeof attr[\"text-anchor\"] !== \"undefined\") {\n subAttr[\"text-anchor\"] = attr[\"text-anchor\"];\n }\n\n if (typeof child.attributes[\"font-size\"] !== \"undefined\") {\n subAttr[\"font-size\"] = parseInt(child.attributes[\"font-size\"].value);\n } else if (typeof attr[\"font-size\"] !== \"undefined\") {\n // inherit the font size from the parent node\n subAttr[\"font-size\"] = parseInt(attr[\"font-size\"]);\n }\n\n if (typeof child.attributes[\"font-family\"] !== \"undefined\") {\n subAttr[\"font-family\"] = child.attributes[\"font-family\"].value;\n } else if (typeof attr[\"font-family\"] !== \"undefined\") {\n // inherit the font size from the parent node\n subAttr[\"font-family\"] = attr[\"font-family\"];\n }\n\n subAttr[\"fill\"] = \"#000000\";\n if (typeof child.attributes[\"fill\"] !== \"undefined\") {\n subAttr[\"fill\"] = child.attributes[\"fill\"].value;\n } else if (typeof attr[\"fill\"] !== \"undefined\") {\n // inherit the font size from the parent node\n subAttr[\"fill\"] = attr[\"fill\"];\n }\n\n subAttr.y = subAttr.y + subShape.getBBox().height / 2;\n\n subShape.attr(subAttr);\n set.push(subShape);\n child = child.nextSibling;\n } while (child && child.nodeType === 3); // 3= TEXT_NODE\n } else {\n shape = canvas.paper.text(0, 0, $(element).html());\n if (typeof attr[\"fill\"] === \"undefined\") attr[\"fill\"] = \"#000000\";\n if (typeof attr[\"text-anchor\"] === \"undefined\") attr[\"text-anchor\"] = \"start\";\n if (typeof attr[\"font-size\"] !== \"undefined\") attr[\"font-size\"] = parseInt(attr[\"font-size\"]);\n if (typeof attr[\"font-family\"] !== \"undefined\") attr[\"font-family\"] = parseInt(attr[\"font-family\"]);\n attr.y = parseFloat(attr.y) + shape.getBBox().height / 2;\n }\n break;\n }\n if (shape !== null) {\n shape.attr(attr);\n set.push(shape);\n }\n });\n } catch (error) {\n alert('The SVG data you entered was invalid! (' + error + ')');\n }\n\n return set;\n },\n\n /**\n * \n * Read all attributes from the serialized properties and transfer them into the shape.\n *\n * @param {Object} memento\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n\n // keep a temp flag to indicate the we have read the dimension of the\n // element from the JSON struct. In this case we didn't care about the dimension\n // from the SVG data\n //\n if (typeof memento.width !== \"undefined\") {\n this._dimensionReadFromJSON = true;\n } else if (typeof memento.height !== \"undefined\") {\n this._dimensionReadFromJSON = true;\n }\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/Selection.js\":\n/*!**************************!*\\\n !*** ./src/Selection.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Represents the current selection in the canvas. The selection element is a pure passive element which\n * manage/store the selection.\n *\n *\n * @author Andreas Herz\n */\n_packages2.default.Selection = Class.extend(\n/** @lends draw2d.Selection.prototype */\n{\n\n NAME: \"draw2d.Selection\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n */\n init: function init() {\n this.primary = null;\n this.all = new _packages2.default.util.ArrayList();\n },\n\n /**\n * \n * Reset the current selection\n *\n */\n clear: function clear() {\n this.primary = null;\n this.all = new _packages2.default.util.ArrayList();\n\n return this;\n },\n\n /**\n * \n * Return the primary selection. This can only one figure at once.\n *\n * @returns {draw2d.Figure} the primary selected figure\n */\n getPrimary: function getPrimary() {\n return this.primary;\n },\n\n /**\n * \n * Set the primary selection.\n *\n * @param {draw2d.Figure} figure The new primary selection\n */\n setPrimary: function setPrimary(figure) {\n this.primary = figure;\n this.add(figure);\n\n return this;\n },\n\n /**\n * \n * Remove the given figure from the selection (primary,all)\n *\n * @param {draw2d.Figure} figure\n */\n remove: function remove(figure) {\n this.all.remove(figure);\n if (this.primary === figure) {\n this.primary = null;\n }\n\n return this;\n },\n\n /**\n * \n * Add a figure to the selection. No events are fired or update the selection handle. This method just\n * add the figure to the internal management data structure.\n *\n * @param figure\n * @private\n */\n add: function add(figure) {\n if (figure !== null && !this.all.contains(figure)) {\n this.all.add(figure);\n }\n\n return this;\n },\n\n /**\n * \n * return true if the given figure part of the selection.\n *\n * @param {draw2d.Figure} figure The figure to check\n * @param {Boolean} [checkDescendant] Check if the figure provided by the argument is a descendant of the selection whether it is a direct child or nested more deeply.\n *\n * @since 2.2.0\n * @returns {Boolean}\n */\n contains: function contains(figure, checkDescendant) {\n if (checkDescendant) {\n for (var i = 0; i < this.all.getSize(); i++) {\n var figureToCheck = this.all.get(i);\n if (figureToCheck === figure || figureToCheck.contains(figure)) {\n return true;\n }\n }\n return false;\n }\n return this.all.contains(figure);\n },\n\n /**\n * \n * Return the size of the selection\n *\n * @since 4.8.0\n */\n getSize: function getSize() {\n return this.all.getSize();\n },\n\n /**\n * \n * Return the complete selection - including the primary selection.\n *\n * @param {Boolean} [expand] expand all StrongComposite and WeakComposite to get all figures. Didn't expand any SetFigures or LayoutFigures\n * @returns {draw2d.util.ArrayList}\n *\n */\n getAll: function getAll(expand) {\n if (expand === true) {\n var result = new _packages2.default.util.ArrayList();\n var addRecursive = function addRecursive(figures) {\n result.addAll(figures, true);\n figures.each(function (index, figure) {\n if (figure instanceof _packages2.default.shape.composite.StrongComposite) {\n addRecursive(figure.getAssignedFigures());\n }\n });\n };\n addRecursive(this.all);\n\n return result;\n }\n\n return this.all.clone();\n },\n\n /**\n * \n * Iterates over the current selection with <b>func</b> as callback handler.\n *\n * @param {Function} func the callback function to call for each element\n * @param {Number} func.i index of the element in iteration\n * @param {Object} func.value value of the element in iteration.\n * @param {Boolean} [reverse] optional parameter. Iterate the collection reverse if it set to <b>true</b>\n */\n each: function each(func, reverse) {\n this.all.each(func, reverse);\n\n return this;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/SetFigure.js\":\n/*!**************************!*\\\n !*** ./src/SetFigure.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A SetFigure is a composition of different SVG elements.\n *\n * @author Andreas Herz\n * @extends draw2d.shape.basic.Rectangle\n */\n_packages2.default.SetFigure = _packages2.default.shape.basic.Rectangle.extend(\n/** @lends draw2d.SetFigure.prototype */\n{\n\n NAME: \"draw2d.SetFigure\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n // collection of SVG DOM nodes\n this.svgNodes = null;\n\n this.originalWidth = null;\n this.originalHeight = null;\n\n this.scaleX = 1;\n this.scaleY = 1;\n\n this.strokeScale = true; // scale the stroke width of the children nodes if the parent resize\n\n this._super((0, _extend2.default)({ stroke: 0, bgColor: null }, attr), setter, getter);\n },\n\n /**\n * \n * Set/Reset the canvas for the element.\n *\n * @param {draw2d.Canvas} canvas the canvas to use\n */\n setCanvas: function setCanvas(canvas) {\n // remove the shape if we reset the canvas and the element\n // was already drawn\n if (canvas === null && this.svgNodes !== null) {\n this.svgNodes.remove();\n this.svgNodes = null;\n }\n\n this._super(canvas);\n },\n\n /**\n * \n * Set the css class if the node.\n *\n * @param {String} cssClass the new css class name of the node\n * @since 2.9.0\n */\n setCssClass: function setCssClass(cssClass) {\n this._super(cssClass);\n\n if (this.svgNodes === null) {\n return this;\n }\n\n if (this.cssClass === null) {\n this.svgNodes.forEach(function (e) {\n e.node.removeAttribute(\"class\");\n });\n } else {\n this.svgNodes.forEach(function (e) {\n e.node.setAttribute(\"class\", cssClass);\n });\n }\n\n return this;\n },\n\n /**\n * \n * propagate all attributes like color, stroke,... to the shape element and\n * repaint them.\n *\n * @protected\n **/\n repaint: function repaint(attributes) {\n // repaint can be blocked during deserialization and if the shape\n // not part of any canvas.\n //\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n if (this.originalWidth !== null) {\n this.scaleX = this.width / this.originalWidth;\n this.scaleY = this.height / this.originalHeight;\n }\n\n attributes = attributes || {};\n\n this.applyAlpha();\n\n this._super(attributes);\n },\n\n /**\n * @inheritdoc\n */\n setVisible: function setVisible(flag, duration) {\n this._super(flag, duration);\n\n if (this.svgNodes !== null) {\n if (duration) {\n if (this.visible === true) {\n this.svgNodes.forEach(function (shape) {\n $(shape.node).fadeIn(duration, function () {\n return shape.show();\n });\n });\n } else {\n this.svgNodes.forEach(function (shape) {\n $(shape.node).fadeOut(duration, function () {\n return shape.hide();\n });\n });\n }\n } else {\n if (this.visible === true) {\n this.svgNodes.show();\n } else {\n this.svgNodes.hide();\n }\n }\n }\n },\n\n /**\n * \n * Apply the opacity to all child set elements. Override this if you want to avoid opacity changes.\n * @private\n *\n */\n applyAlpha: function applyAlpha() {\n this.svgNodes.attr({ opacity: this.alpha });\n },\n\n /**\n * @private\n */\n applyTransformation: function applyTransformation() {\n var s = \"S\" + this.scaleX + \",\" + this.scaleY + \",0,0 \" + \"R\" + this.rotationAngle + \",\" + (this.getWidth() / 2 | 0) + \",\" + (this.getHeight() / 2 | 0) + \"T\" + this.getAbsoluteX() + \",\" + this.getAbsoluteY() + \"\";\n this.svgNodes.transform(s);\n if (this.rotationAngle === 90 || this.rotationAngle === 270) {\n var before = this.svgNodes.getBBox(true);\n var ratio = before.height / before.width;\n var reverseRatio = before.width / before.height;\n var rs = \"...S\" + ratio + \",\" + reverseRatio + \",\" + (this.getAbsoluteX() + this.getWidth() / 2) + \",\" + (this.getAbsoluteY() + this.getHeight() / 2);\n this.svgNodes.transform(rs);\n }\n\n return this;\n },\n\n /**\n * \n * Moves the element so it is the closest to the viewer’s eyes, on top of other elements. Additional\n * the internal model changed as well.\n *\n * Optional: Inserts current object in front of the given one.\n *\n * @param {draw2d.Figure} [figure] move current object in front of the given one.\n * @since 3.0.0\n */\n toFront: function toFront(figure) {\n ////////////////////////////////////////////////////////////////////\n // NOTE: the code has a complete different order of draw2d.Figure.\n // we must respect the svgNodes here\n ////////////////////////////////////////////////////////////////////\n\n // ensure that the z-oder is still correct if the figure is assigned\n // to a StrongComposite\n //\n if (this.composite instanceof _packages2.default.shape.composite.StrongComposite && typeof figure !== \"undefined\") {\n var indexFigure = figure.getZOrder();\n var indexComposite = this.composite.getZOrder();\n if (indexFigure < indexComposite) {\n figure = this.composite;\n }\n }\n\n if (typeof figure === \"undefined\") {\n // bring the outer frame in front...\n this.getShapeElement().toFront();\n\n // and all inner children\n //\n if (this.svgNodes !== null) {\n this.svgNodes.toFront();\n }\n\n if (this.canvas !== null) {\n var figures = this.canvas.getFigures();\n var lines = this.canvas.getLines();\n if (figures.remove(this) !== null) {\n figures.add(this);\n } else if (lines.remove(this) !== null) {\n lines.add(this);\n }\n }\n } else {\n // Bring the SVG shapes between the \"figure\" and the container of this shape\n //\n if (this.svgNodes !== null) {\n this.svgNodes.insertAfter(figure.getTopLevelShapeElement());\n }\n this.getShapeElement().insertAfter(figure.getTopLevelShapeElement());\n\n if (this.canvas !== null) {\n var _figures = this.canvas.getFigures();\n var _lines = this.canvas.getLines();\n if (_figures.remove(this) !== null) {\n var index = _figures.indexOf(figure);\n _figures.insertElementAt(this, index + 1);\n } else if (_lines.remove(this) !== null) {\n _lines.add(this);\n }\n }\n }\n\n // bring all children in front of the parent\n //\n this.children.each(function (i, child) {\n child.figure.toFront(figure);\n });\n\n // the ports are always on top\n //\n var _this = this;\n this.getPorts().each(function (i, port) {\n port.getConnections().each(function (i, connection) {\n connection.toFront(figure);\n });\n // a port should always be in front of the shape doesn't matter what the\n // \"figure\" parameter says.\n //\n port.toFront(_this);\n });\n\n // and last but not lease the ResizeHandles if any present\n //\n this.selectionHandles.each(function (i, handle) {\n handle.toFront();\n });\n\n return this;\n },\n\n /**\n * \n * Moves the element to the background. Additional\n * the internal model changed as well.\n *\n * Optional: Inserts current object in front of the given one.\n *\n * @param {draw2d.Figure} [figure] move current object in front of the given one.\n * @since 4.7.2\n */\n toBack: function toBack(figure) {\n // it is not allowed that a figure is behind the assigned composite\n //\n if (this.composite instanceof _packages2.default.shape.composite.StrongComposite) {\n this.toFront(this.composite);\n return;\n }\n\n // sort the JSON Doc\n //\n if (this.canvas !== null) {\n var figures = this.canvas.getFigures();\n var lines = this.canvas.getLines();\n if (figures.remove(this) !== null) {\n figures.insertElementAt(this, 0);\n } else if (lines.remove(this) !== null) {\n lines.insertElementAt(this, 0);\n }\n }\n\n // bring all children figures in front of the parent\n // run reverse to the collection to care about the z-order of the children)\n this.children.each(function (i, child) {\n child.figure.toBack(figure);\n }, true);\n\n if (this.svgNodes !== null) {\n if (typeof figure !== \"undefined\") {\n this.svgNodes.insertBefore(figure.getShapeElement());\n } else {\n this.svgNodes.toBack();\n }\n }\n\n if (this.canvas !== null) {\n if (typeof figure !== \"undefined\") {\n this.getShapeElement().insertBefore(figure.getShapeElement());\n } else {\n this.getShapeElement().toBack();\n }\n }\n\n // and last but not least - the ports are always on top\n //\n var _this = this;\n this.getPorts().each(function (i, port) {\n port.getConnections().each(function (i, connection) {\n connection.toFront(_this);\n });\n // a port should always be in front of the shape doesn't matter what the\n // \"figure\" parameter says.\n //\n port.toFront(_this);\n });\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n getTopLevelShapeElement: function getTopLevelShapeElement() {\n if (this.svgNodes.length === 0) {\n return this.shape;\n }\n return this.svgNodes;\n },\n\n /**\n * @private\n */\n createShapeElement: function createShapeElement() {\n // NOTE: don't change the order of the two calls. This defines the z-oder in the canvas.\n // The \"set\" must always be on top.\n var shape = this.canvas.paper.rect(this.getX(), this.getY(), this.getWidth(), this.getHeight());\n this.svgNodes = this.createSet();\n\n // check if the element is a \"set\" or a simple raphael shape. otherwise we wrap them into a set\n //\n if (typeof this.svgNodes.forEach === \"undefined\") {\n var set = this.canvas.paper.set();\n set.push(this.svgNodes);\n this.svgNodes = set;\n }\n\n this.svgNodes.attr({ \"stroke-scale\": this.strokeScale });\n\n // update the visibility of the children\n this.setVisible(this.visible);\n\n // propagate the CSS style to all set elements\n this.setCssClass(this.cssClass);\n\n var bb = this.svgNodes.getBBox();\n this.originalWidth = bb.width;\n this.originalHeight = bb.height;\n\n return shape;\n },\n\n /**\n * \n * Override this method to add your own SVG elements. See {@link draw2d.shape.basic.Label} as example.\n *\n * @template\n */\n createSet: function createSet() {\n return this.canvas.paper.set(); // return empty set as default;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/VectorFigure.js\":\n/*!*****************************!*\\\n !*** ./src/VectorFigure.js ***!\n \\*****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _JSONUtil = __webpack_require__(/*! util/JSONUtil */ \"./src/util/JSONUtil.js\");\n\nvar _JSONUtil2 = _interopRequireDefault(_JSONUtil);\n\nvar _extend = __webpack_require__(/*! util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * The base class for all vector based figures like {@link draw2d.shape.basic.Rectangle} or {@link draw2d.shape.basic.Oval}\n * inside a canvas.\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.node.Node\n */\n_packages2.default.VectorFigure = _packages2.default.shape.node.Node.extend(\n/** @lends draw2d.VectorFigure.prototype */\n{\n\n NAME: \"draw2d.VectorFigure\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.stroke = 1;\n this.radius = 0;\n this.bgColor = new _packages2.default.util.Color(\"#ffffff\");\n this.color = new _packages2.default.util.Color(\"#303030\");\n this.dasharray = null;\n\n // memento for the stroke if we reset the glow effect of this shape\n //\n this.strokeBeforeGlow = this.stroke;\n this.glowIsActive = false;\n\n this._super(attr, (0, _extend2.default)({\n // @attr {String} dasharray the line pattern see {@link draw2d.shape.basic.Line#setDashArray} for more information*/\n dasharray: this.setDashArray,\n // @attr {Number} radius the radius to render the line edges */\n radius: this.setRadius,\n // @attr {String|draw2d.util.Color} bgColor the background color of the shape */\n bgColor: this.setBackgroundColor,\n // @attr {String|draw2d.util.Color} color the main color of the shape */\n color: this.setColor,\n // @attr {Number} stroke the stroke width */\n stroke: this.setStroke\n }, setter), (0, _extend2.default)({\n dasharray: this.getDashArray,\n radius: this.getRadius,\n bgColor: this.getBackgroundColor,\n color: this.getColor,\n stroke: this.getStroke\n }, getter));\n },\n\n /**\n * \n * Sets the corner radius or the edges.\n *\n * @param {Number} radius\n * @since 4.2.1\n */\n setRadius: function setRadius(radius) {\n this.radius = radius;\n this.repaint();\n this.fireEvent(\"change:radius\", { value: this.radius });\n\n return this;\n },\n\n /**\n * \n * Get the corner radius of the edges.\n *\n * @returns {Number}\n * @since 4.2.1\n */\n getRadius: function getRadius() {\n return this.radius;\n },\n\n /**\n * \n * Set the line style for this object.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * dash: dashPattern\n * });\n *\n * @param {String} dash can be one of this [\"\", \"-\", \".\", \"-.\", \"-..\", \". \", \"- \", \"--\", \"- .\", \"--.\", \"--..\"]\n */\n setDashArray: function setDashArray(dashPattern) {\n this.dasharray = dashPattern;\n this.repaint();\n\n this.fireEvent(\"change:dashArray\", { value: this.dasharray });\n\n return this;\n },\n\n /**\n * \n * Get the line style for this object.\n *\n * // Alternatively you can use the attr method:\n * figure.attr(\"dash\");\n *\n * @since 5.1.0\n */\n getDashArray: function getDashArray() {\n return this.dasharray;\n },\n\n /**\n * \n * Highlight the element or remove the highlighting\n *\n * @param {Boolean} flag indicates glow/noGlow\n */\n setGlow: function setGlow(flag) {\n\n if (flag === this.glowIsActive) {\n return this;\n }\n\n this.glowIsActive = flag;\n if (flag === true) {\n this.strokeBeforeGlow = this.getStroke();\n this.setStroke(this.strokeBeforeGlow * 2.5);\n } else {\n this.setStroke(this.strokeBeforeGlow);\n }\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = attributes || {};\n\n attributes.x = this.getAbsoluteX();\n attributes.y = this.getAbsoluteY();\n\n if (typeof attributes.stroke === \"undefined\") {\n if (this.color === null || this.stroke === 0) {\n attributes.stroke = \"none\";\n } else {\n attributes.stroke = this.color.rgba();\n }\n }\n\n _JSONUtil2.default.ensureDefault(attributes, \"stroke-width\", this.stroke);\n _JSONUtil2.default.ensureDefault(attributes, \"fill\", this.bgColor.rgba());\n _JSONUtil2.default.ensureDefault(attributes, \"dasharray\", this.dasharray);\n _JSONUtil2.default.ensureDefault(attributes, \"stroke-dasharray\", this.dasharray);\n\n this._super(attributes);\n\n return this;\n },\n\n /**\n * \n * Set the new background color of the figure. It is possible to hands over\n * <code>null</code> to set the background transparent.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * \"bgColor\": \"#f0f0f0\"\n * });\n *\n * @param {String|draw2d.util.Color} color The new background color of the figure\n **/\n setBackgroundColor: function setBackgroundColor(color) {\n this.bgColor = new _packages2.default.util.Color(color);\n\n this.repaint();\n this.fireEvent(\"change:bgColor\", { value: this.bgColor });\n\n return this;\n },\n\n /**\n * \n * The current used background color.\n *\n * // Alternatively you can use the attr method:\n * var color =figure.attr(\"bgColor\");\n *\n * @returns {draw2d.util.Color}\n */\n getBackgroundColor: function getBackgroundColor() {\n return this.bgColor;\n },\n\n /**\n * \n * Set the stroke to use.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * \"stroke\": 2\n * });\n *\n * @param {Number} w The new line width of the figure\n **/\n setStroke: function setStroke(w) {\n this.stroke = w;\n this.repaint();\n this.fireEvent(\"change:stroke\", { value: this.stroke });\n\n return this;\n },\n\n /**\n * \n * The used line width.\n *\n * @returns {Number}\n **/\n getStroke: function getStroke() {\n return this.stroke;\n },\n\n /**\n * \n * Set the foreground color of the figure.\n * This method fires a <i>document dirty</i> event.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * \"color\": \"#f3f3f3\"\n * });\n *\n * @param {String|draw2d.util.Color} color The new color of the line.\n **/\n setColor: function setColor(color) {\n this.color = new _packages2.default.util.Color(color);\n this.repaint();\n this.fireEvent(\"change:color\", { value: this.color });\n\n return this;\n },\n\n /**\n * \n * Get the current used foreground color\n *\n *\n * @returns {draw2d.util.Color}\n */\n getColor: function getColor() {\n return this.color;\n },\n\n /**\n * @inheritdoc\n */\n getPersistentAttributes: function getPersistentAttributes() {\n return (0, _extend2.default)(this._super(), {\n bgColor: this.bgColor.rgba(),\n color: this.color.rgba(),\n stroke: this.stroke,\n radius: this.radius,\n dasharray: this.dasharray\n });\n },\n\n /**\n * @inheritdoc\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n\n if (typeof memento.radius !== \"undefined\") {\n this.setRadius(memento.radius);\n }\n\n if (typeof memento.bgColor !== \"undefined\") {\n this.setBackgroundColor(memento.bgColor);\n }\n\n if (typeof memento.color !== \"undefined\") {\n this.setColor(memento.color);\n }\n\n if (typeof memento.stroke !== \"undefined\") {\n this.setStroke(memento.stroke === null ? 0 : parseFloat(memento.stroke));\n }\n\n if (typeof memento.dasharray === \"string\") {\n this.dasharray = memento.dasharray;\n }\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/command/Command.js\":\n/*!********************************!*\\\n !*** ./src/command/Command.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Commands are passed around throughout editing. They are used to encapsulate and combine\n * changes to the application's model. An application has a single command stack. Commands must\n * be executed using the command stack rather than directly calling execute.\n * <br>\n * This is required for a generic support for the undo/redo concept within draw2d.<br>\n *\n * @inheritable\n * @author Andreas Herz\n */\n_packages2.default.command.Command = Class.extend(\n/** @lends draw2d.command.Command.prototype */\n{\n\n NAME: \"draw2d.command.Command\",\n\n /**\n * Create a new Command objects which can be execute via the CommandStack.\n *\n * @param {String} label\n */\n init: function init(label) {\n this.label = label;\n },\n\n /**\n * \n * Returns a label of the Command. e.g. `move figure`.\n *\n * @returns {String} the label for this command\n **/\n getLabel: function getLabel() {\n return this.label;\n },\n\n /**\n * \n * Returns [true] if the command can be execute and the execution of the\n * command modifies the model. e.g.: a CommandMove with [startX,startX] == [endX,endY] should\n * return false. The execution of this Command doesn't modify the model.\n *\n * @returns {Boolean} return try if the command modify the model or make any relevant changes\n **/\n canExecute: function canExecute() {\n return true;\n },\n\n /**\n * \n * Execute the command the first time.\n * Sup-classes must implement this method.\n *\n * @template\n **/\n execute: function execute() {},\n\n /**\n * \n * Will be called if the user cancel the operation.\n *\n * @template\n **/\n cancel: function cancel() {},\n\n /**\n * \n * Undo the command.\n * Sup-classes must implement this method.\n *\n * @template\n **/\n undo: function undo() {},\n\n /**\n * \n * Redo the command after the user has undo this command.\n * Sup-classes must implement this method.\n *\n * @template\n **/\n redo: function redo() {}\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandAdd.js\":\n/*!***********************************!*\\\n !*** ./src/command/CommandAdd.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Command to add a figure with CommandStack support.\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandAdd = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandAdd.prototype */\n{\n\n NAME: \"draw2d.command.CommandAdd\",\n\n /**\n * Create a add command for the given figure.\n *\n * @param {draw2d.Canvas} canvas the canvas to use\n * @param {draw2d.Figure} figure the figure to add\n * @param {Number|draw2d.geo.Point} x the x-coordinate or a complete point where to place the figure\n * @param {Number} [y] the y-coordinate if x is a number and not a complete point\n */\n init: function init(canvas, figure, x, y) {\n this._super(_packages2.default.Configuration.i18n.command.addShape);\n this.figure = figure;\n this.canvas = canvas;\n this.pos = new _packages2.default.geo.Point(x, y);\n },\n\n /**\n * \n * Returns [true] if the command can be execute and the execution of the\n * command modifies the model. e.g.: a CommandMove with [startX,startX] == [endX,endY] should\n * return false. The execution of this Command doesn't modify the model.\n *\n * @returns {Boolean} return try if the command modify the model or make any relevant changes\n **/\n canExecute: function canExecute() {\n // we can only add the figure once to the canvas\n return this.figure.getCanvas() === null;\n },\n\n /**\n * \n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.canvas.add(this.figure, this.pos.x, this.pos.y);\n },\n\n /**\n * \n * Redo the command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.execute();\n },\n\n /**\n * \n * Undo the command\n *\n **/\n undo: function undo() {\n this.canvas.remove(this.figure);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandAddVertex.js\":\n/*!*****************************************!*\\\n !*** ./src/command/CommandAddVertex.js ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Add a vertex to a polyline or polygon\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandAddVertex = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandAddVertex.prototype */\n{\n\n NAME: \"draw2d.command.CommandAddVertex\",\n\n /**\n * Create a new Command objects which add a vertex to a PolyLine / Polygon.\n *\n * @param {draw2d.shape.basic.PolyLine} line the related line\n * @param {Number} index the index where to add\n * @param {Number} x the x coordinate for the new vertex\n * @param {Number} y the y coordinate for the new vertex\n */\n init: function init(line, index, x, y) {\n this._super(_packages2.default.Configuration.i18n.command.addVertex);\n\n this.line = line;\n this.index = index;\n this.newPoint = new _packages2.default.geo.Point(x, y);\n },\n\n /**\n *\n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return true;\n },\n\n /**\n *\n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n *\n *\n * Undo the move command\n *\n **/\n undo: function undo() {\n this.line.removeVertexAt(this.index);\n },\n\n /**\n *\n *\n * Redo the move command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.line.insertVertexAt(this.index, this.newPoint.x, this.newPoint.y);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandAssignFigure.js\":\n/*!********************************************!*\\\n !*** ./src/command/CommandAssignFigure.js ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Assign a figure to a compiste\n *\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n * @since 4.9.0\n */\n_packages2.default.command.CommandAssignFigure = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandAssignFigure.prototype */\n{\n\n NAME: \"draw2d.command.CommandAssignFigure\",\n\n /**\n * Create a new Command objects which can be execute via the CommandStack.\n *\n * @param {draw2d.Figure} figure the figure to assign\n * @param {draw2d.Figure} composite the composite where the figure should assign\n */\n init: function init(figure, composite) {\n this._super(_packages2.default.Configuration.i18n.command.assignShape);\n\n this.figure = figure;\n this.composite = composite;\n this.assignedConnections = new _packages2.default.util.ArrayList();\n this.isNode = this.figure instanceof _packages2.default.shape.node.Node;\n this.oldBoundingBox = composite.getBoundingBox();\n },\n\n /**\n *\n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return true;\n },\n\n /**\n *\n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.composite.assignFigure(this.figure);\n\n // get all connections of the shape and check if source/target node\n // part of the composite. In this case the connection will be part of\n // the composite as well\n if (this.isNode === true) {\n var connections = this.figure.getConnections();\n var _this = this;\n connections.each(function (i, connection) {\n if (connection.getSource().getParent().getComposite() === _this.composite && connection.getTarget().getParent().getComposite() === _this.composite) {\n if (connection.getComposite() !== _this.composite) {\n _this.assignedConnections.add({ oldComposite: connection.getComposite(), connection: connection });\n _this.composite.assignFigure(connection);\n }\n }\n });\n }\n },\n\n /**\n *\n *\n * Undo the move command\n *\n **/\n undo: function undo() {\n this.composite.unassignFigure(this.figure);\n this.assignedConnections.each(function (i, entry) {\n if (entry.oldComposite !== null) {\n entry.oldComposite.assignFigure(entry.connection);\n } else {\n entry.connection.getComposite().unassignFigure(entry.connection);\n }\n });\n this.composite.stickFigures = true;\n this.composite.setBoundingBox(this.oldBoundingBox);\n this.composite.stickFigures = false;\n },\n\n /**\n *\n *\n * Redo the move command after the user has undo this command\n *\n **/\n redo: function redo() {\n var _this2 = this;\n\n this.composite.setBoundingBox(this.oldBoundingBox);\n this.composite.assignFigure(this.figure);\n this.assignedConnections.each(function (i, entry) {\n return _this2.composite.assignFigure(entry.connection);\n });\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandAttr.js\":\n/*!************************************!*\\\n !*** ./src/command/CommandAttr.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *Command to change attributes of a shape with undo/redo support\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandAttr = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandAttr.prototype */\n{\n\n NAME: \"draw2d.command.CommandAttr\",\n\n /**\n * Create a new Command objects which provides undo/redo for attributes.\n *\n * @param {draw2d.Figure} figure the figure to handle\n * @param {Object} attributes new attributes to set\n */\n init: function init(figure, newAttributes) {\n var _this = this;\n\n this._super(_packages2.default.Configuration.i18n.command.changeAttributes);\n\n this.figure = figure;\n this.newAttributes = newAttributes;\n this.oldAttributes = {};\n // Get the current attributes from the shape before we modify them.\n // Required for undo/redo\n Object.keys(newAttributes).forEach(function (key) {\n _this.oldAttributes[key] = figure.attr(key);\n });\n },\n\n /**\n * \n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return true;\n },\n\n /**\n * \n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n * \n *\n * Undo the move command\n *\n **/\n undo: function undo() {\n this.figure.attr(this.oldAttributes);\n },\n\n /**\n * \n *\n * Redo the move command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.figure.attr(this.newAttributes);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandBoundingBox.js\":\n/*!*******************************************!*\\\n !*** ./src/command/CommandBoundingBox.js ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Set the bounding box of a figure with undo/redo support\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandBoundingBox = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandResize.prototype */\n{\n\n NAME: \"draw2d.command.CommandResize\",\n\n /**\n * Create a new resize Command objects which can be execute via the CommandStack.\n *\n * @param {draw2d.Figure} figure the figure to resize\n * @param {draw2d.geo.Rectangle} boundingBox the new bounding box of the figure\n */\n init: function init(figure, boundingBox) {\n this._super(_packages2.default.Configuration.i18n.command.resizeShape);\n this.figure = figure;\n this.oldBoundingBox = this.figure.getBoundingBox();\n this.newBoundingBox = boundingBox;\n },\n\n /**\n *\n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return !this.oldBoundingBox.equals(this.newBoundingBox);\n },\n\n /**\n *\n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n *\n * Undo the command\n *\n **/\n undo: function undo() {\n this.figure.setBoundingBox(this.oldBoundingBox);\n },\n\n /**\n *\n * Redo the command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.figure.setBoundingBox(this.newBoundingBox);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandCollection.js\":\n/*!******************************************!*\\\n !*** ./src/command/CommandCollection.js ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A CommandCollection works as a single command. You can add more than one\n * Command to this CommandCollection and execute/undo them onto the CommandStack as a\n * single Command.\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandCollection = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandCollection.prototype */\n{\n\n NAME: \"draw2d.command.CommandCollection\",\n\n /**\n * Create a new CommandConnect objects which can be execute via the CommandStack.\n *\n * @param {String} [commandLabel] the label to show on the command stack for the undo/redo operation\n */\n init: function init(commandLabel) {\n this._super(typeof commandLabel === 'undefined' ? _packages2.default.Configuration.i18n.command.collection : commandLabel);\n\n this.commands = new _packages2.default.util.ArrayList();\n },\n\n /**\n *\n * Returns a label of the Command. e.g. \"move figure\".\n *\n * @returns {String} the label for this command\n **/\n getLabel: function getLabel() {\n //return the label of the one and only command\n //\n if (this.commands.getSize() === 1) {\n return this.commands.first().getLabel();\n }\n\n // return a common label if all commands have the same label.\n //\n if (this.commands.getSize() > 1) {\n var labels = this.commands.clone().map(function (e) {\n return e.getLabel();\n });\n labels.unique();\n if (labels.getSize() === 1) {\n return labels.first();\n }\n }\n\n // return the all purpose label.\n return this._super();\n },\n\n /**\n *\n * Add a command to the collection.\n *\n * @param {draw2d.command.Command} command\n */\n add: function add(command) {\n this.commands.add(command);\n },\n\n /**\n *\n * Returns [true] if the command can be execute and the execution of the\n * command modifies the model. e.g.: a CommandMove with [startX,startX] == [endX,endY] should\n * return false. The execution of this Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // We ask all cmd's if they make any changes.\n // Keep in mind: the command will be execute if at least ONE command return [true]!!!!\n // doesn't matter if the other commands return [false].\n // The method should be renamed into: modifiesTheModel()....design flaw.\n var canExec = false;\n this.commands.each(function (i, cmd) {\n canExec = canExec || cmd.canExecute();\n });\n return canExec;\n },\n\n /**\n *\n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.commands.each(function (i, cmd) {\n cmd.execute();\n });\n },\n\n /**\n *\n * Redo the command after the user has undo this command.\n *\n **/\n redo: function redo() {\n this.commands.each(function (i, cmd) {\n cmd.redo();\n });\n },\n\n /**\n *\n * Undo the command.\n *\n **/\n undo: function undo() {\n // execute the undo operation in reverse direction.\n\n this.commands.reverse();\n this.commands.each(function (i, cmd) {\n cmd.undo();\n });\n this.commands.reverse();\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandConnect.js\":\n/*!***************************************!*\\\n !*** ./src/command/CommandConnect.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Connects two ports with a connection.\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandConnect = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandConnect.prototype */\n{\n\n NAME: \"draw2d.command.CommandConnect\",\n\n /**\n * Create a new CommandConnect objects which can be execute via the CommandStack.\n *\n * @param {draw2d.Port} source the source port for the connection to create\n * @param {draw2d.Port} target the target port for the connection to create\n * @param {draw2d.Port} [dropTarget] the port who has initiate the connection creation. mainly the drop target\n */\n init: function init(source, target, dropTarget) {\n this._super(_packages2.default.Configuration.i18n.command.connectPorts);\n this.canvas = target.getCanvas();\n this.source = source;\n this.target = target;\n this.connection = null;\n this.dropTarget = dropTarget; // optional\n },\n\n /**\n *\n * set the connection to use. called by the ConnectionCreatePolicy\n */\n setConnection: function setConnection(connection) {\n this.connection = connection;\n },\n\n /**\n *\n * Returns the fresh created connection if available. Used in the\n * ClickConnectionCreatePolicy to customize the router and vertices.\n *\n * @returns {null|draw2d.Connection}\n * @since 6.1.0\n */\n getConnection: function getConnection() {\n return this.connection;\n },\n\n /**\n *\n * Execute the command the first time\n *\n **/\n execute: function execute() {\n var _this = this;\n\n var optionalCallback = function optionalCallback(conn) {\n _this.connection = conn;\n _this.connection.setSource(_this.source);\n _this.connection.setTarget(_this.target);\n _this.canvas.add(_this.connection);\n };\n\n // the createConnection must return either a connection or \"undefined\". If the method return \"undefined\"\n // the asynch callback must be called. Usefull if the createConnection shows a selection dialog\n //\n if (this.connection === null) {\n // deprecated call!!!!\n //\n var result = _packages2.default.Configuration.factory.createConnection(this.source, this.target, optionalCallback, this.dropTarget);\n debugger;\n // will be handled by the optional callback\n if (typeof result === \"undefined\") {\n return;\n }\n\n this.connection = result;\n }\n\n optionalCallback(this.connection);\n },\n\n /**\n *\n * Redo the command after the user has undo this command.\n *\n **/\n redo: function redo() {\n this.canvas.add(this.connection);\n this.connection.reconnect();\n },\n\n /**\n *\n * Undo the command.\n *\n **/\n undo: function undo() {\n this.canvas.remove(this.connection);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandDelete.js\":\n/*!**************************************!*\\\n !*** ./src/command/CommandDelete.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Command to remove a figure with CommandStack support.\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandDelete = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandDelete.prototype */\n{\n NAME: \"draw2d.command.CommandDelete\",\n\n /**\n * Create a delete command for the given figure.\n *\n * @param {draw2d.Figure} figure\n */\n init: function init(figure) {\n this._super(_packages2.default.Configuration.i18n.command.deleteShape);\n\n this.parent = figure.getParent();\n this.figure = figure;\n this.canvas = figure.getCanvas();\n this.connections = null;\n this.removedParentEntry = null; // can be null if the figure didn't have any parent shape assigned\n this.indexOfChild = -1;\n },\n\n /**\n * \n * Returns [true] if the command can be execute and the execution of the\n * command modifies the model. e.g.: a CommandMove with [startX,startX] == [endX,endY] should\n * return false. The execution of this Command doesn't modify the model.\n *\n * @returns {Boolean} return try if the command modify the model or make any relevant changes\n **/\n canExecute: function canExecute() {\n // we can only delete the figure if its part of the canvas.\n return this.figure.getCanvas() !== null;\n },\n\n /**\n * \n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n * \n * Undo the command\n *\n **/\n undo: function undo() {\n if (this.parent !== null) {\n this.parent.add(this.removedParentEntry.figure, this.removedParentEntry.locator, this.indexOfChild);\n this.canvas.setCurrentSelection(this.parent);\n } else {\n this.canvas.add(this.figure);\n this.canvas.setCurrentSelection(this.figure);\n }\n\n if (this.figure instanceof _packages2.default.Connection) {\n this.figure.reconnect();\n }\n\n for (var i = 0; i < this.connections.getSize(); ++i) {\n this.canvas.add(this.connections.get(i));\n this.connections.get(i).reconnect();\n }\n },\n\n /**\n * \n *\n * Redo the command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.canvas.setCurrentSelection(null);\n\n // Collect all connections that are bounded to the figure to delete. This connections\n // must be deleted too.\n //\n if (this.connections === null) {\n if (this.figure instanceof _packages2.default.shape.node.Node) {\n this.connections = this.figure.getConnections();\n } else {\n this.connections = new _packages2.default.util.ArrayList();\n }\n }\n\n // already done in the canvas.remove(..) method\n // if(this.figure instanceof draw2d.Connection){\n // this.figure.disconnect();\n // }\n\n\n // remove all connections\n //\n for (var i = 0; i < this.connections.getSize(); ++i) {\n this.canvas.remove(this.connections.get(i));\n }\n\n // remove this figure from the parent\n //\n if (this.parent !== null) {\n // determine the index of the child before remove\n this.indexOfChild = this.parent.getChildren().indexOf(this.figure);\n this.removedParentEntry = this.parent.remove(this.figure);\n }\n // or from the canvas\n else {\n this.canvas.remove(this.figure);\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandDeleteGroup.js\":\n/*!*******************************************!*\\\n !*** ./src/command/CommandDeleteGroup.js ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Command to remove a group with all related children.\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandDeleteGroup = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandDeleteGroup.prototype */\n{\n\n NAME: \"draw2d.command.CommandDeleteGroup\",\n\n /**\n * Create a delete command for the given figure.\n *\n * @param {draw2d.shape.composite.Group} group\n */\n init: function init(group) {\n this._super(_packages2.default.Configuration.i18n.command.deleteShape);\n\n this.parent = group.getParent();\n this.group = group;\n this.canvas = group.getCanvas();\n this.batchDelete = null;\n },\n\n /**\n * \n * Returns [true] if the command can be execute and the execution of the\n * command modifies the model. e.g.: a CommandMove with [startX,startX] == [endX,endY] should\n * return false. The execution of this Command doesn't modify the model.\n *\n * @returns {Boolean} return try if the command modify the model or make any relevant changes\n **/\n canExecute: function canExecute() {\n // we can only delete the shape if a children can be deleted\n //\n var children = this.group.getAssignedFigures();\n for (var i = 0; i < children.getSize(); i++) {\n if (children.get(i).isDeleteable() === false) {\n return false;\n }\n }\n\n // we can only delete the figure if its part of the canvas.\n return this.group.getCanvas() !== null;\n },\n\n /**\n * \n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n * \n * Undo the command\n *\n **/\n undo: function undo() {\n this.batchDelete.undo();\n this.canvas.setCurrentSelection(this.group);\n },\n\n /**\n * \n *\n * Redo the command after the user has undo this command\n *\n **/\n redo: function redo() {\n if (this.batchDelete === null) {\n this.batchDelete = new _packages2.default.command.CommandCollection();\n\n // remove the assignment of the children to the group before we delete the group\n //\n this.batchDelete.add(new _packages2.default.command.CommandUngroup(this.canvas, this.group));\n\n // add the delete command of the children to the batch\n //\n var children = this.group.getAssignedFigures();\n for (var i = 0; i < children.getSize(); i++) {\n var child = children.get(i);\n // request a delete Command from the child instead of create one by my own. May the child\n // provides its own implementation\n var cmd = child.createCommand(new _packages2.default.command.CommandType(_packages2.default.command.CommandType.DELETE));\n this.batchDelete.add(cmd);\n }\n }\n\n this.batchDelete.execute();\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandGroup.js\":\n/*!*************************************!*\\\n !*** ./src/command/CommandGroup.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Command to group a given set of figures\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandGroup = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandGroup.prototype */\n{\n\n NAME: \"draw2d.command.CommandGroup\",\n\n /**\n * Create a group command for the given figure.\n *\n * @param {draw2d.util.ArrayList} figures the figures to group\n */\n init: function init(canvas, figures) {\n this._super(_packages2.default.Configuration.i18n.command.groupShapes);\n if (figures instanceof _packages2.default.Selection) {\n this.figures = figures.getAll();\n } else {\n this.figures = figures;\n }\n\n // figures which already part of an non \"Group\" composite will be removed from the set.\n // It is not possible to assign a figure to two different composites.\n //\n this.figures.grep(function (figure) {\n return figure.getComposite() === null;\n });\n\n this.canvas = canvas;\n this.group = new _packages2.default.shape.composite.Group();\n },\n\n /**\n * \n * Returns [true] if the command can be execute and the execution of the\n * command modifies the model. e.g.: a CommandMove with [startX,startX] == [endX,endY] should\n * return false. The execution of this Command doesn't modify the model.\n *\n * @returns {Boolean} return try if the command modify the model or make any relevant changes\n **/\n canExecute: function canExecute() {\n return !this.figures.isEmpty();\n },\n\n /**\n * \n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n * \n * Undo the command\n *\n **/\n undo: function undo() {\n var _this = this;\n this.figures.each(function (i, figure) {\n _this.group.unassignFigure(figure);\n });\n\n this.canvas.remove(this.group);\n this.canvas.setCurrentSelection(this.figures);\n },\n\n /**\n * \n * Redo the command after the user has undo this command\n *\n **/\n redo: function redo() {\n var _this = this;\n this.figures.each(function (i, figure) {\n _this.group.assignFigure(figure);\n });\n\n this.canvas.add(this.group);\n this.canvas.setCurrentSelection(this.group);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandMove.js\":\n/*!************************************!*\\\n !*** ./src/command/CommandMove.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Command for the movement of figures.\n *\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandMove = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandMove.prototype */\n{\n NAME: \"draw2d.command.CommandMove\",\n\n /**\n * Create a new Command objects which can be execute via the CommandStack.\n *\n * @param {draw2d.Figure} figure the figure to move\n * @param {Number} [x] the current x position\n * @param {Number} [y] the current y position\n */\n init: function init(figure, x, y) {\n this._super(_packages2.default.Configuration.i18n.command.moveShape);\n this.figure = figure;\n if (typeof x === \"undefined\") {\n this.oldX = figure.getX();\n this.oldY = figure.getY();\n } else {\n this.oldX = x;\n this.oldY = y;\n }\n },\n\n /**\n * \n * Set the initial position of the element\n *\n * @param {Number} x the new initial x position\n * @param {Number} y the new initial y position\n **/\n setStartPosition: function setStartPosition(x, y) {\n this.oldX = x;\n this.oldY = y;\n },\n\n /**\n * \n * Set the target/final position of the figure move command.\n *\n * @param {Number} x the new x position\n * @param {Number} y the new y position\n **/\n setPosition: function setPosition(x, y) {\n this.newX = x;\n this.newY = y;\n },\n\n /**\n * \n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return this.newX !== this.oldX || this.newY !== this.oldY;\n },\n\n /**\n * \n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n * \n *\n * Undo the move command\n *\n **/\n undo: function undo() {\n this.figure.setPosition(this.oldX, this.oldY);\n },\n\n /**\n * \n *\n * Redo the move command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.figure.setPosition(this.newX, this.newY);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandMoveConnection.js\":\n/*!**********************************************!*\\\n !*** ./src/command/CommandMoveConnection.js ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Command for the movement of figures.\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandMoveConnection = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandMoveConnection.prototype */\n{\n\n NAME: \"draw2d.command.CommandMoveConnection\",\n\n /**\n * Create a new Command objects which can be execute via the CommandStack.\n *\n * @param {draw2d.Connection} figure the connection to move\n */\n init: function init(figure) {\n this._super(_packages2.default.Configuration.i18n.command.moveLine);\n this.line = figure;\n this.dx = 0;\n this.dy = 0;\n },\n\n /**\n * \n * set the offset of the line translation\n *\n * @param {Number} dx\n * @param {Number} dy\n */\n setTranslation: function setTranslation(dx, dy) {\n this.dx = dx;\n this.dy = dy;\n },\n\n /**\n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return this.dx !== 0 && this.dy !== 0;\n },\n\n /**\n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n * Undo the command\n *\n **/\n undo: function undo() {\n var _this = this;\n this.line.getVertices().each(function (i, e) {\n e.translate(-_this.dx, -_this.dy);\n });\n this.line.svgPathString = null;\n // required to update resize handles and the painting of the line\n this.line.setPosition(this.line.getStartPosition());\n },\n\n /**\n * Redo the command after the user has undo this command\n *\n **/\n redo: function redo() {\n var _this = this;\n this.line.getVertices().each(function (i, e) {\n e.translate(_this.dx, _this.dy);\n });\n this.line.svgPathString = null;\n\n // required to update resize handles and the painting of the line\n this.line.setPosition(this.line.getStartPosition());\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandMoveLine.js\":\n/*!****************************************!*\\\n !*** ./src/command/CommandMoveLine.js ***!\n \\****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Command for the movement of figures.\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandMoveLine = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandMoveLine.prototype */\n{\n\n NAME: \"draw2d.command.CommandMoveLine\",\n\n /**\n * Create a new Command objects which can be execute via the CommandStack.\n *\n * @param {draw2d.shape.basic.Line} figure the line to move\n */\n init: function init(figure) {\n this._super(_packages2.default.Configuration.i18n.command.moveLine);\n this.line = figure;\n this.dx = 0;\n this.dy = 0;\n },\n\n /**\n *\n * set the offset of the line translation\n *\n * @param {Number} dx\n * @param {Number} dy\n */\n setTranslation: function setTranslation(dx, dy) {\n this.dx = dx;\n this.dy = dy;\n },\n\n /**\n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return this.dx !== 0 && this.dy !== 0;\n },\n\n /**\n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n * Undo the command\n *\n **/\n undo: function undo() {\n var _this = this;\n this.line.getVertices().each(function (i, e) {\n e.translate(-_this.dx, -_this.dy);\n });\n this.line.svgPathString = null;\n // required to update resize handles and the painting of the line\n this.line.setPosition(this.line.getStartPosition());\n },\n\n /**\n * Redo the command after the user has undo this command\n *\n **/\n redo: function redo() {\n var _this = this;\n this.line.getVertices().each(function (i, e) {\n e.translate(_this.dx, _this.dy);\n });\n this.line.svgPathString = null;\n\n // required to update resize handles and the painting of the line\n this.line.setPosition(this.line.getStartPosition());\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandMoveVertex.js\":\n/*!******************************************!*\\\n !*** ./src/command/CommandMoveVertex.js ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Command for the vertex movement of a polyline/polygon.\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandMoveVertex = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandMoveVertex.prototype */\n{\n\n NAME: \"draw2d.command.CommandMoveVertex\",\n\n /**\n * Create a new Command objects which can be execute via the CommandStack.\n *\n * @param {draw2d.shape.basic.PolyLine} line the related line\n */\n init: function init(line) {\n this._super(_packages2.default.Configuration.i18n.command.moveVertex);\n\n this.line = line;\n this.index = -1;\n this.newPoint = null;\n },\n\n /**\n * \n * Set the index of the vertex of the polyline/polygon to modify.\n *\n * @param {Number} index the related index of the vertex\n **/\n setIndex: function setIndex(index) {\n this.index = index;\n this.origPoint = this.line.getVertices().get(this.index).clone();\n },\n\n updatePosition: function updatePosition(x, y) {\n this.newPoint = new _packages2.default.geo.Point(x, y);\n },\n\n /**\n * \n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return this.index !== -1 && this.newPoint !== null;\n },\n\n /**\n * \n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n * \n *\n * Undo the move command\n *\n **/\n undo: function undo() {\n this.line.setVertex(this.index, this.origPoint.x, this.origPoint.y);\n },\n\n /**\n * \n *\n * Redo the move command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.line.setVertex(this.index, this.newPoint.x, this.newPoint.y);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandMoveVertices.js\":\n/*!********************************************!*\\\n !*** ./src/command/CommandMoveVertices.js ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Command for the vertices movement of a polyline/polygon.\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandMoveVertices = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandMoveVertices.prototype */\n{\n\n NAME: \"draw2d.command.CommandMoveVertices\",\n\n /**\n * Create a new Command objects which can be execute via the CommandStack.\n *\n * @param {draw2d.shape.basic.PolyLine} line the related line\n */\n init: function init(line) {\n this._super(_packages2.default.Configuration.i18n.command.moveVertices);\n\n this.line = line;\n this.oldVertices = line.getVertices().clone(true);\n this.newVertices = null;\n },\n\n updateVertices: function updateVertices(newVertices) {\n this.newVertices = newVertices;\n },\n\n /**\n *\n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return this.newVertices !== null;\n },\n\n /**\n *\n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n *\n *\n * Undo the move command\n *\n **/\n undo: function undo() {\n this.line.setVertices(this.oldVertices);\n },\n\n /**\n *\n *\n * Redo the move command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.line.setVertices(this.newVertices);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandReconnect.js\":\n/*!*****************************************!*\\\n !*** ./src/command/CommandReconnect.js ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Reconnects two ports. This command is used during the DragDrop operation of a draw2d.Connection.\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandReconnect = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandReconnect.prototype */\n{\n\n NAME: \"draw2d.command.CommandReconnect\",\n\n /**\n * Create a new Command objects which can be execute via the CommandStack.\n *\n * @param {draw2d.Connection} conn the related Connection which is currently in the drag&drop operation\n */\n init: function init(conn) {\n this._super(_packages2.default.Configuration.i18n.command.connectPorts);\n this.con = conn;\n this.oldSourcePort = conn.getSource();\n this.oldTargetPort = conn.getTarget();\n },\n\n /**\n *\n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return true;\n },\n\n /**\n *\n * The new ports to use during the execute of this command.\n *\n * @param {draw2d.Port} source\n * @param {draw2d.Port} target\n */\n setNewPorts: function setNewPorts(source, target) {\n this.newSourcePort = source;\n this.newTargetPort = target;\n },\n\n setIndex: function setIndex(index) {\n // do nothing....but method is required for LineResizeHandle\n // With this common interface the ResizeHandle can handle Lines and Connections\n // with the same code\n },\n\n /**\n * compatibily method to the CommandMoveVertex to handle Line and Connections\n * transparent in the ResizeHandles\n *\n * @param x\n * @param y\n */\n updatePosition: function updatePosition(x, y) {\n // do nothing....but method is required for LineResizeHandle\n // With this common interface the ResizeHandle can handle Lines and Connections\n // with the same code\n },\n\n /**\n *\n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n *\n * Execute the command the first time\n *\n **/\n cancel: function cancel() {\n this.con.setSource(this.oldSourcePort);\n this.con.setTarget(this.oldTargetPort);\n\n // force a routing of the connection and DON'T set the old reouter again because this reset all manual added\n // vertices\n this.con.routingRequired = true;\n this.con.repaint();\n },\n\n /**\n *\n * Undo the command\n *\n **/\n undo: function undo() {\n this.con.setSource(this.oldSourcePort);\n this.con.setTarget(this.oldTargetPort);\n // force a routing of the connection and DON'T set the old reouter again because this reset all manual added\n // vertices\n this.con.routingRequired = true;\n this.con.repaint();\n },\n\n /**\n *\n * Redo the command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.con.setSource(this.newSourcePort);\n this.con.setTarget(this.newTargetPort);\n // force a routing of the connection and DON'T set the old reouter again because this reset all manual added\n // vertices\n this.con.routingRequired = true;\n this.con.repaint();\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandRemoveVertex.js\":\n/*!********************************************!*\\\n !*** ./src/command/CommandRemoveVertex.js ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Remove a vertex from a polyline or polygon\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandRemoveVertex = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandRemoveVertex.prototype */\n{\n\n NAME: \"draw2d.command.CommandRemoveVertex\",\n\n /**\n * Create a new Command objects which add a vertex to a PloyLine.\n *\n * @param {draw2d.shape.basic.PolyLine} line the related line\n * @param {Number} index the index where to add\n */\n init: function init(line, index) {\n this._super(_packages2.default.Configuration.i18n.command.deleteVertex);\n\n this.line = line;\n this.index = index;\n this.oldPoint = line.getVertices().get(index).clone();\n },\n\n /**\n *\n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return true;\n },\n\n /**\n *\n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n *\n *\n * Undo the move command\n *\n **/\n undo: function undo() {\n this.line.insertVertexAt(this.index, this.oldPoint.x, this.oldPoint.y);\n },\n\n /**\n *\n *\n * Redo the move command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.line.removeVertexAt(this.index);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandReplaceVertices.js\":\n/*!***********************************************!*\\\n !*** ./src/command/CommandReplaceVertices.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Replace the vertices of a polyline.\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandReplaceVertices = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandReplaceVertices.prototype */\n{\n\n NAME: \"draw2d.command.CommandReplaceVertices\",\n\n /**\n * Create a new Command objects which add a segment to a PolyLine / Polygon.\n *\n * @param {draw2d.shape.basic.PolyLine} line the related line\n * @param {draw2d.util.ArrayList} originalVertices the original vertices of the polyline\n * @param {draw2d.util.ArrayList} newVertices the new vertices of the polyline\n */\n init: function init(line, originalVertices, newVertices) {\n this._super(_packages2.default.Configuration.i18n.command.addSegment);\n\n this.line = line;\n this.originalVertices = originalVertices;\n this.newVertices = newVertices;\n },\n\n /**\n * \n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return true;\n },\n\n /**\n * \n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n * \n *\n * Undo the move command\n *\n **/\n undo: function undo() {\n this.line.setVertices(this.originalVertices);\n },\n\n /**\n * \n *\n * Redo the move command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.line.setVertices(this.newVertices);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandResize.js\":\n/*!**************************************!*\\\n !*** ./src/command/CommandResize.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Resize command for figures. Can be execute/undo/redo via a CommandStack.\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandResize = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandResize.prototype */\n{\n\n NAME: \"draw2d.command.CommandResize\",\n\n /**\n * Create a new resize Command objects which can be execute via the CommandStack.\n *\n * @param {draw2d.Figure} figure the figure to resize\n * @param {Number} [width] the current width\n * @param {Number} [height] the current height\n */\n init: function init(figure, width, height) {\n this._super(_packages2.default.Configuration.i18n.command.resizeShape);\n this.figure = figure;\n\n if (typeof width === \"undefined\") {\n this.oldWidth = figure.getWidth();\n this.oldHeight = figure.getHeight();\n } else {\n this.oldWidth = width;\n this.oldHeight = height;\n }\n },\n\n /**\n * \n * Set the new dimension of the element.\n *\n * @param {Number} width the new width.\n * @param {Number} height the new height of the element.\n **/\n setDimension: function setDimension(width, height) {\n this.newWidth = width | 0;\n this.newHeight = height | 0;\n },\n\n /**\n * \n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return this.newWidth !== this.oldWidth || this.newHeight !== this.oldHeight;\n },\n\n /**\n * \n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n * \n * Undo the command\n *\n **/\n undo: function undo() {\n this.figure.setDimension(this.oldWidth, this.oldHeight);\n },\n\n /**\n * \n * Redo the command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.figure.setDimension(this.newWidth, this.newHeight);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandRotate.js\":\n/*!**************************************!*\\\n !*** ./src/command/CommandRotate.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Set the rotation angle of the given figure\n *\n * @since 4.4.1\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandRotate = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandRotate.prototype */\n{\n\n NAME: \"draw2d.command.CommandRotate\",\n\n /**\n * Create a new resize Command objects which can be execute via the CommandStack.\n *\n * @param {draw2d.Figure} figure the figure to resize\n * @param {Number} angle the angle to rotate\n */\n init: function init(figure, angle) {\n this._super(_packages2.default.Configuration.i18n.command.rotateShape);\n this.figure = figure;\n\n this.oldAngle = figure.getRotationAngle();\n this.newAngle = angle;\n },\n\n /**\n *\n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return this.oldAngle !== this.newAngle;\n },\n\n /**\n *\n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n *\n * Undo the command\n *\n **/\n undo: function undo() {\n this.rotate(this.oldAngle);\n },\n\n /**\n *\n * Redo the command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.rotate(this.newAngle);\n },\n\n rotate: function rotate(angle) {\n var w = this.figure.getWidth();\n var h = this.figure.getHeight();\n\n this.figure.setRotationAngle(angle);\n\n this.figure.setDimension(h, w);\n\n this.figure.portRelayoutRequired = true;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandStack.js\":\n/*!*************************************!*\\\n !*** ./src/command/CommandStack.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * An implementation of a command stack. A stack manages the executing, undoing, and redoing of Commands. Executed\n * commands are pushed onto a a stack for undoing later. Commands which are undone are pushed onto a redo stack.\n * Whenever a new command is executed, the redo stack is flushed.\n *\n * You can retrieve the current used CommandStack just by calling <code>canvas.getCommandStack()</code>\n *\n */\n_packages2.default.command.CommandStack = Class.extend(\n/** @lends draw2d.command.CommandStack.prototype */\n{\n\n NAME: \"draw2d.command.CommandStack\",\n\n /**\n * Create a new CommandStack objects which can be execute via the CommandStack.\n *\n */\n init: function init() {\n this.undostack = [];\n this.redostack = [];\n this.maxundo = 50;\n this.transactionCommand = null;\n this.eventListeners = new _packages2.default.util.ArrayList();\n },\n\n /**\n *\n * Set the maximal undo stack size. Entries will be remove if the max. stack\n * size has been reached.\n *\n * @param {Number} count The maximal undo stack size.\n * @returns {this}\n **/\n setUndoLimit: function setUndoLimit(count) {\n this.maxundo = count;\n\n return this;\n },\n\n /**\n *\n * Remove the undo / redo history. This is useful if the user has been save the\n * document.\n *\n * @returns {this}\n **/\n markSaveLocation: function markSaveLocation() {\n this.undostack = [];\n this.redostack = [];\n\n // fire an empty command to inform all listener that the stack has been changed\n this.notifyListeners(new _packages2.default.command.Command(), _packages2.default.command.CommandStack.POST_EXECUTE);\n\n return this;\n },\n\n /**\n *\n *\n * Executes the specified Command if possible. Prior to executing the command, a\n * draw2d.command.CommandStackEvent for {@link #PRE_EXECUTE} will be fired to event listeners.\n * Similarly, after attempting to execute the command, an event for {@link #POST_EXECUTE}\n * will be fired.\n *\n * @param {draw2d.command.Command} command The command to execute.\n * @returns {this}\n **/\n execute: function execute(command) {\n if (typeof command === \"undefined\") throw \"Missing parameter [command] for method call CommandStack.execute\";\n\n // nothing to do\n if (command === null) return this; //silently\n\n // return if the command can't execute or it doesn't change the model\n // => Empty command\n if (command.canExecute() === false) return this;\n\n // A command stack transaction is open.\n // The execution will be postpone until the transaction will commit\n //\n if (this.transactionCommand !== null) {\n this.transactionCommand.add(command);\n return this;\n }\n\n this.notifyListeners(command, _packages2.default.command.CommandStack.PRE_EXECUTE, \"PRE_EXECUTE\");\n\n this.undostack.push(command);\n command.execute();\n\n // cleanup the redo stack if the user execute a new command.\n // I think this will create a \"clean\" behaviour of the unde/redo mechanism.\n //\n this.redostack = [];\n\n // monitor only the max. undo stack size\n //\n if (this.undostack.length > this.maxundo) {\n this.undostack = this.undostack.slice(this.undostack.length - this.maxundo);\n }\n this.notifyListeners(command, _packages2.default.command.CommandStack.POST_EXECUTE, \"POST_EXECUTE\");\n\n return this;\n },\n\n /**\n *\n * Opens a transaction for further multiple commands. If you execute a command all\n * {@ #execute} calls will be ignored until you commit the current transaction.\n *\n * @param {String} [commandLabel] the label to show for the undo/redo operation\n * @returns {this}\n * @since 4.0.0\n */\n startTransaction: function startTransaction(commandLabel) {\n if (this.transactionCommand !== null) {\n debugger;\n throw \"CommandStack is already within transactional mode. Don't call 'startTransaction\";\n }\n\n this.transactionCommand = new _packages2.default.command.CommandCollection(commandLabel);\n\n return this;\n },\n\n /**\n *\n * Returns true if the Command Stack has an open transaction.\n * You can start or stop a transaction with `startTransaction`and `commitTransaction`.\n *\n * A transaction is one undo/redo operation.\n *\n * @returns {Boolean}\n */\n isInTransaction: function isInTransaction() {\n return this.transactionCommand !== null;\n },\n\n /**\n *\n * Commit the running transaction. All commands between the start/end of a transaction\n * can be undo/redo in a single step.\n *\n * @since 4.0.0\n * @returns {this}\n */\n commitTransaction: function commitTransaction() {\n if (this.transactionCommand === null) {\n return this; //silently\n }\n\n var cmd = this.transactionCommand;\n this.transactionCommand = null;\n // we can drop the CommandCollection if the collection contains only one command.\n if (cmd.commands.getSize() === 1) {\n this.execute(cmd.commands.first());\n } else {\n this.execute(cmd);\n }\n\n return this;\n },\n\n /**\n *\n * Undo on command from the stack and store them on the redo command stack.\n * @returns {this}\n **/\n undo: function undo() {\n var command = this.undostack.pop();\n if (command) {\n this.notifyListeners(command, _packages2.default.command.CommandStack.PRE_UNDO);\n this.redostack.push(command);\n command.undo();\n this.notifyListeners(command, _packages2.default.command.CommandStack.POST_UNDO);\n }\n\n return this;\n },\n\n /**\n *\n * Redo a command after the user has undo a command\n *\n * @returns {this}\n **/\n redo: function redo() {\n var command = this.redostack.pop();\n\n if (command) {\n this.notifyListeners(command, _packages2.default.command.CommandStack.PRE_REDO);\n this.undostack.push(command);\n command.redo();\n this.notifyListeners(command, _packages2.default.command.CommandStack.POST_REDO);\n }\n\n return this;\n },\n\n /**\n *\n * Return the label of the next REDO command.\n *\n * @returns {String}\n **/\n getRedoLabel: function getRedoLabel() {\n if (this.redostack.length === 0) return \"\";\n\n var command = this.redostack[this.redostack.length - 1];\n\n if (command) {\n return command.getLabel();\n }\n return \"\";\n },\n\n /**\n *\n * Return the label of the next UNDO command.\n *\n * @returns {String}\n **/\n getUndoLabel: function getUndoLabel() {\n if (this.undostack.length === 0) return \"\";\n\n var command = this.undostack[this.undostack.length - 1];\n\n if (command) {\n return command.getLabel();\n }\n return \"\";\n },\n\n /**\n *\n * Indicates whenever a REDO is possible.\n *\n * @returns {Boolean} <code>true</code> if it is appropriate to call {@link #redo()}.\n */\n canRedo: function canRedo() {\n return this.redostack.length > 0;\n },\n\n /**\n *\n * indicator whenever a undo is possible.\n *\n * @returns {Boolean} <code>true</code> if {@link #undo()} can be called\n **/\n canUndo: function canUndo() {\n return this.undostack.length > 0;\n },\n\n /**\n *\n * Adds a listener to the command stack, which will be notified whenever a command has been processed on the stack.\n * @deprecated use on/off to register events\n * @param {draw2d.command.CommandStackEventListener|Function} listener the listener to add.\n * @returns {this}\n */\n addEventListener: function addEventListener(listener) {\n return this.on(\"change\", listener);\n },\n /**\n * Adds a listener to the command stack, which will be notified whenever a command has been processed on the stack.\n *\n * @param event\n * @param func\n * @returns {this}\n */\n on: function on(event, listener) {\n if (event !== \"change\") throw \"only event of kind 'change' is supported\";\n\n if (listener instanceof _packages2.default.command.CommandStackEventListener) {\n this.eventListeners.add(listener);\n } else if (typeof listener.stackChanged === \"function\") {\n this.eventListeners.add(listener);\n } else if (typeof listener === \"function\") {\n this.eventListeners.add({ stackChanged: listener });\n } else {\n throw \"Object doesn't implement required callback interface [draw2d.command.CommandStackListener]\";\n }\n\n return this;\n },\n\n /**\n *\n * Removes a listener from the command stack.\n *\n * @deprecated use on/off to register events\n * @param {draw2d.command.CommandStackEventListener} listener the listener to remove.\n * @returns {this}\n */\n removeEventListener: function removeEventListener(listener) {\n this.off(listener);\n\n return this;\n },\n\n /**\n *\n * @param listener\n * @returns {this}\n */\n off: function off(listener) {\n this.eventListeners.grep(function (entry) {\n return entry === listener || entry.stackChanged === listener;\n });\n /*\n let size = this.eventListeners.getSize()\n for (let i = 0; i < size; i++) {\n let entry = this.eventListeners.get(i)\n if (entry === listener || entry.stackChanged === listener) {\n this.eventListeners.remove(entry)\n return\n }\n }\n */\n return this;\n },\n\n /**\n *\n * Notifies command stack event listeners that the command stack has changed to the\n * specified state.\n *\n * @param {draw2d.command.Command} command the command\n * @param {Number} state the current stack state\n * @private\n **/\n notifyListeners: function notifyListeners(command, state, action) {\n var event = new _packages2.default.command.CommandStackEvent(this, command, state, action);\n var size = this.eventListeners.getSize();\n\n for (var i = 0; i < size; i++) {\n this.eventListeners.get(i).stackChanged(event);\n }\n }\n});\n\n// Constant indicating notification prior to executing a command (value is 1).\n_packages2.default.command.CommandStack.PRE_EXECUTE = 1;\n// Constant indicating notification prior to redoing a command (value is 2).\n_packages2.default.command.CommandStack.PRE_REDO = 2;\n// Constant indicating notification prior to undoing a command (value is 4).\n_packages2.default.command.CommandStack.PRE_UNDO = 4;\n// Constant indicating notification after a command has been executed (value is 8).\n_packages2.default.command.CommandStack.POST_EXECUTE = 8;\n// Constant indicating notification after a command has been redone (value is 16).\n_packages2.default.command.CommandStack.POST_REDO = 16;\n// Constant indicating notification after a command has been undone (value is 32).\n_packages2.default.command.CommandStack.POST_UNDO = 32;\n// Constant indicating notification after the stack has been (re)init (value is 64).\n_packages2.default.command.CommandStack.POST_INIT = 64;\n\n_packages2.default.command.CommandStack.POST_MASK = _packages2.default.command.CommandStack.POST_EXECUTE | _packages2.default.command.CommandStack.POST_UNDO | _packages2.default.command.CommandStack.POST_REDO;\n_packages2.default.command.CommandStack.PRE_MASK = _packages2.default.command.CommandStack.PRE_EXECUTE | _packages2.default.command.CommandStack.PRE_UNDO | _packages2.default.command.CommandStack.PRE_REDO;\n\n/***/ }),\n\n/***/ \"./src/command/CommandStackEvent.js\":\n/*!******************************************!*\\\n !*** ./src/command/CommandStackEvent.js ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Event class which will be fired for every CommandStack operation. Required for CommandStackListener.\n */\n_packages2.default.command.CommandStackEvent = Class.extend(\n/** @lends draw2d.command.CommandStackEvent.prototype */\n{\n\n NAME: \"draw2d.command.CommandStackEvent\",\n\n /**\n * Create a new CommandStack objects which can be execute via the CommandStack.\n *\n * @param {draw2d.command.Command} command the related command\n * @param {Number} details the current state of the command execution\n *\n */\n init: function init(stack, command, details, action) {\n this.stack = stack;\n this.command = command;\n this.details = details; // deprecated\n this.action = action;\n },\n\n /**\n *\n * Return the corresponding stack of the event.\n *\n * @returns {draw2d.command.CommandStack}\n **/\n getStack: function getStack() {\n return this.stack;\n },\n\n /**\n *\n * Returns null or a Command if a command is relevant to the current event.\n *\n * @returns {draw2d.command.Command}\n **/\n getCommand: function getCommand() {\n return this.command;\n },\n\n /**\n *\n * Returns an integer identifying the type of event which has occurred.\n * Defined by {@link draw2d.command.CommandStack}.\n *\n * @returns {Number}\n **/\n getDetails: function getDetails() {\n return this.details;\n },\n\n /**\n *\n * Returns true if this event is fired after the stack having changed.\n *\n * @returns {Boolean} true if post-change event\n **/\n isPostChangeEvent: function isPostChangeEvent() {\n return 0 !== (this.getDetails() & _packages2.default.command.CommandStack.POST_MASK);\n },\n\n /**\n *\n * Returns true if this event is fired prior to the stack changing.\n *\n * @returns {Boolean} true if pre-change event\n **/\n isPreChangeEvent: function isPreChangeEvent() {\n return 0 !== (this.getDetails() & _packages2.default.command.CommandStack.PRE_MASK);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandStackEventListener.js\":\n/*!**************************************************!*\\\n !*** ./src/command/CommandStackEventListener.js ***!\n \\**************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Event class which will be fired for every CommandStack operation. Required for CommandStackListener.\n * @author Andreas Herz\n */\n\n_packages2.default.command.CommandStackEventListener = Class.extend(\n/** @lends draw2d.command.CommandStackEventListener.prototype */\n{\n\n NAME: \"draw2d.command.CommandStackEventListener\",\n\n /**\n * Creates a new Listener Object\n *\n */\n init: function init() {},\n\n /**\n *\n * Sent when an event occurs on the command stack. draw2d.command.CommandStackEvent.getDetail()\n * can be used to identify the type of event which has occurred.\n *\n * @template\n *\n * @param {draw2d.command.CommandStackEvent} event\n **/\n stackChanged: function stackChanged(event) {}\n\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandType.js\":\n/*!************************************!*\\\n !*** ./src/command/CommandType.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * EditPolicies should determine an Figures editing capabilities.\n * It is possible to implement an Figure such that it handles all editing\n * responsibility.<br>\n * However, it is much more flexible and object-oriented to use\n * EditPolicies. Using policies, you can pick and choose the editing behavior for\n * an Figure without being bound to its class hierarchy. Code reuse is increased,\n * and code management is easier.\n *\n * @author Andreas Herz\n */\n\n_packages2.default.command.CommandType = Class.extend(\n/** @lends draw2d.command.CommandType.prototype */\n{\n\n NAME: \"draw2d.command.CommandType\",\n\n /**\n * Create a new edit policy object\n *\n * @param {String} policy\n */\n init: function init(policy) {\n this.policy = policy;\n },\n\n /**\n * \n * Return the String representation of the policy\n *\n * @returns {String}\n **/\n getPolicy: function getPolicy() {\n return this.policy;\n }\n});\n\n_packages2.default.command.CommandType.DELETE = \"DELETE\";\n_packages2.default.command.CommandType.MOVE = \"MOVE\";\n_packages2.default.command.CommandType.CONNECT = \"CONNECT\";\n_packages2.default.command.CommandType.MOVE_BASEPOINT = \"MOVE_BASEPOINT\";\n_packages2.default.command.CommandType.MOVE_VERTEX = \"MOVE_VERTEX\";\n_packages2.default.command.CommandType.MOVE_VERTICES = \"MOVE_VERTICES\";\n_packages2.default.command.CommandType.MOVE_GHOST_VERTEX = \"MOVE_GHOST_VERTEX\";\n_packages2.default.command.CommandType.RESIZE = \"RESIZE\";\n_packages2.default.command.CommandType.RESET = \"RESET\";\n_packages2.default.command.CommandType.ROTATE = \"ROTATE\";\n\n/***/ }),\n\n/***/ \"./src/command/CommandUngroup.js\":\n/*!***************************************!*\\\n !*** ./src/command/CommandUngroup.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Command to ungroup a given group figures\n *\n * @extends draw2d.command.Command\n */\n\n_packages2.default.command.CommandUngroup = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandUngroup.prototype */\n{\n\n NAME: \"draw2d.command.CommandUngroup\",\n\n /**\n * Create a group command for the given figure.\n *\n * @param {draw2d.Canvas} canvas the responsible canvas\n * @param {draw2d.util.ArrayList|draw2d.Selection} group the figures to group\n */\n init: function init(canvas, group) {\n this._super(_packages2.default.Configuration.i18n.command.ungroupShapes);\n if (group instanceof _packages2.default.Selection) {\n this.group = group.getAll().first();\n } else {\n this.group = group;\n }\n\n this.canvas = canvas;\n this.figures = this.group.getAssignedFigures().clone();\n },\n\n /**\n *\n * Returns [true] if the command can be execute and the execution of the\n * command modifies the model. e.g.: a CommandMove with [startX,startX] == [endX,endY] should\n * return false. The execution of this Command doesn't modify the model.\n *\n * @returns {Boolean} return try if the command modify the model or make any relevant changes\n **/\n canExecute: function canExecute() {\n return !this.figures.isEmpty();\n },\n\n /**\n *\n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n *\n * Undo the command\n *\n **/\n undo: function undo() {\n var _this = this;\n this.figures.each(function (i, figure) {\n _this.group.assignFigure(figure);\n });\n this.canvas.add(this.group);\n this.canvas.setCurrentSelection(this.group);\n },\n\n /**\n *\n * Redo the command after the user has undo this command\n *\n **/\n redo: function redo() {\n var _this = this;\n this.figures.each(function (i, figure) {\n _this.group.unassignFigure(figure);\n });\n\n this.canvas.setCurrentSelection(this.figures);\n this.canvas.remove(this.group);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/css/contextmenu.css\":\n/*!*********************************!*\\\n !*** ./src/css/contextmenu.css ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\nvar content = __webpack_require__(/*! !../../node_modules/css-loader!./contextmenu.css */ \"./node_modules/css-loader/index.js!./src/css/contextmenu.css\");\n\nif(typeof content === 'string') content = [[module.i, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! ../../node_modules/style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n/***/ }),\n\n/***/ \"./src/decoration/connection/ArrowDecorator.js\":\n/*!*****************************************************!*\\\n !*** ./src/decoration/connection/ArrowDecorator.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @example\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * var start = new draw2d.shape.node.Start();\n * var end = new draw2d.shape.node.End();\n * // ...add it to the canvas\n * canvas.add( start, 50,50);\n * canvas.add( end, 230,80);\n *\n * // Create a Connection and connect the Start and End node\n * //\n * var c = new draw2d.Connection();\n *\n * // toggle from ManhattenRouter to DirectRouter to show the rotation of decorations\n * c.setRouter(new draw2d.layout.connection.DirectRouter());\n *\n * // Set the endpoint decorations for the connection\n * //\n * c.setSourceDecorator(new draw2d.decoration.connection.ArrowDecorator());\n * c.setTargetDecorator(new draw2d.decoration.connection.ArrowDecorator());\n *\n * // Connect the endpoints with the start and end port\n * //\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n *\n * // and finally add the connection to the canvas\n * canvas.add(c);\n *\n *\n * @author Andreas Herz\n * @param {Number} [width] the width of the arrow\n * @param {Number} [height] the height of the arrow\n * @extend draw2d.decoration.connection.Decorator\n */\n_packages2.default.decoration.connection.ArrowDecorator = _packages2.default.decoration.connection.Decorator.extend(\n/** @lends draw2d.decoration.connection.ArrowDecorator */\n{\n NAME: \"draw2d.decoration.connection.ArrowDecorator\",\n\n init: function init(width, height) {\n this._super(width, height);\n },\n\n /**\n * Draws a filled arrow decoration.\n *\n *\n * ```\n * ---+ [length , width/2]\n * ------- |\n * [0,0] -------- |\n * +--- |==========================\n * -------- |\n * ------- |\n * ---+ [length ,-width/2]\n *\n * ```\n *\n * @param {RaphaelPaper} paper the raphael paper object for the paint operation\n * @returns {RaphaelPath}\n * @private\n **/\n paint: function paint(paper) {\n var st = paper.set();\n\n st.push(paper.path([\"M0 0\", \"L\", this.width, \" \", -this.height / 2, \"L\", this.width, \" \", this.height / 2, \"L0 0\"].join(\"\")));\n\n st.attr({ fill: this.backgroundColor.rgba() });\n\n return st;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/decoration/connection/BarDecorator.js\":\n/*!***************************************************!*\\\n !*** ./src/decoration/connection/BarDecorator.js ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @example\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * var start = new draw2d.shape.node.Start();\n * var end = new draw2d.shape.node.End();\n\n * // ...add it to the canvas\n * canvas.add( start, 50,50);\n * canvas.add( end, 230,80);\n *\n * // Create a Connection and connect the Start and End node\n * //\n * var c = new draw2d.Connection();\n *\n * // toggle from ManhattenRouter to DirectRouter to show the rotation of decorations\n * c.setRouter(new draw2d.layout.connection.DirectRouter());\n *\n * // Set the endpoint decorations for the connection\n * //\n * c.setSourceDecorator(new draw2d.decoration.connection.BarDecorator());\n * c.setTargetDecorator(new draw2d.decoration.connection.BarDecorator());\n * // Connect the endpoints with the start and end port\n * //\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n *\n * // and finally add the connection to the canvas\n * canvas.add(c);\n *\n * @author Andreas Herz\n * @param {Number} [width] the width of the bar\n * @param {Number} [height] the height of the bar\n * @extend draw2d.decoration.connection.Decorator\n */\n_packages2.default.decoration.connection.BarDecorator = _packages2.default.decoration.connection.Decorator.extend(\n/** @lends draw2d.decoration.connection.BarDecorator */\n{\n\n NAME: \"draw2d.decoration.connection.BarDecorator\",\n\n init: function init(width, height) {\n this._super(width, height);\n },\n\n /**\n * Draw a bar decoration.\n *\n * ```\n *\n * | [length , width/2]\n * |\n * [0,0] | (Connection)\n * +==========|==========================\n * |\n * |\n * | [length ,-width/2]\n *\n * ```\n *\n * @param {RaphaelPaper} paper the raphael paper object for the paint operation\n * @returns {RaphaelPath}\n * @private\n **/\n paint: function paint(paper) {\n var st = paper.set();\n var path = [\"M\", this.width / 2, \" \", -this.height / 2]; // Go to the top center..\n path.push(\"L\", this.width / 2, \" \", this.height / 2); // ...bottom center...\n\n st.push(paper.path(path.join(\"\")));\n st.attr({ fill: this.backgroundColor.rgba() });\n return st;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/decoration/connection/CircleDecorator.js\":\n/*!******************************************************!*\\\n !*** ./src/decoration/connection/CircleDecorator.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @example\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * var start = new draw2d.shape.node.Start();\n * var end = new draw2d.shape.node.End();\n\n * // ...add it to the canvas\n * canvas.add( start, 50,50);\n * canvas.add( end, 230,80);\n *\n * // Create a Connection and connect the Start and End node\n * //\n * var c = new draw2d.Connection();\n *\n * // toggle from ManhattenRouter to DirectRouter to show the rotation of decorations\n * c.setRouter(new draw2d.layout.connection.DirectRouter());\n *\n * // Set the endpoint decorations for the connection\n * //\n * c.setSourceDecorator(new draw2d.decoration.connection.CircleDecorator());\n * c.setTargetDecorator(new draw2d.decoration.connection.CircleDecorator());\n * // Connect the endpoints with the start and end port\n * //\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n *\n * // and finally add the connection to the canvas\n * canvas.add(c);\n *\n * @author Andreas Herz\n * @param {Number} [width] the width of the arrow\n * @param {Number} [height] the height of the arrow\n * @extend draw2d.decoration.connection.Decorator\n */\n_packages2.default.decoration.connection.CircleDecorator = _packages2.default.decoration.connection.Decorator.extend(\n/** @lends draw2d.decoration.connection.CircleDecorator */\n{\n\n NAME: \"draw2d.decoration.connection.CircleDecorator\",\n\n init: function init(width, height) {\n this._super(width, height);\n },\n\n /**\n * Draw a filled circle decoration.\n *\n * @param {RaphaelPaper} paper the raphael paper object for the paint operation\n * @returns {RaphaelPath}\n * @private\n **/\n paint: function paint(paper) {\n var st = paper.set();\n\n st.push(paper.circle(0, 0, this.width / 2));\n st.attr({ fill: this.backgroundColor.rgba() });\n\n return st;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/decoration/connection/Decorator.js\":\n/*!************************************************!*\\\n !*** ./src/decoration/connection/Decorator.js ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _Color = __webpack_require__(/*! ../../util/Color */ \"./src/util/Color.js\");\n\nvar _Color2 = _interopRequireDefault(_Color);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Base class for any kind of Connection end/start decorations like arrows, bullets, circles, bars,...\n *\n * @author Andreas Herz\n */\n_packages2.default.decoration.connection.Decorator = Class.extend(\n/** @lends draw2d.decoration.connection.Decorator */\n{\n\n NAME: \"draw2d.decoration.connection.Decorator\",\n\n init: function init(width, height) {\n\n if (typeof width === \"undefined\" || width < 1) {\n this.width = 20;\n } else {\n this.width = width;\n }\n\n if (typeof height === \"undefined\" || height < 1) {\n this.height = 15;\n } else {\n this.height = height;\n }\n this.parent = null;\n this.color = null; // null => use the color of the connection\n this.backgroundColor = new _Color2.default(250, 250, 250);\n },\n\n /**\n *\n * Paint the decoration for a connector. The Connector starts always in\n * [0,0] and ends in [x,0].\n * It is not necessary to consider any rotation of the connection. This will be done by the\n * framework.\n *\n * <pre>\n * | -Y\n * |\n * |\n * --------------+-----------------------------> +X\n * |\n * |\n * |\n * V +Y\n *\n *\n * </pre>\n *\n * See in ArrowConnectionDecorator for example implementation.\n * @param {RaphaelPaper} paper\n * @private\n */\n paint: function paint(paper) {\n // do nothing per default\n },\n\n /**\n *\n * @param {draw2d.Connection} parent\n * @private\n */\n setParent: function setParent(parent) {\n this.parent = parent;\n },\n\n /**\n *\n * Set the stroke color for the decoration\n *\n * @param {draw2d.util.Color|String} c\n * @returns {this}\n */\n setColor: function setColor(c) {\n this.color = new _Color2.default(c);\n if (this.parent !== null) {\n this.parent.repaint();\n }\n return this;\n },\n\n /**\n * Get the line color of the decoration\n *\n * @returns {drawd.util.Color} the current line color of null if the Decoration should use the color of the host connection\n */\n getColor: function getColor() {\n return this.color;\n },\n\n /**\n *\n * Set the background color for the decoration\n *\n * @param {draw2d.util.Color|String} c\n * @returns {this}\n */\n setBackgroundColor: function setBackgroundColor(c) {\n this.backgroundColor = new _Color2.default(c);\n if (this.parent !== null) {\n this.parent.repaint();\n }\n\n return this;\n },\n\n /**\n * Returns the fill color\n *\n * @returns {draw2d.util.Color}\n */\n getBackgroundColor: function getBackgroundColor() {\n return this.backgroundColor;\n },\n\n /**\n *\n * Change the dimension of the decoration shape\n *\n * @param {Number} width The new width of the decoration\n * @param {Number} height The new height of the decoration\n * @returns {this}\n **/\n setDimension: function setDimension(width, height) {\n this.width = width;\n this.height = height;\n\n return this;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/decoration/connection/DiamondDecorator.js\":\n/*!*******************************************************!*\\\n !*** ./src/decoration/connection/DiamondDecorator.js ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * @example\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * var start = new draw2d.shape.node.Start();\n * var end = new draw2d.shape.node.End();\n\n * // ...add it to the canvas\n * canvas.add( start, 50,50);\n * canvas.add( end, 230,80);\n *\n * // Create a Connection and connect the Start and End node\n * //\n * var c = new draw2d.Connection();\n *\n * // toggle from ManhattenRouter to DirectRouter to show the rotation of decorations\n * c.setRouter(new draw2d.layout.connection.DirectRouter());\n *\n * // Set the endpoint decorations for the connection\n * //\n * c.setSourceDecorator(new draw2d.decoration.connection.DiamondDecorator());\n * c.setTargetDecorator(new draw2d.decoration.connection.DiamondDecorator());\n * // Connect the endpoints with the start and end port\n * //\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n *\n * // and finally add the connection to the canvas\n * canvas.add(c);\n *\n *\n * @author Andreas Herz\n * @param {Number} [width] the width of the arrow\n * @param {Number} [height] the height of the arrow\n * @extend draw2d.decoration.connection.Decorator\n */\n\n_packages2.default.decoration.connection.DiamondDecorator = _packages2.default.decoration.connection.Decorator.extend(\n/** @lends draw2d.decoration.connection.DiamondDecorator */\n{\n\n NAME: \"draw2d.decoration.connection.DiamondDecorator\",\n\n init: function init(width, height) {\n this._super(width, height);\n },\n\n /**\n * Draw a filled diamond decoration.\n *\n * It's not your work to rotate the arrow. The draw2d do this job for you.\n *\n * @param {RaphaelPaper} paper the raphael paper object for the paint operation\n * @returns {RaphaelPath}\n * @private\n **/\n paint: function paint(paper) {\n var st = paper.set();\n\n st.push(paper.path([\"M\", this.width / 2, \" \", -this.height / 2, // Go to the top center..\n \"L\", this.width, \" \", 0, // ...draw line to the right middle\n \"L\", this.width / 2, \" \", this.height / 2, // ...bottom center...\n \"L\", 0, \" \", 0, // ...left middle...\n \"L\", this.width / 2, \" \", -this.height / 2, // and close the path\n \"Z\"].join(\"\")));\n\n st.attr({ fill: this.backgroundColor.rgba() });\n return st;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/geo/Line.js\":\n/*!*************************!*\\\n !*** ./src/geo/Line.js ***!\n \\*************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Static util function to determine the minimal distance of point(px,py) on the line(x1,y1,x2,y2)\n *\n *\n * @returns {Number}\n * @static\n * @private\n * @param {Number} X1 x coordinate of the start point of the line\n * @param {Number} Y1 y coordinate of the start point of the line\n * @param {Number} X2 x coordinate of the end point of the line\n * @param {Number} Y2 y coordinate of the end point of the line\n * @param {Number} px x coordinate of the point to test\n * @param {Number} py y coordinate of the point to test\n **/\n_packages2.default.geo.Line = {\n\n /**\n * Returns the relative position of the point on the line between [0..1]\n * The point \"p\" must be part of the line!!\n *\n * 0 => given point is on the start location\n * ..=> given point is in between\n * 1 => given point is at the end\n *\n * @returns {Number}\n */\n inverseLerp: function inverseLerp(X1, Y1, X2, Y2, px, py) {\n var nenner = Math.abs(X2 - X1);\n var zaehler = Math.abs(X2 - px);\n if (nenner === 0) {\n nenner = Math.abs(Y2 - Y1);\n zaehler = Math.abs(Y2 - py);\n if (nenner === 0) {\n return 1;\n }\n }\n\n return zaehler / nenner;\n },\n\n /**\n *\n * Returns the projection of the point onto the line.\n *\n * @param {Number} px the x coordinate of the test point\n * @param {Number} py the y coordinate of the test point\n * @returns {draw2d.geo.Point}\n **/\n pointProjection: function pointProjection(X1, Y1, X2, Y2, px, py) {\n var r = new _packages2.default.geo.Point(0, 0);\n if (X1 === X2 && Y1 === Y2) X1 -= 0.00001;\n\n var U = (px - X1) * (X2 - X1) + (py - Y1) * (Y2 - Y1);\n\n var Udenom = Math.pow(X2 - X1, 2) + Math.pow(Y2 - Y1, 2);\n\n U /= Udenom;\n\n r.x = X1 + U * (X2 - X1);\n r.y = Y1 + U * (Y2 - Y1);\n\n var minx = void 0,\n maxx = void 0,\n miny = void 0,\n maxy = void 0;\n\n minx = Math.min(X1, X2);\n maxx = Math.max(X1, X2);\n\n miny = Math.min(Y1, Y2);\n maxy = Math.max(Y1, Y2);\n\n var isValid = r.x >= minx && r.x <= maxx && r.y >= miny && r.y <= maxy;\n\n return isValid ? r : null;\n },\n\n distance: function distance(X1, Y1, X2, Y2, px, py) {\n // Adjust vectors relative to X1,Y1\n // X2,Y2 becomes relative vector from X1,Y1 to end of segment\n X2 -= X1;\n Y2 -= Y1;\n // px,py becomes relative vector from X1,Y1 to test point\n px -= X1;\n py -= Y1;\n var dotprod = px * X2 + py * Y2;\n var projlenSq = void 0;\n if (dotprod <= 0.0) {\n // px,py is on the side of X1,Y1 away from X2,Y2\n // distance to segment is length of px,py vector\n // \"length of its (clipped) projection\" is now 0.0\n projlenSq = 0.0;\n } else {\n // switch to backwards vectors relative to X2,Y2\n // X2,Y2 are already the negative of X1,Y1=>X2,Y2\n // to get px,py to be the negative of px,py=>X2,Y2\n // the dot product of two negated vectors is the same\n // as the dot product of the two normal vectors\n px = X2 - px;\n py = Y2 - py;\n dotprod = px * X2 + py * Y2;\n if (dotprod <= 0.0) {\n // px,py is on the side of X2,Y2 away from X1,Y1\n // distance to segment is length of (backwards) px,py vector\n // \"length of its (clipped) projection\" is now 0.0\n projlenSq = 0.0;\n } else {\n // px,py is between X1,Y1 and X2,Y2\n // dotprod is the length of the px,py vector\n // projected on the X2,Y2=>X1,Y1 vector times the\n // length of the X2,Y2=>X1,Y1 vector\n projlenSq = dotprod * dotprod / (X2 * X2 + Y2 * Y2);\n }\n }\n // Distance to line is now the length of the relative point\n // vector minus the length of its projection onto the line\n // (which is zero if the projection falls outside the range\n // of the line segment).\n var lenSq = px * px + py * py - projlenSq;\n if (lenSq < 0) {\n lenSq = 0;\n }\n return Math.sqrt(lenSq);\n }\n};\n\n/***/ }),\n\n/***/ \"./src/geo/Point.js\":\n/*!**************************!*\\\n !*** ./src/geo/Point.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Represents a point (x, y) in 2-dimensional space.\n *\n * @class\n */\n\n_packages2.default.geo.Point = Class.extend(\n/** @lends draw2d.geo.Point.prototype */\n{\n\n NAME: \"draw2d.geo.Point\",\n\n /**\n * Creates a new Point object with the hands over coordinates.\n *\n * @param {Number|draw2d.geo.Point} x\n * @param {Number} y\n */\n init: function init(x, y) {\n if (x instanceof _packages2.default.geo.Point) {\n this.x = x.x;\n this.y = x.y;\n } else if (!isNaN(parseFloat(x.x)) && !isNaN(parseFloat(x.y))) {\n this.x = x.x;\n this.y = x.y;\n } else {\n this.x = x;\n this.y = y;\n }\n\n // limit for the maxi/minimum boundary of this rectangle\n // It is not possible that the rect leave the boundary if set.\n this.bx = null;\n this.by = null;\n this.bw = null;\n this.bh = null;\n },\n\n /**\n * \n * Ensure the boundary of the rectangle. If set, the rectangle keeps always inside\n * the boundary. It is like a virtual fence.\n *\n * @returns {this}\n */\n setBoundary: function setBoundary(bx, by, bw, bh) {\n if (bx instanceof _packages2.default.geo.Rectangle) {\n this.bx = bx.x;\n this.by = bx.y;\n this.bw = bx.w;\n this.bh = bx.h;\n } else {\n this.bx = bx;\n this.by = by;\n this.bw = bw;\n this.bh = bh;\n }\n this.adjustBoundary();\n\n return this;\n },\n\n /**\n * \n * @private\n * @returns {this}\n */\n adjustBoundary: function adjustBoundary() {\n if (this.bx === null) {\n return this;\n }\n this.x = Math.min(Math.max(this.bx, this.x), this.bw);\n this.y = Math.min(Math.max(this.by, this.y), this.bh);\n\n return this;\n },\n\n /**\n * \n * Moves this Rectangle horizontally by dx and vertically by dy, then returns\n * this Rectangle for convenience.<br>\n * <br>\n * The method return the object itself. This allows you to do command chaining, where\n * you can perform multiple methods on the same elements.\n *\n * @param {Number} dx Shift along X axis\n * @param {Number} dy Shift along Y axis\n * @returns {this}\n **/\n translate: function translate(dx, dy) {\n this.x += dx;\n this.y += dy;\n this.adjustBoundary();\n\n return this;\n },\n\n /**\n * \n * The X value of the point\n *\n * @since 0.1\n * @returns {Number} The x coordinate of the top left corner\n */\n getX: function getX() {\n return this.x;\n },\n\n /**\n * \n * The y value of the point\n *\n * @returns {Number} The y coordinate of the top left corner\n */\n getY: function getY() {\n return this.y;\n },\n\n /**\n * \n * Set the new X value of the point\n *\n * @param {Number} x the new x coordinate of the rect\n * @returns {this}\n */\n setX: function setX(x) {\n this.x = x;\n this.adjustBoundary();\n\n return this;\n },\n\n /**\n * \n * Set the new Y value of the point\n *\n * @param {Number} y the new y coordinate of the rect\n * @returns {this}\n */\n setY: function setY(y) {\n this.y = y;\n this.adjustBoundary();\n\n return this;\n },\n\n /**\n * \n * Set the new x/y coordinates of this point\n *\n * @param {Number|draw2d.geo.Point} x\n * @param {Number} [y]\n * @returns {this}\n */\n setPosition: function setPosition(x, y) {\n if (x instanceof _packages2.default.geo.Point) {\n this.x = x.x;\n this.y = x.y;\n } else {\n this.x = x;\n this.y = y;\n }\n this.adjustBoundary();\n\n return this;\n },\n\n /**\n * \n * Calculates the relative position of the specified Point to this Point.\n *\n * @param {draw2d.geo.Point} p The reference Point\n * @returns {Number} NORTH, SOUTH, EAST, or WEST, as defined in {@link draw2d.geo.PositionConstants}\n */\n getPosition: function getPosition(p) {\n var dx = p.x - this.x;\n var dy = p.y - this.y;\n if (Math.abs(dx) > Math.abs(dy)) {\n if (dx < 0) return _packages2.default.geo.PositionConstants.WEST;\n return _packages2.default.geo.PositionConstants.EAST;\n }\n if (dy < 0) {\n return _packages2.default.geo.PositionConstants.NORTH;\n }\n return _packages2.default.geo.PositionConstants.SOUTH;\n },\n\n /**\n * \n * Compares two points and return [true] if x and y are equals.\n *\n * @param {draw2d.geo.Point} p the point to compare with\n *\n * @returns {Boolean} True if the given p[x,y] has an exact match with the point\n */\n equals: function equals(p) {\n return this.x === p.x && this.y === p.y;\n },\n\n /**\n * \n * Return the distance between this point and the hands over.\n *\n * @param {draw2d.geo.Point} other the point to use\n * @returns {Number} The distance to the given point\n */\n distance: function distance(other) {\n return Math.sqrt((this.x - other.x) * (this.x - other.x) + (this.y - other.y) * (this.y - other.y));\n },\n /* @deprecated */\n getDistance: function getDistance(other) {\n return this.distance(other);\n },\n\n /**\n * \n * Return the length of the vector measured from [0,0]\n *\n * @returns {Number} The length of the vector [0,0][x,y]\n * @since 2.10.0\n */\n length: function length() {\n return Math.sqrt(this.x * this.x + this.y * this.y);\n },\n\n /**\n * \n * Return a new Point translated with the x/y values of the hands over point.\n *\n * @param {draw2d.geo.Point|Number} x the x translation or the complete point to translate\n * @param {Number} [y] the y translation. Required if x is a simple number instead of a draw2d.geo.Point\n * @returns {draw2d.geo.Point} A instance of a translated point.\n */\n translated: function translated(x, y) {\n var other = new _packages2.default.geo.Point(x, y);\n return new _packages2.default.geo.Point(this.x + other.x, this.y + other.y);\n },\n\n /**\n * \n * Scales this point with the handover factor\n *\n * @param {Number} factor the factor to scaled the point.\n * @returns {this}\n */\n scale: function scale(factor) {\n this.x *= factor;\n this.y *= factor;\n this.adjustBoundary();\n\n return this;\n },\n\n /**\n * \n * Return a **new** Point scaled with the givben factor\n *\n * @param {Number} factor the factor to scaled the new point.\n * @returns {draw2d.geo.Point} The new translated point.\n */\n scaled: function scaled(factor) {\n return new _packages2.default.geo.Point(this.x * factor, this.y * factor);\n },\n\n /* @deprecated */\n getScaled: function getScaled(factor) {\n return this.scaled(factor);\n },\n\n /**\n * \n * Return an objects with all important attributes for XML or JSON serialization\n *\n * @returns {Object}\n */\n getPersistentAttributes: function getPersistentAttributes() {\n return {\n x: this.x,\n y: this.y\n };\n },\n\n /**\n * \n * Read all attributes from the serialized properties and transfer them into the shape.\n *\n * @param {Object} memento\n * @returns {this}\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this.x = memento.x;\n this.y = memento.y;\n\n return this;\n },\n\n /**\n * \n * substract the given point and return the **new** point.\n *\n * @param that\n * @returns {draw2d.geo.Point}\n */\n subtract: function subtract(that) {\n return new _packages2.default.geo.Point(this.x - that.x, this.y - that.y);\n },\n\n dot: function dot(that) {\n return this.x * that.x + this.y * that.y;\n },\n\n cross: function cross(that) {\n return this.x * that.y - this.y * that.x;\n },\n\n lerp: function lerp(that, t) {\n return new _packages2.default.geo.Point(this.x + (that.x - this.x) * t, this.y + (that.y - this.y) * t);\n },\n\n /**\n * \n * Return a cloned point\n *\n * @returns {draw2d.geo.Point}\n */\n clone: function clone() {\n return new _packages2.default.geo.Point(this.x, this.y);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/geo/PositionConstants.js\":\n/*!**************************************!*\\\n !*** ./src/geo/PositionConstants.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Static values for point orientation.\n * \n */\n_packages2.default.geo.PositionConstants = {\n /**\n *\n */\n NORTH: 1,\n SOUTH: 4,\n WEST: 8,\n EAST: 16\n};\n\n/***/ }),\n\n/***/ \"./src/geo/Ray.js\":\n/*!************************!*\\\n !*** ./src/geo/Ray.js ***!\n \\************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Represents a vector within 2-dimensional Euclidean space.\n * \n * @inheritable\n * @extends draw2d.geo.Point\n * @author Andreas Herz\n */\n_packages2.default.geo.Ray = _packages2.default.geo.Point.extend(\n/** @lends draw2d.geo.Ray.prototype */\n{\n\n NAME: \"draw2d.geo.Ray\",\n\n /**\n * Creates a ray object.\n *\n * @param {Number} x\n * @param {Number} y\n */\n init: function init(x, y) {\n this._super(x, y);\n },\n\n isHorizontal: function isHorizontal() {\n return this.x != 0;\n },\n\n similarity: function similarity(otherRay) {\n return Math.abs(this.dot(otherRay));\n },\n\n getAveraged: function getAveraged(otherRay) {\n return new _packages2.default.geo.Ray((this.x + otherRay.x) / 2, (this.y + otherRay.y) / 2);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/geo/Rectangle.js\":\n/*!******************************!*\\\n !*** ./src/geo/Rectangle.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Represents a Rectangle(x, y, width, height).\n *\n * @author Andreas Herz\n * @extends draw2d.geo.Point\n */\n_packages2.default.geo.Rectangle = _packages2.default.geo.Point.extend(\n/** @lends draw2d.geo.Rectangle.prototype */\n{\n\n NAME: \"draw2d.geo.Rectangle\",\n\n /**\n * Creates a new Point object with the hands over coordinates.\n * <br>\n * The constructor consumes almost any kind of rectangel definitions\n * like:\n * let rect0 = new draw2d.geo.Rectangle({x:0,y:0,width:20,height:20});\n * let rect1 = new draw2d.geo.Rectangle({x:0,y:0,w:20,h:20});\n * let rect2 = new draw2d.geo.Rectangle($(\"#divid\")[0].getBoundingClientRect());\n * let rect3 = new draw2d.geo.Rectangle(rect1);\n *\n * The rectangle class is usefull for any kind of intersection, hitTest, contains,...calculation\n * or to set the bounding box of any shape.\n *\n * @param {Number|draw2d.geo.Rectangle} x\n * @param {Number} y\n * @param {Number} w\n * @param {Number} h\n */\n init: function init(x, y, w, h) {\n // try to consume any kind rectangle definitions\n //\n if (x instanceof _packages2.default.geo.Rectangle) {\n y = x.y;\n w = x.w;\n h = x.h;\n x = x.x;\n } else if (typeof x.x === \"number\" && typeof x.y === \"number\") {\n y = x.y;\n w = x.w | x.width;\n h = x.h | x.height;\n x = x.x;\n } else if (typeof x.top === \"number\" && typeof x.left === \"number\") {\n y = x.top;\n w = x.w | x.width;\n h = x.h | x.height;\n x = x.left;\n }\n this._super(x, y);\n this.w = w;\n this.h = h;\n },\n\n /**\n *\n * @private\n */\n adjustBoundary: function adjustBoundary() {\n if (this.bx === null) {\n return;\n }\n this.x = Math.min(Math.max(this.bx, this.x), this.bw - this.w);\n this.y = Math.min(Math.max(this.by, this.y), this.bh - this.h);\n this.w = Math.min(this.w, this.bw);\n this.h = Math.min(this.h, this.bh);\n },\n\n /**\n *\n * Resizes this Rectangle by the values supplied as input and returns this for\n * convenience. This Rectangle's width will become this.width + dw. This\n * Rectangle's height will become this.height + dh.\n * <br>\n * The method return the object itself. This allows you to do command chaining, where\n * you can perform multiple methods on the same elements.\n *\n *\n * @param {Number} dw Amount by which width is to be resized\n * @param {Number} dh Amount by which height is to be resized\n * @returns {this}\n **/\n resize: function resize(dw, dh) {\n this.w += dw;\n this.h += dh;\n this.adjustBoundary();\n\n return this;\n },\n\n /**\n * Adds the specified padding to the rectangle's bounds. This Rectangle's width\n * will become this.width + dw. The Rectangle's height will become this.height + dh.\n * The top left corner moves -dw/2, -dh/2\n *\n * @param {Number} dw Amount by which width is to be resized\n * @param {Number} dh Amount by which height is to be resized\n * @returns {this}\n **/\n scale: function scale(dw, dh) {\n this.w += dw;\n this.h += dh;\n this.x -= dw / 2;\n this.y -= dh / 2;\n this.adjustBoundary();\n\n return this;\n },\n\n /**\n * Translate the rectangle with the given x/y coordiante.\n *\n * @param {draw2d.geo.Point|Number} x the x translation or the complete point to translate\n * @param {Number} [y] the y translation. Required if x is a simple number instead of a draw2d.geo.Point\n *\n *\n * @since 5.6.0\n * @returns {this}\n */\n translate: function translate(x, y) {\n var other = new _packages2.default.geo.Point(x, y);\n this.x += other.x;\n this.y += other.y;\n this.adjustBoundary();\n\n return this;\n },\n\n /**\n *\n * Returns a copy of the translated rectangle\n *\n * @param {draw2d.geo.Point|Number} x the x translation or the complete point to translate\n * @param {Number} [y] the y translation. Required if x is a simple number instead of a draw2d.geo.Point\n *\n * @returns {draw2d.geo.Rectangle} The new translated rectangle.\n * @since 5.6.0\n */\n translated: function translated(x, y) {\n var other = new _packages2.default.geo.Point(x, y);\n return new _packages2.default.geo.Rectangle(this.x + other.x, this.y + other.y, this.w, this.h);\n },\n\n /**\n * Sets the parameters of this Rectangle from the Rectangle passed in and\n * returns this for convenience.<br>\n * <br>\n * The method return the object itself. This allows you to do command chaining, where\n * you can perform multiple methods on the same elements.\n *\n * @param {draw2d.geo.Rectangle} Rectangle providing the bounding values\n * @returns {this}\n */\n setBounds: function setBounds(rect) {\n this.setPosition(rect.x, rect.y);\n\n this.w = rect.w;\n this.h = rect.h;\n\n return this;\n },\n\n /**\n *\n * Returns <code>true</code> if this Rectangle's width or height is less than or\n * equal to 0.\n *\n * @returns {Boolean}\n */\n isEmpty: function isEmpty() {\n return this.w <= 0 || this.h <= 0;\n },\n\n /**\n *\n * The width of the dimension element.\n *\n * @returns {Number}\n **/\n getWidth: function getWidth() {\n return this.w;\n },\n\n /**\n *\n * Set the new width of the rectangle.\n *\n * @param {Number} w the new width of the rectangle\n * @returns {this}\n */\n setWidth: function setWidth(w) {\n this.w = w;\n this.adjustBoundary();\n\n return this;\n },\n\n /**\n *\n * The height of the dimension element.\n *\n * @returns {Number}\n **/\n getHeight: function getHeight() {\n return this.h;\n },\n\n /**\n *\n * Set the new height of the rectangle.\n *\n * @param {Number} h the new height of the rectangle\n * @returns {this}\n */\n setHeight: function setHeight(h) {\n this.h = h;\n this.adjustBoundary();\n\n return this;\n },\n\n /**\n *\n * The x coordinate of the left corner.\n *\n * @returns {Number}\n **/\n getLeft: function getLeft() {\n return this.x;\n },\n\n /**\n *\n * The x coordinate of the right corner.\n *\n * @returns {Number}\n **/\n getRight: function getRight() {\n return this.x + this.w;\n },\n\n /**\n *\n * The y coordinate of the top.\n *\n *@return {Number}\n **/\n getTop: function getTop() {\n return this.y;\n },\n\n /**\n *\n * The y coordinate of the bottom.\n *\n *@return {Number}\n **/\n getBottom: function getBottom() {\n return this.y + this.h;\n },\n\n /**\n *\n * The top left corner of the dimension object.\n *\n * @returns {draw2d.geo.Point} a new point objects which holds the coordinates\n **/\n getTopLeft: function getTopLeft() {\n return new _packages2.default.geo.Point(this.x, this.y);\n },\n\n /**\n *\n * The top center coordinate of the dimension object.\n *\n * @returns {draw2d.geo.Point} a new point objects which holds the coordinates\n **/\n getTopCenter: function getTopCenter() {\n return new _packages2.default.geo.Point(this.x + this.w / 2, this.y);\n },\n\n /**\n *\n * The top right corner of the dimension object.\n *\n * @returns {draw2d.geo.Point} a new point objects which holds the coordinates\n **/\n getTopRight: function getTopRight() {\n return new _packages2.default.geo.Point(this.x + this.w, this.y);\n },\n\n /**\n *\n * The center left of the dimension object.\n *\n * @returns {draw2d.geo.Point} a new point objects which holds the coordinates\n **/\n getCenterLeft: function getCenterLeft() {\n return new _packages2.default.geo.Point(this.x, this.y + this.h / 2);\n },\n\n /**\n *\n * The center right of the dimension object.\n *\n * @returns {draw2d.geo.Point} a new point objects which holds the coordinates\n **/\n getCenterRight: function getCenterRight() {\n return new _packages2.default.geo.Point(this.x + this.w, this.y + this.h / 2);\n },\n\n /**\n *\n * The bottom left corner of the dimension object.\n *\n * @returns {draw2d.geo.Point} a new point objects which holds the coordinates\n **/\n getBottomLeft: function getBottomLeft() {\n return new _packages2.default.geo.Point(this.x, this.y + this.h);\n },\n\n /**\n *\n * The bottom center coordinate of the dimension object.\n *\n * @returns {draw2d.geo.Point} a new point objects which holds the coordinates\n **/\n getBottomCenter: function getBottomCenter() {\n return new _packages2.default.geo.Point(this.x + this.w / 2, this.y + this.h);\n },\n\n /**\n *\n * The center of the dimension object\n *\n * @returns {draw2d.geo.Point} a new point which holds the center of the object\n **/\n getCenter: function getCenter() {\n return new _packages2.default.geo.Point(this.x + this.w / 2, this.y + this.h / 2);\n },\n\n /**\n *\n * Bottom right corner of the object\n *\n * @returns {draw2d.geo.Point} a new point which holds the bottom right corner\n **/\n getBottomRight: function getBottomRight() {\n return new _packages2.default.geo.Point(this.x + this.w, this.y + this.h);\n },\n\n /**\n *\n * Return all points of the rectangle as array. Starting at topLeft and the\n * clockwise.\n *\n * @returns {draw2d.util.ArrayList} the points starting at top/left and the clockwise\n */\n getVertices: function getVertices() {\n var result = new _packages2.default.util.ArrayList();\n // don't change the order. We expect always that the top left corner has index[0]\n // and goes clock wise\n //\n result.add(this.getTopLeft());\n result.add(this.getTopRight());\n result.add(this.getBottomRight());\n result.add(this.getBottomLeft());\n\n return result;\n },\n\n /**\n *\n * Return a new rectangle which fits into this rectangle. <b>ONLY</b> the x/y coordinates\n * will be changed. Not the dimension of the given rectangle.\n *\n * @param {draw2d.geo.Rectangle} rect the rectangle to adjust\n * @returns the new shifted rectangle\n */\n moveInside: function moveInside(rect) {\n var newRect = new _packages2.default.geo.Rectangle(rect.x, rect.y, rect.w, rect.h);\n // shift the coordinate right/down if coordinate not inside the rect\n //\n newRect.x = Math.max(newRect.x, this.x);\n newRect.y = Math.max(newRect.y, this.y);\n\n // ensure that the right border is inside this rect (if possible). \n //\n if (newRect.w < this.w) {\n newRect.x = Math.min(newRect.x + newRect.w, this.x + this.w) - newRect.w;\n } else {\n newRect.x = this.x;\n }\n\n // ensure that the bottom is inside this rectangle\n //\n if (newRect.h < this.h) {\n newRect.y = Math.min(newRect.y + newRect.h, this.y + this.h) - newRect.h;\n } else {\n newRect.y = this.y;\n }\n\n return newRect;\n },\n\n /**\n *\n * Return the minimum distance of this rectangle to the given {@link draw2d.geo.Point} or\n * {link draw2d.geo.Rectangle}.\n *\n * @param {draw2d.geo.Point|draw2d.geo.Rectangle} pointOrRectangle the reference point/rectangle for the distance calculation\n */\n getDistance: function getDistance(pointOrRectangle) {\n var cx = this.x;\n var cy = this.y;\n var cw = this.w;\n var ch = this.h;\n\n var ox = pointOrRectangle.getX();\n var oy = pointOrRectangle.getY();\n var ow = 1;\n var oh = 1;\n\n if (pointOrRectangle instanceof _packages2.default.geo.Rectangle) {\n ow = pointOrRectangle.getWidth();\n oh = pointOrRectangle.getHeight();\n }\n var oct = 9;\n\n // Determin Octant\n //\n // 0 | 1 | 2\n // __|___|__\n // 7 | 9 | 3\n // __|___|__\n // 6 | 5 | 4\n\n if (cx + cw <= ox) {\n if (cy + ch <= oy) {\n oct = 0;\n } else if (cy >= oy + oh) {\n oct = 6;\n } else {\n oct = 7;\n }\n } else if (cx >= ox + ow) {\n if (cy + ch <= oy) {\n oct = 2;\n } else if (cy >= oy + oh) {\n oct = 4;\n } else {\n oct = 3;\n }\n } else if (cy + ch <= oy) {\n oct = 1;\n } else if (cy >= oy + oh) {\n oct = 5;\n } else {\n return 0;\n }\n\n // Determine Distance based on Quad\n //\n switch (oct) {\n case 0:\n cx = cx + cw - ox;\n cy = cy + ch - oy;\n return -(cx + cy);\n case 1:\n return -(cy + ch - oy);\n case 2:\n cx = ox + ow - cx;\n cy = cy + ch - oy;\n return -(cx + cy);\n case 3:\n return -(ox + ow - cx);\n case 4:\n cx = ox + ow - cx;\n cy = oy + oh - cy;\n return -(cx + cy);\n case 5:\n return -(oy + oh - cy);\n case 6:\n cx = cx + cw - ox;\n cy = oy + oh - cy;\n return -(cx + cy);\n case 7:\n return -(cx + cw - ox);\n }\n\n throw \"Unknown data type of parameter for distance calculation in draw2d.geo.Rectangle.getDistance(..)\";\n },\n\n /**\n *\n * Determin the octant of r2 in relation to this rectangle.\n * <pre>\n *\n * 0 | 1 | 2\n * __|___|__\n * 7 | 8 | 3\n * __|___|__\n * 6 | 5 | 4\n * </pre>\n *\n * @param {draw2d.geo.Rectangle} r2\n *\n */\n determineOctant: function determineOctant(r2) {\n var HISTERESE = 3; // Toleranz um diese vermieden wird, dass der Octant \"8\" zurückgegeben wird\n\n var ox = this.x + HISTERESE;\n var oy = this.y + HISTERESE;\n var ow = this.w - HISTERESE * 2;\n var oh = this.h - HISTERESE * 2;\n\n var cx = r2.x;\n var cy = r2.y;\n var cw = 2;\n var ch = 2;\n if (r2 instanceof _packages2.default.geo.Rectangle) {\n cw = r2.w;\n ch = r2.h;\n }\n\n var oct = 0;\n\n if (cx + cw <= ox) {\n if (cy + ch <= oy) {\n oct = 0;\n } else if (cy >= oy + oh) {\n oct = 6;\n } else {\n oct = 7;\n }\n } else if (cx >= ox + ow) {\n if (cy + ch <= oy) {\n oct = 2;\n } else if (cy >= oy + oh) {\n oct = 4;\n } else {\n oct = 3;\n }\n } else if (cy + ch <= oy) {\n oct = 1;\n } else if (cy >= oy + oh) {\n oct = 5;\n } else {\n oct = 8;\n }\n\n return oct;\n },\n\n /**\n *\n * Returns the direction the point <i>p</i> is in relation to the given rectangle.\n * Util method for inherit router implementations.\n *\n * <p>\n * Possible values:\n * <ul>\n * <li>up -> 0</li>\n * <li>right -> 1</li>\n * <li>down -> 2</li>\n * <li>left -> 3</li>\n * </ul>\n * <p>\n *\n * @param {draw2d.geo.Point} other the point in relation to the given rectangle\n *\n * @returns {Number} the direction from <i>r</i> to <i>p</i>\n */\n getDirection: function getDirection(other) {\n var current = this.getTopLeft();\n switch (this.determineOctant(other)) {\n case 0:\n if (current.x - other.x < current.y - other.y) return _packages2.default.geo.Rectangle.DIRECTION_UP;\n return _packages2.default.geo.Rectangle.DIRECTION_LEFT;\n case 1:\n return _packages2.default.geo.Rectangle.DIRECTION_UP;\n case 2:\n current = this.getTopRight();\n if (other.x - current.x < current.y - other.y) return _packages2.default.geo.Rectangle.DIRECTION_UP;\n return _packages2.default.geo.Rectangle.DIRECTION_RIGHT;\n case 3:\n return _packages2.default.geo.Rectangle.DIRECTION_RIGHT;\n case 4:\n current = this.getBottomRight();\n if (other.x - current.x < other.y - current.y) return _packages2.default.geo.Rectangle.DIRECTION_DOWN;\n return _packages2.default.geo.Rectangle.DIRECTION_RIGHT;\n case 5:\n return _packages2.default.geo.Rectangle.DIRECTION_DOWN;\n case 6:\n current = this.getBottomLeft();\n if (current.x - other.x < other.y - current.y) return _packages2.default.geo.Rectangle.DIRECTION_DOWN;\n return _packages2.default.geo.Rectangle.DIRECTION_LEFT;\n case 7:\n return _packages2.default.geo.Rectangle.DIRECTION_LEFT;\n case 8:\n if (other.y > this.y) {\n return _packages2.default.geo.Rectangle.DIRECTION_DOWN;\n }\n return _packages2.default.geo.Rectangle.DIRECTION_UP;\n\n }\n return _packages2.default.geo.Rectangle.DIRECTION_UP;\n },\n\n /**\n *\n * Compares two rectangle objects\n *\n * @param {draw2d.geo.Rectangle} o\n *\n * @returns {Boolean}\n **/\n equals: function equals(o) {\n return this.x == o.x && this.y == o.y && this.w == o.w && this.h == o.h;\n },\n\n /**\n *\n * Detect whenever the hands over coordinate is inside the rectangle.\n *\n * @param {Number/draw2d.geo.Point} iX\n * @param {Number} iY\n * @returns {Boolean}\n */\n hitTest: function hitTest(iX, iY) {\n if (iX instanceof _packages2.default.geo.Point) {\n iY = iX.y;\n iX = iX.x;\n }\n var iX2 = this.x + this.getWidth();\n var iY2 = this.y + this.getHeight();\n return iX >= this.x && iX <= iX2 && iY >= this.y && iY <= iY2;\n },\n\n /**\n *\n * return true if this rectangle inside the hand over rectangle\n *\n *\n * @param {draw2d.geo.Rectangle} rect\n * @returns {Boolean}\n */\n isInside: function isInside(rect) {\n return rect.hitTest(this.getTopLeft()) && rect.hitTest(this.getTopRight()) && rect.hitTest(this.getBottomLeft()) && rect.hitTest(this.getBottomRight());\n },\n\n /**\n *\n * return true if this rectangle contains the hand over rectangle.\n *\n *\n * @param {draw2d.geo.Rectangle} rect\n * @returns {Boolean}\n * @since 4.7.2\n */\n contains: function contains(rect) {\n return this.hitTest(rect.getTopLeft()) && this.hitTest(rect.getTopRight()) && this.hitTest(rect.getBottomLeft()) && this.hitTest(rect.getBottomRight());\n },\n\n /**\n *\n * checks whenever the rectangles has an intersection.\n *\n * @param {draw2d.geo.Rectangle} rect\n * @returns {Boolean}\n */\n intersects: function intersects(rect) {\n var x11 = rect.x,\n y11 = rect.y,\n x12 = rect.x + rect.w,\n y12 = rect.y + rect.h,\n x21 = this.x,\n y21 = this.y,\n x22 = this.x + this.w,\n y22 = this.y + this.h;\n\n var x_overlap = Math.max(0, Math.min(x12, x22) - Math.max(x11, x21));\n var y_overlap = Math.max(0, Math.min(y12, y22) - Math.max(y11, y21));\n\n return x_overlap * y_overlap !== 0;\n },\n\n /**\n * Merge this rectangle with the given one.\n *\n * @param {draw2d.geo.Rectangle} rect\n * @since 4.8.0\n * @returns {this}\n */\n merge: function merge(rect) {\n var r = Math.max(rect.getRight(), this.getRight());\n var b = Math.max(rect.getBottom(), this.getBottom());\n\n this.setPosition(Math.min(this.x, rect.x), Math.min(this.y, rect.y));\n\n this.w = r - this.x;\n this.h = b - this.y;\n\n return this;\n },\n\n /**\n *\n * returns the intersection points with the given line if any exists\n *\n * @param {draw2d.geo.Point} start\n * @param {draw2d.geo.Point} end\n */\n intersectionWithLine: function intersectionWithLine(start, end) {\n var result = new _packages2.default.util.ArrayList();\n var v = this.getVertices();\n v.add(v.first());\n var p1 = v.first();\n var p2 = null;\n for (var i = 1; i < 5; i++) {\n p2 = v.get(i);\n p1 = _packages2.default.shape.basic.Line.intersection(start, end, p1, p2);\n if (p1 !== null) {\n result.add(p1);\n }\n p1 = p2;\n }\n return result;\n },\n\n /**\n *\n * Returns a copy of this rectangle\n *\n *\n * @returns {draw2d.geo.Rectangle}\n * @since 5.6.0\n */\n clone: function clone() {\n return new _packages2.default.geo.Rectangle(this.x, this.y, this.w, this.h);\n },\n\n /**\n *\n * converts the rectangle to JSON representation. required for the draw2d.io.Writer\n *\n * @returns {Object}\n */\n toJSON: function toJSON() {\n return {\n width: this.w,\n height: this.h,\n x: this.x,\n y: this.y\n };\n }\n\n});\n\n/**\n * ENUM for Direction\n */\n_packages2.default.geo.Rectangle.DIRECTION_UP = 0;\n_packages2.default.geo.Rectangle.DIRECTION_RIGHT = 1;\n_packages2.default.geo.Rectangle.DIRECTION_DOWN = 2;\n_packages2.default.geo.Rectangle.DIRECTION_LEFT = 3;\n\n/***/ }),\n\n/***/ \"./src/geo/Util.js\":\n/*!*************************!*\\\n !*** ./src/geo/Util.js ***!\n \\*************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Geometric utils functions used in ray, point and some routers.\n *\n * @author Andreas Herz\n */\n_packages2.default.geo.Util = {\n\n /**\n *\n * @param start {draw2d.geo.Point} start point of a line\n * @param end {draw2d.geo.Point} end point of a line\n * @param distanceFromStart {Number} distance from the start point to extrapolate a new point\n * @returns {{x: *, y: *}|*} a new point with the distance *distanceFromStart* from the start point\n */\n insetPoint: function insetPoint(start, end, distanceFromStart) {\n if (start.equals(end)) {\n return start;\n }\n var vx = start.x - end.x;\n var vy = start.y - end.y;\n var length = Math.sqrt(vx * vx + vy * vy);\n var localDistance = Math.min(length / 2, distanceFromStart);\n return {\n x: end.x + vx / length * (length - localDistance),\n y: end.y + vy / length * (length - localDistance)\n };\n }\n};\n\n/***/ }),\n\n/***/ \"./src/index.js\":\n/*!**********************!*\\\n !*** ./src/index.js ***!\n \\**********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _raphaelExec = __webpack_require__(/*! lib/raphael.exec.js */ \"./src/lib/raphael.exec.js\");\n\nvar _raphaelExec2 = _interopRequireDefault(_raphaelExec);\n\nvar _ClassExec = __webpack_require__(/*! lib/Class.exec.js */ \"./src/lib/Class.exec.js\");\n\nvar _ClassExec2 = _interopRequireDefault(_ClassExec);\n\nvar _pathfindingExec = __webpack_require__(/*! lib/pathfinding.exec.js */ \"./src/lib/pathfinding.exec.js\");\n\nvar _pathfindingExec2 = _interopRequireDefault(_pathfindingExec);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = _packages2.default;\n\n__webpack_require__(/*! ./util/raphael_ext */ \"./src/util/raphael_ext.js\");\n__webpack_require__(/*! ./util/Polyfill */ \"./src/util/Polyfill.js\");\n__webpack_require__(/*! ./util/Base64 */ \"./src/util/Base64.js\");\n__webpack_require__(/*! ./util/Debug */ \"./src/util/Debug.js\");\n// require('./util/Color');\n\n__webpack_require__(/*! ./util/ArrayList */ \"./src/util/ArrayList.js\");\n__webpack_require__(/*! ./util/SVGUtil */ \"./src/util/SVGUtil.js\");\n//require('./util/JSONUtil');\n//require('./util/UUID');\n__webpack_require__(/*! ./util/spline/Spline */ \"./src/util/spline/Spline.js\");\n__webpack_require__(/*! ./util/spline/CubicSpline */ \"./src/util/spline/CubicSpline.js\");\n__webpack_require__(/*! ./util/spline/CatmullRomSpline */ \"./src/util/spline/CatmullRomSpline.js\");\n__webpack_require__(/*! ./util/spline/BezierSpline */ \"./src/util/spline/BezierSpline.js\");\n__webpack_require__(/*! ./geo/PositionConstants */ \"./src/geo/PositionConstants.js\");\n__webpack_require__(/*! ./geo/Point */ \"./src/geo/Point.js\");\n__webpack_require__(/*! ./geo/Rectangle */ \"./src/geo/Rectangle.js\");\n__webpack_require__(/*! ./geo/Util */ \"./src/geo/Util.js\");\n__webpack_require__(/*! ./geo/Ray */ \"./src/geo/Ray.js\");\n__webpack_require__(/*! ./geo/Line */ \"./src/geo/Line.js\");\n__webpack_require__(/*! ./command/CommandType */ \"./src/command/CommandType.js\");\n__webpack_require__(/*! ./command/Command */ \"./src/command/Command.js\");\n__webpack_require__(/*! ./command/CommandCollection */ \"./src/command/CommandCollection.js\");\n__webpack_require__(/*! ./command/CommandStack */ \"./src/command/CommandStack.js\");\n__webpack_require__(/*! ./command/CommandStackEvent */ \"./src/command/CommandStackEvent.js\");\n__webpack_require__(/*! ./command/CommandStackEventListener */ \"./src/command/CommandStackEventListener.js\");\n__webpack_require__(/*! ./command/CommandMove */ \"./src/command/CommandMove.js\");\n__webpack_require__(/*! ./command/CommandAttr */ \"./src/command/CommandAttr.js\");\n__webpack_require__(/*! ./command/CommandMoveLine */ \"./src/command/CommandMoveLine.js\");\n__webpack_require__(/*! ./command/CommandMoveConnection */ \"./src/command/CommandMoveConnection.js\");\n__webpack_require__(/*! ./command/CommandMoveVertex */ \"./src/command/CommandMoveVertex.js\");\n__webpack_require__(/*! ./command/CommandMoveVertices */ \"./src/command/CommandMoveVertices.js\");\n__webpack_require__(/*! ./command/CommandResize */ \"./src/command/CommandResize.js\");\n__webpack_require__(/*! ./command/CommandRotate */ \"./src/command/CommandRotate.js\");\n__webpack_require__(/*! ./command/CommandConnect */ \"./src/command/CommandConnect.js\");\n__webpack_require__(/*! ./command/CommandReconnect */ \"./src/command/CommandReconnect.js\");\n__webpack_require__(/*! ./command/CommandDelete */ \"./src/command/CommandDelete.js\");\n__webpack_require__(/*! ./command/CommandDeleteGroup */ \"./src/command/CommandDeleteGroup.js\");\n__webpack_require__(/*! ./command/CommandAdd */ \"./src/command/CommandAdd.js\");\n__webpack_require__(/*! ./command/CommandGroup */ \"./src/command/CommandGroup.js\");\n__webpack_require__(/*! ./command/CommandUngroup */ \"./src/command/CommandUngroup.js\");\n__webpack_require__(/*! ./command/CommandAddVertex */ \"./src/command/CommandAddVertex.js\");\n__webpack_require__(/*! ./command/CommandAssignFigure */ \"./src/command/CommandAssignFigure.js\");\n__webpack_require__(/*! ./command/CommandBoundingBox */ \"./src/command/CommandBoundingBox.js\");\n__webpack_require__(/*! ./command/CommandRemoveVertex */ \"./src/command/CommandRemoveVertex.js\");\n__webpack_require__(/*! ./command/CommandReplaceVertices */ \"./src/command/CommandReplaceVertices.js\");\n__webpack_require__(/*! ./layout/connection/ConnectionRouter */ \"./src/layout/connection/ConnectionRouter.js\");\n__webpack_require__(/*! ./layout/connection/DirectRouter */ \"./src/layout/connection/DirectRouter.js\");\n__webpack_require__(/*! ./layout/connection/RubberbandRouter */ \"./src/layout/connection/RubberbandRouter.js\");\n__webpack_require__(/*! ./layout/connection/VertexRouter */ \"./src/layout/connection/VertexRouter.js\");\n__webpack_require__(/*! ./layout/connection/ManhattanConnectionRouter */ \"./src/layout/connection/ManhattanConnectionRouter.js\");\n__webpack_require__(/*! ./layout/connection/ManhattanBridgedConnectionRouter */ \"./src/layout/connection/ManhattanBridgedConnectionRouter.js\");\n__webpack_require__(/*! ./layout/connection/InteractiveManhattanConnectionRouter */ \"./src/layout/connection/InteractiveManhattanConnectionRouter.js\");\n__webpack_require__(/*! ./layout/connection/CircuitConnectionRouter */ \"./src/layout/connection/CircuitConnectionRouter.js\");\n__webpack_require__(/*! ./layout/connection/SplineConnectionRouter */ \"./src/layout/connection/SplineConnectionRouter.js\");\n__webpack_require__(/*! ./layout/connection/FanConnectionRouter */ \"./src/layout/connection/FanConnectionRouter.js\");\n__webpack_require__(/*! ./layout/connection/MazeConnectionRouter */ \"./src/layout/connection/MazeConnectionRouter.js\");\n__webpack_require__(/*! ./layout/connection/MuteableManhattanConnectionRouter */ \"./src/layout/connection/MuteableManhattanConnectionRouter.js\");\n__webpack_require__(/*! ./layout/connection/SketchConnectionRouter */ \"./src/layout/connection/SketchConnectionRouter.js\");\n__webpack_require__(/*! ./layout/mesh/MeshLayouter */ \"./src/layout/mesh/MeshLayouter.js\");\n__webpack_require__(/*! ./layout/mesh/ExplodeLayouter */ \"./src/layout/mesh/ExplodeLayouter.js\");\n__webpack_require__(/*! ./layout/mesh/ProposedMeshChange */ \"./src/layout/mesh/ProposedMeshChange.js\");\n__webpack_require__(/*! ./layout/locator/Locator */ \"./src/layout/locator/Locator.js\");\n__webpack_require__(/*! ./layout/locator/PortLocator */ \"./src/layout/locator/PortLocator.js\");\n__webpack_require__(/*! ./layout/locator/DraggableLocator */ \"./src/layout/locator/DraggableLocator.js\");\n__webpack_require__(/*! ./layout/locator/SmartDraggableLocator */ \"./src/layout/locator/SmartDraggableLocator.js\");\n__webpack_require__(/*! ./layout/locator/XYAbsPortLocator */ \"./src/layout/locator/XYAbsPortLocator.js\");\n__webpack_require__(/*! ./layout/locator/XYRelPortLocator */ \"./src/layout/locator/XYRelPortLocator.js\");\n__webpack_require__(/*! ./layout/locator/InputPortLocator */ \"./src/layout/locator/InputPortLocator.js\");\n__webpack_require__(/*! ./layout/locator/OutputPortLocator */ \"./src/layout/locator/OutputPortLocator.js\");\n__webpack_require__(/*! ./layout/locator/ConnectionLocator */ \"./src/layout/locator/ConnectionLocator.js\");\n__webpack_require__(/*! ./layout/locator/ManhattanMidpointLocator */ \"./src/layout/locator/ManhattanMidpointLocator.js\");\n__webpack_require__(/*! ./layout/locator/PolylineMidpointLocator */ \"./src/layout/locator/PolylineMidpointLocator.js\");\n__webpack_require__(/*! ./layout/locator/ParallelMidpointLocator */ \"./src/layout/locator/ParallelMidpointLocator.js\");\n__webpack_require__(/*! ./layout/locator/TopLocator */ \"./src/layout/locator/TopLocator.js\");\n__webpack_require__(/*! ./layout/locator/BottomLocator */ \"./src/layout/locator/BottomLocator.js\");\n__webpack_require__(/*! ./layout/locator/LeftLocator */ \"./src/layout/locator/LeftLocator.js\");\n__webpack_require__(/*! ./layout/locator/RightLocator */ \"./src/layout/locator/RightLocator.js\");\n__webpack_require__(/*! ./layout/locator/CenterLocator */ \"./src/layout/locator/CenterLocator.js\");\n__webpack_require__(/*! ./policy/EditPolicy */ \"./src/policy/EditPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/CanvasPolicy */ \"./src/policy/canvas/CanvasPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/ZoomPolicy */ \"./src/policy/canvas/ZoomPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/WheelZoomPolicy */ \"./src/policy/canvas/WheelZoomPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/KeyboardPolicy */ \"./src/policy/canvas/KeyboardPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/DefaultKeyboardPolicy */ \"./src/policy/canvas/DefaultKeyboardPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/ExtendedKeyboardPolicy */ \"./src/policy/canvas/ExtendedKeyboardPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/SelectionPolicy */ \"./src/policy/canvas/SelectionPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/SingleSelectionPolicy */ \"./src/policy/canvas/SingleSelectionPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/GhostMoveSelectionPolicy */ \"./src/policy/canvas/GhostMoveSelectionPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/PanningSelectionPolicy */ \"./src/policy/canvas/PanningSelectionPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/BoundingboxSelectionPolicy */ \"./src/policy/canvas/BoundingboxSelectionPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/ReadOnlySelectionPolicy */ \"./src/policy/canvas/ReadOnlySelectionPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/DecorationPolicy */ \"./src/policy/canvas/DecorationPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/FadeoutDecorationPolicy */ \"./src/policy/canvas/FadeoutDecorationPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/CoronaDecorationPolicy */ \"./src/policy/canvas/CoronaDecorationPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/SnapToEditPolicy */ \"./src/policy/canvas/SnapToEditPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/ShowDimetricGridEditPolicy */ \"./src/policy/canvas/ShowDimetricGridEditPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/SnapToDimetricGridEditPolicy */ \"./src/policy/canvas/SnapToDimetricGridEditPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/ShowGridEditPolicy */ \"./src/policy/canvas/ShowGridEditPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/SnapToGridEditPolicy */ \"./src/policy/canvas/SnapToGridEditPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/ShowDotEditPolicy */ \"./src/policy/canvas/ShowDotEditPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/ShowChessboardEditPolicy */ \"./src/policy/canvas/ShowChessboardEditPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/SnapToGeometryEditPolicy */ \"./src/policy/canvas/SnapToGeometryEditPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/SnapToVerticesEditPolicy */ \"./src/policy/canvas/SnapToVerticesEditPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/SnapToInBetweenEditPolicy */ \"./src/policy/canvas/SnapToInBetweenEditPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/SnapToCenterEditPolicy */ \"./src/policy/canvas/SnapToCenterEditPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/DropInterceptorPolicy */ \"./src/policy/canvas/DropInterceptorPolicy.js\");\n__webpack_require__(/*! ./policy/connection/ConnectionCreatePolicy */ \"./src/policy/connection/ConnectionCreatePolicy.js\");\n__webpack_require__(/*! ./policy/connection/ComposedConnectionCreatePolicy */ \"./src/policy/connection/ComposedConnectionCreatePolicy.js\");\n__webpack_require__(/*! ./policy/connection/ClickConnectionCreatePolicy */ \"./src/policy/connection/ClickConnectionCreatePolicy.js\");\n__webpack_require__(/*! ./policy/connection/OrthogonalConnectionCreatePolicy */ \"./src/policy/connection/OrthogonalConnectionCreatePolicy.js\");\n__webpack_require__(/*! ./policy/connection/DragConnectionCreatePolicy */ \"./src/policy/connection/DragConnectionCreatePolicy.js\");\n__webpack_require__(/*! ./policy/figure/FigureEditPolicy */ \"./src/policy/figure/FigureEditPolicy.js\");\n__webpack_require__(/*! ./policy/figure/DragDropEditPolicy */ \"./src/policy/figure/DragDropEditPolicy.js\");\n__webpack_require__(/*! ./policy/figure/RegionEditPolicy */ \"./src/policy/figure/RegionEditPolicy.js\");\n__webpack_require__(/*! ./policy/figure/HorizontalEditPolicy */ \"./src/policy/figure/HorizontalEditPolicy.js\");\n__webpack_require__(/*! ./policy/figure/VerticalEditPolicy */ \"./src/policy/figure/VerticalEditPolicy.js\");\n__webpack_require__(/*! ./policy/figure/SelectionPolicy */ \"./src/policy/figure/SelectionPolicy.js\");\n__webpack_require__(/*! ./policy/figure/SelectionFeedbackPolicy */ \"./src/policy/figure/SelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/figure/ResizeSelectionFeedbackPolicy */ \"./src/policy/figure/ResizeSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/figure/RectangleSelectionFeedbackPolicy */ \"./src/policy/figure/RectangleSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/figure/BigRectangleSelectionFeedbackPolicy */ \"./src/policy/figure/BigRectangleSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/figure/RoundRectangleSelectionFeedbackPolicy */ \"./src/policy/figure/RoundRectangleSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/figure/BusSelectionFeedbackPolicy */ \"./src/policy/figure/BusSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/figure/WidthSelectionFeedbackPolicy */ \"./src/policy/figure/WidthSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/figure/VBusSelectionFeedbackPolicy */ \"./src/policy/figure/VBusSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/figure/HBusSelectionFeedbackPolicy */ \"./src/policy/figure/HBusSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/figure/AntSelectionFeedbackPolicy */ \"./src/policy/figure/AntSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/figure/GlowSelectionFeedbackPolicy */ \"./src/policy/figure/GlowSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/figure/SlimSelectionFeedbackPolicy */ \"./src/policy/figure/SlimSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/figure/VertexSelectionFeedbackPolicy */ \"./src/policy/figure/VertexSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/line/LineSelectionFeedbackPolicy */ \"./src/policy/line/LineSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/line/VertexSelectionFeedbackPolicy */ \"./src/policy/line/VertexSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/line/OrthogonalSelectionFeedbackPolicy */ \"./src/policy/line/OrthogonalSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/port/PortFeedbackPolicy */ \"./src/policy/port/PortFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/port/ElasticStrapFeedbackPolicy */ \"./src/policy/port/ElasticStrapFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/port/IntrusivePortsFeedbackPolicy */ \"./src/policy/port/IntrusivePortsFeedbackPolicy.js\");\n__webpack_require__(/*! ./Configuration */ \"./src/Configuration.js\");\n__webpack_require__(/*! ./HeadlessCanvas */ \"./src/HeadlessCanvas.js\");\n__webpack_require__(/*! ./Canvas */ \"./src/Canvas.js\");\n__webpack_require__(/*! ./Selection */ \"./src/Selection.js\");\n__webpack_require__(/*! ./Figure */ \"./src/Figure.js\");\n__webpack_require__(/*! ./shape/node/Node */ \"./src/shape/node/Node.js\");\n__webpack_require__(/*! ./VectorFigure */ \"./src/VectorFigure.js\");\n__webpack_require__(/*! ./shape/basic/Rectangle */ \"./src/shape/basic/Rectangle.js\");\n__webpack_require__(/*! ./SetFigure */ \"./src/SetFigure.js\");\n__webpack_require__(/*! ./SVGFigure */ \"./src/SVGFigure.js\");\n__webpack_require__(/*! ./shape/node/Hub */ \"./src/shape/node/Hub.js\");\n__webpack_require__(/*! ./shape/node/HorizontalBus */ \"./src/shape/node/HorizontalBus.js\");\n__webpack_require__(/*! ./shape/node/VerticalBus */ \"./src/shape/node/VerticalBus.js\");\n__webpack_require__(/*! ./shape/node/Fulcrum */ \"./src/shape/node/Fulcrum.js\");\n__webpack_require__(/*! ./shape/basic/Arc */ \"./src/shape/basic/Arc.js\");\n__webpack_require__(/*! ./shape/basic/Oval */ \"./src/shape/basic/Oval.js\");\n__webpack_require__(/*! ./shape/basic/Circle */ \"./src/shape/basic/Circle.js\");\n__webpack_require__(/*! ./shape/basic/Label */ \"./src/shape/basic/Label.js\");\n__webpack_require__(/*! ./shape/basic/Text */ \"./src/shape/basic/Text.js\");\n__webpack_require__(/*! ./shape/basic/Line */ \"./src/shape/basic/Line.js\");\n__webpack_require__(/*! ./shape/basic/PolyLine */ \"./src/shape/basic/PolyLine.js\");\n__webpack_require__(/*! ./shape/basic/Image */ \"./src/shape/basic/Image.js\");\n__webpack_require__(/*! ./shape/basic/Polygon */ \"./src/shape/basic/Polygon.js\");\n__webpack_require__(/*! ./shape/basic/Diamond */ \"./src/shape/basic/Diamond.js\");\n__webpack_require__(/*! ./shape/dimetric/Rectangle */ \"./src/shape/dimetric/Rectangle.js\");\n__webpack_require__(/*! ./shape/composite/Composite */ \"./src/shape/composite/Composite.js\");\n__webpack_require__(/*! ./shape/composite/StrongComposite */ \"./src/shape/composite/StrongComposite.js\");\n__webpack_require__(/*! ./shape/composite/Group */ \"./src/shape/composite/Group.js\");\n__webpack_require__(/*! ./shape/composite/Jailhouse */ \"./src/shape/composite/Jailhouse.js\");\n__webpack_require__(/*! ./shape/composite/WeakComposite */ \"./src/shape/composite/WeakComposite.js\");\n__webpack_require__(/*! ./shape/composite/Raft */ \"./src/shape/composite/Raft.js\");\n__webpack_require__(/*! ./Connection */ \"./src/Connection.js\");\n__webpack_require__(/*! ./VectorFigure */ \"./src/VectorFigure.js\");\n__webpack_require__(/*! ./ResizeHandle */ \"./src/ResizeHandle.js\");\n__webpack_require__(/*! ./shape/basic/LineResizeHandle */ \"./src/shape/basic/LineResizeHandle.js\");\n__webpack_require__(/*! ./shape/basic/LineStartResizeHandle */ \"./src/shape/basic/LineStartResizeHandle.js\");\n__webpack_require__(/*! ./shape/basic/LineEndResizeHandle */ \"./src/shape/basic/LineEndResizeHandle.js\");\n__webpack_require__(/*! ./shape/basic/VertexResizeHandle */ \"./src/shape/basic/VertexResizeHandle.js\");\n__webpack_require__(/*! ./shape/basic/GhostVertexResizeHandle */ \"./src/shape/basic/GhostVertexResizeHandle.js\");\n__webpack_require__(/*! ./Port */ \"./src/Port.js\");\n__webpack_require__(/*! ./InputPort */ \"./src/InputPort.js\");\n__webpack_require__(/*! ./OutputPort */ \"./src/OutputPort.js\");\n__webpack_require__(/*! ./HybridPort */ \"./src/HybridPort.js\");\n__webpack_require__(/*! ./layout/anchor/ConnectionAnchor */ \"./src/layout/anchor/ConnectionAnchor.js\");\n__webpack_require__(/*! ./layout/anchor/ChopboxConnectionAnchor */ \"./src/layout/anchor/ChopboxConnectionAnchor.js\");\n__webpack_require__(/*! ./layout/anchor/FanConnectionAnchor */ \"./src/layout/anchor/FanConnectionAnchor.js\");\n__webpack_require__(/*! ./layout/anchor/ShortesPathConnectionAnchor */ \"./src/layout/anchor/ShortesPathConnectionAnchor.js\");\n__webpack_require__(/*! ./layout/anchor/CenterEdgeConnectionAnchor */ \"./src/layout/anchor/CenterEdgeConnectionAnchor.js\");\n__webpack_require__(/*! ./shape/arrow/CalligrapherArrowLeft */ \"./src/shape/arrow/CalligrapherArrowLeft.js\");\n__webpack_require__(/*! ./shape/arrow/CalligrapherArrowDownLeft */ \"./src/shape/arrow/CalligrapherArrowDownLeft.js\");\n__webpack_require__(/*! ./shape/node/Start */ \"./src/shape/node/Start.js\");\n__webpack_require__(/*! ./shape/node/End */ \"./src/shape/node/End.js\");\n__webpack_require__(/*! ./shape/node/Between */ \"./src/shape/node/Between.js\");\n__webpack_require__(/*! ./shape/note/PostIt */ \"./src/shape/note/PostIt.js\");\n__webpack_require__(/*! ./shape/flowchart/Document */ \"./src/shape/flowchart/Document.js\");\n__webpack_require__(/*! ./shape/widget/Widget */ \"./src/shape/widget/Widget.js\");\n__webpack_require__(/*! ./shape/widget/Slider */ \"./src/shape/widget/Slider.js\");\n__webpack_require__(/*! ./shape/diagram/Diagram */ \"./src/shape/diagram/Diagram.js\");\n__webpack_require__(/*! ./shape/diagram/Pie */ \"./src/shape/diagram/Pie.js\");\n__webpack_require__(/*! ./shape/diagram/Sparkline */ \"./src/shape/diagram/Sparkline.js\");\n__webpack_require__(/*! ./shape/analog/OpAmp */ \"./src/shape/analog/OpAmp.js\");\n__webpack_require__(/*! ./shape/analog/ResistorBridge */ \"./src/shape/analog/ResistorBridge.js\");\n__webpack_require__(/*! ./shape/analog/ResistorVertical */ \"./src/shape/analog/ResistorVertical.js\");\n__webpack_require__(/*! ./shape/analog/VoltageSupplyHorizontal */ \"./src/shape/analog/VoltageSupplyHorizontal.js\");\n__webpack_require__(/*! ./shape/analog/VoltageSupplyVertical */ \"./src/shape/analog/VoltageSupplyVertical.js\");\n__webpack_require__(/*! ./shape/layout/Layout */ \"./src/shape/layout/Layout.js\");\n__webpack_require__(/*! ./shape/layout/HorizontalLayout */ \"./src/shape/layout/HorizontalLayout.js\");\n__webpack_require__(/*! ./shape/layout/VerticalLayout */ \"./src/shape/layout/VerticalLayout.js\");\n__webpack_require__(/*! ./shape/layout/TableLayout */ \"./src/shape/layout/TableLayout.js\");\n__webpack_require__(/*! ./shape/layout/FlexGridLayout */ \"./src/shape/layout/FlexGridLayout.js\");\n__webpack_require__(/*! ./shape/layout/StackLayout */ \"./src/shape/layout/StackLayout.js\");\n__webpack_require__(/*! ./shape/icon/Icon */ \"./src/shape/icon/Icon.js\");\n__webpack_require__(/*! ./shape/icon/Thunder */ \"./src/shape/icon/Thunder.js\");\n__webpack_require__(/*! ./shape/icon/Snow */ \"./src/shape/icon/Snow.js\");\n__webpack_require__(/*! ./shape/icon/Hail */ \"./src/shape/icon/Hail.js\");\n__webpack_require__(/*! ./shape/icon/Rain */ \"./src/shape/icon/Rain.js\");\n__webpack_require__(/*! ./shape/icon/Cloudy */ \"./src/shape/icon/Cloudy.js\");\n__webpack_require__(/*! ./shape/icon/Sun */ \"./src/shape/icon/Sun.js\");\n__webpack_require__(/*! ./shape/icon/Undo */ \"./src/shape/icon/Undo.js\");\n__webpack_require__(/*! ./shape/icon/Detour */ \"./src/shape/icon/Detour.js\");\n__webpack_require__(/*! ./shape/icon/Merge */ \"./src/shape/icon/Merge.js\");\n__webpack_require__(/*! ./shape/icon/Split */ \"./src/shape/icon/Split.js\");\n__webpack_require__(/*! ./shape/icon/Fork */ \"./src/shape/icon/Fork.js\");\n__webpack_require__(/*! ./shape/icon/ForkAlt */ \"./src/shape/icon/ForkAlt.js\");\n__webpack_require__(/*! ./shape/icon/Exchange */ \"./src/shape/icon/Exchange.js\");\n__webpack_require__(/*! ./shape/icon/Shuffle */ \"./src/shape/icon/Shuffle.js\");\n__webpack_require__(/*! ./shape/icon/Refresh */ \"./src/shape/icon/Refresh.js\");\n__webpack_require__(/*! ./shape/icon/Ccw */ \"./src/shape/icon/Ccw.js\");\n__webpack_require__(/*! ./shape/icon/Acw */ \"./src/shape/icon/Acw.js\");\n__webpack_require__(/*! ./shape/icon/Contract */ \"./src/shape/icon/Contract.js\");\n__webpack_require__(/*! ./shape/icon/Expand */ \"./src/shape/icon/Expand.js\");\n__webpack_require__(/*! ./shape/icon/Stop */ \"./src/shape/icon/Stop.js\");\n__webpack_require__(/*! ./shape/icon/End */ \"./src/shape/icon/End.js\");\n__webpack_require__(/*! ./shape/icon/Start */ \"./src/shape/icon/Start.js\");\n__webpack_require__(/*! ./shape/icon/Ff */ \"./src/shape/icon/Ff.js\");\n__webpack_require__(/*! ./shape/icon/Rw */ \"./src/shape/icon/Rw.js\");\n__webpack_require__(/*! ./shape/icon/ArrowRight */ \"./src/shape/icon/ArrowRight.js\");\n__webpack_require__(/*! ./shape/icon/ArrowLeft */ \"./src/shape/icon/ArrowLeft.js\");\n__webpack_require__(/*! ./shape/icon/ArrowUp */ \"./src/shape/icon/ArrowUp.js\");\n__webpack_require__(/*! ./shape/icon/ArrowDown */ \"./src/shape/icon/ArrowDown.js\");\n__webpack_require__(/*! ./shape/icon/ArrowLeft2 */ \"./src/shape/icon/ArrowLeft2.js\");\n__webpack_require__(/*! ./shape/icon/ArrowRight2 */ \"./src/shape/icon/ArrowRight2.js\");\n__webpack_require__(/*! ./shape/icon/Smile2 */ \"./src/shape/icon/Smile2.js\");\n__webpack_require__(/*! ./shape/icon/Smile */ \"./src/shape/icon/Smile.js\");\n__webpack_require__(/*! ./shape/icon/Alarm */ \"./src/shape/icon/Alarm.js\");\n__webpack_require__(/*! ./shape/icon/Clock */ \"./src/shape/icon/Clock.js\");\n__webpack_require__(/*! ./shape/icon/StopWatch */ \"./src/shape/icon/StopWatch.js\");\n__webpack_require__(/*! ./shape/icon/History */ \"./src/shape/icon/History.js\");\n__webpack_require__(/*! ./shape/icon/Future */ \"./src/shape/icon/Future.js\");\n__webpack_require__(/*! ./shape/icon/GlobeAlt2 */ \"./src/shape/icon/GlobeAlt2.js\");\n__webpack_require__(/*! ./shape/icon/GlobeAlt */ \"./src/shape/icon/GlobeAlt.js\");\n__webpack_require__(/*! ./shape/icon/Globe */ \"./src/shape/icon/Globe.js\");\n__webpack_require__(/*! ./shape/icon/Warning */ \"./src/shape/icon/Warning.js\");\n__webpack_require__(/*! ./shape/icon/Code */ \"./src/shape/icon/Code.js\");\n__webpack_require__(/*! ./shape/icon/Pensil */ \"./src/shape/icon/Pensil.js\");\n__webpack_require__(/*! ./shape/icon/Pen */ \"./src/shape/icon/Pen.js\");\n__webpack_require__(/*! ./shape/icon/Plus */ \"./src/shape/icon/Plus.js\");\n__webpack_require__(/*! ./shape/icon/Minus */ \"./src/shape/icon/Minus.js\");\n__webpack_require__(/*! ./shape/icon/TShirt */ \"./src/shape/icon/TShirt.js\");\n__webpack_require__(/*! ./shape/icon/Sticker */ \"./src/shape/icon/Sticker.js\");\n__webpack_require__(/*! ./shape/icon/Page2 */ \"./src/shape/icon/Page2.js\");\n__webpack_require__(/*! ./shape/icon/Page */ \"./src/shape/icon/Page.js\");\n__webpack_require__(/*! ./shape/icon/Landscape1 */ \"./src/shape/icon/Landscape1.js\");\n__webpack_require__(/*! ./shape/icon/Landscape2 */ \"./src/shape/icon/Landscape2.js\");\n__webpack_require__(/*! ./shape/icon/Plugin */ \"./src/shape/icon/Plugin.js\");\n__webpack_require__(/*! ./shape/icon/Bookmark */ \"./src/shape/icon/Bookmark.js\");\n__webpack_require__(/*! ./shape/icon/Hammer */ \"./src/shape/icon/Hammer.js\");\n__webpack_require__(/*! ./shape/icon/Users */ \"./src/shape/icon/Users.js\");\n__webpack_require__(/*! ./shape/icon/User */ \"./src/shape/icon/User.js\");\n__webpack_require__(/*! ./shape/icon/Customer */ \"./src/shape/icon/Customer.js\");\n__webpack_require__(/*! ./shape/icon/Employee */ \"./src/shape/icon/Employee.js\");\n__webpack_require__(/*! ./shape/icon/Anonymous */ \"./src/shape/icon/Anonymous.js\");\n__webpack_require__(/*! ./shape/icon/Skull */ \"./src/shape/icon/Skull.js\");\n__webpack_require__(/*! ./shape/icon/Mail */ \"./src/shape/icon/Mail.js\");\n__webpack_require__(/*! ./shape/icon/Picture */ \"./src/shape/icon/Picture.js\");\n__webpack_require__(/*! ./shape/icon/Bubble */ \"./src/shape/icon/Bubble.js\");\n__webpack_require__(/*! ./shape/icon/CodeTalk */ \"./src/shape/icon/CodeTalk.js\");\n__webpack_require__(/*! ./shape/icon/Talkq */ \"./src/shape/icon/Talkq.js\");\n__webpack_require__(/*! ./shape/icon/Talke */ \"./src/shape/icon/Talke.js\");\n__webpack_require__(/*! ./shape/icon/Home */ \"./src/shape/icon/Home.js\");\n__webpack_require__(/*! ./shape/icon/Lock */ \"./src/shape/icon/Lock.js\");\n__webpack_require__(/*! ./shape/icon/Clip */ \"./src/shape/icon/Clip.js\");\n__webpack_require__(/*! ./shape/icon/Star */ \"./src/shape/icon/Star.js\");\n__webpack_require__(/*! ./shape/icon/StarOff */ \"./src/shape/icon/StarOff.js\");\n__webpack_require__(/*! ./shape/icon/Star2 */ \"./src/shape/icon/Star2.js\");\n__webpack_require__(/*! ./shape/icon/Star2Off */ \"./src/shape/icon/Star2Off.js\");\n__webpack_require__(/*! ./shape/icon/Star3 */ \"./src/shape/icon/Star3.js\");\n__webpack_require__(/*! ./shape/icon/Star3Off */ \"./src/shape/icon/Star3Off.js\");\n__webpack_require__(/*! ./shape/icon/Chat */ \"./src/shape/icon/Chat.js\");\n__webpack_require__(/*! ./shape/icon/Quote */ \"./src/shape/icon/Quote.js\");\n__webpack_require__(/*! ./shape/icon/Gear2 */ \"./src/shape/icon/Gear2.js\");\n__webpack_require__(/*! ./shape/icon/Gear */ \"./src/shape/icon/Gear.js\");\n__webpack_require__(/*! ./shape/icon/Wrench */ \"./src/shape/icon/Wrench.js\");\n__webpack_require__(/*! ./shape/icon/Wrench2 */ \"./src/shape/icon/Wrench2.js\");\n__webpack_require__(/*! ./shape/icon/Wrench3 */ \"./src/shape/icon/Wrench3.js\");\n__webpack_require__(/*! ./shape/icon/ScrewDriver */ \"./src/shape/icon/ScrewDriver.js\");\n__webpack_require__(/*! ./shape/icon/HammerAndScrewDriver */ \"./src/shape/icon/HammerAndScrewDriver.js\");\n__webpack_require__(/*! ./shape/icon/Magic */ \"./src/shape/icon/Magic.js\");\n__webpack_require__(/*! ./shape/icon/Download */ \"./src/shape/icon/Download.js\");\n__webpack_require__(/*! ./shape/icon/View */ \"./src/shape/icon/View.js\");\n__webpack_require__(/*! ./shape/icon/Noview */ \"./src/shape/icon/Noview.js\");\n__webpack_require__(/*! ./shape/icon/Cloud */ \"./src/shape/icon/Cloud.js\");\n__webpack_require__(/*! ./shape/icon/Cloud2 */ \"./src/shape/icon/Cloud2.js\");\n__webpack_require__(/*! ./shape/icon/CloudDown */ \"./src/shape/icon/CloudDown.js\");\n__webpack_require__(/*! ./shape/icon/CloudUp */ \"./src/shape/icon/CloudUp.js\");\n__webpack_require__(/*! ./shape/icon/Location */ \"./src/shape/icon/Location.js\");\n__webpack_require__(/*! ./shape/icon/Volume0 */ \"./src/shape/icon/Volume0.js\");\n__webpack_require__(/*! ./shape/icon/Volume1 */ \"./src/shape/icon/Volume1.js\");\n__webpack_require__(/*! ./shape/icon/Volume2 */ \"./src/shape/icon/Volume2.js\");\n__webpack_require__(/*! ./shape/icon/Volume3 */ \"./src/shape/icon/Volume3.js\");\n__webpack_require__(/*! ./shape/icon/Key */ \"./src/shape/icon/Key.js\");\n__webpack_require__(/*! ./shape/icon/Ruler */ \"./src/shape/icon/Ruler.js\");\n__webpack_require__(/*! ./shape/icon/Power */ \"./src/shape/icon/Power.js\");\n__webpack_require__(/*! ./shape/icon/Unlock */ \"./src/shape/icon/Unlock.js\");\n__webpack_require__(/*! ./shape/icon/Flag */ \"./src/shape/icon/Flag.js\");\n__webpack_require__(/*! ./shape/icon/Tag */ \"./src/shape/icon/Tag.js\");\n__webpack_require__(/*! ./shape/icon/Search */ \"./src/shape/icon/Search.js\");\n__webpack_require__(/*! ./shape/icon/ZoomOut */ \"./src/shape/icon/ZoomOut.js\");\n__webpack_require__(/*! ./shape/icon/ZoomIn */ \"./src/shape/icon/ZoomIn.js\");\n__webpack_require__(/*! ./shape/icon/Cross */ \"./src/shape/icon/Cross.js\");\n__webpack_require__(/*! ./shape/icon/Check */ \"./src/shape/icon/Check.js\");\n__webpack_require__(/*! ./shape/icon/Settings */ \"./src/shape/icon/Settings.js\");\n__webpack_require__(/*! ./shape/icon/SettingsAlt */ \"./src/shape/icon/SettingsAlt.js\");\n__webpack_require__(/*! ./shape/icon/Feed */ \"./src/shape/icon/Feed.js\");\n__webpack_require__(/*! ./shape/icon/Bug */ \"./src/shape/icon/Bug.js\");\n__webpack_require__(/*! ./shape/icon/Link */ \"./src/shape/icon/Link.js\");\n__webpack_require__(/*! ./shape/icon/Calendar */ \"./src/shape/icon/Calendar.js\");\n__webpack_require__(/*! ./shape/icon/Picker */ \"./src/shape/icon/Picker.js\");\n__webpack_require__(/*! ./shape/icon/No */ \"./src/shape/icon/No.js\");\n__webpack_require__(/*! ./shape/icon/CommandLine */ \"./src/shape/icon/CommandLine.js\");\n__webpack_require__(/*! ./shape/icon/Photo */ \"./src/shape/icon/Photo.js\");\n__webpack_require__(/*! ./shape/icon/Printer */ \"./src/shape/icon/Printer.js\");\n__webpack_require__(/*! ./shape/icon/Export */ \"./src/shape/icon/Export.js\");\n__webpack_require__(/*! ./shape/icon/Import */ \"./src/shape/icon/Import.js\");\n__webpack_require__(/*! ./shape/icon/Run */ \"./src/shape/icon/Run.js\");\n__webpack_require__(/*! ./shape/icon/Magnet */ \"./src/shape/icon/Magnet.js\");\n__webpack_require__(/*! ./shape/icon/NoMagnet */ \"./src/shape/icon/NoMagnet.js\");\n__webpack_require__(/*! ./shape/icon/ReflectH */ \"./src/shape/icon/ReflectH.js\");\n__webpack_require__(/*! ./shape/icon/ReflectV */ \"./src/shape/icon/ReflectV.js\");\n__webpack_require__(/*! ./shape/icon/Resize2 */ \"./src/shape/icon/Resize2.js\");\n__webpack_require__(/*! ./shape/icon/Rotate */ \"./src/shape/icon/Rotate.js\");\n__webpack_require__(/*! ./shape/icon/Connect */ \"./src/shape/icon/Connect.js\");\n__webpack_require__(/*! ./shape/icon/Disconnect */ \"./src/shape/icon/Disconnect.js\");\n__webpack_require__(/*! ./shape/icon/Folder */ \"./src/shape/icon/Folder.js\");\n__webpack_require__(/*! ./shape/icon/Man */ \"./src/shape/icon/Man.js\");\n__webpack_require__(/*! ./shape/icon/Woman */ \"./src/shape/icon/Woman.js\");\n__webpack_require__(/*! ./shape/icon/People */ \"./src/shape/icon/People.js\");\n__webpack_require__(/*! ./shape/icon/Parent */ \"./src/shape/icon/Parent.js\");\n__webpack_require__(/*! ./shape/icon/Notebook */ \"./src/shape/icon/Notebook.js\");\n__webpack_require__(/*! ./shape/icon/Diagram */ \"./src/shape/icon/Diagram.js\");\n__webpack_require__(/*! ./shape/icon/BarChart */ \"./src/shape/icon/BarChart.js\");\n__webpack_require__(/*! ./shape/icon/PieChart */ \"./src/shape/icon/PieChart.js\");\n__webpack_require__(/*! ./shape/icon/LineChart */ \"./src/shape/icon/LineChart.js\");\n__webpack_require__(/*! ./shape/icon/Apps */ \"./src/shape/icon/Apps.js\");\n__webpack_require__(/*! ./shape/icon/Locked */ \"./src/shape/icon/Locked.js\");\n__webpack_require__(/*! ./shape/icon/Ppt */ \"./src/shape/icon/Ppt.js\");\n__webpack_require__(/*! ./shape/icon/Lab */ \"./src/shape/icon/Lab.js\");\n__webpack_require__(/*! ./shape/icon/Umbrella */ \"./src/shape/icon/Umbrella.js\");\n__webpack_require__(/*! ./shape/icon/Dry */ \"./src/shape/icon/Dry.js\");\n__webpack_require__(/*! ./shape/icon/Ipad */ \"./src/shape/icon/Ipad.js\");\n__webpack_require__(/*! ./shape/icon/Iphone */ \"./src/shape/icon/Iphone.js\");\n__webpack_require__(/*! ./shape/icon/Jigsaw */ \"./src/shape/icon/Jigsaw.js\");\n__webpack_require__(/*! ./shape/icon/Lamp */ \"./src/shape/icon/Lamp.js\");\n__webpack_require__(/*! ./shape/icon/Lamp_alt */ \"./src/shape/icon/Lamp_alt.js\");\n__webpack_require__(/*! ./shape/icon/Video */ \"./src/shape/icon/Video.js\");\n__webpack_require__(/*! ./shape/icon/Palm */ \"./src/shape/icon/Palm.js\");\n__webpack_require__(/*! ./shape/icon/Fave */ \"./src/shape/icon/Fave.js\");\n__webpack_require__(/*! ./shape/icon/Help */ \"./src/shape/icon/Help.js\");\n__webpack_require__(/*! ./shape/icon/Crop */ \"./src/shape/icon/Crop.js\");\n__webpack_require__(/*! ./shape/icon/BioHazard */ \"./src/shape/icon/BioHazard.js\");\n__webpack_require__(/*! ./shape/icon/WheelChair */ \"./src/shape/icon/WheelChair.js\");\n__webpack_require__(/*! ./shape/icon/Mic */ \"./src/shape/icon/Mic.js\");\n__webpack_require__(/*! ./shape/icon/MicMute */ \"./src/shape/icon/MicMute.js\");\n__webpack_require__(/*! ./shape/icon/IMac */ \"./src/shape/icon/IMac.js\");\n__webpack_require__(/*! ./shape/icon/Pc */ \"./src/shape/icon/Pc.js\");\n__webpack_require__(/*! ./shape/icon/Cube */ \"./src/shape/icon/Cube.js\");\n__webpack_require__(/*! ./shape/icon/FullCube */ \"./src/shape/icon/FullCube.js\");\n__webpack_require__(/*! ./shape/icon/Font */ \"./src/shape/icon/Font.js\");\n__webpack_require__(/*! ./shape/icon/Trash */ \"./src/shape/icon/Trash.js\");\n__webpack_require__(/*! ./shape/icon/NewWindow */ \"./src/shape/icon/NewWindow.js\");\n__webpack_require__(/*! ./shape/icon/DockRight */ \"./src/shape/icon/DockRight.js\");\n__webpack_require__(/*! ./shape/icon/DockLeft */ \"./src/shape/icon/DockLeft.js\");\n__webpack_require__(/*! ./shape/icon/DockBottom */ \"./src/shape/icon/DockBottom.js\");\n__webpack_require__(/*! ./shape/icon/DockTop */ \"./src/shape/icon/DockTop.js\");\n__webpack_require__(/*! ./shape/icon/Pallete */ \"./src/shape/icon/Pallete.js\");\n__webpack_require__(/*! ./shape/icon/Cart */ \"./src/shape/icon/Cart.js\");\n__webpack_require__(/*! ./shape/icon/Glasses */ \"./src/shape/icon/Glasses.js\");\n__webpack_require__(/*! ./shape/icon/Package */ \"./src/shape/icon/Package.js\");\n__webpack_require__(/*! ./shape/icon/Book */ \"./src/shape/icon/Book.js\");\n__webpack_require__(/*! ./shape/icon/Books */ \"./src/shape/icon/Books.js\");\n__webpack_require__(/*! ./shape/icon/Icons */ \"./src/shape/icon/Icons.js\");\n__webpack_require__(/*! ./shape/icon/List */ \"./src/shape/icon/List.js\");\n__webpack_require__(/*! ./shape/icon/Db */ \"./src/shape/icon/Db.js\");\n__webpack_require__(/*! ./shape/icon/Paper */ \"./src/shape/icon/Paper.js\");\n__webpack_require__(/*! ./shape/icon/TakeOff */ \"./src/shape/icon/TakeOff.js\");\n__webpack_require__(/*! ./shape/icon/Landing */ \"./src/shape/icon/Landing.js\");\n__webpack_require__(/*! ./shape/icon/Plane */ \"./src/shape/icon/Plane.js\");\n__webpack_require__(/*! ./shape/icon/Phone */ \"./src/shape/icon/Phone.js\");\n__webpack_require__(/*! ./shape/icon/HangUp */ \"./src/shape/icon/HangUp.js\");\n__webpack_require__(/*! ./shape/icon/SlideShare */ \"./src/shape/icon/SlideShare.js\");\n__webpack_require__(/*! ./shape/icon/Twitter */ \"./src/shape/icon/Twitter.js\");\n__webpack_require__(/*! ./shape/icon/TwitterBird */ \"./src/shape/icon/TwitterBird.js\");\n__webpack_require__(/*! ./shape/icon/Skype */ \"./src/shape/icon/Skype.js\");\n__webpack_require__(/*! ./shape/icon/Windows */ \"./src/shape/icon/Windows.js\");\n__webpack_require__(/*! ./shape/icon/Apple */ \"./src/shape/icon/Apple.js\");\n__webpack_require__(/*! ./shape/icon/Linux */ \"./src/shape/icon/Linux.js\");\n__webpack_require__(/*! ./shape/icon/NodeJs */ \"./src/shape/icon/NodeJs.js\");\n__webpack_require__(/*! ./shape/icon/JQuery */ \"./src/shape/icon/JQuery.js\");\n__webpack_require__(/*! ./shape/icon/Sencha */ \"./src/shape/icon/Sencha.js\");\n__webpack_require__(/*! ./shape/icon/Vim */ \"./src/shape/icon/Vim.js\");\n__webpack_require__(/*! ./shape/icon/InkScape */ \"./src/shape/icon/InkScape.js\");\n__webpack_require__(/*! ./shape/icon/Aumade */ \"./src/shape/icon/Aumade.js\");\n__webpack_require__(/*! ./shape/icon/Firefox */ \"./src/shape/icon/Firefox.js\");\n__webpack_require__(/*! ./shape/icon/Ie */ \"./src/shape/icon/Ie.js\");\n__webpack_require__(/*! ./shape/icon/Ie9 */ \"./src/shape/icon/Ie9.js\");\n__webpack_require__(/*! ./shape/icon/Opera */ \"./src/shape/icon/Opera.js\");\n__webpack_require__(/*! ./shape/icon/Chrome */ \"./src/shape/icon/Chrome.js\");\n__webpack_require__(/*! ./shape/icon/Safari */ \"./src/shape/icon/Safari.js\");\n__webpack_require__(/*! ./shape/icon/LinkedIn */ \"./src/shape/icon/LinkedIn.js\");\n__webpack_require__(/*! ./shape/icon/Flickr */ \"./src/shape/icon/Flickr.js\");\n__webpack_require__(/*! ./shape/icon/GitHub */ \"./src/shape/icon/GitHub.js\");\n__webpack_require__(/*! ./shape/icon/GitHubAlt */ \"./src/shape/icon/GitHubAlt.js\");\n__webpack_require__(/*! ./shape/icon/Raphael */ \"./src/shape/icon/Raphael.js\");\n__webpack_require__(/*! ./shape/icon/GRaphael */ \"./src/shape/icon/GRaphael.js\");\n__webpack_require__(/*! ./shape/icon/Svg */ \"./src/shape/icon/Svg.js\");\n__webpack_require__(/*! ./shape/icon/Usb */ \"./src/shape/icon/Usb.js\");\n__webpack_require__(/*! ./shape/icon/Ethernet */ \"./src/shape/icon/Ethernet.js\");\n__webpack_require__(/*! ./shape/pert/Activity */ \"./src/shape/pert/Activity.js\");\n__webpack_require__(/*! ./shape/pert/Start */ \"./src/shape/pert/Start.js\");\n__webpack_require__(/*! ./shape/state/Start */ \"./src/shape/state/Start.js\");\n__webpack_require__(/*! ./shape/state/End */ \"./src/shape/state/End.js\");\n__webpack_require__(/*! ./shape/state/State */ \"./src/shape/state/State.js\");\n__webpack_require__(/*! ./shape/state/Connection */ \"./src/shape/state/Connection.js\");\n__webpack_require__(/*! ./ui/LabelEditor */ \"./src/ui/LabelEditor.js\");\n__webpack_require__(/*! ./ui/LabelInplaceEditor */ \"./src/ui/LabelInplaceEditor.js\");\n__webpack_require__(/*! ./decoration/connection/Decorator */ \"./src/decoration/connection/Decorator.js\");\n__webpack_require__(/*! ./decoration/connection/ArrowDecorator */ \"./src/decoration/connection/ArrowDecorator.js\");\n__webpack_require__(/*! ./decoration/connection/DiamondDecorator */ \"./src/decoration/connection/DiamondDecorator.js\");\n__webpack_require__(/*! ./decoration/connection/CircleDecorator */ \"./src/decoration/connection/CircleDecorator.js\");\n__webpack_require__(/*! ./decoration/connection/BarDecorator */ \"./src/decoration/connection/BarDecorator.js\");\n__webpack_require__(/*! ./io/Reader */ \"./src/io/Reader.js\");\n__webpack_require__(/*! ./io/Writer */ \"./src/io/Writer.js\");\n__webpack_require__(/*! ./io/svg/Writer */ \"./src/io/svg/Writer.js\");\n__webpack_require__(/*! ./io/png/Writer */ \"./src/io/png/Writer.js\");\n__webpack_require__(/*! ./io/json/Writer */ \"./src/io/json/Writer.js\");\n__webpack_require__(/*! ./io/json/Reader */ \"./src/io/json/Reader.js\");\n\n/***/ }),\n\n/***/ \"./src/io/Reader.js\":\n/*!**************************!*\\\n !*** ./src/io/Reader.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Template class for general import of a document into the canvas.\n *\n * @author andreas Herz\n */\n_packages2.default.io.Reader = Class.extend(\n/** @lends draw2d.io.Reader */\n{\n\n init: function init() {},\n\n /**\n *\n *\n * Restore the canvas from a given String.\n *\n * @param {draw2d.Canvas} canvas the canvas to restore\n * @param {Object} document the document to read\n *\n * @returns {draw2d.util.ArrayList} the added elements\n * @template\n */\n unmarshal: function unmarshal(canvas, document) {\n // do nothing. Inherit classes must implement this method\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/io/Writer.js\":\n/*!**************************!*\\\n !*** ./src/io/Writer.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Serialize the canvas to an external format. This is only a template/interface class.\n * Inherit classes must implement the export format.\n *\n * @author Andreas Herz\n */\n_packages2.default.io.Writer = Class.extend(\n/** @lends draw2d.io.Writer */\n\n{\n init: function init() {},\n\n /**\n * \n * Export the content to the implemented data format. Inherit class implements\n * content specific writer.\n * <br>\n * <br>\n *\n * Method signature has been changed from version 2.10.1 to version 3.0.0.<br>\n * The parameter <b>resultCallback</b> is required and new. The method calls\n * the callback instead of return the result.\n *\n * @template\n * @since 2.10.1\n * @param {draw2d.Canvas} canvas\n * @param {Function} resultCallback the method to call on success. The first argument is the result object, the second the base64 content of a corresponding file\n * @returns {Object}\n *\n */\n marshal: function marshal(canvas, resultCallback) {\n // I change the API signature from version 2.10.1 to 3.0.0. Throw an exception\n // if any application not care about this changes.\n if (typeof resultCallback !== \"function\") {\n throw \"Writer.marshal method signature has been change from version 2.10.1 to version 3.0.0. Please consult the API documentation about this issue.\";\n }\n\n resultCallback(\"\", \"\");\n },\n\n /**\n * \n * utility method to format a given XML string.\n *\n * @param xml\n * @returns {String}\n */\n formatXml: function formatXml(xml) {\n var formatted = '';\n var reg = new RegExp(\"(>)(<)(\\/*)\", \"g\");\n xml = xml.replace(reg, '$1\\r\\n$2$3');\n var pad = 0;\n xml.split('\\r\\n').forEach(function (node) {\n var indent = 0;\n if (node.match(new RegExp(\".+<\\/\\w[^>]*>$\"))) {\n indent = 0;\n } else if (node.match(new RegExp(\"^<\\/\\w\"))) {\n if (pad != 0) {\n pad -= 1;\n }\n } else if (node.match(new RegExp(\"^<\\w[^>]*[^\\/]>.*$\"))) {\n indent = 1;\n } else {\n indent = 0;\n }\n\n var padding = '';\n for (var i = 0; i < pad; i++) {\n padding += ' ';\n }\n\n formatted += padding + node + '\\r\\n';\n pad += indent;\n });\n\n return formatted;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/io/json/Reader.js\":\n/*!*******************************!*\\\n !*** ./src/io/json/Reader.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Read a JSON data and import them into the canvas. The JSON must be generated with the\n * {@link draw2d.io.json.Writer}.\n *\n * @example\n *\n * // Load a standard draw2d JSON object into the canvas\n * //\n * let jsonDocument =\n * [\n * {\n * \"type\": \"draw2d.shape.basic.Oval\",\n * \"id\": \"5b4c74 b0-96d1-1aa3-7eca-bbeaed5fffd7\",\n * \"x\": 237,\n * \"y\": 236,\n * \"width\": 93,\n * \"height\": 38\n * },\n * {\n * \"type\": \"draw2d.shape.basic.Rectangle\",\n * \"id\": \"354fa3b9-a834-0221-2009-abc2d6bd852a\",\n * \"x\": 225,\n * \"y\": 97,\n * \"width\": 201,\n * \"height\": 82,\n * \"radius\": 2\n * }\n * ];\n * // unmarshal the JSON document into the canvas\n * // (load)\n * let reader = new draw2d.io.json.Reader();\n * reader.unmarshal(canvas, jsonDocument);\n *\n *\n * @author Andreas Herz\n * @extends draw2d.io.Reader\n */\n_packages2.default.io.json.Reader = _packages2.default.io.Reader.extend(\n/** @lends draw2d.io.json.Reader.prototype */\n{\n NAME: \"draw2d.io.json.Reader\",\n\n init: function init() {\n this._super();\n },\n\n /**\n *\n *\n * Restore the canvas from a given JSON object.\n *\n * @param {draw2d.Canvas} canvas the canvas to restore\n * @param {Object|String} json the json object to load.\n */\n unmarshal: function unmarshal(canvas, json) {\n var _this = this;\n\n var result = new _packages2.default.util.ArrayList();\n\n if (typeof json === \"string\") {\n json = JSON.parse(json);\n }\n\n var node = null;\n json.forEach(function (element) {\n try {\n var o = _this.createFigureFromElement(element) || _this.createFigureFromType(element.type);\n var source = null;\n var target = null;\n for (var i in element) {\n var val = element[i];\n if (i === \"source\") {\n node = canvas.getFigure(val.node);\n if (node === null) {\n throw \"Source figure with id '\" + val.node + \"' not found\";\n }\n source = node.getPort(val.port);\n if (source === null) {\n throw \"Unable to find source port '\" + val.port + \"' at figure '\" + val.node + \"' to unmarschal '\" + element.type + \"'\";\n }\n } else if (i === \"target\") {\n node = canvas.getFigure(val.node);\n if (node === null) {\n throw \"Target figure with id '\" + val.node + \"' not found\";\n }\n target = node.getPort(val.port);\n if (target === null) {\n throw \"Unable to find target port '\" + val.port + \"' at figure '\" + val.node + \"' to unmarschal '\" + element.type + \"'\";\n }\n }\n }\n if (source !== null && target !== null) {\n // don't change the order or the source/target set.\n // TARGET must always be the second one because some applications needs the \"source\"\n // port in the \"connect\" event of the target.\n o.setSource(source);\n o.setTarget(target);\n }\n o.setPersistentAttributes(element);\n canvas.add(o);\n result.add(o);\n } catch (exc) {\n debug.error(element, \"Unable to instantiate figure type '\" + element.type + \"' with id '\" + element.id + \"' during unmarshal by \" + _this.NAME + \". Skipping figure..\");\n debug.error(exc);\n debug.warn(element);\n }\n });\n\n // restore group assignment\n //\n json.forEach(function (element) {\n if (typeof element.composite !== \"undefined\") {\n var figure = canvas.getFigure(element.id);\n if (figure === null) {\n figure = canvas.getLine(element.id);\n }\n var group = canvas.getFigure(element.composite);\n group.assignFigure(figure);\n }\n });\n\n // recalculate all crossings and repaint the connections with\n // possible crossing decoration\n canvas.calculateConnectionIntersection();\n canvas.getLines().each(function (i, line) {\n line.svgPathString = null;\n line.repaint();\n });\n canvas.linesToRepaintAfterDragDrop = canvas.getLines().clone();\n\n canvas.showDecoration();\n\n return result;\n },\n\n /**\n *\n * Factory method to create an instance of the given element type.\n *\n * @param {String} type\n * @returns {draw2d.Figure}\n */\n createFigureFromType: function createFigureFromType(type) {\n return eval(\"new \" + type + \"()\");\n },\n\n /**\n *\n * Factory method to create an instance of the given element.\n *\n * @param {Object} element\n * @returns {draw2d.Figure}\n */\n createFigureFromElement: function createFigureFromElement(element) {\n return null;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/io/json/Writer.js\":\n/*!*******************************!*\\\n !*** ./src/io/json/Writer.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Serialize the canvas document into a JSON object which can be read from the corresponding\n * {@link draw2d.io.json.Reader}.\n *\n * // Create a JSON writer and convert it into a JSON-String representation.\n * //\n * var writer = new draw2d.io.json.Writer();\n * writer.marshal(canvas, function(json){\n * // convert the json object into string representation\n * var jsonTxt = JSON.stringify(json,null,2);\n * \n * // insert the json string into a DIV for preview or post\n * // it via ajax to the server....\n * $(\"#json\").text(jsonTxt);\n * \n * });\n *\n *\n *\n * @author Andreas Herz\n * @extends draw2d.io.Writer\n */\n\n_packages2.default.io.json.Writer = _packages2.default.io.Writer.extend(\n/** @lends draw2d.io.json.Writer */\n{\n\n init: function init() {\n this._super();\n },\n\n /**\n *\n * Export the content to the implemented data format. Inherit class implements\n * content specific writer.\n * <br>\n * <br>\n *\n * Method signature has been changed from version 2.10.1 to version 3.0.0.<br>\n * The parameter <b>resultCallback</b> is required and new. The method calls\n * the callback instead of return the result.\n *\n * @param {draw2d.Canvas} canvas\n * @param {Function} resultCallback the method to call on success. The first argument is the result object, the second the base64 representation of the file content\n * @param {Object} resultCallback.json the canvas document as JSON object\n * @param {String} resultCallback.base64 the canvas document as base encoded JSON\n */\n marshal: function marshal(canvas, resultCallback) {\n // I change the API signature from version 2.10.1 to 3.0.0. Throw an exception\n // if any application not care about this changes.\n if (typeof resultCallback !== \"function\") {\n throw \"Writer.marshal method signature has been change from version 2.10.1 to version 3.0.0. Please consult the API documentation about this issue.\";\n }\n\n var result = [];\n\n canvas.getFigures().each(function (i, figure) {\n result.push(figure.getPersistentAttributes());\n });\n\n canvas.getLines().each(function (i, element) {\n result.push(element.getPersistentAttributes());\n });\n\n var base64Content = _packages2.default.util.Base64.encode(JSON.stringify(result, null, 2));\n\n resultCallback(result, base64Content);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/io/png/Writer.js\":\n/*!******************************!*\\\n !*** ./src/io/png/Writer.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar canvg = __webpack_require__(/*! canvg-browser */ \"./node_modules/canvg-browser/index.js\");\n\n/**\n * @class\n *\n * Converts the canvas document into a PNG Image.\n *\n * @example\n * // example how to create a PNG image and set an\n * // image src attribute.\n * //\n * let writer = new draw2d.io.png.Writer();\n * writer.marshal(canvas, function(png){\n * $(\"#preview\").attr(\"src\",png);\n * });\n *\n * @author Andreas Herz\n * @extends draw2d.io.Writer\n */\n_packages2.default.io.png.Writer = _packages2.default.io.Writer.extend(\n/** @lends draw2d.io.png.Writer */\n{\n\n init: function init() {\n this._super();\n },\n\n /**\n *\n * Export the content to a PNG image. The result can be set as <b>src=\"....\"</b> because\n * the result is encoded as data source url <b>data:image/png;base64....</b>\n * <br>\n * <br>\n *\n * Method signature has been changed from version 2.10.1 to version 3.0.0.<br>\n * The parameter <b>resultCallback</b> is required and new. The method calls\n * the callback instead of return the result.\n *\n * @param {draw2d.Canvas} canvas\n * @param {Function} resultCallback the method to call on success. The first argument is the dataUrl, the second is the base64 formated png image\n * @param {String} resultCallback.img The image as data source url <b>data:image/png;base64....</b>\n * @param {String} resultCallback.base64 the image encoded in base64\n * @param {draw2d.geo.Rectangle} cropBoundingBox optional cropping/clipping bounding box\n */\n marshal: function marshal(canvas, resultCallback, cropBoundingBox) {\n // I change the API signature from version 2.10.1 to 3.0.0. Throw an exception\n // if any application not care about this changes.\n if (typeof resultCallback !== \"function\") {\n throw \"Writer.marshal method signature has been change from version 2.10.1 to version 3.0.0. Please consult the API documentation about this issue.\";\n }\n\n var svg = \"\";\n var canvasState = false;\n\n // the png.Writer can create Snapshots of a single figure too.\n // Didn't work in IE <10\n // @status beta\n // @since 5.5.0\n if (canvas instanceof _packages2.default.Figure) {\n var figure = canvas;\n var origPos = figure.getPosition();\n figure.setPosition(1, 1);\n svg = \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" >\" + figure.shape.node.outerHTML + \"</svg>\";\n figure.setPosition(origPos);\n figure.initialWidth = figure.getWidth() + 2;\n figure.initialHeight = figure.getHeight() + 2;\n }\n // create a snapshot of a complete canvas\n //\n else {\n canvasState = {\n zoom: canvas.getZoom(),\n scrollLeft: canvas.getScrollLeft(),\n scrollTop: canvas.getScrollTop()\n };\n canvas.setZoom(1.0);\n canvas.hideDecoration();\n svg = new XMLSerializer().serializeToString(canvas.getHtmlContainer().find(\"svg\")[0]);\n }\n\n var canvasDomNode = $('<canvas id=\"canvas_png_export_for_draw2d\"></canvas>');\n $('body').append(canvasDomNode);\n var fullSizeCanvas = $(\"#canvas_png_export_for_draw2d\")[0];\n fullSizeCanvas.width = canvas.initialWidth;\n fullSizeCanvas.height = canvas.initialHeight;\n\n canvg(\"canvas_png_export_for_draw2d\", svg, {\n ignoreMouse: true,\n ignoreAnimation: true,\n renderCallback: function renderCallback() {\n try {\n if (canvas instanceof _packages2.default.Canvas) {\n if (canvasState) {\n canvas.setZoom(canvasState.zoom);\n canvas.setScrollLeft(canvasState.scrollLeft);\n canvas.setScrollTop(canvasState.scrollTop);\n }\n canvas.showDecoration();\n }\n\n if (typeof cropBoundingBox !== \"undefined\") {\n var sourceX = cropBoundingBox.x;\n var sourceY = cropBoundingBox.y;\n var sourceWidth = cropBoundingBox.w;\n var sourceHeight = cropBoundingBox.h;\n\n var croppedCanvas = document.createElement('canvas');\n croppedCanvas.width = sourceWidth;\n croppedCanvas.height = sourceHeight;\n\n croppedCanvas.getContext(\"2d\").drawImage(fullSizeCanvas, sourceX, sourceY, sourceWidth, sourceHeight, 0, 0, sourceWidth, sourceHeight);\n\n var dataUrl = croppedCanvas.toDataURL(\"image/png\");\n var base64Image = dataUrl.replace(\"data:image/png;base64,\", \"\");\n resultCallback(dataUrl, base64Image);\n } else {\n var img = fullSizeCanvas.toDataURL(\"image/png\");\n resultCallback(img, img.replace(\"data:image/png;base64,\", \"\"));\n }\n } finally {\n canvasDomNode.remove();\n }\n }\n });\n }\n});\n\n/***/ }),\n\n/***/ \"./src/io/svg/Writer.js\":\n/*!******************************!*\\\n !*** ./src/io/svg/Writer.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Serialize the canvas document into a SVG document.\n *\n * // Create a SVG writer and convert the canvas into a SVG document.\n * //\n * var writer = new draw2d.io.svg.Writer();\n * writer.marshal(canvas, function(svg){\n * // insert the svg string into a DIV for preview or post\n * // it via ajax to the server....\n * $(\"#svg\").text(svg);\n * });\n *\n *\n *\n * @author Andreas Herz\n * @extends draw2d.io.Writer\n */\n_packages2.default.io.svg.Writer = _packages2.default.io.Writer.extend(\n/** @lends draw2d.io.svg.Writer */\n{\n init: function init() {\n this._super();\n },\n\n /**\n *\n * Export the content of the canvas into SVG. The SVG document can be loaded with Inkscape or any other SVG Editor.\n * <br>\n * <br>\n *\n * Method signature has been changed from version 2.10.1 to version 3.0.0.<br>\n * The parameter <b>resultCallback</b> is required and new. The method calls\n * the callback instead of return the result.\n *\n *\n * @param {draw2d.Canvas} canvas the canvas to marshal\n * @param {Function} callback the method to call on success. The first argument is the SVG document\n * @param {String} callback.svg the SVG document\n * @param {String} callback.base64 the SVG document encoded in base64\n */\n marshal: function marshal(canvas, callback) {\n // I change the API signature from version 2.10.1 to 3.0.0. Throw an exception\n // if any application not care about this changes.\n if (typeof callback !== \"function\") {\n throw \"Writer.marshal method signature has been change from version 2.10.1 to version 3.0.0. Please consult the API documentation about this issue.\";\n }\n\n var s = canvas.getPrimarySelection();\n canvas.setCurrentSelection(null);\n var svg = canvas.getHtmlContainer().html().replace(/>\\s+/g, \">\").replace(/\\s+</g, \"<\");\n svg = this.formatXml(svg);\n svg = svg.replace(/<desc>.*<\\/desc>/g, \"<desc>Create with draw2d JS graph library and RaphaelJS</desc>\");\n\n canvas.setCurrentSelection(s);\n\n var base64Content = _packages2.default.util.Base64.encode(svg);\n callback(svg, base64Content);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/anchor/CenterEdgeConnectionAnchor.js\":\n/*!*********************************************************!*\\\n !*** ./src/layout/anchor/CenterEdgeConnectionAnchor.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * The CenterEdgeConnectionAnchor's location is found by calculating the intersection of a\n * line drawn from the center point of its owner's box (the parent of the\n * connection port) to a reference point on that box. A Connection using the\n * ChopBoxAnchor will be oriented such that they point to their port owner's\n * center.\n *\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.layout.anchor.ConnectionAnchor\n */\n\n_packages2.default.layout.anchor.CenterEdgeConnectionAnchor = _packages2.default.layout.anchor.ConnectionAnchor.extend(\n/** @lends draw2d.layout.anchor.CenterEdgeConnectionAnchor.prototype */\n{\n\n NAME: \"draw2d.layout.anchor.CenterEdgeConnectionAnchor\",\n\n /**\n *\n * @param {draw2d.Figure} [owner] the figure to use for the anchor calculation\n */\n init: function init(owner) {\n this._super(owner);\n },\n\n /**\n * \n *\n * Returns the location where the Connection should be anchored in\n * absolute coordinates. The anchor may use the given reference\n * Point to calculate this location.\n *\n * @param {draw2d.geo.Point} ref The reference Point in absolute coordinates\n * @param {draw2d.Connection} [inquiringConnection] the connection who ask for the location.\n *\n * @returns {draw2d.geo.Point} The anchor's location\n */\n getLocation: function getLocation(ref, inquiringConnection) {\n var r = this.getOwner().getParent().getBoundingBox();\n\n var dir = r.getDirection(ref);\n var center = r.getCenter();\n\n switch (dir) {\n case 0:\n center.y = r.y;\n break;\n case 1:\n center.x = r.x + r.w;\n break;\n case 2:\n center.y = r.y + r.h;\n break;\n case 3:\n center.x = r.x;\n }\n\n return center;\n },\n\n /**\n * Returns the bounds of this Anchor's owner. Subclasses can\n * override this method to adjust the box. Maybe you return the box\n * of the port parent (the parent figure)\n *\n * @returns {draw2d.geo.Rectangle} The bounds of this Anchor's owner\n */\n getBox: function getBox() {\n return this.getOwner().getParent().getBoundingBox();\n },\n\n /**\n * \n *\n * Returns the bounds of this Anchor's owner. Subclasses can\n * override this method to adjust the box. Maybe you return the box\n * of the port parent (the parent figure)\n *\n * @param {draw2d.Connection} [inquiringConnection] the connection who ask for the location.\n *\n * @returns {draw2d.geo.Point} The bounds of this Anchor's owner\n */\n getReferencePoint: function getReferencePoint(inquiringConnection) {\n return this.getBox().getCenter();\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/anchor/ChopboxConnectionAnchor.js\":\n/*!******************************************************!*\\\n !*** ./src/layout/anchor/ChopboxConnectionAnchor.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * The ChopboxAnchor's location is found by calculating the intersection of a\n * line drawn from the center point of its owner's box (the parent of the\n * connection port) to a reference point on that box. A Connection using the\n * ChopBoxAnchor will be oriented such that they point to their port owner's\n * center.\n *\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.layout.anchor.ConnectionAnchor\n */\n\n_packages2.default.layout.anchor.ChopboxConnectionAnchor = _packages2.default.layout.anchor.ConnectionAnchor.extend(\n/** @lends draw2d.layout.anchor.ChopboxConnectionAnchor.prototype */\n{\n\n NAME: \"draw2d.layout.anchor.ChopboxConnectionAnchor\",\n\n /**\n *\n * @param {draw2d.Figure} owner the figure to use for the anchor calculation\n */\n init: function init(owner) {\n this._super(owner);\n },\n\n /**\n *\n *\n * Returns the location where the Connection should be anchored in\n * absolute coordinates. The anchor may use the given reference\n * Point to calculate this location.\n *\n * @param {draw2d.geo.Point} reference The reference Point in absolute coordinates\n * @param {draw2d.Connection} [inquiringConnection] the connection who ask for the location.\n *\n * @returns {draw2d.geo.Point} The anchor's location\n */\n getLocation: function getLocation(reference, inquiringConnection) {\n var r = new _packages2.default.geo.Rectangle(0, 0);\n r.setBounds(this.getBox());\n r.translate(-1, -1);\n r.resize(1, 1);\n\n var center = r.getCenter();\n\n if (r.isEmpty() || reference.x === center.x && reference.y === center.y) {\n return center; // This avoids divide-by-zero\n }\n\n var dx = reference.x - center.x;\n var dy = reference.y - center.y;\n\n // r.width, r.height, dx, and dy are guaranteed to be non-zero.\n var scale = 0.5 / Math.max(Math.abs(dx) / r.w, Math.abs(dy) / r.h);\n\n dx *= scale;\n dy *= scale;\n center.translate(dx, dy);\n\n return center;\n },\n\n /**\n * Returns the bounds of this Anchor's owner. Subclasses can\n * override this method to adjust the box. Maybe you return the box\n * of the port parent (the parent figure)\n *\n * @returns {draw2d.geo.Rectangle} The bounds of this Anchor's owner\n */\n getBox: function getBox() {\n return this.getOwner().getParent().getBoundingBox();\n },\n\n /**\n *\n *\n * Returns the reference point for this anchor in absolute coordinates. This might be used\n * by another anchor to determine its own location.\n *\n * @param {draw2d.Connection} [inquiringConnection] the connection who ask for the location.\n * @returns {draw2d.geo.Point} The bounds of this Anchor's owner\n */\n getReferencePoint: function getReferencePoint(inquiringConnection) {\n return this.getBox().getCenter();\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/anchor/ConnectionAnchor.js\":\n/*!***********************************************!*\\\n !*** ./src/layout/anchor/ConnectionAnchor.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * An object to which a {@link draw2d.Connection} will be anchored.\n *\n * @inheritable\n * @author Andreas Herz\n */\n\n_packages2.default.layout.anchor.ConnectionAnchor = Class.extend(\n/** @lends draw2d.layout.anchor.ConnectionAnchor.prototype */\n{\n\n NAME: \"draw2d.layout.anchor.ConnectionAnchor\",\n\n /**\n *\n * @param {draw2d.Figure} owner the figure to use for the anchor calculation\n */\n init: function init(owner) {\n this.owner = owner;\n },\n\n /**\n * \n * Returns the location where the Connection should be anchored in absolute coordinates.\n * The anchor may use the given reference Point to calculate this location.\n *\n * @param {draw2d.geo.Point} reference the opposite reference point\n * @param {draw2d.Connection} inquiringConnection the connection who ask for the location.\n *\n * @returns {draw2d.geo.Point}\n */\n getLocation: function getLocation(reference, inquiringConnection) {\n // return the center of the owner/port.\n return this.getReferencePoint(inquiringConnection);\n },\n\n /**\n * \n * Returns the Figure that contains this ConnectionAnchor.\n *\n * @returns {draw2d.Figure} The Figure that contains this ConnectionAnchor\n */\n getOwner: function getOwner() {\n return this.owner;\n },\n\n /**\n * \n * Set the owner of the Anchor.\n *\n * @param {draw2d.Figure} owner the new owner of the anchor locator\n */\n setOwner: function setOwner(owner) {\n if (typeof owner === \"undefined\") {\n throw \"Missing parameter for 'owner' in ConnectionAnchor.setOwner\";\n }\n this.owner = owner;\n },\n\n /**\n * \n * Returns the bounds of this Anchor's owner. Subclasses can override this method\n * to adjust the box. Maybe you return the box of the port parent (the parent figure)\n *\n * @returns {draw2d.geo.Rectangle} The bounds of this Anchor's owner\n */\n getBox: function getBox() {\n return this.getOwner().getAbsoluteBounds();\n },\n\n /**\n * \n * Returns the reference point for this anchor in absolute coordinates. This might be used\n * by another anchor to determine its own location.\n *\n * @param {draw2d.Connection} [inquiringConnection] the connection who ask for the location.\n *\n * @returns {draw2d.geo.Point} The reference Point\n */\n getReferencePoint: function getReferencePoint(inquiringConnection) {\n return this.getOwner().getAbsolutePosition();\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/anchor/FanConnectionAnchor.js\":\n/*!**************************************************!*\\\n !*** ./src/layout/anchor/FanConnectionAnchor.js ***!\n \\**************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * The FanConnectionAnchor's location is found by calculating the intersection of a\n * line drawn from the center point of its owner's box (the parent of the\n * connection port) to a reference point on that box.\n * Additional the anchor resolves conflicts by spread the anchor if more than one\n * connection has the same reference point. <br>\n * In a case of a DirectRouter parallel connections are the result.\n *\n *\n * @inheritable\n * @author Andreas Herz\n * @since 4.6.0\n * @extends draw2d.layout.anchor.ConnectionAnchor\n */\n\n_packages2.default.layout.anchor.FanConnectionAnchor = _packages2.default.layout.anchor.ConnectionAnchor.extend(\n/** @lends draw2d.layout.anchor.FanConnectionAnchor.prototype */\n{\n\n NAME: \"draw2d.layout.anchor.FanConnectionAnchor\",\n\n /**\n *\n * @param {draw2d.Figure} owner the figure to use for the anchor calculation\n * @param {Number} [separation] the separation or fan distance between the concurrent/conflicting anchors\n */\n init: function init(owner, separation) {\n this._super(owner);\n\n if (separation) {\n this.separation = parseInt(separation);\n } else {\n this.separation = 10;\n }\n },\n\n /**\n * \n *\n * Returns the location where the Connection should be anchored in\n * absolute coordinates. The anchor may use the given reference\n * Point to calculate this location.\n *\n * @param {draw2d.geo.Point} reference The reference Point in absolute coordinates\n * @param {draw2d.Connection} inquiringConnection the connection who ask for the location.\n *\n * @returns {draw2d.geo.Point} The anchor's location\n */\n getLocation: function getLocation(reference, inquiringConnection) {\n\n var r = new _packages2.default.geo.Rectangle(0, 0);\n r.setBounds(this.getBox());\n r.translate(-1, -1);\n r.resize(1, 1);\n\n var center = r.getCenter();\n\n if (r.isEmpty() || reference.x === center.x && reference.y === center.y) {\n return center; // This avoids divide-by-zero\n }\n\n // translate the center if required\n //\n var s = inquiringConnection.getSource();\n var t = inquiringConnection.getTarget();\n var lines = this.getOwner().getConnections().clone();\n lines.grep(function (other) {\n return other.getTarget() === t && other.getSource() === s || other.getTarget() === s && other.getSource() === t;\n });\n var index = lines.indexOf(inquiringConnection) + 1;\n var position = center.getPosition(reference);\n var ray = void 0;\n if (position === _packages2.default.geo.PositionConstants.SOUTH || position === _packages2.default.geo.PositionConstants.EAST) {\n ray = new _packages2.default.geo.Point(reference.x - center.x, reference.y - center.y);\n } else {\n ray = new _packages2.default.geo.Point(center.x - reference.x, center.y - reference.y);\n }\n var length = Math.sqrt(ray.x * ray.x + ray.y * ray.y);\n if (index <= 2) {\n length *= 1.5;\n }\n var xSeparation = this.separation * ray.x / length;\n var ySeparation = this.separation * ray.y / length;\n if (index % 2 === 0) {\n center = new _packages2.default.geo.Point(center.x + index / 2 * (-1 * ySeparation), center.y + index / 2 * xSeparation);\n } else {\n center = new _packages2.default.geo.Point(center.x + index / 2 * ySeparation, center.y + index / 2 * (-1 * xSeparation));\n }\n\n var intersections = this.getBox().intersectionWithLine(center, reference);\n // perfect - one intersection mean that the shifted center point is inside the bounding box and has only one intersection with it.\n //\n switch (intersections.getSize()) {\n case 0:\n // calculate the edge of the bounding box which is nearest to the reference point\n //\n var v = this.getBox().getVertices();\n var first = v.first();\n first.distance = reference.distance(first);\n return v.asArray().reduce(function (previous, current) {\n current.distance = reference.distance(current);\n return current.distance < previous.distance ? current : previous;\n });\n case 1:\n return intersections.get(0);\n case 2:\n // get the nearest of these points\n var p0 = intersections.get(0);\n var p1 = intersections.get(1);\n var p0diff = reference.distance(p0);\n var p1diff = reference.distance(p1);\n if (p0diff < p1diff) {\n return p0;\n }\n return p1;\n }\n\n // we have 0 or 2 intersections with the bounding box. This means the shifted\n // calculate the intersection if the new \"center\" with the bounding box of the\n // shape (if any exists)\n },\n\n /**\n * Returns the bounds of this Anchor's owner. Subclasses can\n * override this method to adjust the box. Maybe you return the box\n * of the port parent (the parent figure)\n *\n * @returns {draw2d.geo.Rectangle} The bounds of this Anchor's owner\n */\n getBox: function getBox() {\n return this.getOwner().getParent().getBoundingBox();\n },\n\n /**\n * \n *\n * Returns the reference point for this anchor in absolute coordinates. This might be used\n * by another anchor to determine its own location.\n *\n * @param {draw2d.Connection} inquiringConnection the connection who ask for the location.\n *\n * @returns {draw2d.geo.Point} The bounds of this Anchor's owner\n */\n getReferencePoint: function getReferencePoint(inquiringConnection) {\n return this.getBox().getCenter();\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/anchor/ShortesPathConnectionAnchor.js\":\n/*!**********************************************************!*\\\n !*** ./src/layout/anchor/ShortesPathConnectionAnchor.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * The ChopboxAnchor's location is found by calculating the intersection of a\n * line drawn from the center point of its owner's box (the parent of the\n * connection port) to a reference point on that box. A Connection using the\n * ChopBoxAnchor will be oriented such that they point to their port owner's\n * center.\n *\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.layout.anchor.ConnectionAnchor\n */\n\n_packages2.default.layout.anchor.ShortesPathConnectionAnchor = _packages2.default.layout.anchor.ConnectionAnchor.extend(\n/** @lends draw2d.layout.anchor.ShortesPathConnectionAnchor.prototype */\n{\n\n NAME: \"draw2d.layout.anchor.ShortesPathConnectionAnchor\",\n\n /**\n *\n * @param {draw2d.Figure} [owner] the figure to use for the anchor calculation\n */\n init: function init(owner) {\n this._super(owner);\n },\n\n /**\n * \n *\n * Returns the location where the Connection should be anchored in\n * absolute coordinates. The anchor may use the given reference\n * Point to calculate this location.\n *\n * @param {draw2d.geo.Point} ref The reference Point in absolute coordinates\n * @param {draw2d.Connection} inquiringConnection the connection who ask for the location.\n *\n * @returns {draw2d.geo.Point} The anchor's location\n */\n getLocation: function getLocation(ref, inquiringConnection) {\n var r = this.getOwner().getParent().getBoundingBox();\n var center = r.getCenter();\n\n // check if we can calculate with a circle/line intersection\n //\n if (this.getOwner().getParent() instanceof _packages2.default.shape.basic.Oval) {\n var result = this.getOwner().getParent().intersectionWithLine(ref, center);\n if (result.getSize() === 1) {\n return result.get(0);\n }\n }\n\n /* 0 | 1 | 2\n * __|___|__\n * 7 | 8 | 3\n * __|___|__\n * 6 | 5 | 4\n */\n var octant = r.determineOctant(new _packages2.default.geo.Rectangle(ref.x, ref.y, 2, 2));\n\n switch (octant) {\n case 0:\n return r.getTopLeft();\n case 1:\n return new _packages2.default.geo.Point(ref.x, r.getTop());\n case 2:\n return r.getTopRight();\n case 3:\n return new _packages2.default.geo.Point(r.getRight(), ref.y);\n case 4:\n return r.getBottomRight();\n case 5:\n return new _packages2.default.geo.Point(ref.x, r.getBottom());\n case 6:\n return r.getBottomLeft();\n case 7:\n return new _packages2.default.geo.Point(r.getLeft(), ref.y);\n }\n\n return r.getTopLeft();\n },\n\n /**\n * Returns the bounds of this Anchor's owner. Subclasses can\n * override this method to adjust the box. Maybe you return the box\n * of the port parent (the parent figure)\n *\n * @returns {draw2d.geo.Rectangle} The bounds of this Anchor's owner\n */\n getBox: function getBox() {\n return this.getOwner().getParent().getBoundingBox();\n },\n\n /**\n * \n *\n * Returns the bounds of this Anchor's owner. Subclasses can\n * override this method to adjust the box. Maybe you return the box\n * of the port parent (the parent figure)\n *\n * @param {draw2d.Connection} inquiringConnection the connection who ask for the location.\n *\n * @returns {draw2d.geo.Point} The bounds of this Anchor's owner\n */\n getReferencePoint: function getReferencePoint(inquiringConnection) {\n return this.getBox().getCenter();\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/CircuitConnectionRouter.js\":\n/*!**********************************************************!*\\\n !*** ./src/layout/connection/CircuitConnectionRouter.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Provides a {@link draw2d.Connection} with an orthogonal route between the Connection's source\n * and target anchors.\n * <br>\n * Additional a <b>bridge</b> is added to each connection which didn't have a common source or target\n * port.<br>\n * A <b>dot</b> is added at the crossing if the two connections have a common spurce or target port.\n *\n * <br>\n *\n * @example\n *\n * let createConnection=function(){\n * let con = new draw2d.Connection();\n * con.setRouter(new draw2d.layout.connection.CircuitConnectionRouter());\n * return con;\n * };\n *\n * // install a custom connection create policy\n * //\n * canvas.installEditPolicy( new draw2d.policy.connection.DragConnectionCreatePolicy({\n * createConnection: createConnection\n * }));\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * let f1 = new draw2d.shape.analog.OpAmp({x:10, y:10});\n * let f2 = new draw2d.shape.analog.ResistorVertical({angle:90, height:20, x:300, y:150});\n * let f3 = new draw2d.shape.analog.ResistorVertical({x:250, y:70});\n * let f4 = new draw2d.shape.analog.ResistorVertical({x:10, y:90});\n *\n * // ...add it to the canvas\n * //\n * canvas.add( f1);\n * canvas.add( f2);\n * canvas.add( f3);\n * canvas.add( f4);\n *\n * // first Connection\n * //\n * let c = createConnection();\n * c.setSource(f1.getOutputPort(0));\n * c.setTarget(f2.getHybridPort(0));\n * canvas.add(c);\n *\n * // second Connection between the other resistors\n * //\n * c = createConnection();\n * c.setSource(f3.getHybridPort(1));\n * c.setTarget(f4.getHybridPort(0));\n * canvas.add(c);\n *\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.layout.connection.ManhattanConnectionRouter\n */\n\n_packages2.default.layout.connection.CircuitConnectionRouter = _packages2.default.layout.connection.ManhattanConnectionRouter.extend(\n/** @lends draw2d.layout.connection.CircuitConnectionRouter.prototype */\n{\n\n NAME: \"draw2d.layout.connection.CircuitConnectionRouter\",\n\n /**\n * Creates a new Router object.\n *\n */\n init: function init() {\n this._super();\n this.setBridgeRadius(4);\n this.setVertexRadius(2);\n\n // experimental\n this.abortRoutingOnFirstVertexNode = false;\n },\n\n /**\n * \n * Callback method if the router has been assigned to a connection.\n *\n * @param {draw2d.Connection} connection The assigned connection\n * @template\n * @since 2.7.2\n */\n onInstall: function onInstall(connection) {\n connection.installEditPolicy(new _packages2.default.policy.line.LineSelectionFeedbackPolicy());\n },\n\n /**\n * \n * Callback method if the router has been removed from the connection. In the case of the CircuitRouter\n * all vertex nodes will be removed from the canvas.\n *\n * @param {draw2d.Connection} connection The related connection\n * @template\n * @since 2.7.2\n */\n onUninstall: function onUninstall(connection) {\n if (typeof connection.vertexNodes !== \"undefined\" && connection.vertexNodes !== null) {\n connection.vertexNodes.remove();\n connection.vertexNodes = null;\n }\n },\n\n /**\n * \n * Set the radius of the vertex circle.\n *\n * @param {Number} radius\n */\n setVertexRadius: function setVertexRadius(radius) {\n this.vertexRadius = radius;\n\n return this;\n },\n /** deprecated\n * @private\n * **/\n setJunctionRadius: function setJunctionRadius(radius) {\n this.vertexRadius = radius;\n },\n\n /**\n * \n * Set the radius or span of the bridge. A bridge will be drawn if two connections are crossing and didn't have any\n * common port.\n *\n * @param {Number} radius\n */\n setBridgeRadius: function setBridgeRadius(radius) {\n this.bridgeRadius = radius;\n this.bridge_LR = [\" r\", 0.5, -0.5, radius - radius / 2, -(radius - radius / 4), radius, -radius, radius + radius / 2, -(radius - radius / 4), radius * 2, \"0 \"].join(\" \");\n this.bridge_RL = [\" r\", -0.5, -0.5, -(radius - radius / 2), -(radius - radius / 4), -radius, -radius, -(radius + radius / 2), -(radius - radius / 4), -radius * 2, \"0 \"].join(\" \");\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n route: function route(conn, routingHints) {\n var _this = this;\n\n var fromPt = conn.getStartPoint();\n var fromDir = conn.getSource().getConnectionDirection(conn.getTarget());\n\n var toPt = conn.getEndPoint();\n var toDir = conn.getTarget().getConnectionDirection(conn.getSource());\n\n // calculate the lines between the two points with the standard ManhattanRouter.\n //\n this._route(conn, toPt, toDir, fromPt, fromDir);\n\n // get the intersections to the other connections\n //\n var intersectionsASC = conn.getCanvas().getIntersection(conn).sort(\"x\");\n var intersectionsDESC = intersectionsASC.clone().reverse();\n\n var intersectionForCalc = intersectionsASC;\n\n // add a ArrayList of all added vertex nodes to the connection\n //\n if (typeof conn.vertexNodes !== \"undefined\" && conn.vertexNodes !== null) {\n conn.vertexNodes.remove();\n }\n conn.vertexNodes = conn.canvas.paper.set();\n\n // ATTENTION: we cast all x/y coordinates to integer and add 0.5 to avoid subpixel rendering of\n // the connection. The 1px or 2px lines look much clearer than before.\n //\n var ps = conn.getVertices();\n var p = ps.get(0);\n var path = [\"M\", (p.x | 0) + 0.5, \" \", (p.y | 0) + 0.5];\n\n var oldP = p;\n var bridgeWidth = null;\n var bridgeCode = null;\n\n var lastVertexNode = null;\n\n for (var i = 1; i < ps.getSize(); i++) {\n p = ps.get(i);\n\n // line goes from right->left.\n if (oldP.x > p.x) {\n intersectionForCalc = intersectionsDESC;\n bridgeCode = this.bridge_RL;\n bridgeWidth = -this.bridgeRadius;\n }\n // line goes from left->right\n else {\n intersectionForCalc = intersectionsASC;\n bridgeCode = this.bridge_LR;\n bridgeWidth = this.bridgeRadius;\n }\n\n // add a bridge or a vertex node depending to the intersection connection\n //\n // bridge => the connections didn't have a common port\n // vertex => the connections did have a common source or target port\n //\n intersectionForCalc.each(function (ii, interP) {\n if (_packages2.default.shape.basic.Line.hit(1, oldP.x, oldP.y, p.x, p.y, interP.x, interP.y) === true) {\n\n // It is a vertex node..\n //\n if (conn.sharingPorts(interP.other)) {\n var other = interP.other;\n var otherZ = other.getZOrder();\n var connZ = conn.getZOrder();\n if (connZ < otherZ) {\n var vertexNode = conn.canvas.paper.ellipse(interP.x, interP.y, _this.vertexRadius, _this.vertexRadius).attr({ fill: conn.lineColor.rgba() });\n conn.vertexNodes.push(vertexNode);\n // we found a vertex node. In this case an already existing connection did draw the connection.\n //\n if (_this.abortRoutingOnFirstVertexNode === true) {\n if (conn.getSource() === other.getSource() || conn.getSource() === other.getTarget()) {\n path = [\"M\", (interP.x | 0) + 0.5, \" \", (interP.y | 0) + 0.5];\n if (lastVertexNode !== null) {\n lastVertexNode.remove();\n conn.vertexNodes.exclude(lastVertexNode);\n }\n }\n lastVertexNode = vertexNode;\n }\n }\n }\n // ..or a bridge. We draw only horizontal bridges. Just a design decision\n //\n else if (p.y === interP.y) {\n path.push(\" L\", (interP.x - bridgeWidth | 0) + 0.5, \" \", (interP.y | 0) + 0.5);\n path.push(bridgeCode);\n }\n }\n });\n\n path.push(\" L\", (p.x | 0) + 0.5, \" \", (p.y | 0) + 0.5);\n oldP = p;\n }\n conn.svgPathString = path.join(\"\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/ConnectionRouter.js\":\n/*!***************************************************!*\\\n !*** ./src/layout/connection/ConnectionRouter.js ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Routes a {@link draw2d.Connection}, possibly using a constraint.\n *\n * @author Andreas Herz\n */\n\n_packages2.default.layout.connection.ConnectionRouter = Class.extend(\n/** @lends draw2d.layout.connection.ConnectionRouter.prototype */\n{\n\n NAME: \"draw2d.layout.connection.ConnectionRouter\",\n\n /**\n * Creates a new Router object\n */\n init: function init() {},\n\n /**\n *\n * Routes the Connection.\n *\n * @param {draw2d.Connection} connection The Connection to route\n * @param {Object} [routingHints] some helper attributes for the router\n * @param {Boolean} [routingHints.startMoved] is true if just the start location has moved\n * @param {Boolean} [routingHints.endMoved] is true if the destination location has changed\n * @param {draw2d.util.ArrayList} [routingHints.oldVertices] the vertices before the reroute has been triggered\n *\n * @template\n */\n route: function route(connection, routingHints) {\n throw \"subclasses must implement the method [ConnectionRouter.route]\";\n },\n\n _paint: function _paint(conn) {\n // calculate the path string for the SVG rendering\n // Important: to avoid subpixel error rendering we add 0.5 to each coordinate\n // With this offset the canvas can paint the line on a \"full pixel\" instead\n // of subpixel rendering.\n // let adjust = val => (val| 0) +0.5\n var adjust = function adjust(val) {\n return val;\n };\n\n var ps = conn.getVertices();\n var p = ps.get(0);\n var radius = conn.getRadius();\n var path = [\"M\", adjust(p.x), \" \", adjust(p.y)];\n var i = 1;\n var length = void 0,\n inset = void 0,\n p2 = void 0;\n if (radius > 0) {\n var lastP = p;\n length = ps.getSize() - 1;\n for (; i < length; i++) {\n p = ps.get(i);\n inset = _packages2.default.geo.Util.insetPoint(p, lastP, radius);\n path.push(\"L\", adjust(inset.x), \",\", adjust(inset.y));\n\n p2 = ps.get(i + 1);\n inset = _packages2.default.geo.Util.insetPoint(p, p2, radius);\n\n path.push(\"Q\", p.x, \",\", p.y, \" \", adjust(inset.x), \", \", adjust(inset.y));\n lastP = p;\n }\n p = ps.get(i);\n path.push(\"L\", adjust(p.x), \",\", adjust(p.y));\n } else {\n length = ps.getSize();\n for (; i < length; i++) {\n p = ps.get(i);\n path.push(\"L\", adjust(p.x), \",\", adjust(p.y));\n }\n }\n conn.svgPathString = path.join(\"\");\n },\n\n /**\n *\n * Callback method if the router has been assigned to a connection.\n *\n * @param {draw2d.shape.basic.PolyLine} connection The assigned connection\n * @template\n * @since 2.7.2\n */\n onInstall: function onInstall(connection) {},\n\n /**\n *\n * Callback method if the router has been removed from the connection.\n *\n * @param {draw2d.shape.basic.PolyLine} connection The related connection\n * @template\n * @since 2.7.2\n */\n onUninstall: function onUninstall(connection) {},\n\n /**\n *\n * Callback method for the PolyLine or Connection to check if it possible to remove a vertex from\n * the list. The router can send an veto for this.\n * Per default it is not possible to remove any vertex from the PolyLine exceptional if any interactive\n * router is installed.\n *\n * @param {Number} index\n * @since 4.2.3\n */\n canRemoveVertexAt: function canRemoveVertexAt(index) {\n return false;\n },\n\n /**\n * Callback method for the PolyLine or Connection to verify that a segment is deletable.\n *\n * @param {Number} index\n * @returns {Boolean}\n * @since 4.2.3\n */\n canRemoveSegmentAt: function canRemoveSegmentAt(index) {\n return false;\n },\n\n /**\n *\n * Tweak or enrich the polyline persistence data with routing information\n *\n * @since 2.10.0\n * @param {draw2d.shape.basic.PolyLine} line\n * @param {Object} memento The memento data of the polyline\n * @returns {Object}\n */\n getPersistentAttributes: function getPersistentAttributes(line, memento) {\n return memento;\n },\n\n /**\n *\n * set the attributes for the polyline with routing information\n *\n * @since 2.10.0\n * @param {draw2d.shape.basic.Line} line\n * @param {Object} memento the JSON data to read\n */\n setPersistentAttributes: function setPersistentAttributes(line, memento) {},\n\n /**\n *\n *\n * The draw2d.Connection delegates the drag operation to the router. The router can\n * handle the different constraints of the connection.\n *\n * @param {draw2d.shape.basic.Line} line\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n */\n onDrag: function onDrag(line, dx, dy, dx2, dy2) {},\n\n /**\n *\n * Called by the connection if the vertices set outside.\n * This enforce the router to avoid full autoroute. E.g. InteractiveManhattanRouter\n *\n * @protected\n * @param {draw2d.shape.basic.Line} line\n */\n verticesSet: function verticesSet(line) {}\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/DirectRouter.js\":\n/*!***********************************************!*\\\n !*** ./src/layout/connection/DirectRouter.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Router for direct connections between two ports. Beeline\n * <br>\n * <br>\n *\n * @example\n *\n * let createConnection=function(){\n * let con = new draw2d.Connection();\n * con.setRouter(new draw2d.layout.connection.DirectRouter());\n * return con;\n * };\n *\n * // install a custom connection create policy\n * //\n * canvas.installEditPolicy( new draw2d.policy.connection.DragConnectionCreatePolicy({\n * createConnection: createConnection\n * }));\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * let start = new draw2d.shape.node.Start();\n * let end = new draw2d.shape.node.End();\n\n * // ...add it to the canvas\n * canvas.add( start, 50,50);\n * canvas.add( end, 230,80);\n *\n * // first Connection\n * //\n * let c = createConnection();\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n * canvas.add(c);\n *\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.layout.connection.ConnectionRouter\n */\n\n_packages2.default.layout.connection.DirectRouter = _packages2.default.layout.connection.ConnectionRouter.extend(\n/** @lends draw2d.layout.connection.DirectRouter.prototype */\n{\n\n NAME: \"draw2d.layout.connection.DirectRouter\",\n\n /**\n * Creates a new Router object\n */\n init: function init() {\n this._super();\n },\n\n /**\n * \n * Callback method if the router has been assigned to a connection.\n *\n * @param {draw2d.Connection} connection The assigned connection\n * @template\n * @since 2.7.2\n */\n onInstall: function onInstall(connection) {\n connection.installEditPolicy(new _packages2.default.policy.line.LineSelectionFeedbackPolicy());\n },\n\n /**\n * \n * Invalidates the given Connection\n */\n invalidate: function invalidate() {},\n\n /**\n * @inheritdoc\n */\n route: function route(connection, routingHints) {\n var start = connection.getStartPosition();\n var end = connection.getEndPosition();\n\n // required for hit tests\n //\n connection.addPoint(start);\n connection.addPoint(end);\n\n // calculate the path\n var path = [\"M\", start.x, \" \", start.y];\n path.push(\"L\", end.x, \" \", end.y);\n\n connection.svgPathString = path.join(\"\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/FanConnectionRouter.js\":\n/*!******************************************************!*\\\n !*** ./src/layout/connection/FanConnectionRouter.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Automatic router that spreads its {@link draw2d.Connection Connections} in a fan-like fashion upon collision.\n *\n *\n * @example\n *\n * let createConnection=function(){\n * // return my special kind of connection\n * let con = new draw2d.Connection({\n * radius: 14,\n * router: new draw2d.layout.connection.FanConnectionRouter()\n * });\n * return con;\n * };\n *\n * // install a custom connection create policy\n * //\n * canvas.installEditPolicy( new draw2d.policy.connection.DragConnectionCreatePolicy({\n * createConnection: createConnection\n * }));\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * let start = new draw2d.shape.node.Start();\n * let end = new draw2d.shape.node.End();\n\n * // ...add it to the canvas\n * canvas.add( start, 50,50);\n * canvas.add( end, 230,80);\n *\n * // first Connection\n * //\n * let c = createConnection();\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n * canvas.add(c);\n *\n * // second Connection\n * //\n * c = createConnection();\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n * canvas.add(c);\n *\n * // third Connection\n * //\n * c = createConnection();\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n * canvas.add(c);\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.layout.connection.DirectRouter\n */\n\n_packages2.default.layout.connection.FanConnectionRouter = _packages2.default.layout.connection.DirectRouter.extend(\n/** @lends draw2d.layout.connection.FanConnectionRouter.prototype */\n{\n\n NAME: \"draw2d.layout.connection.FanConnectionRouter\",\n\n /**\n * Creates a new Router object.\n *\n */\n init: function init() {\n this._super();\n },\n\n /**\n * \n * Callback method if the router has been assigned to a connection.\n *\n * @param {draw2d.Connection} connection The assigned connection\n * @template\n * @since 2.7.2\n */\n onInstall: function onInstall(connection) {\n connection.installEditPolicy(new _packages2.default.policy.line.LineSelectionFeedbackPolicy());\n },\n\n /**\n * \n * Layout the hands over connection in a manhattan like layout\n *\n * @param {draw2d.Connection} conn\n * @param {draw2d.util.ArrayList} oldVertices old/existing vertices of the Connection\n * @param {Object} routingHints some helper attributes for the router\n * @param {Boolean} routingHints.startMoved is true if just the start location has moved\n * @param {Boolean} routingHints.destMoved is true if the destination location has changed\n */\n route: function route(conn, routingHints) {\n var lines = conn.getSource().getConnections().clone();\n lines.grep(function (other) {\n return other.getTarget() === conn.getTarget() || other.getSource() === conn.getTarget();\n });\n\n if (lines.getSize() > 1) {\n this.routeCollision(conn, lines.indexOf(conn));\n } else {\n this._super(conn, routingHints);\n }\n },\n\n /**\n * \n * route the connection if connections overlap. Two connections overlap if the combination\n * of source and target anchors are equal.\n *\n * @param {draw2d.Connection} conn\n * @param {Number} index\n */\n routeCollision: function routeCollision(conn, index) {\n index = index + 1;\n var start = conn.getStartPoint();\n var end = conn.getEndPoint();\n\n var separation = 15;\n\n var midPoint = new _packages2.default.geo.Point((end.x + start.x) / 2, (end.y + start.y) / 2);\n var position = end.getPosition(start);\n var ray = void 0;\n if (position === _packages2.default.geo.PositionConstants.SOUTH || position === _packages2.default.geo.PositionConstants.EAST) {\n ray = new _packages2.default.geo.Point(end.x - start.x, end.y - start.y);\n } else {\n ray = new _packages2.default.geo.Point(start.x - end.x, start.y - end.y);\n }\n\n var length = Math.sqrt(ray.x * ray.x + ray.y * ray.y);\n\n var xSeparation = separation * ray.x / length;\n var ySeparation = separation * ray.y / length;\n\n var bendPoint = void 0;\n\n if (index % 2 === 0) {\n bendPoint = new _packages2.default.geo.Point(midPoint.x + index / 2 * (-1 * ySeparation), midPoint.y + index / 2 * xSeparation);\n } else {\n bendPoint = new _packages2.default.geo.Point(midPoint.x + index / 2 * ySeparation, midPoint.y + index / 2 * (-1 * xSeparation));\n }\n\n // required for hit tests\n conn.addPoint(start);\n conn.addPoint(bendPoint);\n conn.addPoint(end);\n\n // calculate the path string for the SVG rendering\n //\n this._paint(conn);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/InteractiveManhattanConnectionRouter.js\":\n/*!***********************************************************************!*\\\n !*** ./src/layout/connection/InteractiveManhattanConnectionRouter.js ***!\n \\***********************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Route the connection in an Manhattan style and add resize handles to all vertex for interactive alignment of the\n * routing.\n *\n *\n * @example\n *\n * let createConnection=function(){\n * // return my special kind of connection\n * let con = new draw2d.Connection({\n * radius: 4,\n * router: new draw2d.layout.connection.InteractiveManhattanConnectionRouter()\n * });\n * return con;\n * };\n *\n * // install a custom connection create policy\n * //\n * canvas.installEditPolicy( new draw2d.policy.connection.DragConnectionCreatePolicy({\n * createConnection: createConnection\n * }));\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * let start = new draw2d.shape.node.Start();\n * let end = new draw2d.shape.node.End();\n\n * // ...add it to the canvas\n * canvas.add( start, 50,50);\n * canvas.add( end, 230,80);\n *\n * // first Connection\n * //\n * let c = createConnection();\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n * canvas.add(c);\n *\n * // select the connection to show the selection handles\n * //\n * c.select();\n *\n *\n * @author Andreas Herz\n * @since 4.0.2\n * @extends draw2d.layout.connection.ManhattanConnectionRouter\n */\n\n_packages2.default.layout.connection.InteractiveManhattanConnectionRouter = _packages2.default.layout.connection.ManhattanConnectionRouter.extend(\n/** @lends draw2d.layout.connection.InteractiveManhattanConnectionRouter.prototype */\n{\n\n NAME: \"draw2d.layout.connection.InteractiveManhattanConnectionRouter\",\n\n /**\n * Creates a new Router object.\n *\n */\n init: function init() {\n this._super();\n },\n\n onInstall: function onInstall(conn) {\n conn.installEditPolicy(new _packages2.default.policy.line.OrthogonalSelectionFeedbackPolicy());\n if (!conn._routingMetaData) {\n conn._routingMetaData = {\n routedByUserInteraction: false,\n fromDir: -1,\n toDir: -1\n };\n }\n },\n\n onUninstall: function onUninstall(conn) {\n delete conn._routingMetaData;\n },\n\n /**\n * @inheritDoc\n */\n route: function route(conn, routingHints) {\n if (!routingHints.oldVertices) {\n debugger;\n }\n if (routingHints.oldVertices.getSize() === 0 || conn._routingMetaData.routedByUserInteraction === false) {\n this._super(conn, routingHints);\n conn._routingMetaData.fromDir = conn.getSource().getConnectionDirection(conn.getTarget());\n conn._routingMetaData.toDir = conn.getTarget().getConnectionDirection(conn.getSource());\n } else {\n this.halfRoute(conn, routingHints);\n this._paint(conn);\n }\n },\n\n /**\n * \n * The routing algorithm if the user has changed at least on of the vertices manually.\n * This kind of routing just align the start and end vertices to the new source/target port\n * location.\n * The vertices between keep untouched. Modification of this vertices are done by the\n * draw2d.policy.line.OrthogonalSelectionFeedbackPolicy\n *\n * @param {draw2d.Connection} conn the connection to route\n * @param {Object} routingHints some helper attributes for the router\n * @param {Boolean} routingHints.startMoved is true if just the start location has moved\n * @param {Boolean} routingHints.endMoved is true if the destination location has changed\n */\n halfRoute: function halfRoute(conn, routingHints) {\n var MINDIST = this.MINDIST;\n var max = Math.max;\n var min = Math.min;\n\n routingHints = routingHints || { oldVertices: new _packages2.default.util.ArrayList() };\n var oldVertices = routingHints.oldVertices;\n var vertexCount = oldVertices.getSize();\n\n var fromPt = conn.getStartPosition();\n var fromDir = conn.getSource().getConnectionDirection(conn.getTarget());\n\n var toPt = conn.getEndPosition();\n var toDir = conn.getTarget().getConnectionDirection(conn.getSource());\n\n // the port orientation has been changed. This can happen if the node rotates. In this case\n // we must recalculate the routing.\n if (conn._routingMetaData.fromDir !== fromDir || conn._routingMetaData.toDir !== toDir) {\n conn._routingMetaData.routedByUserInteraction = false;\n this.route(conn, routingHints);\n }\n\n // TODO: detection for switch back to autoroute isn't good enough.\n // Add more logic. e.g. if the fromDir!==1. This happens if\n // The ports are at bottom and top.\n // The code below covers only the classic workflow configuration left->right\n //\n // go back to the default if no routing is possible anymore\n //\n if (fromDir === _packages2.default.geo.Rectangle.DIRECTION_RIGHT && toDir === _packages2.default.geo.Rectangle.DIRECTION_LEFT && fromPt.x > toPt.x && vertexCount <= 4) {\n\n conn._routingMetaData.routedByUserInteraction = false;\n this.route(conn, routingHints);\n }\n // it makes no sense to have just 2 vertices and manual routing for Manhattan-style routing\n else if (conn.getVertices().getSize() === 2 && conn._routingMetaData.routedByUserInteraction === true) {\n conn._routingMetaData.routedByUserInteraction = false;\n this.route(conn, routingHints);\n }\n\n // transfer the old vertices into the connection\n //\n oldVertices.each(function (i, vertex) {\n conn.addPoint(vertex);\n });\n\n // all points are adjusted with the drag&drop operation. There is no need to move\n // start/end points twice\n if (conn.isInDragDrop) {\n return;\n }\n\n // The SOURCE port (labeled with p0) has been moved/changed.\n //\n if (routingHints.startMoved || !fromPt.equals(oldVertices.get(0))) {\n var p1 = oldVertices.get(1);\n var p2 = oldVertices.get(2); // optional. Happens if the connection has just 2 points\n conn.setVertex(0, fromPt);\n switch (fromDir) {\n // .\n // p0 . p1\n // x------+\n // .\n // .\n //\n case _packages2.default.geo.Rectangle.DIRECTION_RIGHT:\n conn.setVertex(1, max(fromPt.x + MINDIST, p1.x), fromPt.y); // p1\n if (p2) conn.setVertex(2, max(fromPt.x + MINDIST, p1.x), p2.y); // p2\n break;\n // .\n // . p1 p0\n // +------x\n // .\n // .\n //\n case _packages2.default.geo.Rectangle.DIRECTION_LEFT:\n conn.setVertex(1, min(fromPt.x - MINDIST, p1.x), fromPt.y); // p1\n if (p2) conn.setVertex(2, min(fromPt.x - MINDIST, p1.x), p2.y); // p2\n break;\n // ...+....\n // p1 |\n // |\n // |\n // p0 x\n //\n case _packages2.default.geo.Rectangle.DIRECTION_UP:\n conn.setVertex(1, fromPt.x, min(fromPt.y - MINDIST, p1.y)); // p1\n if (p2) conn.setVertex(2, p2.x, min(fromPt.y - MINDIST, p1.y)); // p2\n break;\n // x\n // p0 |\n // |\n // p1 |\n // ....+....\n //\n case _packages2.default.geo.Rectangle.DIRECTION_DOWN:\n conn.setVertex(1, fromPt.x, max(fromPt.y + MINDIST, p1.y)); // p1\n if (p2) conn.setVertex(2, p2.x, max(fromPt.y + MINDIST, p1.y)); // p2\n break;\n }\n }\n //////////////////////////////////////////////////////////////////\n // the TARGET port (labeled with p0) has moved\n //\n if (routingHints.endMoved || !toPt.equals(oldVertices.get(vertexCount - 1))) {\n var _p = oldVertices.get(vertexCount - 2);\n var _p2 = oldVertices.get(vertexCount - 3); // optional\n conn.setVertex(vertexCount - 1, toPt); // p0\n\n switch (toDir) {\n // .\n // p0 . p1\n // x----------+\n // .\n // .\n case _packages2.default.geo.Rectangle.DIRECTION_RIGHT:\n conn.setVertex(vertexCount - 2, max(toPt.x + MINDIST, _p.x), toPt.y); // p1\n if (_p2) conn.setVertex(vertexCount - 3, max(toPt.x + MINDIST, _p.x), _p2.y); // p2\n break;\n\n // .\n // .\n // . p1 p0\n // +----------x\n // .\n // .\n //\n case _packages2.default.geo.Rectangle.DIRECTION_LEFT:\n conn.setVertex(vertexCount - 2, min(toPt.x - MINDIST, _p.x), toPt.y); // p1\n if (_p2) conn.setVertex(vertexCount - 3, min(toPt.x - MINDIST, _p.x), _p2.y); // p2\n break;\n\n // ...+....\n // p1 |\n // |\n // |\n // p0 x\n //\n case _packages2.default.geo.Rectangle.DIRECTION_UP:\n conn.setVertex(vertexCount - 2, toPt.x, min(toPt.y - MINDIST, _p.y)); // p1\n if (_p2) conn.setVertex(vertexCount - 3, _p2.x, min(toPt.y - MINDIST, _p.y)); // p2\n break;\n\n // +\n // p0 |\n // |\n // p1 |\n // ...+...\n //\n case _packages2.default.geo.Rectangle.DIRECTION_DOWN:\n conn.setVertex(vertexCount - 2, toPt.x, max(toPt.y + MINDIST, _p.y)); // p1\n if (_p2) conn.setVertex(vertexCount - 3, _p2.x, max(toPt.y + MINDIST, _p.y)); // p2\n break;\n }\n }\n },\n\n /**\n * Callback method for the PolyLine or Connection to verify that a segment is deletable.\n * @param {draw2d.Connection} conn\n * @param {Number} index\n *\n * @returns {Boolean}\n * @since 4.2.3\n */\n canRemoveSegmentAt: function canRemoveSegmentAt(conn, index) {\n\n var segmentCount = conn.getVertices().getSize() - 1; // segmentCount is one less than vertex count\n\n // The first and last segment isn't deletable\n //\n if (index <= 0 || index + 1 >= segmentCount) {\n return false;\n }\n\n // a connection need at least three strokes\n //\n if (segmentCount < 4) {\n return false;\n }\n\n var fromPt = conn.getStartPosition();\n var fromDir = conn.getSource().getConnectionDirection(conn.getTarget());\n\n var toPt = conn.getEndPosition();\n var toDir = conn.getTarget().getConnectionDirection(conn.getSource());\n\n if (segmentCount <= 5) {\n // ___\n // | | From\n // | 1 |-----+\n // |___| |\n // |\n // +----------+\n // |\n // | ___\n // | | |\n // +---| 2 | To\n // |___|\n // the connection needs at least 5 segments if the routing is like this\n //\n if (fromDir === _packages2.default.geo.Rectangle.DIRECTION_RIGHT && toDir === _packages2.default.geo.Rectangle.DIRECTION_LEFT && fromPt.x >= toPt.x) {\n return false;\n }\n\n // ___\n // | | To\n // | 2 |-----+\n // |___| |\n // |\n // +----------+\n // |\n // | ___\n // | | |\n // +---| 1 | From\n // |___|\n // the connection needs at least 5 segments if the routing is like this\n //\n if (fromDir == _packages2.default.geo.Rectangle.DIRECTION_LEFT & toDir == _packages2.default.geo.Rectangle.DIRECTION_RIGHT && fromPt.x <= toPt.x) {\n return false;\n }\n\n // ___\n // +_______ | |\n // | from | | 2 |\n // _+_ | |___|\n // | | | To +\n // | 1 | |____________|\n // |___|\n // the connection needs at least 5 segments if the routing is like this\n //\n if (fromDir == _packages2.default.geo.Rectangle.DIRECTION_UP & toDir == _packages2.default.geo.Rectangle.DIRECTION_DOWN && fromPt.y <= toPt.y) {\n return false;\n }\n\n // ___\n // +_______ | |\n // | to | | 1 |\n // _+_ | |___|\n // | | | from +\n // | 2 | |____________|\n // |___|\n // the connection needs at least 5 segments if the routing is like this\n //\n if (fromDir == _packages2.default.geo.Rectangle.DIRECTION_DOWN & toDir == _packages2.default.geo.Rectangle.DIRECTION_UP && fromPt.y >= toPt.y) {\n return false;\n }\n\n // unable to make the decision on the easy way. calculate the route again with an\n // temporary connection and check if the segment count of the new routed connection\n // allows a removal\n //\n var tmpConn = new _packages2.default.Connection();\n tmpConn.lineSegments = new _packages2.default.util.ArrayList();\n tmpConn.vertices = new _packages2.default.util.ArrayList();\n tmpConn.sourcePort = conn.sourcePort;\n tmpConn.targetPort = conn.targetPort;\n tmpConn._routingMetaData = { routedByUserInteraction: false, fromDir: -1, toDir: -1 };\n this.route(tmpConn, { oldVertices: new _packages2.default.util.ArrayList() });\n var curSegmentCount = conn.getVertices().getSize() - 1;\n var minSegmentCount = tmpConn.getVertices().getSize() - 1;\n if (curSegmentCount <= minSegmentCount) {\n return false;\n }\n }\n\n return true;\n },\n\n /**\n * \n *\n * The draw2d.Connection delegates the drag operation to the router. The router can\n * handle the different constraints of the connection and just drag&drop a single segment\n * instead of the complete connection.\n *\n * @param {draw2d.shape.basic.Line} line the related line to handle\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n *\n * @since 6.1.0\n */\n onDrag: function onDrag(line, dx, dy, dx2, dy2) {\n var i = 0;\n // Connection is dragged by source and origin port movement\n // or MultiSelection in this case we drag the complete\n // connection\n if (line.draggedSegment === null) {\n var count = line.getVertices().getSize() - 1;\n for (i = 1; i < count; i++) {\n line.getVertex(i).translate(dx2, dy2);\n }\n return;\n }\n\n // don't drag start/end segments. This segments are bounded to the related\n // ports.\n if (line.draggedSegment.index === 0 || line.draggedSegment.index === line.getSegments().getSize() - 1) {\n return;\n }\n\n line._routingMetaData.routedByUserInteraction = true;\n\n var p0 = line.draggedSegment.start;\n var p1 = line.draggedSegment.end;\n i = line.draggedSegment.index;\n var lp0 = line.getVertices().first();\n var lp1 = line.getVertices().last();\n\n // horizontal segment movement\n // x Py\n // .\n // P0 .\n // +---------------------------+ P1\n // .\n // .\n // x Px\n //\n var distance = 0;\n if (p0.y === p1.y) {\n // ensure that the segment is the min distance away from the source/target port\n // (Px is endpoints of the connection and bounded to a port)\n if (i === 1) distance = p0.y - lp0.y;\n // (Py is endpoints of the connection and bounded to a port)\n if (i === line.getSegments().getSize() - 2) distance = p1.y - lp1.y;\n\n if (distance < 0 && dy2 > 0) {\n dy2 = Math.min(dy2, -distance - this.MINDIST);\n } else if (distance > 0 && dy2 < 0) {\n dy2 = -Math.min(-dy2, distance - this.MINDIST);\n }\n\n line.getVertex(i).translate(0, dy2);\n line.getVertex(i + 1).translate(0, dy2);\n }\n // vertical segment movement\n //\n else if (p0.x === p1.x) {\n // ensure that the segment is the min distance away from the source/target port\n //\n if (i === 1) {\n distance = p0.x - lp0.x;\n if (distance < 0 && dx2 > 0) {\n dx2 = Math.min(dx2, -distance - this.MINDIST);\n } else if (distance > 0 && dx2 < 0) {\n dx2 = -Math.min(-dx2, distance - this.MINDIST);\n }\n }\n\n // we need this additional test too. No \"else if\" because the special\n // case of \"index===1\". In this case the segment can be the last AND first\n // segment if the connection has only three segments at all.\n //\n if (i === line.getSegments().getSize() - 2) {\n distance = p1.x - lp1.x;\n if (distance < 0 && dx2 > 0) {\n dx2 = Math.min(dx2, -distance - this.MINDIST);\n } else if (distance > 0 && dx2 < 0) {\n dx2 = -Math.min(-dx2, distance - this.MINDIST);\n }\n }\n\n line.getVertex(i).translate(dx2, 0);\n line.getVertex(i + 1).translate(dx2, 0);\n }\n },\n\n /**\n * \n * Called by the connection if the vertices set outside.\n * This enforce the router to avoid full autoroute. E.g. InteractiveManhattanRouter\n *\n * @protected\n */\n verticesSet: function verticesSet(conn) {\n conn._routingMetaData.routedByUserInteraction = true;\n if (conn.getSource() !== null && conn.getTarget() !== null) {\n conn._routingMetaData.fromDir = conn.getSource().getConnectionDirection(conn.getTarget());\n conn._routingMetaData.toDir = conn.getTarget().getConnectionDirection(conn.getSource());\n }\n },\n\n /**\n * \n * Tweak or enrich the polyline persistence data with routing information\n *\n * @since 2.10.0\n * @param {draw2d.shape.basic.PolyLine} line\n * @param {Object} memento The memento data of the polyline\n *\n * @returns {Object}\n */\n getPersistentAttributes: function getPersistentAttributes(line, memento) {\n memento.vertex = [];\n\n line.getVertices().each(function (i, e) {\n memento.vertex.push({ x: e.x, y: e.y });\n });\n memento.routingMetaData = (0, _extend2.default)({}, line._routingMetaData);\n\n return memento;\n },\n\n /**\n * \n * set the attributes for the polyline with routing information of the interactive manhattan router.\n *\n * @since 4..0.0\n * @param {Object} memento\n */\n setPersistentAttributes: function setPersistentAttributes(line, memento) {\n // restore the points from the JSON data and add them to the polyline\n //\n if (Array.isArray(memento.vertex)) {\n\n line.oldPoint = null;\n line.lineSegments = new _packages2.default.util.ArrayList();\n\n line.setVertices(memento.vertex);\n\n /*\n line.vertices = new draw2d.util.ArrayList();\n $.each(memento.vertex, function(i,e){\n line.addPoint(e.x, e.y);\n });\n */\n }\n\n if (typeof memento.routingMetaData !== \"undefined\") {\n line._routingMetaData = (0, _extend2.default)({}, memento.routingMetaData);\n }\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/ManhattanBridgedConnectionRouter.js\":\n/*!*******************************************************************!*\\\n !*** ./src/layout/connection/ManhattanBridgedConnectionRouter.js ***!\n \\*******************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Provides a {@link draw2d.Connection} with an orthogonal route between the Connection's source\n * and target anchors.\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.layout.connection.ManhattanConnectionRouter\n */\n\n_packages2.default.layout.connection.ManhattanBridgedConnectionRouter = _packages2.default.layout.connection.ManhattanConnectionRouter.extend(\n/** @lends draw2d.layout.connection.ManhattanBridgedConnectionRouter.prototype */\n{\n\n NAME: \"draw2d.layout.connection.ManhattanBridgedConnectionRouter\",\n\n BRIDGE_HORIZONTAL_LR: \" r 0 0 3 -4 7 -4 10 0 13 0 \", // Left to right\n BRIDGE_HORIZONTAL_RL: \" r 0 0 -3 -4 -7 -4 -10 0 -13 0 \", // right to left\n\n /**\n * Creates a new Router object.\n *\n */\n init: function init() {\n this._super();\n },\n\n /**\n * \n * Callback method if the router has been assigned to a connection.\n *\n * @param {draw2d.Connection} connection The assigned connection\n * @template\n * @since 2.7.2\n */\n onInstall: function onInstall(connection) {\n connection.installEditPolicy(new _packages2.default.policy.line.LineSelectionFeedbackPolicy());\n },\n\n /**\n * @inheritdoc\n */\n route: function route(conn, routingHints) {\n var _this = this;\n\n var fromPt = conn.getStartPoint();\n var fromDir = conn.getSource().getConnectionDirection(conn.getTarget());\n\n var toPt = conn.getEndPoint();\n var toDir = conn.getTarget().getConnectionDirection(conn.getSource());\n\n // calculate the lines between the two points.\n //\n this._route(conn, toPt, toDir, fromPt, fromDir);\n\n // calculate the path string for the SVG rendering\n //\n var intersectionsASC = conn.getCanvas().getIntersection(conn).sort(\"x\");\n var intersectionsDESC = intersectionsASC.clone().reverse();\n\n var intersectionForCalc = intersectionsASC;\n\n // ATTENTION: we cast all x/y coordinates to int and add 0.5 to avoid subpixel rendering of\n // the connection. The 1px or 2px lines look much clearer than before.\n //\n var ps = conn.getVertices();\n var p = ps.get(0);\n var path = [\"M\", (p.x | 0) + 0.5, \" \", (p.y | 0) + 0.5];\n var oldP = p;\n\n var _loop = function _loop(i) {\n p = ps.get(i);\n\n // check for intersection and paint a bridge if required\n // line goes from left to right\n //\n var bridgeWidth = 5;\n var bridgeCode = _this.BRIDGE_HORIZONTAL_LR;\n\n // line goes from right->left. Inverse the bridge and the bridgeWidth\n //\n if (oldP.x > p.x) {\n intersectionForCalc = intersectionsDESC;\n bridgeCode = _this.BRIDGE_HORIZONTAL_RL;\n bridgeWidth = -bridgeWidth;\n }\n\n intersectionForCalc.each(function (ii, interP) {\n if (interP.justTouching === false && _packages2.default.shape.basic.Line.hit(1, oldP.x, oldP.y, p.x, p.y, interP.x, interP.y) === true) {\n // we draw only horizontal bridges. Just a design decision\n //\n if (p.y === interP.y) {\n path.push(\" L\", (interP.x - bridgeWidth | 0) + 0.5, \" \", (interP.y | 0) + 0.5);\n path.push(bridgeCode);\n }\n }\n });\n\n path.push(\" L\", (p.x | 0) + 0.5, \" \", (p.y | 0) + 0.5);\n oldP = p;\n };\n\n for (var i = 1; i < ps.getSize(); i++) {\n _loop(i);\n }\n conn.svgPathString = path.join(\"\");\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/ManhattanConnectionRouter.js\":\n/*!************************************************************!*\\\n !*** ./src/layout/connection/ManhattanConnectionRouter.js ***!\n \\************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Provides a {@link draw2d.Connection} with an orthogonal route between the Connection's source\n * and target anchors.\n *\n *\n * @example\n *\n * // Override the default connection type. This is used during drag&drop operations of ports.\n * //\n * let createConnection=function(sourcePort, targetPort){\n * // return my special kind of connection\n * let con = new draw2d.Connection();\n * con.setRouter(new draw2d.layout.connection.ManhattanConnectionRouter());\n * return con;\n * };\n *\n * // Install a special policy into the canvas to use my own implementation of connection\n * // if we drag&drop a port\n * //\n * canvas.installEditPolicy( new draw2d.policy.connection.DragConnectionCreatePolicy({\n * createConnection: createConnection\n * }));\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * let start = new draw2d.shape.node.Start();\n * let end = new draw2d.shape.node.End();\n\n * // ...add it to the canvas\n * canvas.add( start, 50,50);\n * canvas.add( end, 230,80);\n *\n * // first Connection\n * //\n * let c = createConnection();\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n * canvas.add(c);\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.layout.connection.ConnectionRouter\n */\n\n_packages2.default.layout.connection.ManhattanConnectionRouter = _packages2.default.layout.connection.ConnectionRouter.extend(\n/** @lends draw2d.layout.connection.ManhattanConnectionRouter.prototype */\n{\n\n NAME: \"draw2d.layout.connection.ManhattanConnectionRouter\",\n\n MINDIST: 20,\n TOL: 0.1,\n TOLxTOL: 0.01,\n TOGGLE_DIST: 20,\n\n /**\n * Creates a new Router object.\n *\n */\n init: function init() {\n this._super();\n },\n\n /**\n *\n * Callback method if the router has been assigned to a connection.\n *\n * @param {draw2d.Connection} connection The assigned connection\n * @since 2.7.2\n */\n onInstall: function onInstall(connection) {\n connection.installEditPolicy(new _packages2.default.policy.line.LineSelectionFeedbackPolicy());\n },\n\n /**\n * @inheritdoc\n */\n route: function route(conn, routingHints) {\n var fromPt = conn.getStartPosition();\n var fromDir = conn.getSource().getConnectionDirection(conn.getTarget());\n\n var toPt = conn.getEndPosition();\n var toDir = conn.getTarget().getConnectionDirection(conn.getSource());\n\n // calculate the lines between the two points.\n //\n this._route(conn, toPt, toDir, fromPt, fromDir);\n this._paint(conn);\n },\n\n /**\n *\n * Internal routing algorithm.\n *\n * @private\n * @param {draw2d.Connection} conn\n * @param {draw2d.geo.Point} fromPt\n * @param {Number} fromDir\n * @param {draw2d.geo.Point} toPt\n * @param {Number} toDir\n */\n _route: function _route(conn, fromPt, fromDir, toPt, toDir) {\n // fromPt is an x,y to start from.\n // fromDir is an angle that the first link must\n //\n var UP = _packages2.default.geo.Rectangle.DIRECTION_UP;\n var RIGHT = _packages2.default.geo.Rectangle.DIRECTION_RIGHT;\n var DOWN = _packages2.default.geo.Rectangle.DIRECTION_DOWN;\n var LEFT = _packages2.default.geo.Rectangle.DIRECTION_LEFT;\n\n var xDiff = fromPt.x - toPt.x;\n var yDiff = fromPt.y - toPt.y;\n var point = void 0;\n var dir = void 0;\n var pos = void 0;\n\n if (xDiff * xDiff < this.TOLxTOL && yDiff * yDiff < this.TOLxTOL) {\n conn.addPoint(new _packages2.default.geo.Point(toPt.x, toPt.y));\n return;\n }\n\n if (fromDir === LEFT) {\n if (xDiff > 0 && yDiff * yDiff < this.TOL && toDir === RIGHT) {\n point = toPt;\n dir = toDir;\n } else {\n if (xDiff < 0) {\n point = new _packages2.default.geo.Point(fromPt.x - this.MINDIST, fromPt.y);\n } else if (yDiff > 0 && toDir === DOWN || yDiff < 0 && toDir === UP) {\n point = new _packages2.default.geo.Point(toPt.x, fromPt.y);\n } else if (fromDir === toDir) {\n pos = Math.min(fromPt.x, toPt.x) - this.MINDIST;\n point = new _packages2.default.geo.Point(pos, fromPt.y);\n } else {\n point = new _packages2.default.geo.Point(fromPt.x - xDiff / 2, fromPt.y);\n }\n\n if (yDiff > 0) {\n dir = UP;\n } else {\n dir = DOWN;\n }\n }\n } else if (fromDir === RIGHT) {\n if (xDiff < 0 && yDiff * yDiff < this.TOL && toDir === LEFT) {\n point = toPt;\n dir = toDir;\n } else {\n if (xDiff > 0) {\n point = new _packages2.default.geo.Point(fromPt.x + this.MINDIST, fromPt.y);\n } else if (yDiff > 0 && toDir === DOWN || yDiff < 0 && toDir === UP) {\n point = new _packages2.default.geo.Point(toPt.x, fromPt.y);\n } else if (fromDir === toDir) {\n pos = Math.max(fromPt.x, toPt.x) + this.MINDIST;\n point = new _packages2.default.geo.Point(pos, fromPt.y);\n } else {\n point = new _packages2.default.geo.Point(fromPt.x - xDiff / 2, fromPt.y);\n }\n\n if (yDiff > 0) {\n dir = UP;\n } else {\n dir = DOWN;\n }\n }\n } else if (fromDir === DOWN) {\n if (xDiff * xDiff < this.TOL && yDiff < 0 && toDir === UP) {\n point = toPt;\n dir = toDir;\n } else {\n if (yDiff > 0) {\n point = new _packages2.default.geo.Point(fromPt.x, fromPt.y + this.MINDIST);\n } else if (xDiff > 0 && toDir === RIGHT || xDiff < 0 && toDir === LEFT) {\n point = new _packages2.default.geo.Point(fromPt.x, toPt.y);\n } else if (fromDir === toDir) {\n pos = Math.max(fromPt.y, toPt.y) + this.MINDIST;\n point = new _packages2.default.geo.Point(fromPt.x, pos);\n } else {\n point = new _packages2.default.geo.Point(fromPt.x, fromPt.y - yDiff / 2);\n }\n\n if (xDiff > 0) {\n dir = LEFT;\n } else {\n dir = RIGHT;\n }\n }\n } else if (fromDir === UP) {\n if (xDiff * xDiff < this.TOL && yDiff > 0 && toDir === DOWN) {\n point = toPt;\n dir = toDir;\n } else {\n if (yDiff < 0) {\n point = new _packages2.default.geo.Point(fromPt.x, fromPt.y - this.MINDIST);\n } else if (xDiff > 0 && toDir === RIGHT || xDiff < 0 && toDir === LEFT) {\n point = new _packages2.default.geo.Point(fromPt.x, toPt.y);\n } else if (fromDir === toDir) {\n pos = Math.min(fromPt.y, toPt.y) - this.MINDIST;\n point = new _packages2.default.geo.Point(fromPt.x, pos);\n } else {\n point = new _packages2.default.geo.Point(fromPt.x, fromPt.y - yDiff / 2);\n }\n\n if (xDiff > 0) {\n dir = LEFT;\n } else {\n dir = RIGHT;\n }\n }\n }\n this._route(conn, point, dir, toPt, toDir);\n conn.addPoint(fromPt);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/MazeConnectionRouter.js\":\n/*!*******************************************************!*\\\n !*** ./src/layout/connection/MazeConnectionRouter.js ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * <b>BETA VERSION. Not for production!!!<br></b>\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.layout.connection.ConnectionRouter\n */\n\nvar ROUTER_RECTS = null;\n\n_packages2.default.layout.connection.MazeConnectionRouter = _packages2.default.layout.connection.ConnectionRouter.extend(\n/** @lends draw2d.layout.connection.MazeConnectionRouter.prototype */\n{\n\n NAME: \"draw2d.layout.connection.MazeConnectionRouter\",\n\n /**\n * Creates a new Router object.\n *\n */\n init: function init() {\n this._super();\n\n this.useSpline = false;\n this.useSimplify = true;\n this.useSimplifyValue = 2;\n this.useDebug = false;\n this.useShift = 4;\n this.portOutletOffset = 15;\n\n // \tthis.finder = new PF.AStarFinder();\n // this.finder = new PF.AStarFinder({ allowDiagonal: true, dontCrossCorners: true});\n // this.finder = new PF.AStarFinder({ allowDiagonal: false});\n // this.finder = new PF.BiBreadthFirstFinder({ allowDiagonal: false});\n // this.finder = new PF.BreadthFirstFinder({ allowDiagonal: false});\n this.finder = new PF.JumpPointFinder({ allowDiagonal: false, dontCrossCorners: true });\n },\n\n /**\n * \n * Callback method if the router has been assigned to a connection.\n *\n * @param {draw2d.Connection} connection The assigned connection\n * @template\n * @since 2.7.2\n */\n onInstall: function onInstall(connection) {\n connection.installEditPolicy(new _packages2.default.policy.line.LineSelectionFeedbackPolicy());\n },\n\n /**\n * @inheritdoc\n */\n route: function route(conn, routingHints) {\n var fromPt = conn.getStartPoint();\n var fromDir = conn.getSource().getConnectionDirection(conn.getTarget());\n\n var toPt = conn.getEndPoint();\n var toDir = conn.getTarget().getConnectionDirection(conn.getSource());\n\n // calculate the lines between the two points.\n //\n this._route(conn, toPt, toDir, fromPt, fromDir);\n this._paint(conn);\n },\n\n /**\n * \n * Internal routing algorithm.\n * * <p>\n * Possible values:\n * <ul>\n * <li>up -> 0</li>\n * <li>right -> 1</li>\n * <li>down -> 2</li>\n * <li>left -> 3</li>\n * </ul>\n * <p>\n * @private\n * @param {draw2d.Connection} conn\n * @param {draw2d.geo.Point} fromPt\n * @param {Number} fromDir\n * @param {draw2d.geo.Point} toPt\n * @param {Number} toDir\n */\n _route: function _route(conn, fromPt, fromDir, toPt, toDir) {\n var shift = this.useShift;\n\n var oldToPt = toPt;\n var oldFromPt = fromPt;\n\n // move the points with an offset in the prefered routing direction of the ports\n // to avoid that the routed connection is sticking on one side of the figure.\n //\n fromPt = this.getAdjustedPoint(fromPt, fromDir, this.portOutletOffset);\n toPt = this.getAdjustedPoint(toPt, toDir, this.portOutletOffset);\n\n var grid = this.generateNoGoGrid(conn, fromPt, fromDir, toPt, toDir);\n\n // 4. Calculate the shortest path from source to target based on the grid\n //\n var path = this.finder.findPath(Math.max(fromPt.x) >> shift, Math.max(fromPt.y) >> shift, Math.max(toPt.x) >> shift, Math.max(0, toPt.y) >> shift, grid);\n\n // transfer the path from the grid based coordinates back to the real coordinates\n //\n path.forEach(function (e) {\n e.x = e[0] = e[0] << shift;\n e.y = e[1] = e[1] << shift;\n });\n\n // 5. paint the \"no go\" area in read if we are in debug mode\n //\n if (this.useDebug) {\n if (ROUTER_RECTS !== null) {\n ROUTER_RECTS.remove();\n }\n ROUTER_RECTS = conn.canvas.paper.set();\n\n for (var i = 0; i < grid.width; i++) {\n for (var j = 0; j < grid.height; j++) {\n if (!grid.isWalkableAt(i, j)) ROUTER_RECTS.push(conn.canvas.paper.rect(i << shift, j << shift, 1 << shift, 1 << shift).attr({\n \"fill\": \"red\",\n \"opacity\": \"0.1\"\n }));\n }\n }\n ROUTER_RECTS.push(conn.canvas.paper.rect(fromPt.x - 3, fromPt.y - 3, 6, 6).attr({\n \"fill\": \"#ff0000\",\n \"opacity\": \"0.8\"\n }));\n ROUTER_RECTS.push(conn.canvas.paper.rect(toPt.x - 3, toPt.y - 3, 6, 6).attr({\n \"fill\": \"#ff0000\",\n \"opacity\": \"0.8\"\n }));\n\n // paint the original calculated path without any simplification in BLUE\n path.forEach(function (e) {\n ROUTER_RECTS.push(conn.canvas.paper.rect(e.x - 3, e.y - 3, 6, 6).attr({ \"fill\": \"#0000ff\", \"opacity\": \"0.8\" }));\n });\n var p = path[0];\n var svgPathBefore = [\"M\", p.x, \" \", p.y];\n for (var _i = 1; _i < path.length; _i++) {\n p = path[_i];\n svgPathBefore.push(\"L\", p.x, \" \", p.y);\n }\n svgPathBefore = svgPathBefore.join(\"\");\n ROUTER_RECTS.push(conn.canvas.paper.path(svgPathBefore).attr({ \"stroke\": \"#0000ff\" }));\n }\n\n this.adjustPath(fromPt, path, fromDir);\n path.reverse();\n this.adjustPath(toPt, path, toDir);\n path.reverse();\n\n path.forEach(function (e) {\n e.x = e[0];\n e.y = e[1];\n });\n\n if (this.useSpline) {\n var _p = new _packages2.default.util.ArrayList();\n _p.add(oldFromPt);\n path.forEach(function (e) {\n _p.add(new _packages2.default.geo.Point(e[0], e[1]));\n });\n _p.add(oldToPt);\n\n if (this.useDebug) {\n path.forEach(function (e) {\n ROUTER_RECTS.push(conn.canvas.paper.rect(e.x - 3, e.y - 3, 6, 6).attr({ \"fill\": \"#00ff00\", \"opacity\": \"0.8\" }));\n });\n var pt = path[0];\n var _svgPathBefore = [\"M\", pt.x, \" \", pt.y];\n for (var _i2 = 1; _i2 < path.length; _i2++) {\n pt = path[_i2];\n _svgPathBefore.push(\"L\", pt.x, \" \", pt.y);\n }\n _svgPathBefore = _svgPathBefore.join(\"\");\n ROUTER_RECTS.push(conn.canvas.paper.path(_svgPathBefore).attr({ \"stroke\": \"#00ff00\" }));\n }\n\n this.spline = new _packages2.default.util.spline.CubicSpline();\n var splinePoints = this.spline.generate(_p, 8);\n\n if (this.useSimplify) {\n path = [];\n splinePoints.each(function (i, e) {\n path.push({ x: e.x, y: e.y });\n });\n path = this.simplify(path, this.useSimplifyValue, true);\n\n path.forEach(function (e) {\n conn.addPoint(e.x, e.y);\n });\n } else {\n splinePoints.each(function (i, e) {\n conn.addPoint(e);\n });\n }\n } else {\n if (this.useSimplify) {\n path = this.simplify(path, this.useSimplifyValue, true);\n }\n\n if (this.useDebug) {\n path.forEach(function (e) {\n ROUTER_RECTS.push(conn.canvas.paper.rect(e.x - 3, e.y - 3, 6, 6).attr({ \"fill\": \"#00ff00\", \"opacity\": \"0.8\" }));\n });\n var _p2 = path[0];\n var _svgPathBefore2 = [\"M\", _p2.x, \" \", _p2.y];\n for (var _i3 = 1; _i3 < path.length; _i3++) {\n _p2 = path[_i3];\n _svgPathBefore2.push(\"L\", _p2.x, \" \", _p2.y);\n }\n _svgPathBefore2 = _svgPathBefore2.join(\"\");\n ROUTER_RECTS.push(conn.canvas.paper.path(_svgPathBefore2).attr({ \"stroke\": \"#00ff00\" }));\n }\n\n conn.addPoint(oldFromPt);\n path.forEach(function (e) {\n conn.addPoint(e[0], e[1]);\n });\n conn.addPoint(oldToPt);\n }\n },\n\n /**\n * \n * Generate a grid base no go map required for the path finding algorithm\n *\n * @param conn\n * @returns {PF.Grid}\n * @private\n */\n generateNoGoGrid: function generateNoGoGrid(conn, fromPt, fromDir, toPt, toDir) {\n var shift = this.useShift;\n var oneShift2 = (1 << shift) / 2;\n\n // 1. generate a map with all \"no go\" areas. The bounding box of the shapes defines\n // the no go areas.\n //\n var canvasWidth = conn.getCanvas().paper.width >> shift;\n var canvasHeight = conn.getCanvas().paper.height >> shift;\n var grid = new PF.Grid(canvasWidth, canvasHeight);\n var figures = conn.getCanvas().getFigures();\n figures.each(function (i, e) {\n var box = e.getBoundingBox();\n // remove shapes which are hit by the input or output ports. It is not possible to route\n // out from a not walkable area\n if (box.hitTest(fromPt.x, fromPt.y) === true || box.hitTest(toPt.x, toPt.y)) {\n return;\n }\n\n var x = box.x >> shift;\n var y = box.y >> shift;\n if (x < 1 || y < 1) {\n return;\n }\n var r_orig = box.x + box.w + oneShift2 >> shift;\n var b_orig = box.y + box.h + oneShift2 >> shift;\n for (var _i4 = x; _i4 <= r_orig; _i4++) {\n for (var j = y; j <= b_orig; j++) {\n grid.setWalkableAt(_i4, j, false);\n }\n }\n });\n\n // 3. make the are walkable on the edge of the port side. Otherwise we a\n // an enclosed area around the port if we are very close to another shape\n //\n var box = conn.getSource().getParent().getBoundingBox();\n if (toDir === 1 || toDir === 3) {\n var y = box.y >> shift;\n if (y > 0) {\n var b_orig = box.y + box.h;\n var i = toPt.x >> shift;\n\n for (var j = y - 1; j << shift <= b_orig; j++) {\n grid.setWalkableAt(i, j, true);\n }\n }\n } else {\n var x = box.x >> shift;\n if (x > 0) {\n var r_orig = box.x + box.w;\n var _j = toPt.x >> shift;\n for (var _i5 = x - 1; _i5 << shift <= r_orig; _i5++) {\n grid.setWalkableAt(_i5, _j, true);\n }\n }\n }\n\n box = conn.getTarget().getParent().getBoundingBox();\n if (fromDir === 1 || fromDir === 3) {\n var _y = box.y >> shift;\n if (_y > 0) {\n var _b_orig = box.y + box.h;\n var _i6 = fromPt.x >> shift;\n for (var _j2 = _y - 1; _j2 << shift <= _b_orig; _j2++) {\n grid.setWalkableAt(_i6, _j2, true);\n }\n }\n } else {\n var _x = box.x >> shift;\n if (_x > 0) {\n var _r_orig = box.x + box.w;\n var _j3 = fromPt.x >> shift;\n for (var _i7 = _x - 1; _i7 << shift <= _r_orig; _i7++) {\n grid.setWalkableAt(_i7, _j3, true);\n }\n }\n }\n\n return grid;\n },\n\n /**\n * \n * move the point in the given direction with the given offset\n *\n * @param {draw2d.geo.Point} pt\n * @param {Number} direction\n * @param {Number} adjustment\n *\n * @returns {draw2d.geo.Point}\n */\n getAdjustedPoint: function getAdjustedPoint(pt, direction, adjustment) {\n\n switch (direction) {\n case _packages2.default.geo.Rectangle.DIRECTION_UP:\n return new _packages2.default.geo.Point(pt.x, pt.y - adjustment);\n case _packages2.default.geo.Rectangle.DIRECTION_RIGHT:\n return new _packages2.default.geo.Point(pt.x + adjustment, pt.y);\n case _packages2.default.geo.Rectangle.DIRECTION_DOWN:\n return new _packages2.default.geo.Point(pt.x, pt.y + adjustment);\n case _packages2.default.geo.Rectangle.DIRECTION_LEFT:\n return new _packages2.default.geo.Point(pt.x - adjustment, pt.y);\n }\n },\n\n adjustPath: function adjustPath(pt, path, direction) {\n var shift = this.useShift;\n var x = pt.x >> shift;\n var y = pt.y >> shift;\n path.forEach(function (e) {\n if (y === e[1] >> shift) {\n e[1] = pt.y;\n } else {\n return false;\n }\n });\n path.forEach(function (e) {\n if (x === e[0] >> shift) {\n e[0] = pt.x;\n } else {\n return false;\n }\n });\n },\n\n getSquareDistance: function getSquareDistance(p1, p2) {\n // square distance between 2 points\n\n var dx = p1.x - p2.x,\n dy = p1.y - p2.y;\n\n return dx * dx + dy * dy;\n },\n\n getSquareSegmentDistance: function getSquareSegmentDistance(p, p1, p2) {\n // square distance from a point to a segment\n\n var x = p1.x,\n y = p1.y,\n dx = p2.x - x,\n dy = p2.y - y,\n t = void 0;\n\n if (dx !== 0 || dy !== 0) {\n\n t = ((p.x - x) * dx + (p.y - y) * dy) / (dx * dx + dy * dy);\n\n if (t > 1) {\n x = p2.x;\n y = p2.y;\n } else if (t > 0) {\n x += dx * t;\n y += dy * t;\n }\n }\n\n dx = p.x - x;\n dy = p.y - y;\n\n return dx * dx + dy * dy;\n },\n\n simplifyRadialDistance: function simplifyRadialDistance(points, sqTolerance) {\n // distance-based simplification\n\n var i = void 0,\n len = points.length,\n point = null,\n prevPoint = points[0],\n newPoints = [prevPoint];\n\n for (i = 1; i < len; i++) {\n point = points[i];\n\n if (this.getSquareDistance(point, prevPoint) > sqTolerance) {\n newPoints.push(point);\n prevPoint = point;\n }\n }\n\n if (prevPoint !== point) {\n newPoints.push(point);\n }\n\n return newPoints;\n },\n\n // simplification using optimized Douglas-Peucker algorithm with recursion elimination\n\n simplifyDouglasPeucker: function simplifyDouglasPeucker(points, sqTolerance) {\n\n var len = points.length,\n MarkerArray = (typeof Uint8Array === \"undefined\" ? \"undefined\" : _typeof(Uint8Array)) !== undefined + '' ? Uint8Array : Array,\n markers = new MarkerArray(len),\n first = 0,\n last = len - 1,\n i = void 0,\n maxSqDist = void 0,\n sqDist = void 0,\n index = void 0,\n firstStack = [],\n lastStack = [],\n newPoints = [];\n\n markers[first] = markers[last] = 1;\n\n while (last) {\n\n maxSqDist = 0;\n\n for (i = first + 1; i < last; i++) {\n sqDist = this.getSquareSegmentDistance(points[i], points[first], points[last]);\n\n if (sqDist > maxSqDist) {\n index = i;\n maxSqDist = sqDist;\n }\n }\n\n if (maxSqDist > sqTolerance) {\n markers[index] = 1;\n\n firstStack.push(first);\n lastStack.push(index);\n\n firstStack.push(index);\n lastStack.push(last);\n }\n\n first = firstStack.pop();\n last = lastStack.pop();\n }\n\n for (i = 0; i < len; i++) {\n if (markers[i]) {\n newPoints.push(points[i]);\n }\n }\n\n return newPoints;\n },\n\n simplify: function simplify(points, tolerance, highestQuality) {\n\n var sqTolerance = tolerance !== undefined ? tolerance * tolerance : 1;\n\n if (!highestQuality) {\n points = this.simplifyRadialDistance(points, sqTolerance);\n }\n points = this.simplifyDouglasPeucker(points, sqTolerance);\n\n return points;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/MuteableManhattanConnectionRouter.js\":\n/*!********************************************************************!*\\\n !*** ./src/layout/connection/MuteableManhattanConnectionRouter.js ***!\n \\********************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * JUST FOR RESEARCH AT THE MOMENT!!!!!!\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.layout.connection.ManhattanConnectionRouter\n */\n\n_packages2.default.layout.connection.MuteableManhattanConnectionRouter = _packages2.default.layout.connection.ManhattanConnectionRouter.extend(\n/** @lends draw2d.layout.connection.MuteableManhattanConnectionRouter.prototype */\n{\n\n NAME: \"draw2d.layout.connection.MuteableManhattanConnectionRouter\",\n\n UP: new _packages2.default.geo.Ray(0, -1),\n DOWN: new _packages2.default.geo.Ray(0, 1),\n LEFT: new _packages2.default.geo.Ray(-1, 0),\n RIGHT: new _packages2.default.geo.Ray(1, 0),\n\n /**\n * Creates a new Router object.\n *\n */\n init: function init() {\n this._super();\n\n this.rowsUsed = {}; //new HashMap<Integer, Integer>();\n this.colsUsed = {}; //new HashMap<Integer, Integer>();\n this.constraints = {}; //new HashMap<Connection, Object>();\n this.reservedInfo = {}; //new HashMap<Connection, ReservedInfo>();\n },\n\n /**\n * @inheritdoc\n */\n route: function route(conn, routingHints) {\n this.rowsUsed = {}; //new HashMap<Integer, Integer>();\n this.colsUsed = {}; //new HashMap<Integer, Integer>();\n this.constraints = {}; //new HashMap<Connection, Object>();\n this.reservedInfo = {}; //new HashMap<Connection, ReservedInfo>();\n\n var canvas = conn.getCanvas();\n var i = void 0;\n\n var startPoint = conn.getStartPoint();\n var endPoint = conn.getEndPoint();\n\n var start = new _packages2.default.geo.Ray(startPoint);\n var end = new _packages2.default.geo.Ray(endPoint);\n var average = new _packages2.default.geo.Ray((start.x + end.x) / 2, (start.y + end.y) / 2);\n\n var direction = new _packages2.default.geo.Ray(end.x - start.x, end.y - start.y);\n var startNormal = this.getStartDirection(conn);\n var endNormal = this.getEndDirection(conn);\n\n var positions = new _packages2.default.util.ArrayList();\n var horizontal = startNormal.isHorizontal();\n\n if (horizontal) {\n positions.add(start.y);\n } else {\n positions.add(start.x);\n }\n\n horizontal = !horizontal;\n\n // dot product is zero if the vector orthogonal (90°)\n if (startNormal.dot(endNormal) === 0) {\n if (startNormal.dot(direction) >= 0 && endNormal.dot(direction) <= 0) {\n // 0\n } else {\n\n // 2\n if (startNormal.dot(direction) < 0) i = startNormal.similarity(start.translated(startNormal.scaled(10)));else {\n if (horizontal) i = average.y;else i = average.x;\n }\n\n positions.add(i);\n horizontal = !horizontal;\n\n if (endNormal.dot(direction) > 0) {\n i = endNormal.similarity(end.translated(endNormal.scaled(10)));\n } else {\n if (horizontal) {\n i = average.y;\n } else {\n i = average.x;\n }\n }\n positions.add(i);\n horizontal = !horizontal;\n }\n } else {\n if (startNormal.dot(endNormal) > 0) {\n //1\n if (startNormal.dot(direction) >= 0) i = startNormal.similarity(start.translated(startNormal.scaled(10)));else i = endNormal.similarity(end.translated(endNormal.scaled(10)));\n positions.add(i);\n horizontal = !horizontal;\n } else {\n //3 or 1\n if (startNormal.dot(direction) < 0) {\n i = startNormal.similarity(start.translated(startNormal.scaled(10)));\n positions.add(i);\n horizontal = !horizontal;\n }\n\n // my tweak to route SCA wires starts\n if (this.isCycle(conn)) {\n if (horizontal) i = conn.getSource().getParent().getBoundingBox().getTop() - 10; // * index;\n else i = conn.getSource().getParent().getBoundingBox().getRight() + 10; // * index;\n } else {\n if (horizontal) {\n var j = average.y;\n\n var next = endNormal.similarity(end.translated(endNormal.scaled(10)));\n\n var trial = new _packages2.default.geo.Ray(positions.get(positions.getSize() - 1), j);\n var figure = this.findFirstFigureAtStraightLine(canvas, trial, this.LEFT, _packages2.default.util.ArrayList.EMPTY_LIST);\n\n while (figure != null && figure.getBoundingBox().x + figure.getBoundingBox().width > next) {\n j = figure.getBoundingBox().y + figure.getBoundingBox().height + 5;\n trial.y = j;\n figure = this.findFirstFigureAtStraightLine(canvas, trial, this.LEFT, _packages2.default.util.ArrayList.EMPTY_LIST);\n }\n\n i = j;\n } else {\n var _figure = this.findFirstFigureAtStraightLine(canvas, start, this.RIGHT, this.getExcludingFigures(conn));\n if (_figure == null) i = average.x;else {\n i = Math.min(average.x, start.translated(new _packages2.default.geo.Ray(3 * (_figure.getBoundingBox().x - start.x) / 4, 0)).x);\n i = Math.max(start.x, i);\n }\n i = this.adjust(conn, i);\n }\n }\n // my tweak to route SCA wires ends\n positions.add(i);\n horizontal = !horizontal;\n }\n }\n if (horizontal) positions.add(end.y);else positions.add(end.x);\n\n this.processPositions(start, end, positions, startNormal.isHorizontal(), conn);\n\n this._paint(conn);\n },\n\n /**\n *\n *\n * @param {draw2d.Connection} connection\n * @param {Number} r\n * @param {Number} n\n * @param {Number} x\n *\n * @private\n */\n getColumnNear: function getColumnNear(connection, r, n, x) {\n var min = Math.min(n, x);\n var max = Math.max(n, x);\n\n if (min > r) {\n max = min;\n min = r - (min - r);\n }\n if (max < r) {\n min = max;\n max = r + (r - max);\n }\n\n var proximity = 0;\n var direction = -1;\n if (r % 6 !== 0) {\n r = r - r % 6;\n }\n\n var i = void 0;\n while (proximity < r) {\n i = parseInt(r + proximity * direction);\n if (!(i in this.colsUsed)) {\n this.colsUsed[i] = i;\n this.reserveColumn(connection, i);\n return i;\n }\n\n if (i <= min) {\n return i + 6;\n }\n\n if (i >= max) {\n return i - 6;\n }\n\n if (direction === 1) {\n direction = -1;\n } else {\n direction = 1;\n proximity += 6;\n }\n }\n return r;\n },\n\n getRowNear: function getRowNear(connection, r, n, x) {\n var min = Math.min(n, x);\n var max = Math.max(n, x);\n\n if (min > r) {\n max = min;\n min = r - (min - r);\n }\n if (max < r) {\n min = max;\n max = r + (r - max);\n }\n\n var proximity = 0;\n var direction = -1;\n if (r % 6 !== 0) {\n r = r - r % 6;\n }\n\n var i = void 0;\n while (proximity < r) {\n i = parseInt(r + proximity * direction);\n if (!(i in this.rowsUsed)) {\n this.rowsUsed[i] = i;\n this.reserveRow(connection, i);\n return i;\n }\n if (i <= min) return i + 6;\n if (i >= max) return i - 6;\n if (direction === 1) direction = -1;else {\n direction = 1;\n proximity += 6;\n }\n }\n return r;\n },\n\n /**\n * <li>up -> 0</li>\n * <li>right -> 1</li>\n * <li>down -> 2</li>\n * <li>left -> 3</li>\n **/\n getEndDirection: function getEndDirection(conn) {\n var p = conn.getEndPoint();\n var rect = conn.getTarget().getParent().getBoundingBox();\n return this.getDirection(rect, p);\n },\n\n /**\n * <li>up -> 0</li>\n * <li>right -> 1</li>\n * <li>down -> 2</li>\n * <li>left -> 3</li>\n **/\n getStartDirection: function getStartDirection(conn) {\n var p = conn.getStartPoint();\n var rect = conn.getSource().getParent().getBoundingBox();\n return this.getDirection(rect, p);\n },\n\n /**\n * Returns the direction the point <i>p</i> is in relation to the given rectangle.\n * Possible values are LEFT (-1,0), RIGHT (1,0), UP (0,-1) and DOWN (0,1).\n *\n * @param r the rectangle\n * @param p the point\n * @returns the direction from <i>r</i> to <i>p</i>\n */\n getDirection: function getDirection(r, p) {\n var i = Math.abs(r.y - p.y);\n var distance = Math.abs(r.x - p.x);\n var direction = this.LEFT;\n\n if (i <= distance) {\n distance = i;\n direction = this.UP;\n }\n\n i = Math.abs(r.getBottom() - p.y);\n if (i <= distance) {\n distance = i;\n direction = this.DOWN;\n }\n\n i = Math.abs(r.getRight() - p.x);\n if (i < distance) {\n direction = this.RIGHT;\n }\n\n return direction;\n },\n\n processPositions: function processPositions( /*Ray*/start, /*Ray*/end, /*List*/positions, /*boolean*/horizontal, /*Connection*/conn) {\n this.removeReservedLines(conn);\n\n var pos = [];\n if (horizontal) pos.push(start.x);else pos.push(start.y);\n var i = void 0;\n for (i = 0; i < positions.getSize(); i++) {\n pos.push(positions.get(i));\n }\n\n if (horizontal === (positions.getSize() % 2 === 1)) {\n pos.push(end.x);\n } else {\n pos.push(end.y);\n }\n\n conn.addPoint(new _packages2.default.geo.Point(start.x, start.y));\n var p = void 0;\n var current = void 0,\n prev = void 0,\n min = void 0,\n max = void 0;\n var adjust = void 0;\n for (i = 2; i < pos.length - 1; i++) {\n horizontal = !horizontal;\n prev = pos[i - 1];\n current = pos[i];\n\n adjust = i !== pos.length - 2;\n if (horizontal) {\n if (adjust) {\n min = pos[i - 2];\n max = pos[i + 2];\n pos[i] = current = this.getRowNear(conn, current, min, max);\n }\n p = new _packages2.default.geo.Point(prev, current);\n } else {\n if (adjust) {\n min = pos[i - 2];\n max = pos[i + 2];\n pos[i] = current = this.getColumnNear(conn, current, min, max);\n }\n p = new _packages2.default.geo.Point(current, prev);\n }\n conn.addPoint(p);\n }\n conn.addPoint(new _packages2.default.geo.Point(end.x, end.y));\n },\n\n removeReservedLines: function removeReservedLines(connection) {\n var rInfo = this.reservedInfo[connection];\n if (typeof rInfo === \"undefined\" || rInfo === null) return;\n\n for (var i = 0; i < rInfo.reservedRows.getSize(); i++) {\n delete this.rowsUsed[rInfo.reservedRows.get(i)];\n }\n for (var _i = 0; _i < rInfo.reservedCols.getSize(); _i++) {\n delete this.colsUsed[rInfo.reservedCols.get(_i)];\n }\n delete this.reservedInfo[connection];\n },\n\n reserveColumn: function reserveColumn(connection, column) {\n var info = this.reservedInfo[connection];\n if (typeof info === \"undefined\" || info === null) {\n info = { reservedCols: new _packages2.default.util.ArrayList(), reservedRows: new _packages2.default.util.ArrayList() };\n this.reservedInfo[connection] = info;\n }\n info.reservedCols.add(column);\n },\n\n reserveRow: function reserveRow(connection, row) {\n var info = this.reservedInfo[connection];\n if (typeof info === \"undefined\" || info === null) {\n info = { reservedCols: new _packages2.default.util.ArrayList(), reservedRows: new _packages2.default.util.ArrayList() };\n this.reservedInfo[connection] = info;\n }\n info.reservedRows.add(row);\n },\n\n getConstraint: function getConstraint(connection) {\n return this.constraints[connection];\n },\n\n setConstraint: function setConstraint(connection, constraint) {\n this.constraints[connection] = constraint;\n },\n\n isCycle: function isCycle(conn) {\n var source = conn.getSource().getParent();\n var target = conn.getTarget().getParent();\n\n return source.id === target.id;\n },\n\n getExcludingFigures: function getExcludingFigures(conn) {\n var excluding = new _packages2.default.util.ArrayList();\n\n excluding.add(conn.getSource().getParent());\n excluding.add(conn.getTarget().getParent());\n\n return excluding;\n },\n\n findFirstFigureAtStraightLine: function findFirstFigureAtStraightLine(canvas, /*Ray*/start, /*Ray*/direction, /*List*/excluding) {\n var figure = null;\n\n var figures = canvas.getFigures();\n var _this = this;\n figures.each(function (i, child) {\n try {\n if (!excluding.contains(child)) {\n var rect = child.getBoundingBox();\n if (_this.LEFT.equals(direction)) {\n if (start.x > rect.x && start.y >= rect.y && start.y <= rect.y + rect.h) {\n if (figure === null || rect.x > figure.getBoundingBox().x) figure = child;\n }\n } else if (_this.RIGHT.equals(direction)) {\n if (start.x < rect.x + rect.w && start.y >= rect.y && start.y <= rect.y + rect.h) {\n if (figure == null || rect.x < figure.getBoundingBox().x) figure = child;\n }\n } else if (_this.UP.equals(direction)) {\n if (start.y > rect.y && start.x >= rect.x && start.x <= rect.x + rect.w) {\n if (figure === null || rect.y > figure.getBoundingBox().y) figure = child;\n }\n } else if (_this.DOWN.equals(direction)) {\n if (start.y < rect.y + rect.h && start.x >= rect.x && start.x <= rect.x + rect.w) {\n if (figure === null || rect.y < figure.getBoundingBox().y) figure = child;\n }\n }\n }\n } catch (exc) {\n console.log(exc);\n debugger;\n }\n });\n return figure;\n },\n\n adjust: function adjust(connection, col) {\n var column = col;\n\n var start = connection.getSource().getPosition();\n\n var connections = connection.getCanvas().getLines();\n connections.each(function (i, conn) {\n try {\n if (conn === connection) return;\n\n var end = conn.getTarget().getPosition();\n if (start.x < end.x && start.y === end.y) {\n if (conn.getVertices().getMidpoint().x <= col) column = conn.getVertices().getMidpoint().x - 5;\n }\n } catch (exc) {\n console.log(exc);\n debugger;\n }\n });\n return column;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/RubberbandRouter.js\":\n/*!***************************************************!*\\\n !*** ./src/layout/connection/RubberbandRouter.js ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Router for direct connections between two ports with a rubber band effect\n *\n *\n * @example\n *\n * let RubberConnection= draw2d.Connection.extend({\n * NAME: \"RubberConnection\",\n *\n * init:function(attr, setter, getter)\n * {\n * this._super(extend({\n * color: \"#33691e\",\n * stroke:1,\n * outlineStroke:0,\n * outlineColor:null\n * },attr),\n * setter,\n * getter);\n *\n *\n * this.setRouter(new draw2d.layout.connection.RubberbandRouter());\n * },\n *\n * repaint:function(attributes)\n * {\n * if (this.repaintBlocked===true || this.shape === null){\n * return;\n * }\n * attributes= attributes || {};\n * // enrich the rendering with a \"fill\" attribute\n * if(typeof attributes.fill === \"undefined\"){\n * \t attributes.fill = \"#aed581\";\n * }\n * this._super(attributes);\n * }\n * });\n *\n * let createConnection=function(){\n * let con = new RubberConnection();\n * return con;\n * };\n *\n * // install a custom connection create policy\n * //\n * canvas.installEditPolicy( new draw2d.policy.connection.DragConnectionCreatePolicy({\n * createConnection: createConnection\n * }));\n *\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * let start = new draw2d.shape.node.Start();\n * let end = new draw2d.shape.node.End();\n\n * // ...add it to the canvas\n * canvas.add( start, 50,50);\n * canvas.add( end, 230,80);\n *\n * // first Connection\n * //\n * let c = createConnection();\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n * canvas.add(c);\n *\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.layout.connection.ConnectionRouter\n */\n_packages2.default.layout.connection.RubberbandRouter = _packages2.default.layout.connection.ConnectionRouter.extend(\n/** @lends draw2d.layout.connection.RubberbandRouter.prototype */\n{\n\n NAME: \"draw2d.layout.connection.RubberbandRouter\",\n\n /**\n * Creates a new Router object\n *\n */\n init: function init() {\n this._super();\n },\n\n /**\n * \n * Callback method if the router has been assigned to a connection.\n *\n * @param {draw2d.Connection} connection The assigned connection\n * @template\n * @since 2.7.2\n */\n onInstall: function onInstall(connection) {\n connection.installEditPolicy(new _packages2.default.policy.line.LineSelectionFeedbackPolicy());\n },\n\n /**\n * \n * Invalidates the given Connection\n */\n invalidate: function invalidate() {},\n\n /**\n * @inheritdoc\n */\n route: function route(connection, routingHints) {\n var thickness = 10;\n\n var start = connection.getStartPoint();\n var end = connection.getEndPoint();\n\n // 1. Calculate the vector AB→ by subtracting the coordinates of A from the coordinates of B.\n // Let's say you get (u,v) as the vector components.\n //\n // 2. normalize the vector (u,v,) to a length of |1|\n //\n // 3. The vector (−v,u) is AB→ rotated by 90 degrees counterclockwise. (Why? Look up \"rotation matrix\").\n //\n // 4. Add (−v,u) to A to get C. Also add (−v,u) to B to get D.\n\n var uv = end.subtract(start);\n var uv2 = uv.clone();\n var length = uv.length();\n\n var strength = 1 - Math.min(0.75, 1 / 500 * length);\n var first = start.lerp(end, 0.25 * strength); // go closer to the start point if the strength grows\n var second = start.lerp(end, 0.5);\n var third = start.lerp(end, 1 - 0.25 * strength); // go closer to the end point if the strengths grows\n\n thickness = Math.max(5, thickness * strength);\n\n uv.x = uv.x / length * thickness;\n uv.y = uv.y / length * thickness;\n\n uv2.x = uv2.x / length * (thickness * strength);\n uv2.y = uv2.y / length * (thickness * strength);\n\n // anchor points for the 180 arc at the start point of the connection\n //\n var start90 = new _packages2.default.geo.Point(-uv.y + start.x, uv.x + start.y);\n var start270 = new _packages2.default.geo.Point(uv.y + start.x, -uv.x + start.y);\n\n // anchor point in the first segment ( on the upside/downside) of the connection\n //\n var first90 = new _packages2.default.geo.Point(-uv2.y + first.x, uv2.x + first.y);\n var first270 = new _packages2.default.geo.Point(uv2.y + first.x, -uv2.x + first.y);\n\n // center upside/downside anchor point of the connection\n //\n var second90 = new _packages2.default.geo.Point(-uv2.y + second.x, uv2.x + second.y);\n var second270 = new _packages2.default.geo.Point(uv2.y + second.x, -uv2.x + second.y);\n\n // anchor point in the third segment of the connection\n //\n var third90 = new _packages2.default.geo.Point(-uv2.y + third.x, uv2.x + third.y);\n var third270 = new _packages2.default.geo.Point(uv2.y + third.x, -uv2.x + third.y);\n\n // anchor point for the 180 arc at the end\n //\n var end90 = new _packages2.default.geo.Point(-uv.y + end.x, uv.x + end.y);\n var end270 = new _packages2.default.geo.Point(uv.y + end.x, -uv.x + end.y);\n\n // required for hit tests\n //\n connection.addPoint(start);\n connection.addPoint(end);\n\n // calculate the path\n var path = [\"M\", start90.x, \",\", start90.y];\n path.push(\"A\", thickness, \",\", thickness, \"0 0 1 \", start270.x, \",\", start270.y);\n path.push(\"C\", start270.x, \",\", start270.y, first270.x, \",\", first270.y, second270.x, \",\", second270.y);\n path.push(\"C\", second270.x, \",\", second270.y, third270.x, \",\", third270.y, end270.x, \",\", end270.y);\n path.push(\"A\", thickness, \",\", thickness, \"0 0 1\", end90.x, \",\", end90.y);\n path.push(\"C\", end90.x, \",\", end90.y, third90.x, \",\", third90.y, second90.x, \",\", second90.y);\n path.push(\"C\", second90.x, \",\", second90.y, first90.x, \",\", first90.y, start90.x, \",\", start90.y);\n\n connection.svgPathString = path.join(\" \");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/SketchConnectionRouter.js\":\n/*!*********************************************************!*\\\n !*** ./src/layout/connection/SketchConnectionRouter.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Provide a router which routes the connection in a hand drawn manner.\n *\n * @example\n *\n * let createConnection=function(){\n * let con = new draw2d.Connection();\n * con.setRouter(new draw2d.layout.connection.SketchConnectionRouter());\n * return con;\n * };\n *\n * // install a custom connection create policy\n * //\n * canvas.installEditPolicy( new draw2d.policy.connection.DragConnectionCreatePolicy({\n * createConnection: createConnection\n * }));\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * let f1 = new draw2d.shape.analog.OpAmp({x:10, y:10});\n * let f2 = new draw2d.shape.analog.ResistorVertical({angle:90, height:20, x:300, y:150});\n *\n * // ...add it to the canvas\n * //\n * canvas.add( f1);\n * canvas.add( f2);\n *\n * // first Connection\n * //\n * let c = createConnection();\n * c.setSource(f1.getOutputPort(0));\n * c.setTarget(f2.getHybridPort(0));\n * canvas.add(c);\n *\n * @inheritable\n * @author Andreas Herz\n * @since 2.7.2\n * @extends draw2d.layout.connection.MazeConnectionRouter\n */\n_packages2.default.layout.connection.SketchConnectionRouter = _packages2.default.layout.connection.MazeConnectionRouter.extend(\n/** @lends draw2d.layout.connection.SketchConnectionRouter.prototype */\n{\n NAME: \"draw2d.layout.connection.SketchConnectionRouter\",\n\n /**\n * Creates a new Router object.\n *\n */\n init: function init() {\n this._super();\n\n this.useSpline = true;\n this.useShift = 5;\n this.useSimplifyValue = 0.2;\n this.finder = new PF.JumpPointFinder({ allowDiagonal: false, dontCrossCorners: true });\n },\n\n /**\n *\n * Callback method if the router has been assigned to a connection.\n *\n * @param {draw2d.Connection} connection The assigned connection\n * @since 2.7.2\n */\n onInstall: function onInstall(connection) {\n connection.installEditPolicy(new _packages2.default.policy.line.LineSelectionFeedbackPolicy());\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/SplineConnectionRouter.js\":\n/*!*********************************************************!*\\\n !*** ./src/layout/connection/SplineConnectionRouter.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A ManhattanConnectionRouter with an spline interpolation between the bend points.\n *\n * @example\n *\n * let createConnection=function(){\n * let con = new draw2d.Connection();\n * con.setRouter(new draw2d.layout.connection.SplineConnectionRouter());\n * return con;\n * };\n *\n * // install a custom connection create policy\n * //\n * canvas.installEditPolicy( new draw2d.policy.connection.DragConnectionCreatePolicy({\n * createConnection: createConnection\n * }));\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * let f1 = new draw2d.shape.analog.OpAmp({x:10, y:10});\n * let f2 = new draw2d.shape.analog.ResistorVertical({angle:90, height:20, x:300, y:150});\n *\n * // ...add it to the canvas\n * //\n * canvas.add( f1);\n * canvas.add( f2);\n *\n * // first Connection\n * //\n * let c = createConnection();\n * c.setSource(f1.getOutputPort(0));\n * c.setTarget(f2.getHybridPort(0));\n * canvas.add(c);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.layout.connection.ManhattanConnectionRouter\n */\n_packages2.default.layout.connection.SplineConnectionRouter = _packages2.default.layout.connection.ManhattanConnectionRouter.extend(\n/** @lends draw2d.layout.connection.SplineConnectionRouter.prototype */\n{\n\n NAME: \"draw2d.layout.connection.SplineConnectionRouter\",\n\n /**\n * Creates a new Router object\n */\n init: function init() {\n this._super();\n\n // this.spline = new draw2d.util.spline.CatmullRomSpline();\n this.spline = new _packages2.default.util.spline.CubicSpline();\n // this.spline = new draw2d.util.spline.BezierSpline();\n\n this.MINDIST = 50;\n },\n\n /**\n *\n * Callback method if the router has been assigned to a connection.\n *\n * @param {draw2d.Connection} connection The assigned connection\n * @template\n * @since 2.7.2\n */\n onInstall: function onInstall(connection) {\n connection.installEditPolicy(new _packages2.default.policy.line.LineSelectionFeedbackPolicy());\n },\n\n /**\n * @inheritdoc\n */\n route: function route(conn, routingHints) {\n var i = void 0;\n var fromPt = conn.getStartPoint();\n var fromDir = conn.getSource().getConnectionDirection(conn.getTarget());\n\n var toPt = conn.getEndPoint();\n var toDir = conn.getTarget().getConnectionDirection(conn.getSource());\n\n // calculate the manhatten bend points between start/end.\n //\n this._route(conn, toPt, toDir, fromPt, fromDir);\n\n var ps = conn.getVertices();\n\n conn.oldPoint = null;\n conn.lineSegments = new _packages2.default.util.ArrayList();\n conn.vertices = new _packages2.default.util.ArrayList();\n\n var splinePoints = this.spline.generate(ps, 8);\n splinePoints.each(function (i, e) {\n conn.addPoint(e);\n });\n\n // calculate the path string for the SVG rendering\n //\n ps = conn.getVertices();\n var length = ps.getSize();\n var p = ps.get(0);\n var path = [\"M\", p.x, \" \", p.y];\n for (i = 1; i < length; i++) {\n p = ps.get(i);\n path.push(\"L\", p.x, \" \", p.y);\n }\n conn.svgPathString = path.join(\"\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/VertexRouter.js\":\n/*!***********************************************!*\\\n !*** ./src/layout/connection/VertexRouter.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A Router with unlimited vertices.\n *\n *\n * @example\n *\n * // Override the default connection type. This is used during drag&drop operations of ports.\n * //\n * let createConnection=function(){\n * // return my special kind of connection\n * let con = new draw2d.Connection();\n * con.setRouter(new draw2d.layout.connection.VertexRouter());\n * return con;\n * };\n *\n * // Install a special policy into the canvas to use my own implementation of connection\n * // if we drag&drop a port\n * //\n * canvas.installEditPolicy( new draw2d.policy.connection.DragConnectionCreatePolicy({\n * createConnection: createConnection\n * }));\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * let start = new draw2d.shape.node.Start();\n * let end = new draw2d.shape.node.End();\n\n * // ...add it to the canvas\n * canvas.add( start, 50,50);\n * canvas.add( end, 230,80);\n *\n * // first Connection\n * //\n * let c = createConnection();\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n * canvas.add(c);\n *\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.layout.connection.ConnectionRouter\n */\n_packages2.default.layout.connection.VertexRouter = _packages2.default.layout.connection.ConnectionRouter.extend(\n/** @lends draw2d.layout.connection.VertexRouter.prototype */\n{\n\n NAME: \"draw2d.layout.connection.VertexRouter\",\n\n /**\n * Creates a new Router object\n *\n */\n init: function init() {\n this._super();\n },\n\n /**\n *\n * Callback method if the router has been assigned to a connection.\n *\n * @param {draw2d.Connection} connection The assigned connection\n * @template\n * @since 2.7.2\n */\n onInstall: function onInstall(connection) {\n connection.installEditPolicy(new _packages2.default.policy.line.VertexSelectionFeedbackPolicy());\n },\n\n /**\n *\n * Invalidates the given Connection\n */\n invalidate: function invalidate() {},\n\n /**\n * @inheritdoc\n */\n route: function route(connection, routingHints) {\n // reuse all existing vertex points\n //\n var count = routingHints.oldVertices.getSize();\n for (var i = 0; i < count; i++) {\n connection.addPoint(routingHints.oldVertices.get(i));\n }\n\n var ps = connection.getVertices();\n\n // respect the calculated anchor position if the start/end port has set any Anchor impl.\n var startAnchor = connection.getStartPosition(ps.get(1));\n var endAnchor = connection.getEndPosition(ps.get(ps.getSize() - 2));\n ps.first().setPosition(startAnchor);\n ps.last().setPosition(endAnchor);\n\n this._paint(connection);\n },\n\n /**\n *\n * Callback method for the PolyLine or Connection to check if it possible to remove a vertex from\n * the list. The router can send an veto for this.\n * Per default it is not possible to remove any vertex from the PolyLine exceptional if any interactive\n * router is installed.\n *\n * @param {draw2d.Connection} conn\n * @param {Number} index\n *\n * @since 4.2.3\n */\n canRemoveVertexAt: function canRemoveVertexAt(conn, index) {\n return false;\n },\n\n /**\n * Callback method for the PolyLine or Connection to verify that a segment is deletable.\n *\n * @param {draw2d.Connection} conn\n * @param {Number} index\n *\n * @returns {Boolean}\n * @since 4.2.3\n */\n canRemoveSegmentAt: function canRemoveSegmentAt(conn, index) {\n\n var segmentCount = conn.getVertices().getSize() - 1; // segmentCount is one less than vertex count\n\n // The first and last segment isn't deletable\n //\n if (index <= 0 || index >= segmentCount) {\n return false;\n }\n\n // a connection need at least one strokes\n //\n return segmentCount >= 2;\n },\n\n /**\n *\n * Tweak or enrich the polyline persistence data with routing information\n *\n * @since 2.10.0\n * @param {draw2d.shape.basic.PolyLine} line\n * @param {Object} memento The memento data of the polyline\n *\n * @returns {Object}\n */\n getPersistentAttributes: function getPersistentAttributes(line, memento) {\n memento.vertex = [];\n\n line.getVertices().each(function (i, e) {\n memento.vertex.push({ x: e.x, y: e.y });\n });\n\n return memento;\n },\n\n /**\n *\n * set the attributes for the polyline with routing information\n *\n * @since 2.10.0\n * @param {Object} memento\n */\n setPersistentAttributes: function setPersistentAttributes(line, memento) {\n // restore the points from the JSON data and add them to the polyline\n //\n if (Array.isArray(memento.vertex) && memento.vertex.length > 1) {\n\n line.oldPoint = null;\n line.lineSegments = new _packages2.default.util.ArrayList();\n\n line.setVertices(memento.vertex);\n }\n },\n\n /**\n *\n *\n * The draw2d.Connection delegates the drag operation to the router. The router can\n * handle the different constraints of the connection and just drag&drop a single segment\n * instead of the complete connection.\n *\n * @param {draw2d.shape.basic.Line} line the related line to handle\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n *\n * @since 6.1.0\n */\n onDrag: function onDrag(line, dx, dy, dx2, dy2) {\n var count = line.getVertices().getSize() - 1;\n for (var i = 1; i < count; i++) {\n line.getVertex(i).translate(dx2, dy2);\n }\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/BottomLocator.js\":\n/*!*********************************************!*\\\n !*** ./src/layout/locator/BottomLocator.js ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A bottomLocator is used to place figures at the bottom of a parent shape.\n *\n *\n *\n * @example\n *\n * // create a basic figure and add a Label/child via API call\n * //\n * let circle = new draw2d.shape.basic.Circle({\n * x:100,\n * y:50,\n * diameter:100,\n * stroke: 3,\n * color:\"#A63343\",\n * bgColor:\"#E65159\"\n * });\n *\n * circle.add(new draw2d.shape.basic.Label({text:\"Bottom Label\"}), new draw2d.layout.locator.BottomLocator());\n * canvas.add( circle);\n *\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.Locator\n */\n_packages2.default.layout.locator.BottomLocator = _packages2.default.layout.locator.Locator.extend(\n/** @lends draw2d.layout.locator.BottomLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.BottomLocator\",\n\n /**\n *\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Relocates the given Figure.\n *\n * @param {Number} index child index of the target\n * @param {draw2d.Figure} target The figure to relocate\n **/\n relocate: function relocate(index, target) {\n var parent = target.getParent();\n var boundingBox = parent.getBoundingBox();\n // I made a wrong decision in the port handling: anchor point\n // is in the center and not topLeft. Now I must correct this flaw here, and there, and...\n // shit happens.\n var offset = parent instanceof _packages2.default.Port ? boundingBox.w / 2 : 0;\n\n var targetBoundingBox = target.getBoundingBox();\n if (target instanceof _packages2.default.Port) {\n target.setPosition(boundingBox.w / 2 - offset, boundingBox.h);\n } else {\n target.setPosition(boundingBox.w / 2 - targetBoundingBox.w / 2 - offset, 2 + boundingBox.h);\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/CenterLocator.js\":\n/*!*********************************************!*\\\n !*** ./src/layout/locator/CenterLocator.js ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A CenterLocator is used to place figures in the center of a parent shape.\n *\n *\n *\n * @example\n *\n *\n * // create a basic figure and add a Label/child via API call\n * //\n * let circle = new draw2d.shape.basic.Circle({diameter:120});\n * circle.setStroke(3);\n * circle.setColor(\"#A63343\");\n * circle.setBackgroundColor(\"#E65159\");\n * circle.add(new draw2d.shape.basic.Label({text:\"Center Label\"}), new draw2d.layout.locator.CenterLocator());\n * canvas.add( circle, 100,50);\n *\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.Locator\n */\n_packages2.default.layout.locator.CenterLocator = _packages2.default.layout.locator.Locator.extend(\n/** @lends draw2d.layout.locator.CenterLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.CenterLocator\",\n\n /**\n * Constructs a locator with associated parent.\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Relocates the given Figure.\n *\n * @param {Number} index child index of the target\n * @param {draw2d.Figure} target The figure to relocate\n **/\n relocate: function relocate(index, target) {\n var parent = target.getParent();\n var boundingBox = parent.getBoundingBox();\n\n // TODO: instanceof is always a HACK. ugly. Redirect the call to the figure instead of \n // determine the position with a miracle.\n //\n if (target instanceof _packages2.default.Port) {\n target.setPosition(boundingBox.w / 2, boundingBox.h / 2);\n } else {\n var targetBoundingBox = target.getBoundingBox();\n target.setPosition((boundingBox.w / 2 - targetBoundingBox.w / 2 | 0) + 0.5, (boundingBox.h / 2 - targetBoundingBox.h / 2 | 0) + 0.5);\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/ConnectionLocator.js\":\n/*!*************************************************!*\\\n !*** ./src/layout/locator/ConnectionLocator.js ***!\n \\*************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Repositions a Figure attached to a Connection when the\n * Connection is moved. Provides for alignment at the start\n * (source), middle, or end (target) of the Connection.\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.Locator\n */\n_packages2.default.layout.locator.ConnectionLocator = _packages2.default.layout.locator.Locator.extend(\n/** @lends draw2d.layout.locator.ConnectionLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.ConnectionLocator\",\n\n /**\n * Default constructor for a Locator which can layout a figure in context of a\n * {@link draw2d.Connector}\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/DraggableLocator.js\":\n/*!************************************************!*\\\n !*** ./src/layout/locator/DraggableLocator.js ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A DraggableLocator is used to place figures relative to the parent top left corner. It is\n * possible to move a child node via drag&drop.\n *\n *\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.Locator\n */\n_packages2.default.layout.locator.DraggableLocator = _packages2.default.layout.locator.Locator.extend(\n/** @lends draw2d.layout.locator.DraggableLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.DraggableLocator\",\n\n /**\n * Constructs a locator with associated parent.\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n bind: function bind(parent, child) {\n // override the parent implementation to avoid\n // that the child is \"!selectable\" and \"!draggable\"\n\n // Don't redirect the selection handling to the parent\n // Using the DraggableLocator provides the ability to the children\n // that they are selectable and draggable. Remove the SelectionAdapter from the parent\n // assignment.\n child.setSelectionAdapter(function () {\n return child;\n });\n },\n\n unbind: function unbind(parent, child) {\n // use default\n child.setSelectionAdapter(null);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/InputPortLocator.js\":\n/*!************************************************!*\\\n !*** ./src/layout/locator/InputPortLocator.js ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Repositions a Figure attached to a Connection when the\n * Connection is moved. Provides for alignment at the start\n * (source), middle, or end (target) of the Connection.\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.PortLocator\n */\n_packages2.default.layout.locator.InputPortLocator = _packages2.default.layout.locator.PortLocator.extend(\n/** @lends draw2d.layout.locator.InputPortLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.InputPortLocator\",\n\n /**\n * Default constructor for a Locator which can layout a port in context of a\n * {@link draw2d.shape.node.Node}\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * Controls the location of an {@link draw2d.Figure}\n *\n * @param {Number} index port index of the figure\n * @param {draw2d.Figure} figure the figure to control\n *\n * @template\n **/\n relocate: function relocate(index, figure) {\n var node = figure.getParent();\n\n var dividerFactor = 1;\n var thisNAME = this.NAME;\n var portIndex = 1;\n node.getPorts().each(function (i, p) {\n portIndex = p === figure ? dividerFactor : portIndex;\n dividerFactor += p.getLocator().NAME === thisNAME ? 1 : 0;\n });\n this.applyConsiderRotation(figure, 0, node.getHeight() / dividerFactor * portIndex);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/LeftLocator.js\":\n/*!*******************************************!*\\\n !*** ./src/layout/locator/LeftLocator.js ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A LeftLocator is used to place figures to the left of a parent shape.\n *\n *\n *\n * @example\n *\n * // create a basic figure and add a Label/child via API call\n * //\n * let start = new draw2d.shape.node.Start();\n * start.add(new draw2d.shape.basic.Label({text:\"Left Label\"}), new draw2d.layout.locator.LeftLocator({\n * margin:10 // distance to the parent shape\n * }));\n * canvas.add( start, 100,50);\n *\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.Locator\n */\n_packages2.default.layout.locator.LeftLocator = _packages2.default.layout.locator.Locator.extend(\n/** @lends draw2d.layout.locator.LeftLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.LeftLocator\",\n\n /**\n * Constructs a locator with associated parent.\n *\n * @param {Object} attr additional init attributes\n * @param {Object} setter key/value map of injected setter-methods\n * @param {Object} getter key/value map of injected getter-methods\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.margin = attr && \"margin\" in attr ? attr.margin : 5;\n },\n\n /**\n *\n * Relocates the given Figure.\n *\n * @param {Number} index child index of the target\n * @param {draw2d.Figure} target The figure to relocate\n **/\n relocate: function relocate(index, target) {\n var parent = target.getParent();\n var boundingBox = parent.getBoundingBox();\n\n // I made a wrong decision in the port handling: anchor point\n // is in the center and not topLeft. Now I must correct this flaw here, and there, and...\n // shit happens.\n var offset = parent instanceof _packages2.default.Port ? boundingBox.h / 2 : 0;\n\n if (target instanceof _packages2.default.Port) {\n target.setPosition(0, boundingBox.h / 2 - offset);\n } else {\n var targetBoundingBox = target.getBoundingBox();\n target.setPosition(-targetBoundingBox.w - this.margin, boundingBox.h / 2 - targetBoundingBox.h / 2 - offset);\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/Locator.js\":\n/*!***************************************!*\\\n !*** ./src/layout/locator/Locator.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _JSONUtil = __webpack_require__(/*! ../../util/JSONUtil */ \"./src/util/JSONUtil.js\");\n\nvar _JSONUtil2 = _interopRequireDefault(_JSONUtil);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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 _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n/**\n * @class\n *\n * Controls the location of an IFigure.\n *\n * @author Andreas Herz\n */\n_packages2.default.layout.locator.Locator = Class.extend(\n/** @lends draw2d.layout.locator.Locator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.Locator\",\n\n /**\n * Initial Constructor\n *\n * @param {Object} attr additional init attributes\n * @param {Object} setter key/value map of injected setter-methods\n * @param {Object} getter key/value map of injected getter-methods\n */\n init: function init(attr, setter, getter) {\n\n this.setterWhitelist = (0, _extend2.default)({}, setter);\n this.getterWhitelist = (0, _extend2.default)({}, getter);\n\n // propagate the attr to the new instance\n this.attr(attr);\n },\n\n /**\n *\n * Read or set locator attributes.<br>\n * When no value is given, reads specified attribute from the element.<br>\n * When value is given, sets the attribute to that value.\n * Multiple attributes can be set by passing an object with name-value pairs.\n *\n *\n * // multiple attributes:\n * locator.attr({\n * x: 30,\n * y: 40\n * });\n *\n * let data = locator.attr()\n *\n *\n * @param {String/Object} name\n * @param {Object} [value]\n * @since 5.0.1\n * @experimental\n * @returns {Object} either the requested attribute if this method used as getter or `this` if the method uses as setter\n **/\n attr: function attr(name, value) {\n var _this = this;\n\n // call of attr as setter method with {name1:val1, name2:val2 } argument list\n //\n if ($.isPlainObject(name)) {\n for (var key in name) {\n var func = this.setterWhitelist[key];\n var param = name[key];\n if (func && param !== undefined) {\n func.call(this, param);\n }\n }\n } else if (typeof name === \"string\") {\n // call attr as getter\n //\n if (typeof value === \"undefined\") {\n var getter = this.getterWhitelist[name];\n if (typeof getter === \"function\") {\n return getter.call(this);\n }\n return; // undefined\n }\n\n // the value can be a function. In this case we must call the value().\n if (typeof value === \"function\") {\n value = value();\n }\n var setter = this.setterWhitelist[name];\n if (setter) {\n setter.call(this, value);\n }\n }\n // may it is a array of attributes used for the getter\n //\n else if (Array.isArray(name)) {\n return Object.assign.apply(Object, [{}].concat(_toConsumableArray(Object.keys(name).map(function (k) {\n return _defineProperty({}, k, _this.attr(k));\n }))));\n }\n // generic getter of all registered attributes\n else if (typeof name === \"undefined\") {\n var result = {};\n for (var _key in this.getterWhitelist) {\n result[_key] = this.getterWhitelist[_key].call(this);\n }\n return result;\n }\n\n return this;\n },\n\n /**\n *\n * Callback method if a child is bounded to a parent. This is\n * the perfect moment to prepare the child node with some basic\n * behaviour which are forced by the <code>Locator</code>\n *\n * @param {draw2d.Figure} figure\n * @param {draw2d.Figure} child\n * @returns {this}\n */\n bind: function bind(figure, child) {\n // default behaviour of an Locator. The child isn't draggable and\n // the locator defines the position of the child.\n //\n child.setDraggable(false);\n child.setSelectable(false);\n\n return this;\n },\n\n /**\n *\n * Callback method if a child is unbounded to the locator.\n *\n * @param {draw2d.Figure} figure\n * @param {draw2d.Figure} child\n * @returns {this}\n */\n unbind: function unbind(figure, child) {\n\n return this;\n },\n\n /**\n *\n * Controls the location of an I{@link draw2d.Figure}\n *\n * @param {Number} index child index of the figure\n * @param {draw2d.Figure} figure the figure to control\n *\n * @private\n **/\n relocate: function relocate(index, figure) {\n // just repaint the child to update the SVG related to the new location\n // of the parent.\n figure.repaint();\n },\n\n /**\n *\n * Return a clone of the locator object\n *\n * @returns {draw2d.layout.locator.Locator}\n */\n clone: function clone() {\n return eval(\"new \" + this.NAME + \"()\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/ManhattanMidpointLocator.js\":\n/*!********************************************************!*\\\n !*** ./src/layout/locator/ManhattanMidpointLocator.js ***!\n \\********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A ManhattanMidpointLocator that is used to place figures at the midpoint of a Manhatten routed\n * connection. The midpoint is always in the center of an edge.\n *\n *\n *\n * @example\n *\n * // create and add two Node which contains Ports (In and OUT)\n * let start = new draw2d.shape.node.Start({x:50,y:50});\n * let end = new draw2d.shape.node.End({x:230,y:100});\n *\n * canvas.add( start);\n * canvas.add( end);\n *\n * // Create a Connection and connect the Start and End node\n * //\n * let c = new draw2d.Connection();\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n * canvas.add(c);\n *\n * // create a label which should attach to the connection\n * //\n * let label = new draw2d.shape.basic.Label({text:\"I'm a Label\"});\n * label.setColor(\"#0d0d0d\");\n * label.setFontColor(\"#0d0d0d\");\n * label.setBackgroundColor(\"#f0f0f0\");\n *\n * // add the decoration to the connection with a ManhattanMidpointLocator.\n * //\n * c.add(label, new draw2d.layout.locator.ManhattanMidpointLocator());\n *\n * @author Andreas Herz\n * @extends draw2d.layout.locator.ConnectionLocator\n */\n_packages2.default.layout.locator.ManhattanMidpointLocator = _packages2.default.layout.locator.ConnectionLocator.extend(\n/** @lends draw2d.layout.locator.ManhattanMidpointLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.ManhattanMidpointLocator\",\n\n /**\n * Constructs a ManhattanMidpointLocator with associated Connection c.\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * Relocates the given Figure always in the center of an edge.\n *\n * @param {Number} index child index of the target\n * @param {draw2d.Figure} target The figure to relocate\n **/\n relocate: function relocate(index, target) {\n var conn = target.getParent();\n var points = conn.getVertices();\n\n var segmentIndex = Math.floor((points.getSize() - 2) / 2);\n if (points.getSize() <= segmentIndex + 1) return;\n\n var p1 = points.get(segmentIndex);\n var p2 = points.get(segmentIndex + 1);\n\n target.setPosition((p2.x - p1.x) / 2 + p1.x - target.getWidth() / 2 | 0, (p2.y - p1.y) / 2 + p1.y - target.getHeight() / 2 | 0);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/OutputPortLocator.js\":\n/*!*************************************************!*\\\n !*** ./src/layout/locator/OutputPortLocator.js ***!\n \\*************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Repositions a Figure attached to a Connection when the\n * Connection is moved. Provides for alignment at the start\n * (source), middle, or end (target) of the Connection.\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.PortLocator\n */\n_packages2.default.layout.locator.OutputPortLocator = _packages2.default.layout.locator.PortLocator.extend(\n/** @lends draw2d.layout.locator.OutputPortLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.OutputPortLocator\",\n\n /**\n * Default constructor for a Locator which can layout a port in context of a\n * {@link draw2d.shape.node.Node}\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * Controls the location of an I{@link draw2d.Figure}\n *\n * @param {Number} index child index of the figure\n * @param {draw2d.Figure} figure the figure to control\n *\n * @template\n **/\n relocate: function relocate(index, figure) {\n var node = figure.getParent();\n var dividerFactor = 1;\n var thisNAME = this.NAME;\n var portIndex = 1;\n node.getPorts().each(function (i, p) {\n portIndex = p === figure ? dividerFactor : portIndex;\n dividerFactor += p.getLocator().NAME === thisNAME ? 1 : 0;\n });\n this.applyConsiderRotation(figure, node.getWidth(), node.getHeight() / dividerFactor * portIndex);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/ParallelMidpointLocator.js\":\n/*!*******************************************************!*\\\n !*** ./src/layout/locator/ParallelMidpointLocator.js ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A ParallelMidpointLocator that is used to place label at the midpoint of a routed\n * connection. The midpoint is always in the center of an edge.\n * The label is aligned to the connection angle at the calculated conection segment.\n *\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.ConnectionLocator\n * @since 4.4.4\n */\n_packages2.default.layout.locator.ParallelMidpointLocator = _packages2.default.layout.locator.ConnectionLocator.extend(\n/** @lends draw2d.layout.locator.ParallelMidpointLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.ParallelMidpointLocator\",\n\n /**\n * Constructs a ParallelMidpointLocator with optional padding to the connection.\n *\n * if the parameter <b>distance</b> is less than zero the label is\n * placed above of the connection. Else the label is below the connection.\n *\n * @param {Object} attr object with {distance: <NUMBER>>} distance of the label to the connection.\n */\n init: function init(attr, setter, getter) {\n this.distance = 0;\n\n this._super((0, _extend2.default)({\n distance: -5\n }, attr), (0, _extend2.default)({\n x: this.setDistance\n }, setter), (0, _extend2.default)({\n distance: this.getDistance\n }, getter));\n },\n\n /**\n * Set the distance to the connection\n *\n * @param {Number} distance the distance to the connection\n * @returns {this}\n */\n setDistance: function setDistance(distance) {\n this.distance = distance;\n return this;\n },\n\n /**\n * Returns the distance to the connection\n *\n * @returns {Number}\n */\n getDistance: function getDistance() {\n return this.distance;\n },\n\n /**\n *\n * Relocates the given Figure always in the center of an edge.\n *\n * @param {Number} index child index of the target\n * @param {draw2d.Figure} target The figure to relocate\n **/\n relocate: function relocate(index, target) {\n var conn = target.getParent();\n var points = conn.getVertices();\n\n var segmentIndex = Math.floor((points.getSize() - 2) / 2);\n if (points.getSize() <= segmentIndex + 1) {\n return;\n }\n\n var p1 = points.get(segmentIndex);\n var p2 = points.get(segmentIndex + 1);\n\n // calculate the distance of the label (above or below the connection)\n var distance = this.distance <= 0 ? this.distance - target.getHeight() : this.distance;\n\n // get the angle of the segment\n var nx = p1.x - p2.x;\n var ny = p1.y - p2.y;\n var length = Math.sqrt(nx * nx + ny * ny);\n var radian = -Math.asin(ny / length);\n var angle = 180 / Math.PI * radian;\n if (radian < 0) {\n if (p2.x < p1.x) {\n radian = Math.abs(radian) + Math.PI;\n angle = 360 - angle;\n distance = -distance - target.getHeight();\n } else {\n radian = Math.PI * 2 - Math.abs(radian);\n angle = 360 + angle;\n }\n } else {\n if (p2.x < p1.x) {\n radian = Math.PI - radian;\n angle = 360 - angle;\n distance = -distance - target.getHeight();\n }\n }\n\n var rotAnchor = this.rotate(length / 2 - target.getWidth() / 2, distance, 0, 0, radian);\n\n // rotate the x/y coordinate with the calculated angle around \"p1\"\n //\n var rotCenterOfLabel = this.rotate(0, 0, target.getWidth() / 2, target.getHeight() / 2, radian);\n\n target.setRotationAngle(angle);\n target.setPosition(rotAnchor.x - rotCenterOfLabel.x + p1.x, rotAnchor.y - rotCenterOfLabel.y + p1.y);\n },\n\n rotate: function rotate(x, y, xm, ym, radian) {\n var cos = Math.cos,\n sin = Math.sin;\n\n // Subtract midpoints, so that midpoint is translated to origin\n // and add it in the end again\n return {\n x: (x - xm) * cos(radian) - (y - ym) * sin(radian) + xm,\n y: (x - xm) * sin(radian) + (y - ym) * cos(radian) + ym\n };\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/PolylineMidpointLocator.js\":\n/*!*******************************************************!*\\\n !*** ./src/layout/locator/PolylineMidpointLocator.js ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A PolylineMidpointLocator is used to place figures at the midpoint of a routed\n * connection. <br>\n * If the connection did have an odd count of points the figure is located in the center vertex of the polyline.<br>\n * On an even count of junction point, the figure will be center on the middle segment of the ploy line.\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.ManhattanMidpointLocator\n */\n_packages2.default.layout.locator.PolylineMidpointLocator = _packages2.default.layout.locator.ManhattanMidpointLocator.extend(\n/** @lends draw2d.layout.locator.PolylineMidpointLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.PolylineMidpointLocator\",\n\n /**\n * Constructs a ManhattanMidpointLocator with associated Connection c.\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * Relocates the given Figure.\n *\n * @param {Number} index child index of the target\n * @param {draw2d.Figure} target The figure to relocate\n **/\n relocate: function relocate(index, target) {\n var conn = target.getParent();\n var points = conn.getVertices();\n\n // it has an event count of points -> use the manhattan algorithm...this is working\n // well in this case\n if (points.getSize() % 2 === 0) {\n this._super(index, target);\n }\n // odd count of points. take the center point as fulcrum\n else {\n var index = Math.floor(points.getSize() / 2);\n var p1 = points.get(index);\n target.setPosition(p1.x - target.getWidth() / 2, p1.y - target.getHeight() / 2);\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/PortLocator.js\":\n/*!*******************************************!*\\\n !*** ./src/layout/locator/PortLocator.js ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * The port locator calculates the position of an port. All ports MUST have a locator\n * if you add them as child to a node.\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.Locator\n */\n_packages2.default.layout.locator.PortLocator = _packages2.default.layout.locator.Locator.extend(\n/** @lends draw2d.layout.locator.PortLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.PortLocator\",\n\n /**\n * Default constructor for a Locator which can layout a port in context of a\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n applyConsiderRotation: function applyConsiderRotation(port, x, y) {\n var parent = port.getParent();\n\n // determine the width/height before manipulate the \n // matrix of the shape\n var halfW = parent.getWidth() / 2;\n var halfH = parent.getHeight() / 2;\n\n var rotAngle = parent.getRotationAngle();\n var m = Raphael.matrix();\n m.rotate(rotAngle, halfW, halfH);\n if (rotAngle === 90 || rotAngle === 270) {\n var ratio = parent.getHeight() / parent.getWidth();\n m.scale(ratio, 1 / ratio, halfW, halfH);\n }\n\n port.setPosition(m.x(x, y), m.y(x, y));\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/RightLocator.js\":\n/*!********************************************!*\\\n !*** ./src/layout/locator/RightLocator.js ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A RightLocator is used to place figures to the right of a parent shape.\n *\n *\n *\n * @example\n *\n *\n * // create a basic figure and add a Label/child via API call\n * //\n * var end = new draw2d.shape.node.End();\n * end.add(new draw2d.shape.basic.Label({text:\"Right Label\"}), new draw2d.layout.locator.RightLocator({\n * margin: 10 // distance to the parent shape\n * }));\n * canvas.add( end, 50,50);\n *\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.Locator\n */\n_packages2.default.layout.locator.RightLocator = _packages2.default.layout.locator.Locator.extend(\n/** @lends draw2d.layout.locator.RightLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.RightLocator\",\n\n /**\n * Constructs a locator with associated parent.\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.margin = attr && \"margin\" in attr ? attr.margin : 5;\n },\n\n /**\n * \n * Relocates the given Figure.\n *\n * @param {Number} index child index of the target\n * @param {draw2d.Figure} target The figure to relocate\n **/\n relocate: function relocate(index, target) {\n var parent = target.getParent();\n var boundingBox = parent.getBoundingBox();\n\n // I made a wrong decision in the port handling: anchor point\n // is in the center and not topLeft. Now I must correct this flaw here, and there, and...\n // shit happens.\n var offset = parent instanceof _packages2.default.Port ? boundingBox.h / 2 : 0;\n\n if (target instanceof _packages2.default.Port) {\n target.setPosition(boundingBox.w, boundingBox.h / 2 - offset);\n } else {\n var targetBoundingBox = target.getBoundingBox();\n target.setPosition(boundingBox.w + this.margin, boundingBox.h / 2 - targetBoundingBox.h / 2 - offset);\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/SmartDraggableLocator.js\":\n/*!*****************************************************!*\\\n !*** ./src/layout/locator/SmartDraggableLocator.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A DraggableLocator is used to place figures relative to the parent nearest corner. It is\n * possible to move a child node via drag&drop.\n *\n *\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.Locator\n */\n_packages2.default.layout.locator.SmartDraggableLocator = _packages2.default.layout.locator.Locator.extend(\n/** @lends draw2d.layout.locator.SmartDraggableLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.SmartDraggableLocator\",\n\n /**\n * Constructs a locator with associated parent.\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n // description see \"bind\" method\n this.boundedCorners = {\n init: false,\n parent: 0,\n child: 0,\n dist: Number.MAX_SAFE_INTEGER,\n xOffset: 0,\n yOffset: 0\n };\n },\n\n bind: function bind(parent, child) {\n var _this = this;\n // determine the best corner of the parent/child node and stick to the calculated corner\n // In the example below it is R1.2 in combination with R2.0\n //\n // 0 1\n // +-----------+\n // | |\n // | R1 |\n // +-----------+\n // 3 2\n //\n // 0 1\n // +-----------+\n // | |\n // | R2 |\n // +-----------+\n // 3 2\n //\n var calcBoundingCorner = function calcBoundingCorner() {\n _this.boundedCorners = {\n init: false,\n parent: 0,\n child: 0,\n dist: Number.MAX_SAFE_INTEGER,\n xOffset: 0,\n yOffset: 0\n };\n var parentVertices = child.getParent().getBoundingBox().getVertices();\n var childVertices = child.getBoundingBox().getVertices();\n var i_parent = void 0,\n i_child = void 0;\n var p1 = void 0,\n p2 = void 0,\n distance = void 0;\n for (i_parent = 0; i_parent < parentVertices.getSize(); i_parent++) {\n for (i_child = 0; i_child < childVertices.getSize(); i_child++) {\n p1 = parentVertices.get(i_parent);\n p2 = childVertices.get(i_child);\n distance = Math.abs(p1.distance(p2));\n if (distance < _this.boundedCorners.dist) {\n _this.boundedCorners = {\n parent: i_parent,\n child: i_child,\n dist: distance,\n xOffset: p1.x - p2.x,\n yOffset: p1.y - p2.y\n };\n }\n }\n }\n _this.boundedCorners.init = true;\n };\n\n // override the parent implementation to avoid\n // that the child is \"!selectable\" and \"!draggable\"\n\n // Don't redirect the selection handling to the parent\n // Using the DraggableLocator provides the ability to the children\n // that they are selectable and draggable. Remove the SelectionAdapter from the parent\n // assignment.\n child.setSelectionAdapter(function () {\n return child;\n });\n\n child.getParent().on(\"added\", calcBoundingCorner);\n child.on(\"dragend\", calcBoundingCorner);\n },\n\n unbind: function unbind(parent, child) {\n // use default\n child.setSelectionAdapter(null);\n },\n\n /**\n * \n * Controls the location of an I{@link draw2d.Figure}\n *\n * @param {Number} index child index of the figure\n * @param {draw2d.Figure} figure the figure to control\n *\n * @template\n **/\n relocate: function relocate(index, figure) {\n this._super(index, figure);\n if (this.boundedCorners.init === true) {\n var parentVertices = figure.getParent().getBoundingBox().getVertices();\n var childVertices = figure.getBoundingBox().getVertices();\n var p1 = parentVertices.get(this.boundedCorners.parent);\n var p2 = childVertices.get(this.boundedCorners.child);\n\n var xOffset = p1.x - p2.x;\n var yOffset = p1.y - p2.y;\n // restore the initial distance from the corner by adding the new offset\n // to the position of the child\n figure.translate(xOffset - this.boundedCorners.xOffset, yOffset - this.boundedCorners.yOffset);\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/TopLocator.js\":\n/*!******************************************!*\\\n !*** ./src/layout/locator/TopLocator.js ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A TopLocator is used to place figures at the top/center of a parent shape.\n *\n *\n *\n * @example\n *\n * // create a basic figure and add a Label/child via API call\n * //\n * let circle = new draw2d.shape.basic.Circle({\n * x:100,\n * y:70,\n * diameter:80,\n * stroke: 3,\n * color:\"#A63343\",\n * bgColor:\"#E65159\"\n * });\n *\n * circle.add(new draw2d.shape.basic.Label({text:\"Top Label\"}), new draw2d.layout.locator.TopLocator());\n * canvas.add( circle);\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.Locator\n */\n_packages2.default.layout.locator.TopLocator = _packages2.default.layout.locator.Locator.extend(\n/** @lends draw2d.layout.locator.TopLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.TopLocator\",\n\n /**\n * Constructs a ManhattanMidpointLocator with associated Connection c.\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Relocates the given Figure.\n *\n * @param {Number} index child index of the target\n * @param {draw2d.Figure} target The figure to relocate\n **/\n relocate: function relocate(index, target) {\n var parent = target.getParent();\n var boundingBox = parent.getBoundingBox();\n\n // I made a wrong decision in the port handling: anchor point\n // is in the center and not topLeft. Now I must correct this flaw here, and there, and...\n // shit happens.\n var offset = parent instanceof _packages2.default.Port ? boundingBox.w / 2 : 0;\n\n var targetBoundingBox = target.getBoundingBox();\n if (target instanceof _packages2.default.Port) {\n target.setPosition(boundingBox.w / 2 - offset, 0);\n } else {\n target.setPosition(boundingBox.w / 2 - targetBoundingBox.w / 2 - offset, -(targetBoundingBox.h + 2));\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/XYAbsPortLocator.js\":\n/*!************************************************!*\\\n !*** ./src/layout/locator/XYAbsPortLocator.js ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Create a locator for fixed x/y coordinate position. The port in the example below is\n * always 20px below of the top border.\n *\n *\n * @example\n *\n * var figure = new draw2d.shape.basic.Rectangle({x:130,y:30,width:100,height:60});\n * figure.createPort(\"input\", new draw2d.layout.locator.XYAbsPortLocator(0,20));\n *\n * canvas.add(figure);\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.PortLocator\n * @since 4.0.0\n */\n_packages2.default.layout.locator.XYAbsPortLocator = _packages2.default.layout.locator.PortLocator.extend(\n/** @lends draw2d.layout.locator.XYAbsPortLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.XYAbsPortLocator\",\n\n /**\n *\n * {@link draw2d.shape.node.Node}\n *\n * @param {Number} x the x coordinate of the port relative to the left of the parent\n * @param {Number} y the y coordinate of the port relative to the top of the parent\n */\n init: function init(attr, setter, getter) {\n this.x = 0;\n this.y = 0;\n\n this._super(attr, (0, _extend2.default)({\n x: this.setX,\n y: this.setY\n }, setter), (0, _extend2.default)({\n x: this.getX,\n y: this.getY\n }, getter));\n },\n\n /**\n * Set the X Offset for the Locator\n * @param {Number} x\n */\n setX: function setX(x) {\n this.x = x;\n },\n\n /**\n * Set the y-offset of the locator\n *\n * @param {Number} y\n */\n setY: function setY(y) {\n this.y = y;\n },\n\n /**\n * Get the X-Offset of the Locator\n *\n * @returns {Number}\n */\n getX: function getX() {\n return this.x;\n },\n\n /**\n * Returns the Y-Offset of the Locator\n *\n * @returns {Number}\n */\n getY: function getY() {\n return this.y;\n },\n\n /**\n *\n * Controls the location of an {@link draw2d.Figure}\n *\n * @param {Number} index child index of the figure\n * @param {draw2d.Figure} figure the figure to control\n *\n * @template\n **/\n relocate: function relocate(index, figure) {\n this.applyConsiderRotation(figure, this.x, this.y);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/XYRelPortLocator.js\":\n/*!************************************************!*\\\n !*** ./src/layout/locator/XYRelPortLocator.js ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Create a locator for a relative x/y coordinate position. The coordinates are named in percentage [0..100%]\n * relative to the top/left corner of the parent node.<br>\n * <br>\n * <br>\n * Resize the shape in the example to see what happens. The port top position is always 20% of the shape height.\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.basic.Rectangle({x:130,y:30,width:100,height:60});\n * figure.createPort(\"input\", new draw2d.layout.locator.XYRelPortLocator(0,20));\n *\n * canvas.add(figure);\n *\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.PortLocator\n * @since 4.0.0\n */\n_packages2.default.layout.locator.XYRelPortLocator = _packages2.default.layout.locator.PortLocator.extend(\n/** @lends draw2d.layout.locator.XYRelPortLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.XYRelPortLocator\",\n\n /**\n *\n *\n * @param {Number} xPercentage the x coordinate in percent of the port relative to the left of the parent\n * @param {Number} yPercentage the y coordinate in percent of the port relative to the top of the parent\n */\n init: function init(attr, setter, getter) {\n // legacy code handling\n // new draw2d.layout.locator.XYRelPortLocator(10,30)\n if (typeof attr === \"number\" && typeof setter === \"number\") {\n this.x = attr;\n this.y = setter;\n this._super();\n }\n // new constructor\n // new draw2d.layout.locator.XYRelPortLocator({x:10, y:30}})\n else {\n this.x = 0;\n this.y = 0;\n this._super(attr, (0, _extend2.default)({\n x: this.setX,\n y: this.setY\n }, setter), (0, _extend2.default)({\n x: this.getX,\n y: this.getY\n }, getter));\n }\n },\n\n /**\n * Set the X Offset for the Locator\n * @param {Number} x\n */\n setX: function setX(x) {\n this.x = x;\n },\n\n /**\n * Set the y-offset of the locator\n *\n * @param {Number} y\n */\n setY: function setY(y) {\n this.y = y;\n },\n\n /**\n * Get the X-Offset of the Locator\n *\n * @returns {Number}\n */\n getX: function getX() {\n return this.x;\n },\n\n /**\n * Returns the Y-Offset of the Locator\n *\n * @returns {Number}\n */\n getY: function getY() {\n return this.y;\n },\n\n /**\n *\n * Controls the location of an I{@link draw2d.Figure}\n *\n * @param {Number} index child index of the figure\n * @param {draw2d.Figure} figure the figure to control\n *\n * @template\n **/\n relocate: function relocate(index, figure) {\n var parent = figure.getParent();\n\n this.applyConsiderRotation(figure, parent.getWidth() / 100 * this.x, parent.getHeight() / 100 * this.y);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/mesh/ExplodeLayouter.js\":\n/*!********************************************!*\\\n !*** ./src/layout/mesh/ExplodeLayouter.js ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.layout.mesh.ExplodeLayouter = _packages2.default.layout.mesh.MeshLayouter.extend(\n/** @lends draw2d.layout.mesh.ExplodeLayouter.prototype */\n{\n\n MIN_MARGIN: 40,\n\n /**\n * Creates a new layouter object.\n */\n init: function init() {},\n\n /**\n *\n * Return a changes list for an existing mesh/canvas to ensure that the element to insert \n * did have enough space.\n * \n * @param {draw2d.Canvas} canvas the canvas to use for the analytic\n * @param {draw2d.Figure} figure The figure to add to the exising canvas\n * @param {Number} x requested x-position for the figure\n * @param {Number} y requested y-position for the figure\n * \n * \n * @returns {draw2d.util.ArrayList} a list of changes to apply if the user want to insert he figure.\n */\n add: function add(canvas, figureToAdd) {\n // changes for the different octant areas\n var changes = [];\n changes[0] = { x: 0, y: 0 };\n changes[1] = { x: 0, y: 0 };\n changes[2] = { x: 0, y: 0 };\n changes[3] = { x: 0, y: 0 };\n changes[4] = { x: 0, y: 0 };\n changes[5] = { x: 0, y: 0 };\n changes[6] = { x: 0, y: 0 };\n changes[7] = { x: 0, y: 0 };\n changes[8] = { x: 0, y: 0 };\n\n var boundingBox = figureToAdd.getBoundingBox();\n\n var figures = canvas.getFigures();\n var figure = null;\n\n var dis = 0;\n var oct = 0;\n var currentOctChanges = null;\n var i = 0;\n for (i = 0; i < figures.getSize(); i++) {\n\n figure = figures.get(i);\n\n // calculate the distance of all corners in relation to the requested x/y coordinate\n //\n if (figure !== figureToAdd) {\n dis = figure.getBoundingBox().getDistance(boundingBox);\n // other figure is to close\n //\n if (dis < this.MIN_MARGIN) {\n // determine the octant of the figure\n oct = this.determineOctant(boundingBox, figure.getBoundingBox());\n\n // all other relevant segments must be arranged too!!\n //\n switch (oct) {\n case 2:\n changes[2].x = Math.max(changes[2].x, this.MIN_MARGIN - dis);\n changes[3].x = Math.max(changes[3].x, this.MIN_MARGIN - dis);\n changes[4].x = Math.max(changes[4].x, this.MIN_MARGIN - dis);\n break;\n case 3:\n changes[2].x = Math.max(changes[2].x, this.MIN_MARGIN - dis);\n changes[3].x = Math.max(changes[3].x, this.MIN_MARGIN - dis);\n changes[4].x = Math.max(changes[4].x, this.MIN_MARGIN - dis);\n break;\n case 4:\n changes[2].x = Math.max(changes[2].x, this.MIN_MARGIN - dis);\n changes[3].x = Math.max(changes[3].x, this.MIN_MARGIN - dis);\n changes[4].x = Math.max(changes[4].x, this.MIN_MARGIN - dis);\n changes[4].y = Math.max(changes[4].y, this.MIN_MARGIN - dis);\n changes[5].y = Math.max(changes[5].y, this.MIN_MARGIN - dis);\n changes[6].y = Math.max(changes[6].y, this.MIN_MARGIN - dis);\n break;\n case 5:\n changes[4].y = Math.max(changes[4].y, this.MIN_MARGIN - dis);\n changes[5].y = Math.max(changes[5].y, this.MIN_MARGIN - dis);\n changes[6].y = Math.max(changes[6].y, this.MIN_MARGIN - dis);\n break;\n case 6:\n changes[4].y = Math.max(changes[4].y, this.MIN_MARGIN - dis);\n changes[5].y = Math.max(changes[5].y, this.MIN_MARGIN - dis);\n changes[6].y = Math.max(changes[6].y, this.MIN_MARGIN - dis);\n break;\n case 8:\n // overlapping\n // we must determine the new distance with the border of the figures\n dis = boundingBox.getBottomRight().getDistance(figure.getBoundingBox().getTopLeft()) | 0;\n\n changes[2].x = Math.max(changes[2].x, this.MIN_MARGIN + dis);\n changes[3].x = Math.max(changes[3].x, this.MIN_MARGIN + dis);\n changes[4].x = Math.max(changes[4].x, this.MIN_MARGIN + dis);\n changes[4].y = Math.max(changes[4].y, this.MIN_MARGIN + dis);\n changes[5].y = Math.max(changes[5].y, this.MIN_MARGIN + dis);\n changes[6].y = Math.max(changes[6].y, this.MIN_MARGIN + dis);\n changes[8].x = Math.max(changes[8].x, this.MIN_MARGIN + dis);\n // \t\t\t\tchanges[8].y = Math.max(changes[8].y,this.MIN_MARGIN+dis);\n }\n }\n }\n // Falls die minimale Distance zu den Objecten kleiner 80 ist, muss ein layout erfolgen\n }\n\n // calculate the adjustment for each figure\n //\n var result = new _packages2.default.util.ArrayList();\n for (i = 0; i < figures.getSize(); i++) {\n figure = figures.get(i);\n if (figure !== figureToAdd) {\n oct = this.determineOctant(boundingBox, figure.getBoundingBox());\n currentOctChanges = changes[oct];\n if (currentOctChanges.x !== 0 || currentOctChanges.y !== 0) {\n result.add(new _packages2.default.layout.mesh.ProposedMeshChange(figure, currentOctChanges.x, currentOctChanges.y));\n }\n }\n }\n\n return result;\n },\n\n /**\n *\n * Determin Octant\n *\n * 0 | 1 | 2\n * __|___|__\n * 7 | 8 | 3\n * __|___|__\n * 6 | 5 | 4\n *\n * @returns {Number}\n */\n determineOctant: function determineOctant(r1, r2) {\n var ox = r1.x;\n var oy = r1.y;\n var ow = r1.w;\n var oh = r1.h;\n\n var cx = r2.x;\n var cy = r2.y;\n var cw = r2.w;\n var ch = r2.h;\n var oct = 0;\n\n if (cx + cw <= ox) {\n if (cy + ch <= oy) {\n oct = 0;\n } else if (cy >= oy + oh) {\n oct = 6;\n } else {\n oct = 7;\n }\n } else if (cx >= ox + ow) {\n if (cy + ch <= oy) {\n oct = 2;\n } else if (cy >= oy + oh) {\n oct = 4;\n } else {\n oct = 3;\n }\n } else if (cy + ch <= oy) {\n oct = 1;\n } else if (cy >= oy + oh) {\n oct = 5;\n } else {\n oct = 8;\n }\n\n return oct;\n }\n});\n/**\n * @class\n * Routes a {@link draw2d.Connection}, possibly using a constraint.\n *\n * @author Andreas Herz\n * @extend draw2d.layout.mesh.MeshLayouter\n */\n\n/***/ }),\n\n/***/ \"./src/layout/mesh/MeshLayouter.js\":\n/*!*****************************************!*\\\n !*** ./src/layout/mesh/MeshLayouter.js ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.layout.mesh.MeshLayouter = Class.extend(\n/** @lends draw2d.layout.mesh.MeshLayouter.prototype */\n\n{\n\n /**\n * Creates a new layouter object.\n */\n init: function init() {},\n\n /**\n * \n * Return a changes list for an existing mesh/canvas to ensure that the element to insert\n * did have enough space.\n *\n * @param {draw2d.Canvas} canvas the canvas to use for the analytic\n * @param {draw2d.Figure} figure The figure to add to the exising canvas\n *\n *\n * @returns {draw2d.util.ArrayList} a list of changes to apply if the user want to insert he figure.\n */\n add: function add(canvas, figure) {\n return new _packages2.default.util.ArrayList();\n }\n});\n/**\n * @class\n * Layouter for a mesh or grid.\n *\n * @author Andreas Herz\n */\n\n/***/ }),\n\n/***/ \"./src/layout/mesh/ProposedMeshChange.js\":\n/*!***********************************************!*\\\n !*** ./src/layout/mesh/ProposedMeshChange.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.layout.mesh.ProposedMeshChange = Class.extend(\n/** @lends draw2d.layout.mesh.ProposedMeshChange.prototype */\n\n{\n\n /**\n * Creates change object.\n */\n init: function init(figure, x, y) {\n this.figure = figure;\n this.x = x;\n this.y = y;\n },\n\n /**\n *\n * Return the related figure.\n *\n * @returns {draw2d.Figure} the figure to the related change proposal\n */\n getFigure: function getFigure() {\n return this.figure;\n },\n\n /**\n *\n * The proposed x-coordinate.\n *\n * @returns {Number}\n */\n getX: function getX() {\n return this.x;\n },\n\n /**\n *\n * The proposed y-coordinate\n *\n * @returns {Number}\n */\n getY: function getY() {\n return this.y;\n }\n\n});\n/**\n * @class\n * Change proposal for grid/mesh layout changes.\n *\n * @author Andreas Herz\n */\n\n/***/ }),\n\n/***/ \"./src/lib/Class.exec.js\":\n/*!*******************************!*\\\n !*** ./src/lib/Class.exec.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(/*! !./node_modules/script-loader/addScript.js */ \"./node_modules/script-loader/addScript.js\")(__webpack_require__(/*! !./node_modules/raw-loader!./src/lib/Class.exec.js */ \"./node_modules/raw-loader/index.js!./src/lib/Class.exec.js\"));\n\n/***/ }),\n\n/***/ \"./src/lib/jquery.autoresize.js\":\n/*!**************************************!*\\\n !*** ./src/lib/jquery.autoresize.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/*\n * jQuery.fn.autoResize 1.14\n * --\n * https://github.com/padolsey/jQuery.fn.autoResize\n * --\n * This program is free software. It comes without any warranty, to\n * the extent permitted by applicable law. You can redistribute it\n * and/or modify it under the terms of the Do What The Fuck You Want\n * To Public License, Version 2, as published by Sam Hocevar. See\n * http://sam.zoy.org/wtfpl/COPYING for more details. */\n(function ($) {\n\n\tvar uid = 'ar' + +new Date(),\n\t defaults = autoResize.defaults = {\n\t\tonResize: function onResize() {},\n\t\tonBeforeResize: function onBeforeResize() {\n\t\t\treturn 123;\n\t\t},\n\t\tonAfterResize: function onAfterResize() {\n\t\t\treturn 555;\n\t\t},\n\t\tanimate: {\n\t\t\tduration: 200,\n\t\t\tcomplete: function complete() {}\n\t\t},\n\t\textraSpace: 50,\n\t\tminHeight: 'original',\n\t\tmaxHeight: 500,\n\t\tminWidth: 'original',\n\t\tmaxWidth: 500\n\t};\n\n\tautoResize.cloneCSSProperties = ['lineHeight', 'textDecoration', 'letterSpacing', 'fontSize', 'fontFamily', 'fontStyle', 'fontWeight', 'textTransform', 'textAlign', 'direction', 'wordSpacing', 'fontSizeAdjust', 'paddingTop', 'paddingLeft', 'paddingBottom', 'paddingRight', 'width'];\n\n\tautoResize.cloneCSSValues = {\n\t\tposition: 'absolute',\n\t\ttop: -9999,\n\t\tleft: -9999,\n\t\topacity: 0,\n\t\toverflow: 'hidden'\n\t};\n\n\tautoResize.resizableFilterSelector = ['textarea:not(textarea.' + uid + ')', 'input:not(input[type])', 'input[type=text]', 'input[type=password]', 'input[type=email]', 'input[type=url]'].join(',');\n\n\tautoResize.AutoResizer = AutoResizer;\n\n\t$.fn.autoResize = autoResize;\n\n\tfunction autoResize(config) {\n\t\tthis.filter(autoResize.resizableFilterSelector).each(function () {\n\t\t\tnew AutoResizer($(this), config);\n\t\t});\n\t\treturn this;\n\t}\n\n\tfunction AutoResizer(el, config) {\n\n\t\tif (el.data('AutoResizer')) {\n\t\t\tel.data('AutoResizer').destroy();\n\t\t}\n\n\t\tconfig = this.config = $.extend({}, autoResize.defaults, config);\n\t\tthis.el = el;\n\n\t\tthis.nodeName = el[0].nodeName.toLowerCase();\n\n\t\tthis.originalHeight = el.height();\n\t\tthis.previousScrollTop = null;\n\n\t\tthis.value = el.val();\n\n\t\tif (config.maxWidth === 'original') config.maxWidth = el.width();\n\t\tif (config.minWidth === 'original') config.minWidth = el.width();\n\t\tif (config.maxHeight === 'original') config.maxHeight = el.height();\n\t\tif (config.minHeight === 'original') config.minHeight = el.height();\n\n\t\tif (this.nodeName === 'textarea') {\n\t\t\tel.css({\n\t\t\t\tresize: 'none',\n\t\t\t\toverflowY: 'hidden'\n\t\t\t});\n\t\t}\n\n\t\tel.data('AutoResizer', this);\n\n\t\t// Make sure onAfterResize is called upon animation completion\n\t\tconfig.animate.complete = function (f) {\n\t\t\treturn function () {\n\t\t\t\tconfig.onAfterResize.call(el);\n\t\t\t\treturn f.apply(this, arguments);\n\t\t\t};\n\t\t}(config.animate.complete);\n\n\t\tthis.bind();\n\t}\n\n\tAutoResizer.prototype = {\n\n\t\tbind: function bind() {\n\n\t\t\tvar check = $.proxy(function () {\n\t\t\t\tthis.check();\n\t\t\t\treturn true;\n\t\t\t}, this);\n\n\t\t\tthis.unbind();\n\n\t\t\tthis.el.bind('keyup.autoResize', check)\n\t\t\t//.bind('keydown.autoResize', check)\n\t\t\t.bind('change.autoResize', check).bind('paste.autoResize', function () {\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\tcheck();\n\t\t\t\t}, 0);\n\t\t\t});\n\n\t\t\tif (!this.el.is(':hidden')) {\n\t\t\t\tthis.check(null, true);\n\t\t\t}\n\t\t},\n\n\t\tunbind: function unbind() {\n\t\t\tthis.el.unbind('.autoResize');\n\t\t},\n\n\t\tcreateClone: function createClone() {\n\n\t\t\tvar el = this.el,\n\t\t\t clone = this.nodeName === 'textarea' ? el.clone() : $('<span/>');\n\n\t\t\tthis.clone = clone;\n\n\t\t\t$.each(autoResize.cloneCSSProperties, function (i, p) {\n\t\t\t\tclone[0].style[p] = el.css(p);\n\t\t\t});\n\n\t\t\tclone.removeAttr('name').removeAttr('id').addClass(uid).attr('tabIndex', -1).css(autoResize.cloneCSSValues);\n\n\t\t\tif (this.nodeName === 'textarea') {\n\t\t\t\tclone.height('auto');\n\t\t\t} else {\n\t\t\t\tclone.width('auto').css({\n\t\t\t\t\twhiteSpace: 'nowrap'\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tcheck: function check(e, immediate) {\n\n\t\t\tif (!this.clone) {\n\t\t\t\tthis.createClone();\n\t\t\t\tthis.injectClone();\n\t\t\t}\n\n\t\t\tvar config = this.config,\n\t\t\t clone = this.clone,\n\t\t\t el = this.el,\n\t\t\t value = el.val();\n\n\t\t\t// Do nothing if value hasn't changed\n\t\t\tif (value === this.prevValue) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tthis.prevValue = value;\n\n\t\t\tif (this.nodeName === 'input') {\n\n\t\t\t\tclone.text(value);\n\n\t\t\t\t// Calculate new width + whether to change\n\t\t\t\tvar cloneWidth = clone.width(),\n\t\t\t\t newWidth = cloneWidth + config.extraSpace >= config.minWidth ? cloneWidth + config.extraSpace : config.minWidth,\n\t\t\t\t currentWidth = el.width();\n\n\t\t\t\tnewWidth = Math.min(newWidth, config.maxWidth);\n\n\t\t\t\tif (newWidth < currentWidth && newWidth >= config.minWidth || newWidth >= config.minWidth && newWidth <= config.maxWidth) {\n\n\t\t\t\t\tconfig.onBeforeResize.call(el);\n\t\t\t\t\tconfig.onResize.call(el);\n\n\t\t\t\t\tel.scrollLeft(0);\n\n\t\t\t\t\tif (config.animate && !immediate) {\n\t\t\t\t\t\tel.stop(1, 1).animate({\n\t\t\t\t\t\t\twidth: newWidth\n\t\t\t\t\t\t}, config.animate);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tel.width(newWidth);\n\t\t\t\t\t\tconfig.onAfterResize.call(el);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// TEXTAREA\n\n\t\t\tclone.width(el.width()).height(0).val(value).scrollTop(10000);\n\n\t\t\tvar scrollTop = clone[0].scrollTop;\n\n\t\t\tif (!value) {\n\t\t\t\t// empty textarea should be exactly minHeight\n\t\t\t\tscrollTop = config.minHeight;\n\t\t\t\tthis.previousScrollTop = null; // reset state\n\t\t\t} else {\n\t\t\t\t// Don't do anything if scrollTop hasen't changed:\n\t\t\t\tif (this.previousScrollTop === scrollTop) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.previousScrollTop = scrollTop;\n\n\t\t\t\tif (scrollTop + config.extraSpace >= config.maxHeight) {\n\t\t\t\t\tel.css('overflowY', '');\n\t\t\t\t\tscrollTop = config.maxHeight;\n\t\t\t\t\timmediate = true;\n\t\t\t\t} else if (scrollTop + config.extraSpace <= config.minHeight) {\n\t\t\t\t\t// include extraSpace in calculations so the code works correctly\n\t\t\t\t\t// when there are few lines\n\t\t\t\t\tscrollTop = config.minHeight;\n\t\t\t\t} else {\n\t\t\t\t\tel.css('overflowY', 'hidden');\n\t\t\t\t\tscrollTop += config.extraSpace;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconfig.onBeforeResize.call(el);\n\t\t\tconfig.onResize.call(el);\n\n\t\t\t// Either animate or directly apply height:\n\t\t\tif (config.animate && !immediate) {\n\t\t\t\tel.stop(1, 1).animate({\n\t\t\t\t\theight: scrollTop\n\t\t\t\t}, config.animate);\n\t\t\t} else {\n\t\t\t\tel.height(scrollTop);\n\t\t\t\tconfig.onAfterResize.call(el);\n\t\t\t}\n\t\t},\n\n\t\tdestroy: function destroy() {\n\t\t\tthis.unbind();\n\t\t\tthis.el.removeData('AutoResizer');\n\t\t\tthis.clone.remove();\n\t\t\tdelete this.el;\n\t\t\tdelete this.clone;\n\t\t},\n\n\t\tinjectClone: function injectClone() {\n\t\t\t(autoResize.cloneContainer || (autoResize.cloneContainer = $('<arclones/>').appendTo('body'))).append(this.clone);\n\t\t}\n\n\t};\n})(jQuery);\n\n/***/ }),\n\n/***/ \"./src/lib/jquery.contextmenu.js\":\n/*!***************************************!*\\\n !*** ./src/lib/jquery.contextmenu.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/*!\n * jQuery contextMenu - Plugin for simple contextMenu handling\n *\n * Version: 1.6.5\n *\n * Authors: Rodney Rehm, Addy Osmani (patches for FF)\n * Web: http://medialize.github.com/jQuery-contextMenu/\n *\n * Licensed under\n * MIT License http://www.opensource.org/licenses/mit-license\n * GPL v3 http://opensource.org/licenses/GPL-3.0\n *\n */\n(function ($, undefined) {\n\n // TODO: -\n // ARIA stuff: menuitem, menuitemcheckbox und menuitemradio\n // create <menu> structure if $.support[htmlCommand || htmlMenuitem] and !opt.disableNative\n\n // determine html5 compatibility\n $.support.htmlMenuitem = 'HTMLMenuItemElement' in window;\n $.support.htmlCommand = 'HTMLCommandElement' in window;\n $.support.eventSelectstart = \"onselectstart\" in document.documentElement;\n /* // should the need arise, test for css user-select\n $.support.cssUserSelect = (function(){\n var t = false,\n e = document.createElement('div');\n \n $.each('Moz|Webkit|Khtml|O|ms|Icab|'.split('|'), function(i, prefix) {\n var propCC = prefix + (prefix ? 'U' : 'u') + 'serSelect',\n prop = (prefix ? ('-' + prefix.toLowerCase() + '-') : '') + 'user-select';\n \n e.style.cssText = prop + ': text;';\n if (e.style[propCC] == 'text') {\n t = true;\n return false;\n }\n \n return true;\n });\n \n return t;\n })();\n */\n\n if (!$.ui || !$.ui.widget) {\n // duck punch $.cleanData like jQueryUI does to get that remove event\n // https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.widget.js#L16-24\n var _cleanData = $.cleanData;\n $.cleanData = function (elems) {\n for (var i = 0, elem; (elem = elems[i]) != null; i++) {\n try {\n $(elem).triggerHandler(\"remove\");\n // http://bugs.jquery.com/ticket/8235\n } catch (e) {}\n }\n _cleanData(elems);\n };\n }\n\n var // currently active contextMenu trigger\n $currentTrigger = null,\n\n // is contextMenu initialized with at least one menu?\n initialized = false,\n\n // window handle\n $win = $(window),\n\n // number of registered menus\n counter = 0,\n\n // mapping selector to namespace\n namespaces = {},\n\n // mapping namespace to options\n menus = {},\n\n // custom command type handlers\n types = {},\n\n // default values\n defaults = {\n // selector of contextMenu trigger\n selector: null,\n // where to append the menu to\n appendTo: null,\n // method to trigger context menu [\"right\", \"left\", \"hover\"]\n trigger: \"right\",\n // hide menu when mouse leaves trigger / menu elements\n autoHide: false,\n // ms to wait before showing a hover-triggered context menu\n delay: 200,\n // flag denoting if a second trigger should simply move (true) or rebuild (false) an open menu\n // as long as the trigger happened on one of the trigger-element's child nodes\n reposition: false,\n // determine position to show menu at\n determinePosition: function determinePosition($menu) {\n // position to the lower middle of the trigger element\n if ($.ui && $.ui.position) {\n // .position() is provided as a jQuery UI utility\n // (...and it won't work on hidden elements)\n $menu.css('display', 'block').position({\n my: \"center top\",\n at: \"center bottom\",\n of: this,\n offset: \"0 5\",\n collision: \"fit\"\n }).css('display', 'none');\n } else {\n // determine contextMenu position\n var offset = this.offset();\n offset.top += this.outerHeight();\n offset.left += this.outerWidth() / 2 - $menu.outerWidth() / 2;\n $menu.css(offset);\n }\n },\n // position menu\n position: function position(opt, x, y) {\n var $this = this,\n offset;\n // determine contextMenu position\n if (!x && !y) {\n opt.determinePosition.call(this, opt.$menu);\n return;\n } else if (x === \"maintain\" && y === \"maintain\") {\n // x and y must not be changed (after re-show on command click)\n offset = opt.$menu.position();\n } else {\n // x and y are given (by mouse event)\n offset = { top: y, left: x };\n }\n\n // correct offset if viewport demands it\n var bottom = $win.scrollTop() + $win.height(),\n right = $win.scrollLeft() + $win.width(),\n height = opt.$menu.height(),\n width = opt.$menu.width();\n\n if (offset.top + height > bottom) {\n offset.top -= height;\n }\n\n if (offset.left + width > right) {\n offset.left -= width;\n }\n\n opt.$menu.css(offset);\n },\n // position the sub-menu\n positionSubmenu: function positionSubmenu($menu) {\n if ($.ui && $.ui.position) {\n // .position() is provided as a jQuery UI utility\n // (...and it won't work on hidden elements)\n $menu.css('display', 'block').position({\n my: \"left top\",\n at: \"right top\",\n of: this,\n collision: \"flipfit fit\"\n }).css('display', '');\n } else {\n // determine contextMenu position\n var offset = {\n top: 0,\n left: this.outerWidth()\n };\n $menu.css(offset);\n }\n },\n // offset to add to zIndex\n zIndex: 1,\n // show hide animation settings\n animation: {\n duration: 50,\n show: 'slideDown',\n hide: 'slideUp'\n },\n // events\n events: {\n show: $.noop,\n hide: $.noop\n },\n // default callback\n callback: null,\n // list of contextMenu items\n items: {}\n },\n\n // mouse position for hover activation\n hoveract = {\n timer: null,\n pageX: null,\n pageY: null\n },\n\n // determine zIndex\n zindex = function zindex($t) {\n var zin = 0,\n $tt = $t;\n\n while (true) {\n zin = Math.max(zin, parseInt($tt.css('z-index'), 10) || 0);\n $tt = $tt.parent();\n if (!$tt || !$tt.length || \"html body\".indexOf($tt.prop('nodeName').toLowerCase()) > -1) {\n break;\n }\n }\n\n return zin;\n },\n\n // event handlers\n handle = {\n // abort anything\n abortevent: function abortevent(e) {\n e.preventDefault();\n e.stopImmediatePropagation();\n },\n\n // contextmenu show dispatcher\n contextmenu: function contextmenu(e) {\n var $this = $(this);\n\n // disable actual context-menu\n e.preventDefault();\n e.stopImmediatePropagation();\n\n // abort native-triggered events unless we're triggering on right click\n if (e.data.trigger != 'right' && e.originalEvent) {\n return;\n }\n\n // abort event if menu is visible for this trigger\n if ($this.hasClass('context-menu-active')) {\n return;\n }\n\n if (!$this.hasClass('context-menu-disabled')) {\n // theoretically need to fire a show event at <menu>\n // http://www.whatwg.org/specs/web-apps/current-work/multipage/interactive-elements.html#context-menus\n // var evt = jQuery.Event(\"show\", { data: data, pageX: e.pageX, pageY: e.pageY, relatedTarget: this });\n // e.data.$menu.trigger(evt);\n\n $currentTrigger = $this;\n if (e.data.build) {\n var built = e.data.build($currentTrigger, e);\n // abort if build() returned false\n if (built === false) {\n return;\n }\n\n // dynamically build menu on invocation\n e.data = $.extend(true, {}, defaults, e.data, built || {});\n\n // abort if there are no items to display\n if (!e.data.items || $.isEmptyObject(e.data.items)) {\n // Note: jQuery captures and ignores errors from event handlers\n if (window.console) {\n (console.error || console.log)(\"No items specified to show in contextMenu\");\n }\n\n throw new Error('No Items sepcified');\n }\n\n // backreference for custom command type creation\n e.data.$trigger = $currentTrigger;\n\n op.create(e.data);\n }\n // show menu\n op.show.call($this, e.data, e.pageX, e.pageY);\n }\n },\n // contextMenu left-click trigger\n click: function click(e) {\n e.preventDefault();\n e.stopImmediatePropagation();\n $(this).trigger($.Event(\"contextmenu\", { data: e.data, pageX: e.pageX, pageY: e.pageY }));\n },\n // contextMenu right-click trigger\n mousedown: function mousedown(e) {\n // register mouse down\n var $this = $(this);\n\n // hide any previous menus\n if ($currentTrigger && $currentTrigger.length && !$currentTrigger.is($this)) {\n $currentTrigger.data('contextMenu').$menu.trigger('contextmenu:hide');\n }\n\n // activate on right click\n if (e.button == 2) {\n $currentTrigger = $this.data('contextMenuActive', true);\n }\n },\n // contextMenu right-click trigger\n mouseup: function mouseup(e) {\n // show menu\n var $this = $(this);\n if ($this.data('contextMenuActive') && $currentTrigger && $currentTrigger.length && $currentTrigger.is($this) && !$this.hasClass('context-menu-disabled')) {\n e.preventDefault();\n e.stopImmediatePropagation();\n $currentTrigger = $this;\n $this.trigger($.Event(\"contextmenu\", { data: e.data, pageX: e.pageX, pageY: e.pageY }));\n }\n\n $this.removeData('contextMenuActive');\n },\n // contextMenu hover trigger\n mouseenter: function mouseenter(e) {\n var $this = $(this),\n $related = $(e.relatedTarget),\n $document = $(document);\n\n // abort if we're coming from a menu\n if ($related.is('.context-menu-list') || $related.closest('.context-menu-list').length) {\n return;\n }\n\n // abort if a menu is shown\n if ($currentTrigger && $currentTrigger.length) {\n return;\n }\n\n hoveract.pageX = e.pageX;\n hoveract.pageY = e.pageY;\n hoveract.data = e.data;\n $document.on('mousemove.contextMenuShow', handle.mousemove);\n hoveract.timer = setTimeout(function () {\n hoveract.timer = null;\n $document.off('mousemove.contextMenuShow');\n $currentTrigger = $this;\n $this.trigger($.Event(\"contextmenu\", { data: hoveract.data, pageX: hoveract.pageX, pageY: hoveract.pageY }));\n }, e.data.delay);\n },\n // contextMenu hover trigger\n mousemove: function mousemove(e) {\n hoveract.pageX = e.pageX;\n hoveract.pageY = e.pageY;\n },\n // contextMenu hover trigger\n mouseleave: function mouseleave(e) {\n // abort if we're leaving for a menu\n var $related = $(e.relatedTarget);\n if ($related.is('.context-menu-list') || $related.closest('.context-menu-list').length) {\n return;\n }\n\n try {\n clearTimeout(hoveract.timer);\n } catch (e) {}\n\n hoveract.timer = null;\n },\n\n // click on layer to hide contextMenu\n layerClick: function layerClick(e) {\n var $this = $(this),\n root = $this.data('contextMenuRoot'),\n mouseup = false,\n button = e.button,\n x = e.pageX,\n y = e.pageY,\n target,\n offset,\n selectors;\n\n e.preventDefault();\n e.stopImmediatePropagation();\n\n setTimeout(function () {\n var $window, hideshow, possibleTarget;\n var triggerAction = root.trigger == 'left' && button === 0 || root.trigger == 'right' && button === 2;\n\n // find the element that would've been clicked, wasn't the layer in the way\n if (document.elementFromPoint) {\n root.$layer.hide();\n target = document.elementFromPoint(x - $win.scrollLeft(), y - $win.scrollTop());\n root.$layer.show();\n }\n\n if (root.reposition && triggerAction) {\n if (document.elementFromPoint) {\n if (root.$trigger.is(target) || root.$trigger.has(target).length) {\n root.position.call(root.$trigger, root, x, y);\n return;\n }\n } else {\n offset = root.$trigger.offset();\n $window = $(window);\n // while this looks kinda awful, it's the best way to avoid\n // unnecessarily calculating any positions\n offset.top += $window.scrollTop();\n if (offset.top <= e.pageY) {\n offset.left += $window.scrollLeft();\n if (offset.left <= e.pageX) {\n offset.bottom = offset.top + root.$trigger.outerHeight();\n if (offset.bottom >= e.pageY) {\n offset.right = offset.left + root.$trigger.outerWidth();\n if (offset.right >= e.pageX) {\n // reposition\n root.position.call(root.$trigger, root, x, y);\n return;\n }\n }\n }\n }\n }\n }\n\n if (target && triggerAction) {\n root.$trigger.one('contextmenu:hidden', function () {\n $(target).contextMenu({ x: x, y: y });\n });\n }\n\n root.$menu.trigger('contextmenu:hide');\n }, 50);\n },\n // key handled :hover\n keyStop: function keyStop(e, opt) {\n if (!opt.isInput) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n },\n key: function key(e) {\n var opt = $currentTrigger.data('contextMenu') || {};\n\n switch (e.keyCode) {\n case 9:\n case 38:\n // up\n handle.keyStop(e, opt);\n // if keyCode is [38 (up)] or [9 (tab) with shift]\n if (opt.isInput) {\n if (e.keyCode == 9 && e.shiftKey) {\n e.preventDefault();\n opt.$selected && opt.$selected.find('input, textarea, select').blur();\n opt.$menu.trigger('prevcommand');\n return;\n } else if (e.keyCode == 38 && opt.$selected.find('input, textarea, select').prop('type') == 'checkbox') {\n // checkboxes don't capture this key\n e.preventDefault();\n return;\n }\n } else if (e.keyCode != 9 || e.shiftKey) {\n opt.$menu.trigger('prevcommand');\n return;\n }\n // omitting break;\n\n // case 9: // tab - reached through omitted break;\n case 40:\n // down\n handle.keyStop(e, opt);\n if (opt.isInput) {\n if (e.keyCode == 9) {\n e.preventDefault();\n opt.$selected && opt.$selected.find('input, textarea, select').blur();\n opt.$menu.trigger('nextcommand');\n return;\n } else if (e.keyCode == 40 && opt.$selected.find('input, textarea, select').prop('type') == 'checkbox') {\n // checkboxes don't capture this key\n e.preventDefault();\n return;\n }\n } else {\n opt.$menu.trigger('nextcommand');\n return;\n }\n break;\n\n case 37:\n // left\n handle.keyStop(e, opt);\n if (opt.isInput || !opt.$selected || !opt.$selected.length) {\n break;\n }\n\n if (!opt.$selected.parent().hasClass('context-menu-root')) {\n var $parent = opt.$selected.parent().parent();\n opt.$selected.trigger('contextmenu:blur');\n opt.$selected = $parent;\n return;\n }\n break;\n\n case 39:\n // right\n handle.keyStop(e, opt);\n if (opt.isInput || !opt.$selected || !opt.$selected.length) {\n break;\n }\n\n var itemdata = opt.$selected.data('contextMenu') || {};\n if (itemdata.$menu && opt.$selected.hasClass('context-menu-submenu')) {\n opt.$selected = null;\n itemdata.$selected = null;\n itemdata.$menu.trigger('nextcommand');\n return;\n }\n break;\n\n case 35: // end\n case 36:\n // home\n if (opt.$selected && opt.$selected.find('input, textarea, select').length) {\n return;\n } else {\n (opt.$selected && opt.$selected.parent() || opt.$menu).children(':not(.disabled, .not-selectable)')[e.keyCode == 36 ? 'first' : 'last']().trigger('contextmenu:focus');\n e.preventDefault();\n return;\n }\n break;\n\n case 13:\n // enter\n handle.keyStop(e, opt);\n if (opt.isInput) {\n if (opt.$selected && !opt.$selected.is('textarea, select')) {\n e.preventDefault();\n return;\n }\n break;\n }\n opt.$selected && opt.$selected.trigger('mouseup');\n return;\n\n case 32: // space\n case 33: // page up\n case 34:\n // page down\n // prevent browser from scrolling down while menu is visible\n handle.keyStop(e, opt);\n return;\n\n case 27:\n // esc\n handle.keyStop(e, opt);\n opt.$menu.trigger('contextmenu:hide');\n return;\n\n default:\n // 0-9, a-z\n var k = String.fromCharCode(e.keyCode).toUpperCase();\n if (opt.accesskeys[k]) {\n // according to the specs accesskeys must be invoked immediately\n opt.accesskeys[k].$node.trigger(opt.accesskeys[k].$menu ? 'contextmenu:focus' : 'mouseup');\n return;\n }\n break;\n }\n // pass event to selected item,\n // stop propagation to avoid endless recursion\n e.stopPropagation();\n opt.$selected && opt.$selected.trigger(e);\n },\n\n // select previous possible command in menu\n prevItem: function prevItem(e) {\n e.stopPropagation();\n var opt = $(this).data('contextMenu') || {};\n\n // obtain currently selected menu\n if (opt.$selected) {\n var $s = opt.$selected;\n opt = opt.$selected.parent().data('contextMenu') || {};\n opt.$selected = $s;\n }\n\n var $children = opt.$menu.children(),\n $prev = !opt.$selected || !opt.$selected.prev().length ? $children.last() : opt.$selected.prev(),\n $round = $prev;\n\n // skip disabled\n while ($prev.hasClass('disabled') || $prev.hasClass('not-selectable')) {\n if ($prev.prev().length) {\n $prev = $prev.prev();\n } else {\n $prev = $children.last();\n }\n if ($prev.is($round)) {\n // break endless loop\n return;\n }\n }\n\n // leave current\n if (opt.$selected) {\n handle.itemMouseleave.call(opt.$selected.get(0), e);\n }\n\n // activate next\n handle.itemMouseenter.call($prev.get(0), e);\n\n // focus input\n var $input = $prev.find('input, textarea, select');\n if ($input.length) {\n $input.focus();\n }\n },\n // select next possible command in menu\n nextItem: function nextItem(e) {\n e.stopPropagation();\n var opt = $(this).data('contextMenu') || {};\n\n // obtain currently selected menu\n if (opt.$selected) {\n var $s = opt.$selected;\n opt = opt.$selected.parent().data('contextMenu') || {};\n opt.$selected = $s;\n }\n\n var $children = opt.$menu.children(),\n $next = !opt.$selected || !opt.$selected.next().length ? $children.first() : opt.$selected.next(),\n $round = $next;\n\n // skip disabled\n while ($next.hasClass('disabled') || $next.hasClass('not-selectable')) {\n if ($next.next().length) {\n $next = $next.next();\n } else {\n $next = $children.first();\n }\n if ($next.is($round)) {\n // break endless loop\n return;\n }\n }\n\n // leave current\n if (opt.$selected) {\n handle.itemMouseleave.call(opt.$selected.get(0), e);\n }\n\n // activate next\n handle.itemMouseenter.call($next.get(0), e);\n\n // focus input\n var $input = $next.find('input, textarea, select');\n if ($input.length) {\n $input.focus();\n }\n },\n\n // flag that we're inside an input so the key handler can act accordingly\n focusInput: function focusInput(e) {\n var $this = $(this).closest('.context-menu-item'),\n data = $this.data(),\n opt = data.contextMenu,\n root = data.contextMenuRoot;\n\n root.$selected = opt.$selected = $this;\n root.isInput = opt.isInput = true;\n },\n // flag that we're inside an input so the key handler can act accordingly\n blurInput: function blurInput(e) {\n var $this = $(this).closest('.context-menu-item'),\n data = $this.data(),\n opt = data.contextMenu,\n root = data.contextMenuRoot;\n\n root.isInput = opt.isInput = false;\n },\n\n // :hover on menu\n menuMouseenter: function menuMouseenter(e) {\n var root = $(this).data().contextMenuRoot;\n if (root) root.hovering = true;\n },\n // :hover on menu\n menuMouseleave: function menuMouseleave(e) {\n var root = $(this).data().contextMenuRoot;\n if (root && root.$layer && root.$layer.is(e.relatedTarget)) {\n root.hovering = false;\n }\n },\n\n // :hover done manually so key handling is possible\n itemMouseenter: function itemMouseenter(e) {\n var $this = $(this),\n data = $this.data(),\n opt = data.contextMenu,\n root = data.contextMenuRoot;\n\n if (!root) return;\n\n root.hovering = true;\n\n // abort if we're re-entering\n if (e && root.$layer && root.$layer.is(e.relatedTarget)) {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n\n // make sure only one item is selected\n (opt.$menu ? opt : root).$menu.children('.hover').trigger('contextmenu:blur');\n\n if ($this.hasClass('disabled') || $this.hasClass('not-selectable')) {\n opt.$selected = null;\n return;\n }\n\n $this.trigger('contextmenu:focus');\n },\n // :hover done manually so key handling is possible\n itemMouseleave: function itemMouseleave(e) {\n var $this = $(this),\n data = $this.data(),\n opt = data.contextMenu,\n root = data.contextMenuRoot;\n\n if (root && root !== opt && root.$layer && root.$layer.is(e.relatedTarget)) {\n root.$selected && root.$selected.trigger('contextmenu:blur');\n e.preventDefault();\n e.stopImmediatePropagation();\n root.$selected = opt.$selected = opt.$node;\n return;\n }\n\n $this.trigger('contextmenu:blur');\n },\n // contextMenu item click\n itemClick: function itemClick(e) {\n var $this = $(this),\n data = $this.data(),\n opt = data.contextMenu,\n root = data.contextMenuRoot,\n key = data.contextMenuKey,\n callback;\n\n // abort if the key is unknown or disabled or is a menu\n if (!opt.items[key] || $this.is('.disabled, .context-menu-submenu, .context-menu-separator, .not-selectable')) {\n return;\n }\n\n e.preventDefault();\n e.stopImmediatePropagation();\n\n if ($.isFunction(root.callbacks[key]) && Object.prototype.hasOwnProperty.call(root.callbacks, key)) {\n // item-specific callback\n callback = root.callbacks[key];\n } else if ($.isFunction(root.callback)) {\n // default callback\n callback = root.callback;\n } else {\n // no callback, no action\n return;\n }\n\n // hide menu if callback doesn't stop that\n if (callback.call(root.$trigger, key, root) !== false) {\n root.$menu.trigger('contextmenu:hide');\n } else if (root.$menu.parent().length) {\n op.update.call(root.$trigger, root);\n }\n },\n // ignore click events on input elements\n inputClick: function inputClick(e) {\n e.stopImmediatePropagation();\n },\n\n // hide <menu>\n hideMenu: function hideMenu(e, data) {\n var root = $(this).data('contextMenuRoot');\n op.hide.call(root.$trigger, root, data && data.force);\n },\n // focus <command>\n focusItem: function focusItem(e) {\n e.stopPropagation();\n var $this = $(this),\n data = $this.data(),\n opt = data.contextMenu,\n root = data.contextMenuRoot;\n\n $this.addClass('hover').siblings('.hover').trigger('contextmenu:blur');\n\n // remember selected\n opt.$selected = root.$selected = $this;\n\n // position sub-menu - do after show so dumb $.ui.position can keep up\n if (opt.$node) {\n root.positionSubmenu.call(opt.$node, opt.$menu);\n }\n },\n // blur <command>\n blurItem: function blurItem(e) {\n e.stopPropagation();\n var $this = $(this),\n data = $this.data(),\n opt = data.contextMenu;\n\n $this.removeClass('hover');\n if (opt) opt.$selected = null;\n }\n },\n\n // operations\n op = {\n show: function show(opt, x, y) {\n var $trigger = $(this),\n offset,\n css = {};\n\n // hide any open menus\n $('#context-menu-layer').trigger('mousedown');\n\n // backreference for callbacks\n opt.$trigger = $trigger;\n\n // show event\n if (opt.events.show.call($trigger, opt) === false) {\n $currentTrigger = null;\n return;\n }\n\n // create or update context menu\n op.update.call($trigger, opt);\n\n // position menu\n opt.position.call($trigger, opt, x, y);\n\n // make sure we're in front\n if (opt.zIndex) {\n css.zIndex = zindex($trigger) + opt.zIndex;\n }\n\n // add layer\n op.layer.call(opt.$menu, opt, css.zIndex);\n\n // adjust sub-menu zIndexes\n opt.$menu.find('ul').css('zIndex', css.zIndex + 1);\n\n // position and show context menu\n opt.$menu.css(css)[opt.animation.show](opt.animation.duration, function () {\n $trigger.trigger('contextmenu:visible');\n });\n // make options available and set state\n $trigger.data('contextMenu', opt).addClass(\"context-menu-active\");\n\n // register key handler\n $(document).off('keydown.contextMenu').on('keydown.contextMenu', handle.key);\n // register autoHide handler\n if (opt.autoHide) {\n // mouse position handler\n $(document).on('mousemove.contextMenuAutoHide', function (e) {\n // need to capture the offset on mousemove,\n // since the page might've been scrolled since activation\n var pos = $trigger.offset();\n pos.right = pos.left + $trigger.outerWidth();\n pos.bottom = pos.top + $trigger.outerHeight();\n\n if (opt.$layer && !opt.hovering && (!(e.pageX >= pos.left && e.pageX <= pos.right) || !(e.pageY >= pos.top && e.pageY <= pos.bottom))) {\n // if mouse in menu...\n opt.$menu.trigger('contextmenu:hide');\n }\n });\n }\n },\n hide: function hide(opt, force) {\n var $trigger = $(this);\n if (!opt) {\n opt = $trigger.data('contextMenu') || {};\n }\n\n // hide event\n if (!force && opt.events && opt.events.hide.call($trigger, opt) === false) {\n return;\n }\n\n // remove options and revert state\n $trigger.removeData('contextMenu').removeClass(\"context-menu-active\");\n\n if (opt.$layer) {\n // keep layer for a bit so the contextmenu event can be aborted properly by opera\n setTimeout(function ($layer) {\n return function () {\n $layer.remove();\n };\n }(opt.$layer), 10);\n\n try {\n delete opt.$layer;\n } catch (e) {\n opt.$layer = null;\n }\n }\n\n // remove handle\n $currentTrigger = null;\n // remove selected\n opt.$menu.find('.hover').trigger('contextmenu:blur');\n opt.$selected = null;\n // unregister key and mouse handlers\n //$(document).off('.contextMenuAutoHide keydown.contextMenu'); // http://bugs.jquery.com/ticket/10705\n $(document).off('.contextMenuAutoHide').off('keydown.contextMenu');\n // hide menu\n opt.$menu && opt.$menu[opt.animation.hide](opt.animation.duration, function () {\n // tear down dynamically built menu after animation is completed.\n if (opt.build) {\n opt.$menu.remove();\n $.each(opt, function (key, value) {\n switch (key) {\n case 'ns':\n case 'selector':\n case 'build':\n case 'trigger':\n return true;\n\n default:\n opt[key] = undefined;\n try {\n delete opt[key];\n } catch (e) {}\n return true;\n }\n });\n }\n\n setTimeout(function () {\n $trigger.trigger('contextmenu:hidden');\n }, 10);\n });\n },\n create: function create(opt, root) {\n if (root === undefined) {\n root = opt;\n }\n // create contextMenu\n opt.$menu = $('<ul class=\"context-menu-list\"></ul>').addClass(opt.className || \"\").data({\n 'contextMenu': opt,\n 'contextMenuRoot': root\n });\n\n $.each(['callbacks', 'commands', 'inputs'], function (i, k) {\n opt[k] = {};\n if (!root[k]) {\n root[k] = {};\n }\n });\n\n root.accesskeys || (root.accesskeys = {});\n\n // create contextMenu items\n $.each(opt.items, function (key, item) {\n var $t = $('<li class=\"context-menu-item\"></li>').addClass(item.className || \"\"),\n $label = null,\n $input = null;\n\n // iOS needs to see a click-event bound to an element to actually\n // have the TouchEvents infrastructure trigger the click event\n $t.on('click', $.noop);\n\n if (typeof item !== \"string\") {\n item.$node = $t.data({\n 'contextMenu': opt,\n 'contextMenuRoot': root,\n 'contextMenuKey': key\n });\n }\n\n // register accesskey\n // NOTE: the accesskey attribute should be applicable to any element, but Safari5 and Chrome13 still can't do that\n if (item.accesskey) {\n var aks = splitAccesskey(item.accesskey);\n for (var i = 0, ak; ak = aks[i]; i++) {\n if (!root.accesskeys[ak]) {\n root.accesskeys[ak] = item;\n item._name = item.name.replace(new RegExp('(' + ak + ')', 'i'), '<span class=\"context-menu-accesskey\">$1</span>');\n break;\n }\n }\n }\n\n if (typeof item == \"string\") {\n $t.addClass('context-menu-separator not-selectable');\n } else if (item.type && types[item.type]) {\n // run custom type handler\n types[item.type].call($t, item, opt, root);\n // register commands\n $.each([opt, root], function (i, k) {\n k.commands[key] = item;\n if ($.isFunction(item.callback)) {\n k.callbacks[key] = item.callback;\n }\n });\n } else {\n // add label for input\n if (item.type == 'html') {\n $t.addClass('context-menu-html not-selectable');\n } else if (item.type) {\n $label = $('<label></label>').appendTo($t);\n $('<span></span>').html(item._name || item.name).appendTo($label);\n $t.addClass('context-menu-input');\n opt.hasTypes = true;\n $.each([opt, root], function (i, k) {\n k.commands[key] = item;\n k.inputs[key] = item;\n });\n } else if (item.items) {\n item.type = 'sub';\n }\n\n switch (item.type) {\n case 'text':\n $input = $('<input type=\"text\" value=\"1\" name=\"\" value=\"\">').attr('name', 'context-menu-input-' + key).val(item.value || \"\").appendTo($label);\n break;\n\n case 'textarea':\n $input = $('<textarea name=\"\"></textarea>').attr('name', 'context-menu-input-' + key).val(item.value || \"\").appendTo($label);\n\n if (item.height) {\n $input.height(item.height);\n }\n break;\n\n case 'checkbox':\n $input = $('<input type=\"checkbox\" value=\"1\" name=\"\" value=\"\">').attr('name', 'context-menu-input-' + key).val(item.value || \"\").prop(\"checked\", !!item.selected).prependTo($label);\n break;\n\n case 'radio':\n $input = $('<input type=\"radio\" value=\"1\" name=\"\" value=\"\">').attr('name', 'context-menu-input-' + item.radio).val(item.value || \"\").prop(\"checked\", !!item.selected).prependTo($label);\n break;\n\n case 'select':\n $input = $('<select name=\"\">').attr('name', 'context-menu-input-' + key).appendTo($label);\n if (item.options) {\n $.each(item.options, function (value, text) {\n $('<option></option>').val(value).text(text).appendTo($input);\n });\n $input.val(item.selected);\n }\n break;\n\n case 'sub':\n // FIXME: shouldn't this .html() be a .text()?\n $('<span></span>').html(item._name || item.name).appendTo($t);\n item.appendTo = item.$node;\n op.create(item, root);\n $t.data('contextMenu', item).addClass('context-menu-submenu');\n item.callback = null;\n break;\n\n case 'html':\n $(item.html).appendTo($t);\n break;\n\n default:\n $.each([opt, root], function (i, k) {\n k.commands[key] = item;\n if ($.isFunction(item.callback)) {\n k.callbacks[key] = item.callback;\n }\n });\n // FIXME: shouldn't this .html() be a .text()?\n $('<span></span>').html(item._name || item.name || \"\").appendTo($t);\n break;\n }\n\n // disable key listener in <input>\n if (item.type && item.type != 'sub' && item.type != 'html') {\n $input.on('focus', handle.focusInput).on('blur', handle.blurInput);\n\n if (item.events) {\n $input.on(item.events, opt);\n }\n }\n\n // add icons\n if (item.icon) {\n $t.addClass(\"icon icon-\" + item.icon);\n }\n }\n\n // cache contained elements\n if (typeof item !== \"string\") {\n item.$input = $input;\n item.$label = $label;\n }\n\n // attach item to menu\n $t.appendTo(opt.$menu);\n\n // Disable text selection\n if (!opt.hasTypes && $.support.eventSelectstart) {\n // browsers support user-select: none,\n // IE has a special event for text-selection\n // browsers supporting neither will not be preventing text-selection\n $t.on('selectstart.disableTextSelect', handle.abortevent);\n }\n });\n // attach contextMenu to <body> (to bypass any possible overflow:hidden issues on parents of the trigger element)\n if (!opt.$node) {\n opt.$menu.css('display', 'none').addClass('context-menu-root');\n }\n opt.$menu.appendTo(opt.appendTo || document.body);\n },\n resize: function resize($menu, nested) {\n // determine widths of submenus, as CSS won't grow them automatically\n // position:absolute within position:absolute; min-width:100; max-width:200; results in width: 100;\n // kinda sucks hard...\n\n // determine width of absolutely positioned element\n $menu.css({ position: 'absolute', display: 'block' });\n // don't apply yet, because that would break nested elements' widths\n // add a pixel to circumvent word-break issue in IE9 - #80\n $menu.data('width', Math.ceil($menu.width()) + 1);\n // reset styles so they allow nested elements to grow/shrink naturally\n $menu.css({\n position: 'static',\n minWidth: '0px',\n maxWidth: '100000px'\n });\n // identify width of nested menus\n $menu.find('> li > ul').each(function () {\n op.resize($(this), true);\n });\n // reset and apply changes in the end because nested\n // elements' widths wouldn't be calculatable otherwise\n if (!nested) {\n $menu.find('ul').andSelf().css({\n position: '',\n display: '',\n minWidth: '',\n maxWidth: ''\n }).width(function () {\n return $(this).data('width');\n });\n }\n },\n update: function update(opt, root) {\n var $trigger = this;\n if (root === undefined) {\n root = opt;\n op.resize(opt.$menu);\n }\n // re-check disabled for each item\n opt.$menu.children().each(function () {\n var $item = $(this),\n key = $item.data('contextMenuKey'),\n item = opt.items[key],\n disabled = item === undefined || typeof item === \"string\" || $.isFunction(item.disabled) && item.disabled.call($trigger, key, root) || item.disabled === true;\n\n // dis- / enable item\n $item[disabled ? 'addClass' : 'removeClass']('disabled');\n\n if (item && item.type) {\n // dis- / enable input elements\n $item.find('input, select, textarea').prop('disabled', disabled);\n\n // update input states\n switch (item.type) {\n case 'text':\n case 'textarea':\n item.$input.val(item.value || \"\");\n break;\n\n case 'checkbox':\n case 'radio':\n item.$input.val(item.value || \"\").prop('checked', !!item.selected);\n break;\n\n case 'select':\n item.$input.val(item.selected || \"\");\n break;\n }\n }\n\n if (item && item.$menu) {\n // update sub-menu\n op.update.call($trigger, item, root);\n }\n });\n },\n layer: function layer(opt, zIndex) {\n // add transparent layer for click area\n // filter and background for Internet Explorer, Issue #23\n var $layer = opt.$layer = $('<div id=\"context-menu-layer\" style=\"position:fixed; z-index:' + zIndex + '; top:0; left:0; opacity: 0; filter: alpha(opacity=0); background-color: #000;\"></div>').css({ height: $win.height(), width: $win.width(), display: 'block' }).data('contextMenuRoot', opt).insertBefore(this).on('contextmenu', handle.abortevent).on('mousedown', handle.layerClick);\n\n // IE6 doesn't know position:fixed;\n if (!$.support.fixedPosition) {\n $layer.css({\n 'position': 'absolute',\n 'height': $(document).height()\n });\n }\n\n return $layer;\n }\n };\n\n // split accesskey according to http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#assigned-access-key\n function splitAccesskey(val) {\n var t = val.split(/\\s+/),\n keys = [];\n\n for (var i = 0, k; k = t[i]; i++) {\n k = k[0].toUpperCase(); // first character only\n // theoretically non-accessible characters should be ignored, but different systems, different keyboard layouts, ... screw it.\n // a map to look up already used access keys would be nice\n keys.push(k);\n }\n\n return keys;\n }\n\n // handle contextMenu triggers\n $.fn.contextMenu = function (operation) {\n if (operation === undefined) {\n this.first().trigger('contextmenu');\n } else if (operation.x && operation.y) {\n this.first().trigger($.Event(\"contextmenu\", { pageX: operation.x, pageY: operation.y }));\n } else if (operation === \"hide\") {\n var $menu = this.data('contextMenu').$menu;\n $menu && $menu.trigger('contextmenu:hide');\n } else if (operation === \"destroy\") {\n $.contextMenu(\"destroy\", { context: this });\n } else if ($.isPlainObject(operation)) {\n operation.context = this;\n $.contextMenu(\"create\", operation);\n } else if (operation) {\n this.removeClass('context-menu-disabled');\n } else if (!operation) {\n this.addClass('context-menu-disabled');\n }\n\n return this;\n };\n\n // manage contextMenu instances\n $.contextMenu = function (operation, options) {\n if (typeof operation != 'string') {\n options = operation;\n operation = 'create';\n }\n\n if (typeof options == 'string') {\n options = { selector: options };\n } else if (options === undefined) {\n options = {};\n }\n\n // merge with default options\n var o = $.extend(true, {}, defaults, options || {});\n var $document = $(document);\n var $context = $document;\n var _hasContext = false;\n\n if (!o.context || !o.context.length) {\n o.context = document;\n } else {\n // you never know what they throw at you...\n $context = $(o.context).first();\n o.context = $context.get(0);\n _hasContext = o.context !== document;\n }\n\n switch (operation) {\n case 'create':\n // no selector no joy\n if (!o.selector) {\n throw new Error('No selector specified');\n }\n // make sure internal classes are not bound to\n if (o.selector.match(/.context-menu-(list|item|input)($|\\s)/)) {\n throw new Error('Cannot bind to selector \"' + o.selector + '\" as it contains a reserved className');\n }\n if (!o.build && (!o.items || $.isEmptyObject(o.items))) {\n throw new Error('No Items sepcified');\n }\n counter++;\n o.ns = '.contextMenu' + counter;\n if (!_hasContext) {\n namespaces[o.selector] = o.ns;\n }\n menus[o.ns] = o;\n\n // default to right click\n if (!o.trigger) {\n o.trigger = 'right';\n }\n\n if (!initialized) {\n // make sure item click is registered first\n $document.on({\n 'contextmenu:hide.contextMenu': handle.hideMenu,\n 'prevcommand.contextMenu': handle.prevItem,\n 'nextcommand.contextMenu': handle.nextItem,\n 'contextmenu.contextMenu': handle.abortevent,\n 'mouseenter.contextMenu': handle.menuMouseenter,\n 'mouseleave.contextMenu': handle.menuMouseleave\n }, '.context-menu-list').on('mouseup.contextMenu', '.context-menu-input', handle.inputClick).on({\n 'mouseup.contextMenu': handle.itemClick,\n 'contextmenu:focus.contextMenu': handle.focusItem,\n 'contextmenu:blur.contextMenu': handle.blurItem,\n 'contextmenu.contextMenu': handle.abortevent,\n 'mouseenter.contextMenu': handle.itemMouseenter,\n 'mouseleave.contextMenu': handle.itemMouseleave\n }, '.context-menu-item');\n\n initialized = true;\n }\n\n // engage native contextmenu event\n $context.on('contextmenu' + o.ns, o.selector, o, handle.contextmenu);\n\n if (_hasContext) {\n // add remove hook, just in case\n $context.on('remove' + o.ns, function () {\n $(this).contextMenu(\"destroy\");\n });\n }\n\n switch (o.trigger) {\n case 'hover':\n $context.on('mouseenter' + o.ns, o.selector, o, handle.mouseenter).on('mouseleave' + o.ns, o.selector, o, handle.mouseleave);\n break;\n\n case 'left':\n $context.on('click' + o.ns, o.selector, o, handle.click);\n break;\n /*\n default:\n // http://www.quirksmode.org/dom/events/contextmenu.html\n $document\n .on('mousedown' + o.ns, o.selector, o, handle.mousedown)\n .on('mouseup' + o.ns, o.selector, o, handle.mouseup);\n break;\n */\n }\n\n // create menu\n if (!o.build) {\n op.create(o);\n }\n break;\n\n case 'destroy':\n var $visibleMenu;\n if (_hasContext) {\n // get proper options\n var context = o.context;\n $.each(menus, function (ns, o) {\n if (o.context !== context) {\n return true;\n }\n\n $visibleMenu = $('.context-menu-list').filter(':visible');\n if ($visibleMenu.length && $visibleMenu.data().contextMenuRoot.$trigger.is($(o.context).find(o.selector))) {\n $visibleMenu.trigger('contextmenu:hide', { force: true });\n }\n\n try {\n if (menus[o.ns].$menu) {\n menus[o.ns].$menu.remove();\n }\n\n delete menus[o.ns];\n } catch (e) {\n menus[o.ns] = null;\n }\n\n $(o.context).off(o.ns);\n\n return true;\n });\n } else if (!o.selector) {\n $document.off('.contextMenu .contextMenuAutoHide');\n $.each(menus, function (ns, o) {\n $(o.context).off(o.ns);\n });\n\n namespaces = {};\n menus = {};\n counter = 0;\n initialized = false;\n\n $('#context-menu-layer, .context-menu-list').remove();\n } else if (namespaces[o.selector]) {\n $visibleMenu = $('.context-menu-list').filter(':visible');\n if ($visibleMenu.length && $visibleMenu.data().contextMenuRoot.$trigger.is(o.selector)) {\n $visibleMenu.trigger('contextmenu:hide', { force: true });\n }\n\n try {\n if (menus[namespaces[o.selector]].$menu) {\n menus[namespaces[o.selector]].$menu.remove();\n }\n\n delete menus[namespaces[o.selector]];\n } catch (e) {\n menus[namespaces[o.selector]] = null;\n }\n\n $document.off(namespaces[o.selector]);\n }\n break;\n\n case 'html5':\n // if <command> or <menuitem> are not handled by the browser,\n // or options was a bool true,\n // initialize $.contextMenu for them\n if (!$.support.htmlCommand && !$.support.htmlMenuitem || typeof options == \"boolean\" && options) {\n $('menu[type=\"context\"]').each(function () {\n if (this.id) {\n $.contextMenu({\n selector: '[contextmenu=' + this.id + ']',\n items: $.contextMenu.fromMenu(this)\n });\n }\n }).css('display', 'none');\n }\n break;\n\n default:\n throw new Error('Unknown operation \"' + operation + '\"');\n }\n\n return this;\n };\n\n // import values into <input> commands\n $.contextMenu.setInputValues = function (opt, data) {\n if (data === undefined) {\n data = {};\n }\n\n $.each(opt.inputs, function (key, item) {\n switch (item.type) {\n case 'text':\n case 'textarea':\n item.value = data[key] || \"\";\n break;\n\n case 'checkbox':\n item.selected = data[key] ? true : false;\n break;\n\n case 'radio':\n item.selected = (data[item.radio] || \"\") == item.value ? true : false;\n break;\n\n case 'select':\n item.selected = data[key] || \"\";\n break;\n }\n });\n };\n\n // export values from <input> commands\n $.contextMenu.getInputValues = function (opt, data) {\n if (data === undefined) {\n data = {};\n }\n\n $.each(opt.inputs, function (key, item) {\n switch (item.type) {\n case 'text':\n case 'textarea':\n case 'select':\n data[key] = item.$input.val();\n break;\n\n case 'checkbox':\n data[key] = item.$input.prop('checked');\n break;\n\n case 'radio':\n if (item.$input.prop('checked')) {\n data[item.radio] = item.value;\n }\n break;\n }\n });\n\n return data;\n };\n\n // find <label for=\"xyz\">\n function inputLabel(node) {\n return node.id && $('label[for=\"' + node.id + '\"]').val() || node.name;\n }\n\n // convert <menu> to items object\n function menuChildren(items, $children, counter) {\n if (!counter) {\n counter = 0;\n }\n\n $children.each(function () {\n var $node = $(this),\n node = this,\n nodeName = this.nodeName.toLowerCase(),\n label,\n item;\n\n // extract <label><input>\n if (nodeName == 'label' && $node.find('input, textarea, select').length) {\n label = $node.text();\n $node = $node.children().first();\n node = $node.get(0);\n nodeName = node.nodeName.toLowerCase();\n }\n\n /*\n * <menu> accepts flow-content as children. that means <embed>, <canvas> and such are valid menu items.\n * Not being the sadistic kind, $.contextMenu only accepts:\n * <command>, <menuitem>, <hr>, <span>, <p> <input [text, radio, checkbox]>, <textarea>, <select> and of course <menu>.\n * Everything else will be imported as an html node, which is not interfaced with contextMenu.\n */\n\n // http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#concept-command\n switch (nodeName) {\n // http://www.whatwg.org/specs/web-apps/current-work/multipage/interactive-elements.html#the-menu-element\n case 'menu':\n item = { name: $node.attr('label'), items: {} };\n counter = menuChildren(item.items, $node.children(), counter);\n break;\n\n // http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#using-the-a-element-to-define-a-command\n case 'a':\n // http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#using-the-button-element-to-define-a-command\n case 'button':\n item = {\n name: $node.text(),\n disabled: !!$node.attr('disabled'),\n callback: function () {\n return function () {\n $node.click();\n };\n }()\n };\n break;\n\n // http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#using-the-command-element-to-define-a-command\n\n case 'menuitem':\n case 'command':\n switch ($node.attr('type')) {\n case undefined:\n case 'command':\n case 'menuitem':\n item = {\n name: $node.attr('label'),\n disabled: !!$node.attr('disabled'),\n callback: function () {\n return function () {\n $node.click();\n };\n }()\n };\n break;\n\n case 'checkbox':\n item = {\n type: 'checkbox',\n disabled: !!$node.attr('disabled'),\n name: $node.attr('label'),\n selected: !!$node.attr('checked')\n };\n break;\n\n case 'radio':\n item = {\n type: 'radio',\n disabled: !!$node.attr('disabled'),\n name: $node.attr('label'),\n radio: $node.attr('radiogroup'),\n value: $node.attr('id'),\n selected: !!$node.attr('checked')\n };\n break;\n\n default:\n item = undefined;\n }\n break;\n\n case 'hr':\n item = '-------';\n break;\n\n case 'input':\n switch ($node.attr('type')) {\n case 'text':\n item = {\n type: 'text',\n name: label || inputLabel(node),\n disabled: !!$node.attr('disabled'),\n value: $node.val()\n };\n break;\n\n case 'checkbox':\n item = {\n type: 'checkbox',\n name: label || inputLabel(node),\n disabled: !!$node.attr('disabled'),\n selected: !!$node.attr('checked')\n };\n break;\n\n case 'radio':\n item = {\n type: 'radio',\n name: label || inputLabel(node),\n disabled: !!$node.attr('disabled'),\n radio: !!$node.attr('name'),\n value: $node.val(),\n selected: !!$node.attr('checked')\n };\n break;\n\n default:\n item = undefined;\n break;\n }\n break;\n\n case 'select':\n item = {\n type: 'select',\n name: label || inputLabel(node),\n disabled: !!$node.attr('disabled'),\n selected: $node.val(),\n options: {}\n };\n $node.children().each(function () {\n item.options[this.value] = $(this).text();\n });\n break;\n\n case 'textarea':\n item = {\n type: 'textarea',\n name: label || inputLabel(node),\n disabled: !!$node.attr('disabled'),\n value: $node.val()\n };\n break;\n\n case 'label':\n break;\n\n default:\n item = { type: 'html', html: $node.clone(true) };\n break;\n }\n\n if (item) {\n counter++;\n items['key' + counter] = item;\n }\n });\n\n return counter;\n }\n\n // convert html5 menu\n $.contextMenu.fromMenu = function (element) {\n var $this = $(element),\n items = {};\n\n menuChildren(items, $this.children());\n\n return items;\n };\n\n // make defaults accessible\n $.contextMenu.defaults = defaults;\n $.contextMenu.types = types;\n // export internal functions - undocumented, for hacking only!\n $.contextMenu.handle = handle;\n $.contextMenu.op = op;\n $.contextMenu.menus = menus;\n})(jQuery);\n\n/***/ }),\n\n/***/ \"./src/lib/pathfinding.exec.js\":\n/*!*************************************!*\\\n !*** ./src/lib/pathfinding.exec.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(/*! !./node_modules/script-loader/addScript.js */ \"./node_modules/script-loader/addScript.js\")(__webpack_require__(/*! !./node_modules/raw-loader!./src/lib/pathfinding.exec.js */ \"./node_modules/raw-loader/index.js!./src/lib/pathfinding.exec.js\"));\n\n/***/ }),\n\n/***/ \"./src/lib/raphael.exec.js\":\n/*!*********************************!*\\\n !*** ./src/lib/raphael.exec.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(/*! !./node_modules/script-loader/addScript.js */ \"./node_modules/script-loader/addScript.js\")(__webpack_require__(/*! !./node_modules/raw-loader!./src/lib/raphael.exec.js */ \"./node_modules/raw-loader/index.js!./src/lib/raphael.exec.js\"));\n\n/***/ }),\n\n/***/ \"./src/packages.js\":\n/*!*************************!*\\\n !*** ./src/packages.js ***!\n \\*************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n\n/**\n *\n * @private\n */\n/**\n * Primary package containing general interfaces and implementation classes.\n * @namespace draw2d */\nexports.default = {\n /**\n * Types representing or manipulating geometric values, such as Points, Rectangles, etc.\n * @namespace draw2d.geo\n * */\n geo: {},\n\n /** \n * Contains classes to load and save Draw2D files into, or from, a Canvas.\n * @namespace draw2d.io \n **/\n io: {\n /** @namespace draw2d.io.json\n * */\n json: {},\n /** @namespace draw2d.io.png */\n png: {},\n /** @namespace draw2d.io.svg */\n svg: {}\n },\n\n /** @namespace draw2d.util */\n util: {\n /** @namespace draw2d.util.spline */\n spline: {}\n },\n\n /**\n * This package contains EditPolicy implementations for all used elements. A *EditPolicy*\n * is a pluggable contribution implementing a portion of an element behavior. Editpolicies contribute to the\n * overall editing behavior of an EditPart.\n *\n * Editing behavior is defined as one or more of the following:\n * - Selection handling\n * - Routing\n * - Feedback management\n * - Delegation and Forwarding of commands\n * - Drag&Drop behaviour\n *\n * @namespace draw2d.policy\n * */\n policy: {\n /**\n * Editpolicies for selection handling, highlighting, background rendering, snapTo behaviour.\n *\n * @namespace draw2d.policy.canvas\n * */\n canvas: {},\n /** \n * Policies for Connection creation. Like 'ClickPolicy'...creates a connection if you click into the canvas. \n * @namespace draw2d.policy.connection \n **/\n connection: {},\n /** @namespace draw2d.policy.line */\n line: {},\n /** @namespace draw2d.policy.port */\n port: {},\n /** \n * Selection decorations for figures. Movement contrains. Width limitation,...\n * @namespace draw2d.policy.figure \n **/\n figure: {}\n },\n\n /** \n * Contains all predefined visual shapes of Draw2D\n * \n * @namespace draw2d.shape \n **/\n shape: {\n /** \n * @namespace draw2d.shape.basic \n **/\n basic: {},\n /** @namespace draw2d.shape.dimetric */\n dimetric: {},\n /** @namespace draw2d.shape.composite */\n composite: {},\n /** @namespace draw2d.shape.arrow */\n arrow: {},\n /** @namespace draw2d.shape.node */\n node: {},\n /** @namespace draw2d.shape.note */\n note: {},\n /** @namespace draw2d.shape.diagram */\n diagram: {},\n /** @namespace draw2d.shape.flowchart */\n flowchart: {},\n /** @namespace draw2d.shape.analog */\n analog: {},\n /** @namespace draw2d.shape.icon */\n icon: {},\n /** @namespace draw2d.shape.layout */\n layout: {},\n /** @namespace draw2d.shape.pert */\n pert: {},\n /** @namespace draw2d.shape.state */\n state: {},\n /** @namespace draw2d.shape.widget */\n widget: {}\n },\n\n /** \n * The command is what eventually changes the model. Figures are asked for a command for a given request. Commands also help \n * determine if the interaction is possible. If there is no command, or it is not executable, the UI will indicate that the \n * interaction is not allowed. \n * \n * All commands (move, drag&drop, insert, remove,....) are stored on top of a CommandStack and available for undo and redo.\n * An `draw2d.Canvas` has a single command stack. **Commands must be executed using the command stack rather than directly calling execute.**\n * \n * @namespace draw2d.command \n **/\n command: {},\n\n /** @namespace draw2d.decoration */\n decoration: {\n /** @namespace draw2d.decoration.connection */\n connection: {}\n },\n\n /** @namespace draw2d.layout */\n layout: {\n /** @namespace draw2d.layout.connection\n * @memberof draw2d.layout\n * */\n connection: {},\n /** @namespace draw2d.layout.anchor */\n anchor: {},\n /** @namespace draw2d.layout.mesh */\n mesh: {},\n /** @namespace draw2d.layout.locator */\n locator: {}\n },\n\n /** @namespace draw2d.ui */\n ui: {},\n\n isTouchDevice:\n //Detect iPhone\n navigator.platform.indexOf(\"iPhone\") != -1 ||\n //Detect iPod\n navigator.platform.indexOf(\"iPod\") != -1 ||\n //Detect iPad\n navigator.platform.indexOf(\"iPad\") != -1\n\n};\nmodule.exports = exports[\"default\"];\n\n/***/ }),\n\n/***/ \"./src/policy/EditPolicy.js\":\n/*!**********************************!*\\\n !*** ./src/policy/EditPolicy.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A plugable contribution implementing a portion of an behavior.\n *\n *\n * EditPolicies should determine an Canvas or figure editing capabilities. It is possible to implement\n * an figure such that it handles all editing responsibility. However, it is much more flexible\n * and object-oriented to use EditPolicies. Using policies, you can pick and choose the editing\n * behavior for an figure/canvas without being bound to its class hierarchy. Code management is easier.\n *\n *\n * This interface is not intended to be implemented by clients. Clients should inherit from {@link draw2d.policy.figure.SelectionFeedbackPolicy}\n * or {@link draw2d.policy.canvas.SelectionPolicy}.\n *\n * @author Andreas Herz\n */\n_packages2.default.policy.EditPolicy = Class.extend(\n/** @lends draw2d.policy.EditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.EditPolicy\",\n\n /**\n *\n */\n init: function init(attr, setter, getter) {\n this.setterWhitelist = (0, _extend2.default)({}, setter);\n\n this.getterWhitelist = (0, _extend2.default)({}, getter);\n\n this.attr(attr);\n },\n\n /**\n * \n * Read or set object attributes.<br>\n * When no value is given, reads specified attribute from the element.<br>\n * When value is given, sets the attribute to that value.\n * Multiple attributes can be set by passing an object with name-value pairs.\n *\n * @param {String/Object} name\n * @param {Object} [value]\n * @since 5.3.2\n * @returns {Object}\n **/\n attr: function attr(name, value) {\n // call of attr as setter method with {name1:val1, name2:val2 } argument list\n //\n if ($.isPlainObject(name)) {\n for (var _key in name) {\n var func = this.setterWhitelist[_key];\n // call the assigned method if given\n if (func) {\n func.call(this, name[_key]);\n }\n // maby the ussser adds a function as property to the attr call\n // e.g.:\n // {\n // doIt: function(){}\n // }\n //\n // in this case we assign the method to this object and wrap it with \"this\" as context\n // a very, very simple method to replace default implemenations of the object\n else if (typeof name[_key] === \"function\") {\n this[_key] = name[_key].bind(this);\n }\n }\n } else if (typeof name === \"string\") {\n // call attr as getter\n //\n if (typeof value === \"undefined\") {\n var getter = this.getterWhitelist[name];\n if (typeof getter === \"function\") {\n return getter.call(this);\n }\n return; // undefined\n }\n // call attr as simple setter with (key , value)\n //\n\n // the value can be a function. In this case we must call the value().\n if (typeof value === \"function\") {\n value = value();\n }\n var setter = this.setterWhitelist[name];\n if (setter) {\n setter.call(this, value);\n }\n }\n // generic getter of all registered attributes\n else if (typeof name === \"undefined\") {\n var result = {};\n for (key in this.getterWhitelist) {\n result[key] = this.getterWhitelist[key].call(this);\n }\n return result;\n }\n\n return this;\n },\n\n /**\n * \n * Called by the host if the policy has been installed.\n *\n * @param {draw2d.Canvas|draw2d.Figure} host\n */\n onInstall: function onInstall(host) {},\n\n /**\n * \n * Called by the host if the policy has been uninstalled.\n *\n * @param {draw2d.Canvas|draw2d.Figure} host\n */\n onUninstall: function onUninstall(host) {}\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/BoundingboxSelectionPolicy.js\":\n/*!*********************************************************!*\\\n !*** ./src/policy/canvas/BoundingboxSelectionPolicy.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.SelectionPolicy\n */\n_packages2.default.policy.canvas.BoundingboxSelectionPolicy = _packages2.default.policy.canvas.SingleSelectionPolicy.extend(\n/** @lends draw2d.policy.canvas.BoundingboxSelectionPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.BoundingboxSelectionPolicy\",\n\n /**\n * Creates a new selection policy for a canvas.\n */\n init: function init() {\n this.isInsideMode = function (rect1, rect2) {\n return rect1.isInside(rect2);\n };\n this.intersectsMode = function (rect1, rect2) {\n return rect1.intersects(rect2);\n };\n\n this.decision = this.isInsideMode;\n\n this._super();\n\n this.boundingBoxFigure1 = null;\n this.boundingBoxFigure2 = null;\n this.x = 0;\n this.y = 0;\n\n // falls ein Port getroffen wird, dann darf keine BoundingBox gezeichnet werden.\n //\n this.canDrawBoundingBox = false;\n },\n\n /**\n * @inheritdoc\n */\n select: function select(canvas, figure) {\n var _this = this;\n\n if (canvas.getSelection().contains(figure)) {\n return; // nothing to to\n }\n\n var oldSelection = canvas.getSelection().getPrimary();\n\n if (figure !== null) {\n figure.select(true); // primary selection\n }\n\n if (oldSelection !== figure) {\n canvas.getSelection().setPrimary(figure);\n\n // inform all selection listeners about the new selection.\n //\n canvas.fireEvent(\"select\", { figure: figure, selection: canvas.getSelection() });\n }\n\n // adding connections to the selection of the source and target port part of the current selection\n //\n var selection = canvas.getSelection();\n canvas.getLines().each(function (i, line) {\n if (line instanceof _packages2.default.Connection) {\n if (selection.contains(line.getSource().getRoot()) && selection.contains(line.getTarget().getRoot())) {\n _this.select(canvas, line, false);\n }\n }\n });\n },\n\n /**\n * \n * Set the selection handling mode to <b>intersection</b> or to <b>isInside</b>.\n * <ul>\n * <li>true = intersection, shapes must only touch the selection bounding box </li>\n * <li>false = isInside, shapes must complete inside the selection bounding box (default)</li>\n * </ul>\n *\n * @param {Boolean} useIntersectionMode set true if the selection handle should use the alternative selection approach\n * @since 4.9.0\n */\n setDecisionMode: function setDecisionMode(useIntersectionMode) {\n if (useIntersectionMode === true) {\n this.decision = this.intersectsMode;\n } else {\n this.decision = this.isInsideMode;\n }\n\n return this;\n },\n\n /**\n * \n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseDown: function onMouseDown(canvas, x, y, shiftKey, ctrlKey) {\n var _this2 = this;\n\n try {\n this.x = x;\n this.y = y;\n\n var currentSelection = canvas.getSelection().getAll();\n\n // COPY_PARENT\n // this code part is copied from the parent implementation. The main problem is, that\n // the sequence of unselect/select of elements is broken if we call the base implementation\n // in this case wrong events are fired if we select a figure if already a figure is selected!\n // WRONG: selectNewFigure -> unselectOldFigure\n // RIGHT: unselectOldFigure -> selectNewFigure\n // To ensure this I must copy the parent code and postbound the event propagation\n //\n this.mouseMovedDuringMouseDown = false;\n var canDragStart = true;\n\n this.canDrawBoundingBox = false;\n\n var figure = canvas.getBestFigure(x, y);\n\n // may the figure is assigned to a composite. In this case the composite can\n // override the event receiver\n while (figure !== null) {\n var delegated = figure.getSelectionAdapter()();\n if (delegated === figure) {\n break;\n }\n figure = delegated;\n }\n\n // ignore ports since version 6.1.0. This is handled by the ConnectionCreatePolicy\n //\n if (figure instanceof _packages2.default.Port) {\n return; // silently\n }\n\n if (figure !== null && figure.isSelectable() === false && figure.isDraggable() === false) {\n figure = null;\n }\n\n this.canDrawBoundingBox = true;\n\n if (figure !== null && figure.isDraggable()) {\n canDragStart = figure.onDragStart(x - figure.getAbsoluteX(), y - figure.getAbsoluteY(), shiftKey, ctrlKey);\n // Element send a veto about the drag&drop operation\n this.mouseDraggingElement = canDragStart === false ? null : figure;\n }\n\n this.mouseDownElement = figure;\n\n if (this.mouseDownElement !== null) {\n this.mouseDownElement.fireEvent(\"mousedown\", { x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n }\n\n // we click on an element which are not part of the current selection\n // => reset the \"old\" current selection if we didn't press the shift key\n if (shiftKey === false) {\n if (this.mouseDownElement !== null && this.mouseDownElement.isResizeHandle === false && !currentSelection.contains(this.mouseDownElement)) {\n currentSelection.each(function (i, figure) {\n _this2.unselect(canvas, figure);\n });\n }\n }\n\n if (figure !== canvas.getSelection().getPrimary() && figure !== null && figure.isSelectable() === true) {\n this.select(canvas, figure);\n\n // its a line\n if (figure instanceof _packages2.default.shape.basic.Line) {\n // you can move a line with Drag&Drop...but not a connection.\n // A Connection is fixed linked with the corresponding ports.\n //\n if (!(figure instanceof _packages2.default.Connection)) {\n canvas.draggingLineCommand = figure.createCommand(new _packages2.default.command.CommandType(_packages2.default.command.CommandType.MOVE));\n if (canvas.draggingLineCommand !== null) {\n canvas.draggingLine = figure;\n }\n }\n } else if (canDragStart === false) {\n figure.unselect();\n }\n }\n // END_COPY FROM PARENT\n\n\n // inform all figures that they have a new ox/oy position for the relative\n // drag/drop operation\n if (this.mouseDownElement !== null && this.mouseDownElement.isResizeHandle === false) {\n currentSelection = canvas.getSelection().getAll();\n currentSelection.each(function (i, figure) {\n var fakeDragX = 1;\n var fakeDragY = 1;\n\n var handleRect = figure.getHandleBBox();\n if (handleRect !== null) {\n handleRect.translate(figure.getAbsolutePosition().scale(-1));\n fakeDragX = handleRect.x + 1;\n fakeDragY = handleRect.y + 1;\n }\n\n var canDragStart = figure.onDragStart(fakeDragX, fakeDragY, shiftKey, ctrlKey, true /*fakeFlag*/);\n // its a line\n if (figure instanceof _packages2.default.shape.basic.Line) {\n // no special handling\n } else if (canDragStart === false) {\n _this2.unselect(canvas, figure);\n }\n });\n }\n } catch (exc) {\n console.log(exc);\n throw exc;\n }\n },\n\n /**\n * \n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} dx The x diff between start of dragging and this event\n * @param {Number} dy The y diff between start of dragging and this event\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n */\n onMouseDrag: function onMouseDrag(canvas, dx, dy, dx2, dy2, shiftKey, ctrlKey) {\n // don't drag a selection box if we drag&drop a port\n //\n if (this.canDrawBoundingBox === false) {\n return;\n }\n\n try {\n this._super(canvas, dx, dy, dx2, dy2, shiftKey, ctrlKey);\n\n if (this.mouseDraggingElement === null && this.mouseDownElement === null && this.boundingBoxFigure1 === null) {\n this.boundingBoxFigure1 = new _packages2.default.shape.basic.Rectangle({\n width: 1,\n height: 1,\n x: this.x,\n y: this.y,\n bgColor: \"#d4d1d4\",\n alpha: 0.1\n });\n this.boundingBoxFigure1.setCanvas(canvas);\n\n this.boundingBoxFigure2 = new _packages2.default.shape.basic.Rectangle({\n width: 1,\n height: 1,\n x: this.x,\n y: this.y,\n dash: \"--..\",\n stroke: 0.5,\n color: \"#37a8ff\",\n bgColor: null\n });\n this.boundingBoxFigure2.setCanvas(canvas);\n }\n var abs = Math.abs;\n if (this.boundingBoxFigure1 !== null) {\n this.boundingBoxFigure1.setDimension(abs(dx), abs(dy));\n this.boundingBoxFigure1.setPosition(this.x + Math.min(0, dx), this.y + Math.min(0, dy));\n this.boundingBoxFigure2.setDimension(abs(dx), abs(dy));\n this.boundingBoxFigure2.setPosition(this.x + Math.min(0, dx), this.y + Math.min(0, dy));\n }\n } catch (exc) {\n console.log(exc);\n }\n },\n\n /**\n * \n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseUp: function onMouseUp(canvas, x, y, shiftKey, ctrlKey) {\n var _this3 = this;\n\n try {\n // delete the current selection if you have clicked in the empty\n // canvas.\n if (this.mouseDownElement === null) {\n canvas.getSelection().getAll().each(function (i, figure) {\n _this3.unselect(canvas, figure);\n });\n } else if (this.mouseDownElement instanceof _packages2.default.ResizeHandle || this.mouseDownElement instanceof _packages2.default.shape.basic.LineResizeHandle) {}\n // Do nothing\n // A click on a resize handle didn't change the selection of the canvas\n //\n\n // delete the current selection if you click on another figure than the current\n // selection and you didn't drag the complete selection.\n else if (this.mouseDownElement !== null && this.mouseMovedDuringMouseDown === false) {\n var sel = canvas.getSelection().getAll();\n if (!sel.contains(this.mouseDownElement)) {\n canvas.getSelection().getAll().each(function (i, figure) {\n _this3.unselect(canvas, figure);\n });\n }\n }\n this._super(canvas, x, y, shiftKey, ctrlKey);\n\n if (this.boundingBoxFigure1 !== null) {\n // retrieve all figures which are inside the bounding box and select all of them\n //\n var selectionRect = this.boundingBoxFigure1.getBoundingBox();\n canvas.getFigures().each(function (i, figure) {\n if (figure.isSelectable() === true && figure.isVisible() === true && _this3.decision(figure.getBoundingBox(), selectionRect)) {\n var fakeDragX = 1;\n var fakeDragY = 1;\n\n var handleRect = figure.getHandleBBox();\n if (handleRect !== null) {\n handleRect.translate(figure.getAbsolutePosition().scale(-1));\n fakeDragX = handleRect.x + 1;\n fakeDragY = handleRect.y + 1;\n }\n var canDragStart = figure.onDragStart(fakeDragX, fakeDragY, shiftKey, ctrlKey);\n if (canDragStart === true) {\n _this3.select(canvas, figure);\n }\n }\n });\n\n this.boundingBoxFigure1.setCanvas(null);\n this.boundingBoxFigure1 = null;\n this.boundingBoxFigure2.setCanvas(null);\n this.boundingBoxFigure2 = null;\n }\n } catch (exc) {\n console.log(exc);\n debugger;\n }\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/CanvasPolicy.js\":\n/*!*******************************************!*\\\n !*** ./src/policy/canvas/CanvasPolicy.js ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _Color = __webpack_require__(/*! ../../util/Color */ \"./src/util/Color.js\");\n\nvar _Color2 = _interopRequireDefault(_Color);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.EditPolicy\n */\n_packages2.default.policy.canvas.CanvasPolicy = _packages2.default.policy.EditPolicy.extend(\n/** @lends draw2d.policy.canvas.CanvasPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.CanvasPolicy\",\n\n /**\n * Creates a new Router object\n */\n init: function init(attr, setter, getter) {\n this.canvas = null;\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * Called if the policy is installed into the canvas.\n *\n * @param {draw2d.Canvas} canvas\n */\n onInstall: function onInstall(canvas) {\n this.canvas = canvas;\n },\n\n /**\n *\n * Called if the policy is deinstalled from the canvas\n *\n * @param {draw2d.Canvas} canvas\n */\n onUninstall: function onUninstall(canvas) {\n this.canvas = null;\n },\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n */\n onMouseMove: function onMouseMove(canvas, x, y, shiftKey, ctrlKey) {},\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseDown: function onMouseDown(canvas, x, y, shiftKey, ctrlKey) {},\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} dx The x diff between start of dragging and this event\n * @param {Number} dy The y diff between start of dragging and this event\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseDrag: function onMouseDrag(canvas, dx, dy, dx2, dy2, shiftKey, ctrlKey) {},\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas the shape below the mouse or null\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseUp: function onMouseUp(canvas, x, y, shiftKey, ctrlKey) {},\n\n /**\n *\n * Called if the user press the right mouse in the canvas.\n *\n * @param {draw2d.Figure|draw2d.shape.basic.Line} figure the figure below the mouse\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @since 4.4.0\n */\n onRightMouseDown: function onRightMouseDown(figure, x, y, shiftKey, ctrlKey) {},\n\n /**\n *\n * Called by the canvas if the user click on a figure.\n *\n * @param {draw2d.Figure} figure the figure under the click event. Can be null\n * @param {Number} mouseX the x coordinate of the mouse during the click event\n * @param {Number} mouseY the y coordinate of the mouse during the click event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @since 3.0.0\n *\n * @template\n */\n onClick: function onClick(figure, mouseX, mouseY, shiftKey, ctrlKey) {},\n\n /**\n *\n * Called by the canvas if the user double click on a figure.\n *\n * @param {draw2d.Figure} figure the figure under the double click event. Can be null\n * @param {Number} mouseX the x coordinate of the mouse during the click event\n * @param {Number} mouseY the y coordinate of the mouse during the click event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @since 4.1.0\n *\n * @template\n */\n onDoubleClick: function onDoubleClick(figure, mouseX, mouseY, shiftKey, ctrlKey) {},\n\n /**\n *\n * called if the user uses the mouse wheel.\n *\n *\n * @param {Number} wheelDelta\n * @param {Number} x the x coordinate of the event\n * @param {Number} y the y coordinate of the event\n * @param shiftKey\n * @param ctrlKey\n * @since 5.8.0\n * @template\n *\n * @returns {Boolean} return <b>false</b> to preven tthe default event operation (e.g. scrolling)\n */\n onMouseWheel: function onMouseWheel(wheelDelta, x, y, shiftKey, ctrlKey) {\n // return \"false\" to prevent the default event operation\n return true;\n },\n\n /**\n *\n * Helper method to make an monochrome GIF image WxH pixels big, first create a properly sized array: let pixels = new Array(W*H);.\n * Then, for each pixel X,Y that should be opaque, store a 1 at the proper location: pixels[X+Y*W] = 1;.\n * Finally, create the image: let my_gif = createGif(W, H, pixels, color);\n * \"0\" pixels are transparent.\n * The <b>color</b> defines the foreground color.\n *\n * Now, you can specify this image as the SRC attribute of an IMG tag: document.write(\"<IMG SRC=\\\"\" + my_gif + \"\\\">\");\n * or for the canvas as background-image css attribute.\n *\n *\n * @param w\n * @param h\n * @param d\n * @param color\n * @returns {String}\n *\n * @private\n */\n createMonochromGif: function createMonochromGif(w, h, d, color) {\n color = new _Color2.default(color);\n var r = String.fromCharCode(w % 256) + String.fromCharCode(w / 256) + String.fromCharCode(h % 256) + String.fromCharCode(h / 256);\n\n var gif = 'GIF89a' + r + '\\xf0\\0\\0\\xff\\xff\\xff' + String.fromCharCode(color.red) + String.fromCharCode(color.green) + String.fromCharCode(color.blue) + '!\\xF9\\x04\\x01\\0\\0\\0,\\0\\0\\0\\0' + r + '\\0\\x02';\n\n // help method to generate uncompressed in memory GIF data structure without the usage of a canvas or any other\n // heavy weight stuff.\n var b = {\n bit: 1,\n byte_: 0,\n data: '',\n\n writeBit: function writeBit(b) {\n if (b) this.byte_ |= this.bit;\n this.bit <<= 1;\n if (this.bit === 256) {\n this.bit = 1;\n this.data += String.fromCharCode(this.byte_);\n this.byte_ = 0;\n }\n },\n\n get: function get() {\n var result = \"\";\n var data = this.data;\n if (this.bit !== 1) {\n data += String.fromCharCode(this.byte_);\n }\n for (var i = 0; i < data.length + 1; i += 255) {\n var chunklen = data.length - i;\n if (chunklen < 0) chunklen = 0;\n if (chunklen > 255) chunklen = 255;\n result += String.fromCharCode(chunklen) + data.substring(i, i + 255);\n }\n return result + \"\\0\";\n }\n };\n\n for (var y = 0; y < h; y++) {\n for (var x = 0; x < w; x++) {\n b.writeBit(d[x + w * y]);\n b.writeBit(0);\n b.writeBit(0);\n b.writeBit(0);\n b.writeBit(0);\n b.writeBit(1);\n }\n }\n gif += b.get() + ';';\n\n return 'data:image/gif;base64,' + _packages2.default.util.Base64.encode(gif);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/CoronaDecorationPolicy.js\":\n/*!*****************************************************!*\\\n !*** ./src/policy/canvas/CoronaDecorationPolicy.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * This decorations hides draw2d.Ports which are to far from the current cursor position.\n * This makes the canvas more clean if you have a lot of nodes on it.<br>\n * You didn't see a bunch of ports.\n *\n *\n * @example\n *\n * // install the policy to the canvas\n *\n * // add some demo figure to the canvas\n * canvas.add(new draw2d.shape.node.Start({x: 10, y: 30}));\n * canvas.add(new draw2d.shape.node.End({x: 90, y: 90}));\n * canvas.add(new draw2d.shape.node.Between({ x: 310, y: 30}));\n *\n * canvas.add(new draw2d.shape.basic.Label({text:\"move the mouse and you see that ports are hidden if the mouse far from it\"}),5,5);\n *\n * canvas.installEditPolicy(new draw2d.policy.canvas.CoronaDecorationPolicy());\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.DecorationPolicy\n */\n_packages2.default.policy.canvas.CoronaDecorationPolicy = _packages2.default.policy.canvas.DecorationPolicy.extend(\n/** @lends draw2d.policy.canvas.CoronaDecorationPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.CoronaDecorationPolicy\",\n\n /**\n *\n */\n init: function init(attr, setter, getter) {\n\n this.startDragX = 0;\n this.startDragY = 0;\n this.diameterToBeFullVisible = 0;\n this.diameterToBeVisible = 0;\n this.sumDiameter = 0;\n\n this._super((0, _extend2.default)({ diameterToBeVisible: 200, diameterToBeFullVisible: 20 }, attr), (0, _extend2.default)({\n diameterToBeVisible: this.setDiameterToBeVisible,\n diameterToBeFullVisible: this.setDiameterToBeFullVisible\n }, setter), (0, _extend2.default)({\n diameterToBeVisible: this.getDiameterToBeVisible,\n diameterToBeFullVisible: this.getDiameterToBeFullVisible\n }, getter));\n },\n\n setDiameterToBeVisible: function setDiameterToBeVisible(diameter) {\n this.diameterToBeVisible = diameter;\n this.sumDiameter = this.diameterToBeFullVisible + this.diameterToBeVisible;\n },\n\n getDiameterToBeVisible: function getDiameterToBeVisible() {\n return this.diameterToBeVisible;\n },\n\n setDiameterToBeFullVisible: function setDiameterToBeFullVisible(diameter) {\n this.diameterToBeFullVisible = diameter;\n this.sumDiameter = this.diameterToBeFullVisible + this.diameterToBeVisible;\n },\n\n getDiameterToBeFullVisible: function getDiameterToBeFullVisible() {\n return this.diameterToBeFullVisible;\n },\n\n /**\n * @inheritdoc\n */\n onInstall: function onInstall(canvas) {\n this._super(canvas);\n canvas.getFigures().each(function (i, figure) {\n figure.getPorts().each(function (i, p) {\n return p.setAlpha(0.0);\n });\n });\n },\n\n /**\n * @inheritdoc\n */\n onUninstall: function onUninstall(canvas) {\n this._super(canvas);\n\n canvas.getFigures().each(function (i, figure) {\n figure.getPorts().each(function (i, p) {\n if (p.__origAlpha) {\n p.setAlpha(p.__origAlpha);\n delete p.__origAlpha;\n }\n });\n });\n },\n\n /**\n * @inheritdoc\n */\n onMouseDown: function onMouseDown(canvas, x, y, shiftKey, ctrlKey) {\n this.startDragX = x;\n this.startDragY = y;\n },\n\n /**\n * @inheritdoc\n */\n onMouseMove: function onMouseMove(canvas, x, y, shiftKey, ctrlKey) {\n this.updatePorts(canvas, x, y);\n },\n\n /**\n * @inheritdoc\n */\n onMouseDrag: function onMouseDrag(canvas, dx, dy, dx2, dy2, shiftKey, ctrlKey) {\n this.updatePorts(canvas, this.startDragX + dx, this.startDragY + dy);\n },\n\n /**\n * \n * Update all ports with the new calculated opacity in relation to the distance to the current\n * mouse position\n *\n * @param canvas\n * @param x\n * @param y\n * @private\n */\n updatePorts: function updatePorts(canvas, x, y) {\n var _this = this;\n\n canvas.getFigures().each(function (i, figure) {\n if (figure instanceof _packages2.default.shape.node.Node) {\n if (figure.isVisible() === true && figure.hitTest(x, y, _this.sumDiameter) === true) {\n figure.getPorts().each(function (i, p) {\n if (p.isVisible() === false) {\n p.__origAlpha = figure.getAlpha();\n }\n var dist = figure.getBoundingBox().getDistance(new _packages2.default.geo.Point(x, y));\n var alpha = Math.max(0, 1 - 100 / (_this.diameterToBeVisible - _this.diameterToBeFullVisible) * dist / 100.0);\n p.setAlpha(alpha);\n });\n } else {\n figure.getPorts().each(function (i, p) {\n p.setAlpha(0.0);\n });\n }\n }\n });\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/DecorationPolicy.js\":\n/*!***********************************************!*\\\n !*** ./src/policy/canvas/DecorationPolicy.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * The base class for any canvas decoration like grid, chessboard, graph paper or\n * other.\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.CanvasPolicy\n */\n_packages2.default.policy.canvas.DecorationPolicy = _packages2.default.policy.canvas.CanvasPolicy.extend(\n/** @lends draw2d.policy.canvas.DecorationPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.DecorationPolicy\",\n\n /**\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/DefaultKeyboardPolicy.js\":\n/*!****************************************************!*\\\n !*** ./src/policy/canvas/DefaultKeyboardPolicy.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Standard keyboard policy. This is the standard installed keyboard policy.\n * <br>\n * <br>\n * Keyboard commands\n * <ul>\n * <li>DEL - delete selection</li>\n * </ul>\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.KeyboardPolicy\n */\n_packages2.default.policy.canvas.DefaultKeyboardPolicy = _packages2.default.policy.canvas.KeyboardPolicy.extend(\n/** @lends draw2d.policy.canvas.DefaultKeyboardPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.DefaultKeyboardPolicy\",\n\n /**\n */\n init: function init() {\n this._super();\n },\n\n /**\n * \n * Callback if the user press a key.<br>\n * This implementation checks only if the <b>DEL</b> has been pressed and creates an\n * CommandDelete if this happens.\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {Number} keyCode the pressed key\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @private\n **/\n onKeyDown: function onKeyDown(canvas, keyCode, shiftKey, ctrlKey) {\n //\n if (keyCode === 46 && canvas.getPrimarySelection() !== null) {\n // create a single undo/redo transaction if the user delete more than one element. \n // This happens with command stack transactions.\n //\n canvas.getCommandStack().startTransaction(_packages2.default.Configuration.i18n.command.deleteShape);\n var selection = canvas.getSelection();\n selection.each(function (index, figure) {\n // don't delete a connection if the source or target figure is part of the selection.\n // In this case the connection is deleted by the DeleteCommand itself and it is not allowed to\n // delete a figure twice.\n //\n if (figure instanceof _packages2.default.Connection) {\n if (selection.contains(figure.getSource(), true)) {\n return;\n }\n if (selection.contains(figure.getTarget(), true)) {\n return;\n }\n }\n var cmd = figure.createCommand(new _packages2.default.command.CommandType(_packages2.default.command.CommandType.DELETE));\n if (cmd !== null) {\n canvas.getCommandStack().execute(cmd);\n }\n });\n // execute all single commands at once.\n canvas.getCommandStack().commitTransaction();\n } else {\n this._super(canvas, keyCode, shiftKey, ctrlKey);\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/DropInterceptorPolicy.js\":\n/*!****************************************************!*\\\n !*** ./src/policy/canvas/DropInterceptorPolicy.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Drop interceptors are basically event handlers from which you can return a value\n * that tells draw2d to abort what it is that it was doing.<br>\n * <br>\n * Interceptors can be registered via the registerEditPolicy method on the draw2d canvas just like any other\n * edit policies.<br>\n * <br>\n * The <b>delegateTarget</b> method is responsible for all drop event especially to all connection and port handling.\n *\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.CanvasPolicy\n * @since 5.0.0\n */\n_packages2.default.policy.canvas.DropInterceptorPolicy = _packages2.default.policy.canvas.CanvasPolicy.extend(\n/** @lends draw2d.policy.canvas.DropInterceptorPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.DropInterceptorPolicy\",\n\n /**\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Called if the user want connect a port with any kind draw2d.Figure.<br>\n * Return a non <b>null</b> value if the interceptor accept the connect event.<br>\n * <br>\n * It is possible to delegate the drop event to another figure if the policy\n * returns another figure. This is useful if a figure want to accept a port\n * drop event and delegates this drop event to another port.<br>\n *\n *\n * @param {draw2d.Figure} connectInquirer the figure who wants connect\n * @param {draw2d.Figure} connectIntent the potential connect target\n *\n * @returns {draw2d.Figure} the calculated connect intent or <b>null</b> if the interceptor uses the veto right\n */\n delegateTarget: function delegateTarget(connectInquirer, connectIntent) {\n // a composite accept any kind of figures exceptional ports\n //\n if (!(connectInquirer instanceof _packages2.default.Port) && connectIntent instanceof _packages2.default.shape.composite.StrongComposite) {\n return connectIntent;\n }\n\n // Ports accepts only Ports from the same semanticGroup as DropTarget\n //\n if (connectIntent instanceof _packages2.default.Port && connectInquirer instanceof _packages2.default.Port) {\n if (connectIntent.getSemanticGroup() !== connectInquirer.getSemanticGroup()) {\n return null;\n }\n }\n\n // Ports accepts only Ports as DropTarget\n //\n if (!(connectIntent instanceof _packages2.default.Port) || !(connectInquirer instanceof _packages2.default.Port)) {\n return null;\n }\n\n // consider the max possible connections for this port\n //\n if (connectIntent.getConnections().getSize() >= connectIntent.getMaxFanOut()) {\n return null;\n }\n\n // It is not allowed to connect two output ports\n if (connectInquirer instanceof _packages2.default.OutputPort && connectIntent instanceof _packages2.default.OutputPort) {\n return null;\n }\n\n // It is not allowed to connect two input ports\n if (connectInquirer instanceof _packages2.default.InputPort && connectIntent instanceof _packages2.default.InputPort) {\n return null;\n }\n\n // It is not possible to create a loop back connection at the moment.\n // Reason: no connection router implemented for this case\n if (connectInquirer instanceof _packages2.default.Port && connectIntent instanceof _packages2.default.Port) {\n if (connectInquirer.getParent() === connectIntent.getParent()) {\n return null;\n }\n }\n\n // redirect the dragEnter handling to the hybrid port\n //\n if (connectInquirer instanceof _packages2.default.Port && connectIntent instanceof _packages2.default.shape.node.Hub) {\n return connectIntent.getHybridPort(0);\n }\n\n // return the connectTarget determined by the framework or delegate it to another\n // figure.\n return connectIntent;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/ExtendedKeyboardPolicy.js\":\n/*!*****************************************************!*\\\n !*** ./src/policy/canvas/ExtendedKeyboardPolicy.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Extended keyboard policy to <b>delete</b> and <b>group</b> figures in the canvas.\n * <br>\n * Keyboard commands\n * <ul>\n * <li>DEL - delete selection</li>\n * <li>Ctrl+G - group/ungroup selection</li>\n * <li>Ctrl+B - send current selection in the background (toBack)</li>\n * <li>Ctrl+F - send current selection in the foreground (toFront)</li>\n * </ul>\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.KeyboardPolicy\n */\n_packages2.default.policy.canvas.ExtendedKeyboardPolicy = _packages2.default.policy.canvas.KeyboardPolicy.extend(\n/** @lends draw2d.policy.canvas.ExtendedKeyboardPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.ExtendedKeyboardPolicy\",\n\n /**\n */\n init: function init() {\n this._super();\n },\n\n /**\n * \n * Callback if the user press a key\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {Number} keyCode the pressed key\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @private\n **/\n onKeyDown: function onKeyDown(canvas, keyCode, shiftKey, ctrlKey) {\n if (canvas.getPrimarySelection() !== null && ctrlKey === true) {\n switch (keyCode) {\n\n case 71:\n // G\n if (canvas.getPrimarySelection() instanceof _packages2.default.shape.composite.Group && canvas.getSelection().getSize() === 1) {\n canvas.getCommandStack().execute(new _packages2.default.command.CommandUngroup(canvas, canvas.getPrimarySelection()));\n } else {\n canvas.getCommandStack().execute(new _packages2.default.command.CommandGroup(canvas, canvas.getSelection()));\n }\n break;\n case 66:\n // B\n canvas.getPrimarySelection().toBack();\n break;\n case 70:\n // F\n canvas.getPrimarySelection().toFront();\n }\n } else {\n this._super(canvas, keyCode, shiftKey, ctrlKey);\n }\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/FadeoutDecorationPolicy.js\":\n/*!******************************************************!*\\\n !*** ./src/policy/canvas/FadeoutDecorationPolicy.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Install this edit policy in a canvas if you want fadeout all decorations like ports, resize handles\n * if the user didn't move the mouse. This is good for a clean representation of your diagram.\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.DecorationPolicy\n */\n_packages2.default.policy.canvas.FadeoutDecorationPolicy = _packages2.default.policy.canvas.DecorationPolicy.extend(\n/** @lends draw2d.policy.canvas.FadeoutDecorationPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.FadeoutDecorationPolicy\",\n\n DEFAULT_FADEOUT_DURATION: 60,\n DEFAULT_ALPHA_DECREMENT: 0.05,\n\n /**\n * Creates a new fade out policy. Don't forget to install them into the canvas.\n *\n */\n init: function init() {\n this._super();\n this.alpha = 1.0;\n this.alphaDec = this.DEFAULT_ALPHA_DECREMENT;\n this.hidePortsCounter = this.DEFAULT_FADEOUT_DURATION;\n this.portDragging = false;\n },\n\n /**\n * @inheritDoc\n **/\n onInstall: function onInstall(canvas) {\n this._super(canvas);\n this.timerId = window.setInterval(this.onTimer.bind(this), 50);\n\n // initial hide all decorations after install of this policy\n //\n this.hidePortsCounter = 1;\n this.alpha = 0.1;\n },\n\n /**\n * @inheritDoc\n **/\n onUninstall: function onUninstall(canvas) {\n window.clearInterval(this.timerId);\n this.canvas.getAllPorts().each(function (i, port) {\n port.setAlpha(1.0);\n });\n\n this._super(canvas);\n },\n\n /**\n *\n *\n * Timerfucntion to show/hide the related ports\n * @private\n **/\n onTimer: function onTimer() {\n var _this = this;\n\n this.hidePortsCounter--;\n\n if (this.hidePortsCounter <= 0 && this.alpha > 0) {\n this.alpha = Math.max(0, this.alpha - this.alphaDec);\n\n this.canvas.getAllPorts().each(function (i, port) {\n port.setAlpha(_this.alpha);\n });\n\n this.canvas.getSelection().getAll().each(function (i, figure) {\n figure.selectionHandles.each(function (i, handle) {\n handle.setAlpha(_this.alpha);\n });\n });\n } else if (this.hidePortsCounter > 0 && this.alpha !== 1.0) {\n this.alpha = 1; // Math.min(1,this.alpha+0.1);\n this.alphaDec = this.DEFAULT_ALPHA_DECREMENT;\n this.duringHide = false;\n this.canvas.getAllPorts().each(function (i, port) {\n port.setAlpha(_this.alpha);\n });\n this.canvas.getSelection().getAll().each(function (i, figure) {\n figure.selectionHandles.each(function (i, handle) {\n handle.setAlpha(_this.alpha);\n });\n });\n }\n },\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseDown: function onMouseDown(canvas, x, y, shiftKey, ctrlKey) {\n this.hidePortsCounter = this.DEFAULT_FADEOUT_DURATION;\n this.portDragging = canvas.getBestFigure(x, y) instanceof _packages2.default.Port;\n },\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseMove: function onMouseMove(canvas, x, y, shiftKey, ctrlKey) {\n this.hidePortsCounter = this.DEFAULT_FADEOUT_DURATION;\n this.portDragging = false;\n },\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} dx The x diff between start of dragging and this event\n * @param {Number} dy The y diff between start of dragging and this event\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseDrag: function onMouseDrag(canvas, dx, dy, dx2, dy2, shiftKey, ctrlKey) {\n if (this.portDragging === false) {\n this.hidePortsCounter = 0;\n this.alphaDec = 0.1;\n this.onTimer();\n }\n },\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseUp: function onMouseUp(figure, x, y, shiftKey, ctrlKey) {\n this.hidePortsCounter = this.DEFAULT_FADEOUT_DURATION;\n this.portDragging = false;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/GhostMoveSelectionPolicy.js\":\n/*!*******************************************************!*\\\n !*** ./src/policy/canvas/GhostMoveSelectionPolicy.js ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A drag&Drop feedback handler for the canvas. The policy didn't move the\n * shapes in real time rather it shows a ghost rectangle as feedback. <br>\n * <br>\n * The shapes are updated after the drag&drop operation.\n *\n *\n *\n * @example\n *\n * // install the policy to the canvas\n * canvas.installEditPolicy(new draw2d.policy.canvas.GhostMoveSelectionPolicy());\n *\n * // add some demo figure to the canvas\n * canvas.add(new draw2d.shape.basic.Circle({diameter: 50, x: 10, y: 30}));\n * canvas.add(new draw2d.shape.basic.Circle({diameter: 30, x: 90, y: 50}));\n * canvas.add(new draw2d.shape.basic.Circle({diameter: 60, x: 110, y: 30}));\n *\n * canvas.add(new draw2d.shape.basic.Label({text:\"move the circle to see the drag&drop feedback\"}),5,5);\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.SingleSelectionPolicy\n */\n_packages2.default.policy.canvas.GhostMoveSelectionPolicy = _packages2.default.policy.canvas.SingleSelectionPolicy.extend(\n/** @lends draw2d.policy.canvas.GhostMoveSelectionPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.GhostMoveSelectionPolicy\",\n\n /**\n */\n init: function init() {\n this.clone = null;\n this.ghostRectangle1 = null;\n this.ghostRectangle2 = null;\n\n this._super();\n },\n\n /**\n * @inheritdoc\n */\n onMouseDrag: function onMouseDrag(canvas, dx, dy, dx2, dy2, shiftKey, ctrlKey) {\n this.mouseMovedDuringMouseDown = true;\n if (this.mouseDraggingElement !== null) {\n\n // if the figure not part of the selection it must be a ResizeHandle...\n var sel = canvas.getSelection().getAll();\n if (!sel.contains(this.mouseDraggingElement)) {\n this.mouseDraggingElement.onDrag(dx, dy, dx2, dy2, shiftKey, ctrlKey);\n }\n // it is a normal draw2d.Figure\n else {\n // create the ghost handles for the figure to move and update the position\n //\n if (this.ghostRectangle1 === null) {\n this.ghostRectangle1 = new _packages2.default.shape.basic.Rectangle(); // new API with version 5.0.0\n // old API\n this.ghostRectangle1.setBackgroundColor(\"#303030\");\n this.ghostRectangle1.setAlpha(0.1);\n\n this.ghostRectangle2 = new _packages2.default.shape.basic.Rectangle();\n this.ghostRectangle2.setDashArray(\"- \");\n this.ghostRectangle2.setStroke(1);\n this.ghostRectangle2.setColor(\"#5497DC\");\n this.ghostRectangle2.setBackgroundColor(null);\n\n this.ghostRectangle1.setBoundingBox(this.mouseDraggingElement.getBoundingBox());\n this.ghostRectangle2.setBoundingBox(this.mouseDraggingElement.getBoundingBox());\n\n this.ghostRectangle1.setCanvas(canvas);\n this.ghostRectangle1.toFront();\n\n this.ghostRectangle2.setCanvas(canvas);\n this.ghostRectangle2.toFront();\n\n this.clone = this.mouseDraggingElement.clone();\n if (this.clone instanceof _packages2.default.shape.node.Node) {\n this.clone.resetPorts();\n }\n this.clone.setCanvas(canvas);\n this.clone.getShapeElement();\n this.clone.setAlpha(0.4);\n this.clone.repaint();\n } else {\n this.ghostRectangle1.translate(dx2, dy2);\n this.ghostRectangle2.translate(dx2, dy2);\n this.clone.translate(dx2, dy2);\n }\n\n sel.each(function (i, figure) {\n // store the new location in a tmp var.\n figure._newPos = new _packages2.default.geo.Point(figure.ox + dx, figure.oy + dy);\n\n // don't move the figure. This will be done in the MouseUp event\n //figure.onDrag(dx, dy, dx2, dy2);\n });\n }\n\n var p = canvas.fromDocumentToCanvasCoordinate(canvas.mouseDownX + dx / canvas.zoomFactor, canvas.mouseDownY + dy / canvas.zoomFactor);\n var target = canvas.getBestFigure(p.x, p.y, this.mouseDraggingElement);\n\n if (target !== canvas.currentDropTarget) {\n if (canvas.currentDropTarget !== null) {\n canvas.currentDropTarget.onDragLeave(this.mouseDraggingElement);\n canvas.currentDropTarget.fireEvent(\"dragLeave\", { draggingElement: this.draggingElement });\n canvas.currentDropTarget = null;\n }\n if (target !== null) {\n canvas.currentDropTarget = target.delegateTarget(this.mouseDraggingElement);\n // inform all listener that the element has accept a dropEnter event\n if (canvas.currentDropTarget !== null) {\n canvas.currentDropTarget.onDragEnter(this.mouseDraggingElement); // legacy\n canvas.currentDropTarget.fireEvent(\"dragEnter\", { draggingElement: this.draggingElement });\n }\n }\n }\n }\n // Connection didn't support panning at the moment. There is no special reason for that. Just an interaction\n // decision.\n //\n else if (this.mouseDownElement !== null && !(this.mouseDownElement instanceof _packages2.default.Connection)) {\n if (this.mouseDownElement.panningDelegate !== null) {\n this.mouseDownElement.panningDelegate.fireEvent(\"panning\", {\n dx: dx,\n dy: dy,\n dx2: dx2,\n dy2: dy2,\n shiftKey: shiftKey,\n ctrlKey: ctrlKey\n });\n this.mouseDownElement.panningDelegate.onPanning(dx, dy, dx2, dy2, shiftKey, ctrlKey);\n } else {\n this.mouseDownElement.fireEvent(\"panning\", {\n dx: dx,\n dy: dy,\n dx2: dx2,\n dy2: dy2,\n shiftKey: shiftKey,\n ctrlKey: ctrlKey\n });\n this.mouseDownElement.onPanning(dx, dy, dx2, dy2, shiftKey, ctrlKey);\n }\n }\n },\n\n /**\n * @inheritdoc\n */\n onMouseUp: function onMouseUp(canvas, x, y, shiftKey, ctrlKey) {\n\n if (this.ghostRectangle1 !== null) {\n this.ghostRectangle1.setCanvas(null);\n this.ghostRectangle1 = null;\n this.ghostRectangle2.setCanvas(null);\n this.ghostRectangle2 = null;\n this.clone.setCanvas(null);\n this.clone = null;\n }\n\n if (this.mouseDraggingElement !== null) {\n var redrawConnection = new _packages2.default.util.ArrayList();\n if (this.mouseDraggingElement instanceof _packages2.default.shape.node.Node) {\n canvas.lineIntersections.each(function (i, inter) {\n if (!redrawConnection.contains(inter.line)) redrawConnection.add(inter.line);\n if (!redrawConnection.contains(inter.other)) redrawConnection.add(inter.other);\n });\n }\n\n // start CommandStack transaction\n // Trigger an update of the connections if we have move a draw2d.shape.node.Node figure.\n // (only \"nodes\" can have ports and connections)\n //\n canvas.getCommandStack().startTransaction();\n\n var sel = canvas.getSelection().getAll();\n // We move a resize handle...\n //\n if (!sel.contains(this.mouseDraggingElement)) {\n this.mouseDraggingElement.onDragEnd(x, y, shiftKey, ctrlKey);\n }\n // ... or a real figure.\n //\n else {\n canvas.getSelection().getAll().each(function (i, figure) {\n // set position and cleanup tmp variable\n if (figure._newPos) {\n figure.setPosition(figure._newPos);\n delete figure._newPos;\n }\n // done\n figure.onDragEnd(x, y, shiftKey, ctrlKey);\n });\n }\n\n // May we drop the figure onto another shape..handle this here\n //\n if (canvas.currentDropTarget !== null && !this.mouseDraggingElement.isResizeHandle) {\n this.mouseDraggingElement.onDrop(canvas.currentDropTarget, x, y, shiftKey, ctrlKey);\n canvas.currentDropTarget.onDragLeave(this.mouseDraggingElement);\n canvas.currentDropTarget.onCatch(this.mouseDraggingElement, x, y, shiftKey, ctrlKey);\n canvas.currentDropTarget = null;\n }\n\n // end command stack trans\n canvas.getCommandStack().commitTransaction();\n\n if (this.mouseDraggingElement instanceof _packages2.default.shape.node.Node) {\n canvas.lineIntersections.each(function (i, inter) {\n if (!redrawConnection.contains(inter.line)) redrawConnection.add(inter.line);\n if (!redrawConnection.contains(inter.other)) redrawConnection.add(inter.other);\n });\n redrawConnection.each(function (i, line) {\n line.svgPathString = null;\n line.repaint();\n });\n }\n\n this.mouseDraggingElement = null;\n }\n\n // Reset the current selection if the user click in the blank canvas.\n // Don't reset the selection if the user is panning the canvas\n //\n if (this.mouseDownElement === null && this.mouseMovedDuringMouseDown === false) {\n this.select(canvas, null);\n }\n\n this.mouseDownElement = null;\n this.mouseMovedDuringMouseDown = false;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/KeyboardPolicy.js\":\n/*!*********************************************!*\\\n !*** ./src/policy/canvas/KeyboardPolicy.js ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Default interface for keyboard interaction with the canvas.\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.CanvasPolicy\n */\n_packages2.default.policy.canvas.KeyboardPolicy = _packages2.default.policy.canvas.CanvasPolicy.extend(\n/** @lends draw2d.policy.canvas.KeyboardPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.KeyboardPolicy\",\n\n /**\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Callback if the user release a key\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {Number} keyCode the pressed key\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @private\n **/\n onKeyUp: function onKeyUp(canvas, keyCode, shiftKey, ctrlKey) {\n // do nothing per default\n },\n\n /**\n * \n * Callback if the user press a key down\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {Number} keyCode the pressed key\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @private\n **/\n onKeyDown: function onKeyDown(canvas, keyCode, shiftKey, ctrlKey) {\n // do nothing per default\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/PanningSelectionPolicy.js\":\n/*!*****************************************************!*\\\n !*** ./src/policy/canvas/PanningSelectionPolicy.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.SingleSelectionPolicy\n */\n_packages2.default.policy.canvas.PanningSelectionPolicy = _packages2.default.policy.canvas.SingleSelectionPolicy.extend(\n/** @lends draw2d.policy.canvas.PanningSelectionPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.PanningSelectionPolicy\",\n\n /**\n * Creates a new Router object\n */\n init: function init() {\n this._super();\n },\n\n /**\n * \n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} dx The x diff between start of dragging and this event\n * @param {Number} dy The y diff between start of dragging and this event\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n */\n onMouseDrag: function onMouseDrag(canvas, dx, dy, dx2, dy2, shiftKey, ctrlKey) {\n this._super(canvas, dx, dy, dx2, dy2, shiftKey, ctrlKey);\n\n if (this.mouseDraggingElement === null && this.mouseDownElement === null) {\n\n // check if we are dragging a port. This isn't reported by the selection handler anymore\n //\n var p = canvas.fromDocumentToCanvasCoordinate(canvas.mouseDownX + dx / canvas.zoomFactor, canvas.mouseDownY + dy / canvas.zoomFactor);\n var figure = canvas.getBestFigure(p.x, p.y);\n\n if (figure === null) {\n var area = canvas.getScrollArea();\n area.scrollTop(area.scrollTop() - dy2);\n area.scrollLeft(area.scrollLeft() - dx2);\n }\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/ReadOnlySelectionPolicy.js\":\n/*!******************************************************!*\\\n !*** ./src/policy/canvas/ReadOnlySelectionPolicy.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.SelectionPolicy\n */\n_packages2.default.policy.canvas.ReadOnlySelectionPolicy = _packages2.default.policy.canvas.SelectionPolicy.extend(\n/** @lends draw2d.policy.canvas.ReadOnlySelectionPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.ReadOnlySelectionPolicy\",\n\n /**\n * Creates a new Router object\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Called by the host if the policy has been installed.\n *\n * @param {draw2d.Canvas/draw2d.Canvas} canvas\n */\n onInstall: function onInstall(canvas) {\n this._super(canvas);\n canvas.getAllPorts().each(function (i, port) {\n port.setVisible(false);\n });\n },\n\n /**\n * \n * Called by the host if the policy has been uninstalled.\n *\n * @param {draw2d.Canvas} canvas\n */\n onUninstall: function onUninstall(canvas) {\n canvas.getAllPorts().each(function (i, port) {\n port.setVisible(true);\n });\n\n this._super(canvas);\n },\n\n /**\n * \n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} dx The x diff between start of dragging and this event\n * @param {Number} dy The y diff between start of dragging and this event\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n */\n onMouseDrag: function onMouseDrag(canvas, dx, dy, dx2, dy2, shiftKey, ctrlKey) {\n var area = canvas.getScrollArea();\n area.scrollTop(area.scrollTop() - dy2);\n area.scrollLeft(area.scrollLeft() - dx2);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/SelectionPolicy.js\":\n/*!**********************************************!*\\\n !*** ./src/policy/canvas/SelectionPolicy.js ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.CanvasPolicy\n */\n_packages2.default.policy.canvas.SelectionPolicy = _packages2.default.policy.canvas.CanvasPolicy.extend(\n/** @lends draw2d.policy.canvas.SelectionPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.SelectionPolicy\",\n\n /**\n * Creates a new selection policy\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * Selects the given figure within the canvas. The policy must unselect already selected\n * figures or show any decorations.\n *\n * @param {draw2d.Canvas} canvas\n * @param {draw2d.Figure} figure\n *\n */\n select: function select(canvas, figure) {},\n\n /**\n *\n * Unselect the given figure in the canvas and remove all resize handles\n *\n * @param {draw2d.Canvas} canvas\n * @param {draw2d.Figure} figure\n */\n unselect: function unselect(canvas, figure) {\n canvas.getSelection().remove(figure);\n\n figure.unselect();\n\n // @since 6.1.42\n canvas.fireEvent(\"unselect\", { figure: figure });\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/ShowChessboardEditPolicy.js\":\n/*!*******************************************************!*\\\n !*** ./src/policy/canvas/ShowChessboardEditPolicy.js ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Just to paint a grid in the background of a canvas.\n *\n *\n * @example\n *\n * canvas.installEditPolicy(new draw2d.policy.canvas.ShowChessboardEditPolicy());\n * let shape = new draw2d.shape.basic.Text({text:\"This is a simple text in a canvas with chessboard background.\"});\n *\n * canvas.add(shape,40,10);\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.canvas.DecorationPolicy\n */\n_packages2.default.policy.canvas.ShowChessboardEditPolicy = _packages2.default.policy.canvas.DecorationPolicy.extend(\n/** @lends draw2d.policy.canvas.ShowChessboardEditPolicy.prototype */\n{\n NAME: \"draw2d.policy.canvas.ShowChessboardEditPolicy\",\n\n GRID_COLOR: \"#e0e0e0\",\n GRID_WIDTH: 20,\n\n /**\n * Creates a new constraint policy for snap to grid\n *\n * @param {Number} grid the grid width of the canvas\n */\n init: function init(grid) {\n this._super();\n if (grid) {\n this.grid = grid;\n } else {\n this.grid = this.GRID_WIDTH;\n }\n },\n\n onInstall: function onInstall(canvas) {\n var _this = this;\n\n this._super(canvas);\n\n this.oldBg = this.canvas.html.css(\"background\");\n this.setGrid(1 / canvas.getZoom());\n this.onZoomCallback = function (emitterFigure, zoomData) {\n _this.setGrid(1 / zoomData.value);\n };\n canvas.on(\"zoom\", this.onZoomCallback);\n },\n\n onUninstall: function onUninstall(canvas) {\n this._super(canvas);\n $(canvas.paper.canvas).css({ \"background\": this.oldBg });\n canvas.off(this.onZoomCallback);\n },\n\n /**\n * Activate the grid and set the CSS properties for the SVG canvas\n * @private\n */\n setGrid: function setGrid(zoom) {\n\n var gridColor = this.GRID_COLOR;\n\n var background = \"linear-gradient(45deg, \" + gridColor + \" 25%, transparent 25%, transparent 75%, \" + gridColor + \" 75%, \" + gridColor + \" 100%),\\n\" + (\"linear-gradient(45deg, \" + gridColor + \" 25%, transparent 25%, transparent 75%, \" + gridColor + \" 75%, \" + gridColor + \" 100%)\");\n var backgroundSize = this.grid * 2 * zoom + \"px \" + this.grid * 2 * zoom + \"px\";\n var backgroundPosition = \"0 0, \" + this.grid * zoom + \"px \" + this.grid * zoom + \"px\";\n\n $(this.canvas.paper.canvas).css({\n \"background\": background,\n \"background-size\": backgroundSize,\n \"background-position\": backgroundPosition\n });\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/ShowDimetricGridEditPolicy.js\":\n/*!*********************************************************!*\\\n !*** ./src/policy/canvas/ShowDimetricGridEditPolicy.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A canvas decoration which paints a dimetric in the background.\n * <br>\n * <br>\n *\n * @example\n *\n * canvas.installEditPolicy(new draw2d.policy.canvas.ShowDimetricGridEditPolicy());\n * let shape = new draw2d.shape.basic.Text({text:\"This is a simple text in a canvas with grid background.\"});\n *\n * canvas.add(shape,40,10);\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.canvas.DecorationPolicy\n */\n_packages2.default.policy.canvas.ShowDimetricGridEditPolicy = _packages2.default.policy.canvas.DecorationPolicy.extend(\n/** @lends draw2d.policy.canvas.ShowDimetricGridEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.ShowDimetricGridEditPolicy\",\n\n GRID_COLOR: \"#f0f0f0\",\n GRID_WIDTH: 30,\n\n /**\n * Creates a new constraint policy for snap to grid\n *\n * @param {Number} [grid] the grid width of the canvas\n */\n init: function init(grid) {\n this.color = new _packages2.default.util.Color(this.GRID_COLOR);\n this.zoom = 1;\n this.shapes = null;\n\n this._super();\n\n if (typeof grid === \"number\") {\n this.grid = grid;\n } else {\n this.grid = this.GRID_WIDTH;\n }\n },\n\n onInstall: function onInstall(canvas) {\n this._super(canvas);\n this.zoom = canvas.getZoom();\n this.setGrid(this.grid);\n },\n\n onUninstall: function onUninstall(canvas) {\n this._super(canvas);\n if (this.shapes !== null) {\n this.shapes.remove();\n }\n },\n\n /**\n * \n * Set the grid color\n *\n * @param {draw2d.util.Color|String} color a color object or the CSS string declaration for a color\n * @since 5.0.3\n */\n setGridColor: function setGridColor(color) {\n this.color = new _packages2.default.util.Color(color);\n this.setGrid(this.grid);\n },\n\n /**\n * \n * Set a new grid width/height\n *\n * @param {Number} grid\n * @since 5.0.3\n */\n setGrid: function setGrid(grid) {\n this.grid = grid;\n\n if (this.canvas != null) {\n if (this.shapes !== null) {\n this.shapes.remove();\n }\n\n var r = this.canvas.paper;\n var d = this.grid,\n i = void 0;\n var w = r.width;\n var h = r.height;\n var props = { stroke: this.color.rgba() };\n\n var max = Math.sqrt(w * w + h * h);\n var angle26 = Math.atan(.5);\n var angle153 = Math.PI - angle26;\n var cos30 = Math.cos(angle26);\n var sin30 = Math.sin(angle26);\n var cos150 = Math.cos(angle153);\n var sin150 = Math.sin(angle153);\n\n r.setStart();\n // horizontal\n for (i = 0; i <= w; i += d * 2) {\n r.path([[\"M\", i, 0], [\"L\", i + cos30 * max, sin30 * max]]).attr(props);\n r.path([[\"M\", i, 0], [\"L\", i + cos150 * max, sin150 * max]]).attr(props);\n }\n for (i = d; i <= h; i += d) {\n r.path([[\"M\", 0, i], [\"L\", cos30 * max, i + sin30 * max]]).attr(props);\n r.path([[\"M\", w, i], [\"L\", w + cos150 * max, i + sin150 * max]]).attr(props);\n }\n // vertical\n this.shapes = r.setFinish();\n\n this.shapes.toBack();\n }\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/ShowDotEditPolicy.js\":\n/*!************************************************!*\\\n !*** ./src/policy/canvas/ShowDotEditPolicy.js ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Paint a dotted pattern in the background of the canvas.\n *\n *\n * @example\n *\n * canvas.installEditPolicy(new draw2d.policy.canvas.ShowDotEditPolicy());\n * let shape = new draw2d.shape.basic.Text({text:\"This is a simple text in a canvas with dotted background.\"});\n *\n * canvas.add(shape,40,10);\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.canvas.DecorationPolicy\n * @since 4.0.1\n */\n\n_packages2.default.policy.canvas.ShowDotEditPolicy = _packages2.default.policy.canvas.DecorationPolicy.extend(\n/** @lends draw2d.policy.canvas.ShowDotEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.ShowDotEditPolicy\",\n\n DOT_COLOR: \"#999999\",\n DOT_RADIUS: 1,\n DOT_DISTANCE: 20,\n\n /**\n * show a dot grid in the canvas for decoration.\n *\n * @param {Number} [dotDistance] the distance or grid width between the dots.\n * @param {Number} [dotRadius] the radius of the dots.\n * @param {draw2d.util.Color|String} [dotColor] the color for the dots.\n */\n init: function init(dotDistance, dotRadius, dotColor) {\n var _this = this;\n\n this._super();\n\n this.dotDistance = dotDistance ? dotDistance : this.DOT_DISTANCE;\n this.dotRadius = dotRadius ? dotRadius : this.DOT_RADIUS;\n this.dotColor = new _packages2.default.util.Color(dotColor ? dotColor : this.DOT_COLOR);\n this.onZoomCallback = function (emitterFigure, zoomData) {\n _this.setGrid(1 / zoomData.value);\n };\n },\n\n onInstall: function onInstall(canvas) {\n this._super(canvas);\n\n this.oldBg = this.canvas.html.css(\"background\");\n this.setGrid(1 / canvas.getZoom());\n canvas.on(\"zoom\", this.onZoomCallback);\n },\n\n onUninstall: function onUninstall(canvas) {\n this._super(canvas);\n $(canvas.paper.canvas).css({ \"background\": this.oldBg });\n canvas.off(this.onZoomCallback);\n },\n\n /**\n * @private\n * @param {Number} zoom \n */\n setGrid: function setGrid(zoom) {\n var bgColor = \"#FFFFFF\";\n var dotColor = this.dotColor.rgba();\n\n var background = \"linear-gradient(90deg, \" + bgColor + \" \" + (this.dotDistance - this.dotRadius) * zoom + \"px, transparent 1%) center, linear-gradient(\" + bgColor + \" \" + (this.dotDistance - this.dotRadius) * zoom + \"px, transparent 1%) center, \" + dotColor;\n var backgroundSize = this.dotDistance * zoom + \"px \" + this.dotDistance * zoom + \"px\";\n\n $(this.canvas.paper.canvas).css({\n \"background\": background,\n \"background-size\": backgroundSize\n });\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/ShowGridEditPolicy.js\":\n/*!*************************************************!*\\\n !*** ./src/policy/canvas/ShowGridEditPolicy.js ***!\n \\*************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A cavas decoration which paints a grid in the background.\n * <br>\n * <br>\n *\n * @example\n *\n * canvas.installEditPolicy(new draw2d.policy.canvas.ShowGridEditPolicy());\n * let shape = new draw2d.shape.basic.Text({text:\"This is a simple text in a canvas with grid background.\"});\n *\n * canvas.add(shape,40,10);\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.canvas.DecorationPolicy\n */\n_packages2.default.policy.canvas.ShowGridEditPolicy = _packages2.default.policy.canvas.DecorationPolicy.extend(\n/** @lends draw2d.policy.canvas.ShowGridEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.ShowGridEditPolicy\",\n\n GRID_COLOR: \"#f0f0f0\",\n GRID_WIDTH: 20,\n GRID_STOKE: 1,\n\n /**\n * Creates a new constraint policy for snap to grid\n *\n * @param {Number} [grid] the grid width of the canvas\n */\n init: function init(gridDistance, gridStroke, gridColor) {\n var _this = this;\n\n this.gridWidth = gridDistance || this.GRID_WIDTH;\n this.gridStroke = gridStroke || this.GRID_STOKE;\n this.gridColor = new _packages2.default.util.Color(gridColor || this.GRID_COLOR);\n this._super();\n this.onZoomCallback = function (emitterFigure, zoomData) {\n _this.setGrid(1 / zoomData.value);\n };\n },\n\n /**\n *\n * Set the grid color\n *\n * @param {draw2d.util.Color|String} color a color object or the CSS string declaration for a color\n * @since 5.0.3\n */\n setGridColor: function setGridColor(color) {\n this.gridColor = new _packages2.default.util.Color(color);\n this.setGrid(1 / this.canvas.getZoom());\n },\n\n onInstall: function onInstall(canvas) {\n this._super(canvas);\n\n this.oldBg = this.canvas.html.css(\"background\");\n this.setGrid(1 / canvas.getZoom());\n canvas.on(\"zoom\", this.onZoomCallback);\n },\n\n onUninstall: function onUninstall(canvas) {\n this._super(canvas);\n\n $(canvas.paper.canvas).css({ \"background\": this.oldBg });\n canvas.off(this.onZoomCallback);\n },\n\n /**\n * @private\n * @param {Number} zoom \n */\n setGrid: function setGrid(zoom) {\n var bgColor = \"#FFFFFF\";\n var color = this.gridColor.rgba();\n\n var background = \" linear-gradient(to right, \" + color + \" \" + this.gridStroke + \"px, transparent \" + this.gridStroke + \"px),\\n linear-gradient(to bottom, \" + color + \" \" + this.gridStroke + \"px, \" + bgColor + \" \" + this.gridStroke + \"px)\";\n var backgroundSize = this.gridWidth * zoom + \"px \" + this.gridWidth * zoom + \"px\";\n\n $(this.canvas.paper.canvas).css({\n \"background\": background,\n \"background-size\": backgroundSize\n });\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/SingleSelectionPolicy.js\":\n/*!****************************************************!*\\\n !*** ./src/policy/canvas/SingleSelectionPolicy.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.SelectionPolicy\n */\n_packages2.default.policy.canvas.SingleSelectionPolicy = _packages2.default.policy.canvas.SelectionPolicy.extend(\n/** @lends draw2d.policy.canvas.SingleSelectionPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.SingleSelectionPolicy\",\n\n /**\n * Creates a new Router object\n */\n init: function init() {\n this._super();\n this.mouseMovedDuringMouseDown = false;\n this.mouseDraggingElement = null;\n this.mouseDownElement = null;\n },\n\n /**\n * @inheritdoc\n */\n select: function select(canvas, figure) {\n if (canvas.getSelection().contains(figure)) {\n return; // nothing to to\n }\n\n var oldSelection = canvas.getSelection().getPrimary();\n if (canvas.getSelection().getPrimary() !== null) {\n this.unselect(canvas, canvas.getSelection().getPrimary());\n }\n\n if (figure !== null) {\n figure.select(true); // primary selection\n }\n\n canvas.getSelection().setPrimary(figure);\n\n // inform all selection listeners about the new selection.\n //\n if (oldSelection !== figure) {\n canvas.fireEvent(\"select\", { figure: figure, selection: canvas.getSelection() });\n }\n },\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseDown: function onMouseDown(canvas, x, y, shiftKey, ctrlKey) {\n this.mouseMovedDuringMouseDown = false;\n var canDragStart = true;\n\n // ignore ports since version 6.1.0. This is handled by the ConnectionCreatePolicy\n //\n var figure = canvas.getBestFigure(x, y);\n\n // may the figure is assigned to a composite. In this case the composite can\n // override the event receiver\n while (figure !== null) {\n var delegate = figure.getSelectionAdapter()();\n if (delegate === figure) {\n break;\n }\n figure = delegate;\n }\n\n // ignore ports since version 6.1.0. This is handled by the ConnectionCreatePolicy\n //\n if (figure instanceof _packages2.default.Port) {\n return; // silently\n }\n\n if (figure !== null && figure.isDraggable()) {\n canDragStart = figure.onDragStart(x - figure.getAbsoluteX(), y - figure.getAbsoluteY(), shiftKey, ctrlKey);\n // Element send a veto about the drag&drop operation\n this.mouseDraggingElement = canDragStart === false ? null : figure;\n }\n\n this.mouseDownElement = figure;\n if (this.mouseDownElement !== null) {\n this.mouseDownElement.fireEvent(\"mousedown\", { x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n }\n\n if (figure !== canvas.getSelection().getPrimary() && figure !== null && figure.isSelectable() === true) {\n this.select(canvas, figure);\n\n // it's a line\n if (figure instanceof _packages2.default.shape.basic.Line) {\n // you can move a line with Drag&Drop...but not a connection.\n // A Connection is fixed linked with the corresponding ports.\n //\n if (!(figure instanceof _packages2.default.Connection)) {\n canvas.draggingLineCommand = figure.createCommand(new _packages2.default.command.CommandType(_packages2.default.command.CommandType.MOVE));\n if (canvas.draggingLineCommand !== null) {\n canvas.draggingLine = figure;\n }\n }\n } else if (canDragStart === false) {\n figure.unselect();\n }\n }\n },\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} dx The x diff between start of dragging and this event\n * @param {Number} dy The y diff between start of dragging and this event\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n */\n onMouseDrag: function onMouseDrag(canvas, dx, dy, dx2, dy2, shiftKey, ctrlKey) {\n\n this.mouseMovedDuringMouseDown = true;\n if (this.mouseDraggingElement !== null) {\n\n // mouseDraggingElement be a ResizeHandle...in this case it is not part of the selection\n //\n var sel = canvas.getSelection();\n if (!sel.contains(this.mouseDraggingElement)) {\n this.mouseDraggingElement.onDrag(dx, dy, dx2, dy2, shiftKey, ctrlKey);\n } else {\n sel.each(function (i, figure) {\n figure.onDrag(dx, dy, dx2, dy2, shiftKey, ctrlKey);\n });\n }\n\n var p = canvas.fromDocumentToCanvasCoordinate(canvas.mouseDownX + dx / canvas.zoomFactor, canvas.mouseDownY + dy / canvas.zoomFactor);\n var target = canvas.getBestFigure(p.x, p.y, this.mouseDraggingElement);\n\n if (target !== canvas.currentDropTarget) {\n if (canvas.currentDropTarget !== null) {\n canvas.currentDropTarget.onDragLeave(this.mouseDraggingElement);\n canvas.currentDropTarget.fireEvent(\"dragLeave\", { draggingElement: this.mouseDraggingElement });\n canvas.currentDropTarget = null;\n }\n if (target !== null) {\n canvas.currentDropTarget = target.delegateTarget(this.mouseDraggingElement);\n // inform all listener that the element has accept the dragEnter event\n //\n if (canvas.currentDropTarget !== null) {\n canvas.currentDropTarget.onDragEnter(this.mouseDraggingElement); // legacy\n canvas.currentDropTarget.fireEvent(\"dragEnter\", { draggingElement: this.mouseDraggingElement });\n }\n }\n }\n }\n // Connection didn't support panning at the moment. There is no special reason for that. Just an interaction\n // decision.\n //\n else if (this.mouseDownElement !== null && !(this.mouseDownElement instanceof _packages2.default.Connection)) {\n if (this.mouseDownElement.panningDelegate !== null) {\n this.mouseDownElement.panningDelegate.fireEvent(\"panning\", {\n dx: dx,\n dy: dy,\n dx2: dx2,\n dy2: dy2,\n shiftKey: shiftKey,\n ctrlKey: ctrlKey\n });\n this.mouseDownElement.panningDelegate.onPanning(dx, dy, dx2, dy2, shiftKey, ctrlKey);\n } else {\n this.mouseDownElement.fireEvent(\"panning\", {\n dx: dx,\n dy: dy,\n dx2: dx2,\n dy2: dy2,\n shiftKey: shiftKey,\n ctrlKey: ctrlKey\n });\n this.mouseDownElement.onPanning(dx, dy, dx2, dy2, shiftKey, ctrlKey);\n }\n }\n },\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas the related Canvas\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseUp: function onMouseUp(canvas, x, y, shiftKey, ctrlKey) {\n if (this.mouseDraggingElement !== null) {\n var redrawConnection = new _packages2.default.util.ArrayList();\n if (this.mouseDraggingElement instanceof _packages2.default.shape.node.Node) {\n // TODO: don't add the connections with to check if a repaint is required\n // may a moved connection didn't have an intersection with the named lines.\n // in this case a redraw is useless\n canvas.lineIntersections.each(function (i, inter) {\n if (!redrawConnection.contains(inter.line)) redrawConnection.add(inter.line);\n if (!redrawConnection.contains(inter.other)) redrawConnection.add(inter.other);\n });\n }\n\n // start CommandStack transaction\n canvas.getCommandStack().startTransaction();\n\n var sel = canvas.getSelection().getAll();\n if (!sel.contains(this.mouseDraggingElement)) {\n this.mouseDraggingElement.onDragEnd(x, y, shiftKey, ctrlKey);\n } else {\n canvas.getSelection().getAll().each(function (i, figure) {\n figure.onDragEnd(x, y, shiftKey, ctrlKey);\n });\n }\n\n if (canvas.currentDropTarget !== null && !this.mouseDraggingElement.isResizeHandle) {\n this.mouseDraggingElement.onDrop(canvas.currentDropTarget, x, y, shiftKey, ctrlKey);\n canvas.currentDropTarget.onDragLeave(this.mouseDraggingElement);\n canvas.currentDropTarget.fireEvent(\"dragLeave\", { draggingElement: this.mouseDraggingElement });\n canvas.currentDropTarget.onCatch(this.mouseDraggingElement, x, y, shiftKey, ctrlKey);\n canvas.currentDropTarget = null;\n }\n\n // end command stack trans\n canvas.getCommandStack().commitTransaction();\n\n if (this.mouseDraggingElement instanceof _packages2.default.shape.node.Node) {\n canvas.lineIntersections.each(function (i, inter) {\n if (!redrawConnection.contains(inter.line)) redrawConnection.add(inter.line);\n if (!redrawConnection.contains(inter.other)) redrawConnection.add(inter.other);\n });\n redrawConnection.each(function (i, line) {\n line.svgPathString = null;\n line.repaint();\n });\n }\n\n this.mouseDraggingElement = null;\n }\n // Connection didn't support panning at the moment. There is no special reason for that. Just an interaction\n // decision.\n //\n else if (this.mouseDownElement !== null && !(this.mouseDownElement instanceof _packages2.default.Connection)) {\n if (this.mouseDownElement.panningDelegate !== null) {\n this.mouseDownElement.panningDelegate.fireEvent(\"panningEnd\");\n this.mouseDownElement.panningDelegate.onPanningEnd();\n } else {\n this.mouseDownElement.fireEvent(\"panningEnd\");\n this.mouseDownElement.onPanningEnd();\n }\n }\n\n // Reset the current selection if the user click in the blank canvas.\n // Don't reset the selection if the user pan the canvas\n //\n if (this.mouseDownElement === null && this.mouseMovedDuringMouseDown === false) {\n this.select(canvas, null);\n }\n\n if (this.mouseDownElement !== null) {\n this.mouseDownElement.fireEvent(\"mouseup\", { x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n }\n\n this.mouseDownElement = null;\n this.mouseMovedDuringMouseDown = false;\n },\n\n /**\n *\n * Called by the canvas if the user click on a figure.\n *\n * @param {draw2d.Figure} figure the figure under the click event. Can be null\n * @param {Number} mouseX the x coordinate of the mouse during the click event\n * @param {Number} mouseY the y coordinate of the mouse during the click event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @since 3.0.0\n */\n onClick: function onClick(figure, mouseX, mouseY, shiftKey, ctrlKey) {\n if (figure !== null) {\n figure.fireEvent(\"click\", {\n figure: figure,\n x: mouseX,\n y: mouseY,\n relX: mouseX - figure.getAbsoluteX(),\n relY: mouseY - figure.getAbsoluteY(),\n shiftKey: shiftKey,\n ctrlKey: ctrlKey\n });\n\n figure.onClick();\n }\n },\n\n /**\n *\n * Called by the canvas if the user double click on a figure.\n *\n * @param {draw2d.Figure} figure the figure under the double click event. Can be null\n * @param {Number} mouseX the x coordinate of the mouse during the click event\n * @param {Number} mouseY the y coordinate of the mouse during the click event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @since 4.1.0\n */\n onDoubleClick: function onDoubleClick(figure, mouseX, mouseY, shiftKey, ctrlKey) {\n if (figure !== null) {\n figure.fireEvent(\"dblclick\", { x: mouseX, y: mouseY, shiftKey: shiftKey, ctrlKey: ctrlKey });\n figure.onDoubleClick();\n }\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/SnapToCenterEditPolicy.js\":\n/*!*****************************************************!*\\\n !*** ./src/policy/canvas/SnapToCenterEditPolicy.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Snapping is based on the existing children of a container. When snapping a shape,\n * the center of the bounding box will snap to the center of other figures of the given canvas.\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.canvas.SnapToEditPolicy\n * @since 5.6.4\n */\n_packages2.default.policy.canvas.SnapToCenterEditPolicy = _packages2.default.policy.canvas.SnapToEditPolicy.extend(\n/** @lends draw2d.policy.canvas.SnapToCenterEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.SnapToCenterEditPolicy\",\n\n SNAP_THRESHOLD: 5,\n FADEOUT_DURATION: 500,\n\n /**\n * Creates a new constraint policy for snap to geometry\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.centers = null;\n\n this.horizontalGuideLines = null;\n this.verticalGuideLines = null;\n },\n\n /**\n *\n *\n * @param {draw2d.Figure} figure the shape below the mouse or null\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseUp: function onMouseUp(figure, x, y, shiftKey, ctrlKey) {\n this.centers = null;\n this.hideHorizontalGuides(false);\n this.hideVerticalGuides(false);\n },\n\n /**\n *\n * Adjust the coordinates to the canvas neighbours\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {draw2d.Figure} figure the figure to snap\n * @param {draw2d.geo.Point} modifiedPos the already modified position of the figure (e.g. from an another Policy)\n * @param {draw2d.geo.Point} originalPos the original requested position of the figure\n *\n * @returns {draw2d.geo.Point} the constraint position of the figure\n */\n snap: function snap(canvas, figure, modifiedPos, originalPos) {\n // do nothing for resize handles\n if (figure instanceof _packages2.default.ResizeHandle) {\n return modifiedPos;\n }\n\n // do nothing for lines\n if (figure instanceof _packages2.default.shape.basic.Line) {\n return modifiedPos;\n }\n\n var allowXChanges = modifiedPos.x === originalPos.x;\n var allowYChanges = modifiedPos.y === originalPos.y;\n\n var inputBounds = new _packages2.default.geo.Rectangle(modifiedPos.x, modifiedPos.y, figure.getWidth(), figure.getHeight());\n var inputCenter = inputBounds.getCenter();\n\n modifiedPos = modifiedPos.clone();\n\n if (allowXChanges === true) {\n var horizontal = this.snapHorizontal(inputCenter);\n\n // Show a horizontal line if the snapper has modified the inputPoint\n //\n if (horizontal.snapped) {\n // show the snap lines..\n this.showHorizontalGuides(figure, horizontal);\n\n // and snap the x coordinate\n modifiedPos.y += horizontal.diff;\n } else {\n this.hideHorizontalGuides(true);\n }\n } else {\n this.hideHorizontalGuides(true);\n }\n\n if (allowYChanges === true) {\n var vertical = this.snapVertical(inputCenter);\n\n // Show a vertical guides if the snapper has modified the inputPoint\n //\n if (vertical.snapped) {\n // show the snap lines..\n this.showVerticalGuides(figure, vertical);\n\n // and snap the x coordinate\n modifiedPos.x += vertical.diff;\n } else {\n this.hideVerticalGuides(true);\n }\n } else {\n this.hideVerticalGuides(true);\n }\n\n return modifiedPos;\n },\n\n snapVertical: function snapVertical(center) {\n var _this = this;\n if (this.centers === null) {\n this.populateCenters();\n }\n\n var result = {\n point: center,\n snapped: false,\n diff: 0\n };\n\n var candidates = [];\n this.centers.forEach(function (point) {\n if (Math.abs(point.x - center.x) < _this.SNAP_THRESHOLD) {\n candidates.push(point);\n }\n });\n\n // we can abort if we didn't find an intersection on the right hand side\n if (candidates.length === 0) {\n return result;\n }\n\n // sort the intersection point and get the closest point to the tested inputPoint\n // In this case it is the point with the greatest X coordinate\n //\n candidates.sort(function (a, b) {\n return a.x - b.x;\n });\n\n var diff = candidates[0].x - center.x;\n var snappedPoint = center.clone();\n snappedPoint.x += diff;\n return { snapped: true, diff: diff, point: candidates[0], snappedPoint: snappedPoint };\n },\n\n snapHorizontal: function snapHorizontal(center) {\n var _this = this;\n if (this.centers === null) {\n this.populateCenters();\n }\n\n var result = {\n point: center,\n snapped: false,\n diff: 0\n };\n\n var candidates = [];\n this.centers.forEach(function (point) {\n if (Math.abs(point.y - center.y) < _this.SNAP_THRESHOLD) {\n candidates.push(point);\n }\n });\n\n // we can abort if we didn't find an intersection on the right hand side\n if (candidates.length === 0) {\n return result;\n }\n\n // sort the intersection point and get the closest point to the tested inputPoint\n // In this case it is the point with the greatest X coordinate\n //\n candidates.sort(function (a, b) {\n return a.y - b.y;\n });\n\n var diff = candidates[0].y - center.y;\n var snappedPoint = center.clone();\n snappedPoint.y += diff;\n return { snapped: true, diff: diff, point: candidates[0], snappedPoint: snappedPoint };\n },\n\n populateCenters: function populateCenters() {\n var selection = this.canvas.getSelection().getAll(true);\n var centers = this.centers = [];\n\n var figures = this.canvas.getFigures();\n figures.each(function (index, figure) {\n if (!selection.contains(figure)) {\n centers.push(figure.getBoundingBox().getCenter());\n }\n });\n },\n\n showHorizontalGuides: function showHorizontalGuides(causedFigure, constraint) {\n if (this.horizontalGuideLines !== null) {\n this.horizontalGuideLines.stop();\n this.horizontalGuideLines.remove();\n }\n\n var start = constraint.point;\n var end = constraint.snappedPoint;\n\n this.canvas.paper.setStart();\n\n // horizontal lines\n //\n this.canvas.paper.path(\"M \" + start.x + \" \" + ((start.y | 0) + 0.5) + \" L \" + end.x + \" \" + ((end.y | 0) + 0.5)).attr({\n \"stroke\": this.lineColor.rgba(),\n \"stroke-width\": 1\n });\n\n this.horizontalGuideLines = this.canvas.paper.setFinish();\n this.horizontalGuideLines.toFront();\n },\n\n /**\n *\n * Hide the horizontal snapping guides\n *\n * @param {Boolean} fast\n */\n hideHorizontalGuides: function hideHorizontalGuides(fast) {\n var _this2 = this;\n\n if (this.horizontalGuideLines === null) {\n return;\n }\n if (fast === true) {\n if (this.horizontalGuideLines !== null) {\n this.horizontalGuideLines.remove();\n this.horizontalGuideLines = null;\n }\n } else {\n this.horizontalGuideLines.animate({ opacity: 0.1 }, this.FADEOUT_DURATION, function () {\n if (_this2.horizontalGuideLines !== null) {\n _this2.horizontalGuideLines.remove();\n _this2.horizontalGuideLines = null;\n }\n });\n }\n },\n\n showVerticalGuides: function showVerticalGuides(causedFigure, constraint) {\n if (this.verticalGuideLines !== null) {\n this.verticalGuideLines.stop();\n this.verticalGuideLines.remove();\n }\n\n var start = constraint.point;\n var end = constraint.snappedPoint;\n\n this.canvas.paper.setStart();\n\n // horizontal lines\n //\n this.canvas.paper.path(\"M \" + ((start.x | 0) + 0.5) + \" \" + start.y + \" L \" + ((end.x | 0) + 0.5) + \" \" + end.y).attr({\n \"stroke\": this.lineColor.rgba(),\n \"stroke-width\": 1\n });\n\n this.verticalGuideLines = this.canvas.paper.setFinish();\n this.verticalGuideLines.toFront();\n },\n\n /**\n *\n * Hide the horizontal snapüing guides\n *\n * @param soft\n */\n hideVerticalGuides: function hideVerticalGuides(fast) {\n var _this3 = this;\n\n if (this.verticalGuideLines === null) {\n return;\n }\n if (fast === true) {\n if (this.verticalGuideLines !== null) {\n this.verticalGuideLines.remove();\n this.verticalGuideLines = null;\n }\n } else {\n this.verticalGuideLines.animate({ opacity: 0.1 }, this.FADEOUT_DURATION, function () {\n if (_this3.verticalGuideLines !== null) {\n _this3.verticalGuideLines.remove();\n _this3.verticalGuideLines = null;\n }\n });\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/SnapToDimetricGridEditPolicy.js\":\n/*!***********************************************************!*\\\n !*** ./src/policy/canvas/SnapToDimetricGridEditPolicy.js ***!\n \\***********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A helper used to perform snapping to a grid, which is specified on the canvas via the various\n * properties defined in this class.\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.canvas.ShowDimetricGridEditPolicy\n */\n_packages2.default.policy.canvas.SnapToDimetricGridEditPolicy = _packages2.default.policy.canvas.ShowDimetricGridEditPolicy.extend(\n/** @lends draw2d.policy.canvas.SnapToDimetricGridEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.SnapToDimetricGridEditPolicy\",\n\n /**\n * Creates a new constraint policy for snap to grid\n *\n * @param {Number} grid the grid width of the canvas\n */\n init: function init(grid) {\n this._super(grid);\n },\n\n /**\n *\n * Applies a snapping correction to the given result.\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {draw2d.Figure} figure the figure to snap\n * @param {draw2d.geo.Point} modifiedPos the already modified position of the figure (e.g. from an another Policy)\n * @param {draw2d.geo.Point} originalPos the original requested position of the figure\n * @since 2.3.0\n */\n snap: function snap(canvas, figure, modifiedPos, originalPos) {\n // do nothing for lines\n if (figure instanceof _packages2.default.shape.basic.Line) {\n return modifiedPos;\n }\n\n var snapPoint = figure.getSnapToGridAnchor();\n\n modifiedPos.x = modifiedPos.x + snapPoint.x;\n modifiedPos.y = modifiedPos.y + snapPoint.y;\n\n var g = this.grid / 5;\n\n modifiedPos.x = g * Math.floor((modifiedPos.x + g / 2.0) / g);\n modifiedPos.y = g * Math.floor((modifiedPos.y + g / 2.0) / g);\n\n modifiedPos.x = modifiedPos.x - snapPoint.x;\n modifiedPos.y = modifiedPos.y - snapPoint.y;\n\n return modifiedPos;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/SnapToEditPolicy.js\":\n/*!***********************************************!*\\\n !*** ./src/policy/canvas/SnapToEditPolicy.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.SnapToHelper = {};\n\n_packages2.default.SnapToHelper.NORTH = 1;\n_packages2.default.SnapToHelper.SOUTH = 4;\n_packages2.default.SnapToHelper.WEST = 8;\n_packages2.default.SnapToHelper.EAST = 16;\n_packages2.default.SnapToHelper.CENTER_H = 32;\n_packages2.default.SnapToHelper.CENTER_V = 642;\n\n_packages2.default.SnapToHelper.NORTH_EAST = _packages2.default.SnapToHelper.NORTH | _packages2.default.SnapToHelper.EAST;\n_packages2.default.SnapToHelper.NORTH_WEST = _packages2.default.SnapToHelper.NORTH | _packages2.default.SnapToHelper.WEST;\n_packages2.default.SnapToHelper.SOUTH_EAST = _packages2.default.SnapToHelper.SOUTH | _packages2.default.SnapToHelper.EAST;\n_packages2.default.SnapToHelper.SOUTH_WEST = _packages2.default.SnapToHelper.SOUTH | _packages2.default.SnapToHelper.WEST;\n_packages2.default.SnapToHelper.NORTH_SOUTH = _packages2.default.SnapToHelper.NORTH | _packages2.default.SnapToHelper.SOUTH;\n_packages2.default.SnapToHelper.EAST_WEST = _packages2.default.SnapToHelper.EAST | _packages2.default.SnapToHelper.WEST;\n_packages2.default.SnapToHelper.NSEW = _packages2.default.SnapToHelper.NORTH_SOUTH | _packages2.default.SnapToHelper.EAST_WEST;\n\n/**\n * @class\n *\n * A helper used by Tools for snapping certain mouse interactions.\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.canvas.CanvasPolicy\n */\n_packages2.default.policy.canvas.SnapToEditPolicy = _packages2.default.policy.canvas.CanvasPolicy.extend(\n/** @lends draw2d.policy.canvas.SnapToEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.SnapToEditPolicy\",\n\n /**\n * Creates a new constraint policy for snap to grid\n *\n */\n init: function init(attr, setter, getter) {\n this.lineColor = null;\n\n this._super((0, _extend2.default)({\n lineColor: \"#51C1FC\"\n }, attr), (0, _extend2.default)({\n // @attr {draw2d.util.Color} color the line color of the snapTo lines */\n lineColor: this.setLineColor\n }, setter), (0, _extend2.default)({\n lineColor: this.getLineColor\n }, getter));\n },\n\n /**\n *\n * Set the color of the snap line.\n *\n * // Alternatively you can use the attr method:\n * policy.attr({\n * lineColor: color\n * });\n *\n * @param {draw2d.util.Color|String} color The new color of the line.\n **/\n setLineColor: function setLineColor(color) {\n this.lineColor = new _packages2.default.util.Color(color);\n return this;\n },\n\n /**\n *\n * Return the current paint color.\n *\n * @returns {draw2d.util.Color} The paint color of the line.\n * @since 5.6.1\n **/\n getLineColor: function getLineColor() {\n return this.lineColor;\n },\n\n /**\n *\n * Adjust the coordinates to the given constraint of the policy.\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {draw2d.Figure} figure the figure to snap\n * @param {draw2d.geo.Point} modifiedPos the already modified position of the figure (e.g. from an another Policy)\n * @param {draw2d.geo.Point} originalPos the original requested position of the figure\n */\n snap: function snap(canvas, figure, modifiedPos, originalPos) {\n return modifiedPos;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/SnapToGeometryEditPolicy.js\":\n/*!*******************************************************!*\\\n !*** ./src/policy/canvas/SnapToGeometryEditPolicy.js ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Snapping is based on the existing children of a container. When snapping a shape,\n * the edges of the bounding box will snap to edges of other rectangles generated\n * from the children of the given canvas.\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.canvas.SnapToEditPolicy\n */\n_packages2.default.policy.canvas.SnapToGeometryEditPolicy = _packages2.default.policy.canvas.SnapToEditPolicy.extend(\n/** @lends draw2d.policy.canvas.SnapToGeometryEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.SnapToGeometryEditPolicy\",\n\n SNAP_THRESHOLD: 3,\n FADEOUT_DURATION: 300,\n\n /**\n * Creates a new constraint policy for snap to geometry\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.rows = null;\n this.cols = null;\n this.vline = null;\n this.hline = null;\n },\n\n /**\n * \n *\n * @param {draw2d.Figure} figure the shape below the mouse or null\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseUp: function onMouseUp(figure, x, y, shiftKey, ctrlKey) {\n this.rows = null;\n this.cols = null;\n this.hideVerticalLine();\n this.hideHorizontalLine();\n },\n\n /**\n * \n * Adjust the coordinates to the canvas neighbours\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {draw2d.Figure} figure the figure to snap\n * @param {draw2d.geo.Point} modifiedPos the already modified position of the figure (e.g. from an another Policy)\n * @param {draw2d.geo.Point} originalPos the original requested position of the figure\n *\n * @returns {draw2d.geo.Point} the constraint position of the figure\n */\n snap: function snap(canvas, figure, modifiedPos, originalPos) {\n // do nothing for lines\n if (figure instanceof _packages2.default.shape.basic.Line) {\n return modifiedPos;\n }\n\n var result = void 0;\n var allowXChanges = modifiedPos.x === originalPos.x;\n var allowYChanges = modifiedPos.y === originalPos.y;\n\n // Coordinates already snapped to an x/y coordinate.\n // Don't change them and in this case no further calculation is requried.\n //\n if (!allowXChanges && !allowYChanges) {\n return modifiedPos;\n }\n\n if (figure instanceof _packages2.default.ResizeHandle) {\n var snapPoint = figure.getSnapToGridAnchor();\n modifiedPos.x += snapPoint.x;\n modifiedPos.y += snapPoint.y;\n\n var snapDirections = figure.getSnapToDirection();\n result = this.snapPoint(snapDirections, modifiedPos);\n\n // Show a vertical line if the snapper has modified the inputPoint\n //\n if (allowXChanges && snapDirections & _packages2.default.SnapToHelper.EAST_WEST && !(result.edge & _packages2.default.SnapToHelper.EAST_WEST)) {\n this.showVerticalLine(figure, _packages2.default.SnapToHelper.WEST, result.point.x);\n } else {\n this.hideVerticalLine();\n }\n\n // Show a horizontal line if the snapper has modified the inputPoint\n //\n if (allowYChanges && snapDirections & _packages2.default.SnapToHelper.NORTH_SOUTH && !(result.edge & _packages2.default.SnapToHelper.NORTH_SOUTH)) {\n this.showHorizontalLine(figure, _packages2.default.SnapToHelper.NORTH, result.point.y);\n } else {\n this.hideHorizontalLine();\n }\n\n // restore the original pos coordinate if x or y coordinate already snapped to any axis\n // or subtract the added snapOffset\n //\n result.point.x = allowXChanges ? result.point.x - snapPoint.x : modifiedPos.x;\n result.point.y = allowYChanges ? result.point.y - snapPoint.y : modifiedPos.y;\n\n return result.point;\n }\n\n // The user drag&drop a normal figure\n var inputBounds = new _packages2.default.geo.Rectangle(modifiedPos.x, modifiedPos.y, figure.getWidth(), figure.getHeight());\n\n result = this.snapRectangle(inputBounds);\n\n if (!allowXChanges) {\n result.bounds.x = modifiedPos.x;\n }\n\n if (!allowYChanges) {\n result.bounds.y = modifiedPos.y;\n }\n\n // Show a vertical line if the snapper has modified the inputPoint\n //\n if (allowXChanges && !(result.edge & _packages2.default.SnapToHelper.WEST)) {\n this.showVerticalLine(figure, _packages2.default.SnapToHelper.WEST, result.bounds.x);\n } else if (allowXChanges && !(result.edge & _packages2.default.SnapToHelper.EAST)) {\n this.showVerticalLine(figure, _packages2.default.SnapToHelper.EAST, result.bounds.x + result.bounds.getWidth());\n } else {\n this.hideVerticalLine();\n }\n\n // Show a horizontal line if the snapper has modified the inputPoint\n //\n if (allowYChanges && !(result.edge & _packages2.default.SnapToHelper.NORTH)) {\n this.showHorizontalLine(figure, _packages2.default.SnapToHelper.NORTH, result.bounds.y);\n } else if (allowYChanges && !(result.edge & _packages2.default.SnapToHelper.SOUTH)) {\n this.showHorizontalLine(figure, _packages2.default.SnapToHelper.SOUTH, result.bounds.y + result.bounds.getHeight());\n } else {\n this.hideHorizontalLine();\n }\n\n return result.bounds.getTopLeft();\n },\n\n /**\n * \n * calculates the snapped position of the rectangle.\n *\n * @param {draw2d.geo.Rectangle} inputBounds\n *\n * @returns {Object}\n */\n snapRectangle: function snapRectangle(inputBounds) {\n var resultBounds = inputBounds.clone();\n\n var topLeft = this.snapPoint(_packages2.default.SnapToHelper.NORTH_WEST, inputBounds.getTopLeft());\n resultBounds.x = topLeft.point.x;\n resultBounds.y = topLeft.point.y;\n\n var bottomRight = this.snapPoint(_packages2.default.SnapToHelper.SOUTH_EAST, inputBounds.getBottomRight());\n\n // The first test (topLeft) has not modified the point. so we can modify them with the bottomRight adjustment\n //\n if (topLeft.edge & _packages2.default.SnapToHelper.WEST) {\n resultBounds.x = bottomRight.point.x - inputBounds.getWidth();\n }\n\n // The first test (topLeft) has not modified the point. so we can modify them with the bottomRight adjustment\n //\n if (topLeft.edge & _packages2.default.SnapToHelper.NORTH) {\n resultBounds.y = bottomRight.point.y - inputBounds.getHeight();\n }\n\n return { edge: topLeft.edge | bottomRight.edge, bounds: resultBounds };\n },\n\n snapPoint: function snapPoint( /*:int*/snapOrientation, /*:draw2d.Point*/inputPoint) {\n var resultPoint = inputPoint.clone();\n\n if (this.rows === null || this.cols === null) this.populateRowsAndCols();\n\n if ((snapOrientation & _packages2.default.SnapToHelper.EAST) !== 0) {\n var rightCorrection = this.getCorrectionFor(this.cols, inputPoint.x + 1, 1);\n if (rightCorrection !== this.SNAP_THRESHOLD) {\n snapOrientation &= ~_packages2.default.SnapToHelper.EAST;\n resultPoint.x += rightCorrection;\n }\n }\n\n if ((snapOrientation & _packages2.default.SnapToHelper.WEST) !== 0) {\n var leftCorrection = this.getCorrectionFor(this.cols, inputPoint.x, -1);\n if (leftCorrection !== this.SNAP_THRESHOLD) {\n snapOrientation &= ~_packages2.default.SnapToHelper.WEST;\n resultPoint.x += leftCorrection;\n }\n }\n\n if ((snapOrientation & _packages2.default.SnapToHelper.SOUTH) !== 0) {\n var bottomCorrection = this.getCorrectionFor(this.rows, inputPoint.y + 1, 1);\n if (bottomCorrection !== this.SNAP_THRESHOLD) {\n snapOrientation &= ~_packages2.default.SnapToHelper.SOUTH;\n resultPoint.y += bottomCorrection;\n }\n }\n\n if ((snapOrientation & _packages2.default.SnapToHelper.NORTH) !== 0) {\n var topCorrection = this.getCorrectionFor(this.rows, inputPoint.y, -1);\n if (topCorrection !== this.SNAP_THRESHOLD) {\n snapOrientation &= ~_packages2.default.SnapToHelper.NORTH;\n resultPoint.y += topCorrection;\n }\n }\n\n return { edge: snapOrientation, point: resultPoint };\n },\n\n populateRowsAndCols: function populateRowsAndCols() {\n var selection = this.canvas.getSelection();\n this.rows = [];\n this.cols = [];\n\n var figures = this.canvas.getFigures();\n for (var i = 0; i < figures.getSize(); i++) {\n var figure = figures.get(i);\n if (!selection.contains(figure, true)) {\n var bounds = figure.getBoundingBox();\n this.cols.push({ type: -1, location: bounds.x });\n this.cols.push({ type: 0, location: bounds.x + (bounds.w - 1) / 2 });\n this.cols.push({ type: 1, location: bounds.getRight() + 1 });\n this.rows.push({ type: -1, location: bounds.y });\n this.rows.push({ type: 0, location: bounds.y + (bounds.h - 1) / 2 });\n this.rows.push({ type: 1, location: bounds.getBottom() + 1 });\n }\n }\n\n // TODO: remove duplicate entries in the rows/cols array\n },\n\n getCorrectionFor: function getCorrectionFor( /*:Array*/entries, /*:double*/value, /*:int*/side) {\n var resultMag = this.SNAP_THRESHOLD;\n var result = this.SNAP_THRESHOLD;\n\n for (var i = 0; i < entries.length; i++) {\n var entry = entries[i];\n var magnitude = void 0;\n\n if (entry.type === -1 && side !== 0) {\n magnitude = Math.abs(value - entry.location);\n if (magnitude < resultMag) {\n resultMag = magnitude;\n result = entry.location - value;\n }\n } else if (entry.type === 0 && side === 0) {\n magnitude = Math.abs(value - entry.location);\n if (magnitude < resultMag) {\n resultMag = magnitude;\n result = entry.location - value;\n }\n } else if (entry.type === 1 && side !== 0) {\n magnitude = Math.abs(value - entry.location);\n if (magnitude < resultMag) {\n resultMag = magnitude;\n result = entry.location - value;\n }\n }\n }\n return result;\n },\n\n showVerticalLine: function showVerticalLine(causedFigure, edge, x) {\n if (this.vline != null) {\n this.vline.stop();\n this.vline.remove();\n }\n\n var figures = this.canvas.getFigures().clone();\n figures.removeAll(this.canvas.getSelection().getAll(true));\n figures.map(function (figure) {\n return figure.getBoundingBox();\n });\n figures.grep(function (bbox) {\n return Math.abs(bbox.x - x) <= 1 || Math.abs(bbox.getRight() - x) <= 1;\n });\n\n // return silently if no figure bounding box is left\n //\n if (figures.getSize() === 0) {\n return;\n }\n\n // figure to align is above the current shape\n //\n var causedBox = causedFigure.getBoundingBox();\n var causedCenter = causedBox.getCenter();\n figures.sort(function (a, b) {\n var d_a = a.getCenter().distance(causedCenter);\n var d_b = b.getCenter().distance(causedCenter);\n return d_a - d_b;\n });\n var fromY = 0;\n var maxLength = this.canvas.getHeight() * Math.max(1, this.canvas.getZoom());\n var yLength = maxLength;\n var snappedBox = figures.get(0);\n if (causedBox.y < snappedBox.y) {\n fromY = causedBox.y;\n yLength = snappedBox.getBottom() - causedBox.y;\n } else {\n fromY = snappedBox.y;\n yLength = causedBox.getBottom() - snappedBox.y;\n }\n\n x = (x | 0) + 0.5; // force a .5 number to avoid subpixel rendering. Blurry lines...\n this.canvas.paper.setStart();\n this.canvas.paper.path(\"M \" + x + \" 0 l 0 \" + maxLength).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1, \"stroke-dasharray\": \". \" });\n this.canvas.paper.path(\"M \" + x + \" \" + fromY + \" l 0 \" + yLength).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n this.vline = this.canvas.paper.setFinish();\n this.vline.toBack();\n },\n\n hideVerticalLine: function hideVerticalLine() {\n var _this = this;\n\n if (this.vline == null) {\n return;\n }\n this.vline.animate({ opacity: 0.1 }, this.FADEOUT_DURATION, function () {\n if (_this.vline !== null) {\n _this.vline.remove();\n _this.vline = null;\n }\n });\n },\n\n showHorizontalLine: function showHorizontalLine(causedFigure, edge, y) {\n if (this.hline != null) {\n this.hline.stop();\n this.hline.remove();\n }\n\n var figures = this.canvas.getFigures().clone();\n figures.removeAll(this.canvas.getSelection().getAll(true));\n figures.map(function (figure) {\n return figure.getBoundingBox();\n });\n figures.grep(function (bbox) {\n return Math.abs(bbox.y - y) <= 1 || Math.abs(bbox.getBottom() - y) <= 1;\n });\n\n // return silently if no figure bounding box is left\n //\n if (figures.getSize() === 0) {\n return;\n }\n\n // figure to align is above the current shape\n //\n var causedBox = causedFigure.getBoundingBox();\n var causedCenter = causedBox.getCenter();\n figures.sort(function (a, b) {\n var d_a = a.getCenter().distance(causedCenter);\n var d_b = b.getCenter().distance(causedCenter);\n return d_a - d_b;\n });\n var fromX = 0;\n var maxLength = void 0;\n var xLength = maxLength = this.canvas.getWidth() * Math.max(1, this.canvas.getZoom());\n var snappedBox = figures.get(0);\n if (causedBox.x < snappedBox.x) {\n fromX = causedBox.x;\n xLength = snappedBox.getRight() - causedBox.x;\n } else {\n fromX = snappedBox.x;\n xLength = causedBox.getRight() - snappedBox.x;\n }\n\n y = (y | 0) + 0.5; // force a .5 number to avoid subpixel rendering. Blurry lines...\n\n this.canvas.paper.setStart();\n this.canvas.paper.path(\"M 0 \" + y + \" l \" + maxLength + \" 0\").attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1, \"stroke-dasharray\": \". \" });\n this.canvas.paper.path(\"M \" + fromX + \" \" + y + \" l \" + xLength + \" 0\").attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n this.hline = this.canvas.paper.setFinish();\n this.hline.toBack();\n },\n\n hideHorizontalLine: function hideHorizontalLine() {\n var _this2 = this;\n\n if (this.hline === null) {\n return; //silently\n }\n this.hline.animate({ opacity: 0.1 }, this.FADEOUT_DURATION, function () {\n if (_this2.hline !== null) {\n _this2.hline.remove();\n _this2.hline = null;\n }\n });\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/SnapToGridEditPolicy.js\":\n/*!***************************************************!*\\\n !*** ./src/policy/canvas/SnapToGridEditPolicy.js ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A helper used to perform snapping to a grid, which is specified on the canvas via the various\n * properties defined in this class.\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.canvas.ShowGridEditPolicy\n */\n_packages2.default.policy.canvas.SnapToGridEditPolicy = _packages2.default.policy.canvas.SnapToEditPolicy.extend(\n/** @lends draw2d.policy.canvas.SnapToGridEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.SnapToGridEditPolicy\",\n\n /**\n * Creates a new constraint policy for snap to grid\n *\n * @param {Number} grid the grid width of the canvas\n */\n init: function init(grid, showGrid) {\n this._super();\n this.grid = grid || 20;\n\n // Default Value for \"showGrid=true\"\n if (typeof showGrid === \"undefined\" || showGrid === true) {\n this.renderer = new _packages2.default.policy.canvas.ShowGridEditPolicy(this.grid);\n }\n },\n\n onInstall: function onInstall(canvas) {\n this._super(canvas);\n if (this.renderer) this.renderer.onInstall(canvas);\n },\n\n onUninstall: function onUninstall(canvas) {\n this._super(canvas);\n if (this.renderer) this.renderer.onUninstall(canvas);\n },\n\n /**\n *\n * Set a new grid width/height\n *\n * @param {Number} grid\n * @since 5.0.3\n */\n setGrid: function setGrid(grid) {\n this.grid = grid;\n if (this.renderer) this.renderer.setGrid(grid);\n },\n\n /**\n *\n * Applies a snapping correction to the given result.\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {draw2d.Figure} figure the figure to snap\n * @param {draw2d.geo.Point} modifiedPos the already modified position of the figure (e.g. from an another Policy)\n * @param {draw2d.geo.Point} originalPos the original requested position of the figure\n * @since 2.3.0\n */\n snap: function snap(canvas, figure, modifiedPos, originalPos) {\n // do nothing for lines\n if (figure instanceof _packages2.default.shape.basic.Line) {\n return modifiedPos;\n }\n\n var snapPoint = figure.getSnapToGridAnchor();\n\n modifiedPos.x = modifiedPos.x + snapPoint.x;\n modifiedPos.y = modifiedPos.y + snapPoint.y;\n\n modifiedPos.x = this.grid * Math.floor((modifiedPos.x + this.grid / 2.0) / this.grid);\n modifiedPos.y = this.grid * Math.floor((modifiedPos.y + this.grid / 2.0) / this.grid);\n\n modifiedPos.x = modifiedPos.x - snapPoint.x;\n modifiedPos.y = modifiedPos.y - snapPoint.y;\n\n return modifiedPos;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/SnapToInBetweenEditPolicy.js\":\n/*!********************************************************!*\\\n !*** ./src/policy/canvas/SnapToInBetweenEditPolicy.js ***!\n \\********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Snapping is based on the existing children of a container. When snapping a shape,\n * the edges of the bounding box will snap to edges of other rectangles generated\n * from the children of the given canvas.\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.canvas.SnapToEditPolicy\n * @since 5.6.4\n */\n_packages2.default.policy.canvas.SnapToInBetweenEditPolicy = _packages2.default.policy.canvas.SnapToEditPolicy.extend(\n/** @lends draw2d.policy.canvas.SnapToInBetweenEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.SnapToInBetweenEditPolicy\",\n\n SNAP_THRESHOLD: 5,\n FADEOUT_DURATION: 500,\n\n /**\n * Creates a new constraint policy for snap to geometry\n *\n */\n init: function init(attr, setter, getter) {\n\n this._super(attr, setter, getter);\n\n this.bounds = null;\n\n this.horizontalGuideLines = null;\n this.verticalGuideLines = null;\n },\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n */\n onMouseUp: function onMouseUp(figure, x, y, shiftKey, ctrlKey) {\n this.bounds = null;\n this.hideHorizontalGuides(false);\n this.hideVerticalGuides(false);\n },\n\n /**\n *\n * Adjust the coordinates to the canvas neighbours\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {draw2d.Figure} figure the figure to snap\n * @param {draw2d.geo.Point} modifiedPos the already modified position of the figure (e.g. from an another Policy)\n * @param {draw2d.geo.Point} originalPos the original requested position of the figure\n *\n * @returns {draw2d.geo.Point} the constraint position of the figure\n */\n snap: function snap(canvas, figure, modifiedPos, originalPos) {\n // do nothing for resize handles\n if (figure instanceof _packages2.default.ResizeHandle) {\n return modifiedPos;\n }\n // do nothing for lines\n if (figure instanceof _packages2.default.shape.basic.Line) {\n return modifiedPos;\n }\n\n var allowXChanges = modifiedPos.x === originalPos.x;\n var allowYChanges = modifiedPos.y === originalPos.y;\n\n var inputBounds = new _packages2.default.geo.Rectangle(modifiedPos.x, modifiedPos.y, figure.getWidth(), figure.getHeight());\n\n modifiedPos = modifiedPos.clone();\n\n if (allowXChanges === true) {\n var horizontal = this.snapHorizontal(inputBounds);\n\n // Show a horizontal line if the snapper has modified the inputPoint\n //\n if (horizontal.snapped) {\n // show the snap lines..\n this.showHorizontalGuides(figure, horizontal);\n\n // and snap the x coordinate\n modifiedPos.x += horizontal.diff;\n } else {\n this.hideHorizontalGuides(true);\n }\n } else {\n this.hideHorizontalGuides(true);\n }\n\n if (allowYChanges === true) {\n var vertical = this.snapVertical(inputBounds);\n\n // Show a vertical guides if the snapper has modified the inputPoint\n //\n if (vertical.snapped) {\n // show the snap lines..\n this.showVerticalGuides(figure, vertical);\n\n // and snap the x coordinate\n modifiedPos.y += vertical.diff;\n } else {\n this.hideVerticalGuides(true);\n }\n } else {\n this.hideVerticalGuides(true);\n }\n\n return modifiedPos;\n },\n\n snapHorizontal: function snapHorizontal(boundingBox) {\n var center = boundingBox.getCenter();\n if (this.bounds === null) this.populateBounds();\n\n var result = {\n point: center,\n snapped: false,\n snappedBox: boundingBox.clone()\n };\n\n var intersectionPoint = null;\n\n // Calculate the intersections points p(i) of all left side edges of the bounding boxes\n // and the ray from the center of the drag&drop object to the left edge of the canva\n //\n // BBox of Drag&Drop\n // any Figure Figure\n //\n // ....+ ........\n // | . .\n // . |p(i) . .\n // . X<------------->+ .\n // . | . .\n // ....+ . .\n // ........\n //\n //\n var leftIntersections = [];\n var leftInputPoint = center.clone();\n leftInputPoint.x = 0;\n this.bounds.forEach(function (bbox, index) {\n intersectionPoint = _packages2.default.shape.basic.Line.intersection(bbox.getTopRight(), bbox.getBottomRight(), center, leftInputPoint);\n if (intersectionPoint !== null) {\n intersectionPoint.causedBBox = bbox;\n leftIntersections.push(intersectionPoint);\n }\n });\n // we can abort if we didn't find an intersection on the left hand side\n if (leftIntersections.length === 0) {\n return result;\n }\n\n // sort the intersection point and get the closest point to the tested inputPoint\n // In this case it is the point with the greates X coordinate\n //\n leftIntersections.sort(function (a, b) {\n return b.x - a.x;\n });\n\n // Calculate the intersections points p(i) of all right hand side edges of the\n // bounding boxes and the ray from the center of the drag&drop object to the\n // left edge of the canvas\n //\n // Drag&Drop bbox of any\n // Figure figure\n //\n // ........\n // . .\n // . . ...........\n // . +<-------------->X |\n // . . p(i)| |\n // . . | |\n // ........ | |\n // ...........\n //\n var rightIntersections = [];\n var rightInputPoint = center.clone();\n rightInputPoint.x = Number.MAX_SAFE_INTEGER;\n this.bounds.forEach(function (bbox, index) {\n intersectionPoint = _packages2.default.shape.basic.Line.intersection(bbox.getTopLeft(), bbox.getBottomLeft(), center, rightInputPoint);\n if (intersectionPoint !== null) {\n intersectionPoint.causedBBox = bbox;\n rightIntersections.push(intersectionPoint);\n }\n });\n // we can abort if we didn't find an intersection on the right hand side\n if (rightIntersections.length === 0) {\n return result;\n }\n\n // sort the intersection point and get the closest point to the tested inputPoint\n // In this case it is the point with the greates X coordinate\n //\n rightIntersections.sort(function (a, b) {\n return a.x - b.x;\n });\n\n // Snap the point (S) between the two founded intersections\n // p(i1) and p(i2)\n //\n // BBox FigureA Drag&Drop BBox of FigureB\n // Figure\n //\n // ....+ ........\n // | . .\n // . |p(i1) . S . ...........\n // . X<------------->X<-------------->X |\n // . | . . p(i2)| |\n // ....+ . . | |\n // ........ | |\n // ...........\n //\n var snappedRect = boundingBox.clone();\n var diff = (leftIntersections[0].x + rightIntersections[0].x) / 2 - center.x;\n\n snappedRect.x += diff;\n\n return {\n snapped: Math.abs(diff) < this.SNAP_THRESHOLD,\n snappedRect: snappedRect,\n diff: diff,\n leftSide: leftIntersections[0],\n rightSide: rightIntersections[0]\n };\n },\n\n snapVertical: function snapVertical(boundingBox) {\n var center = boundingBox.getCenter();\n\n if (this.bounds === null) {\n this.populateBounds();\n }\n\n var result = {\n point: center,\n snapped: false,\n snappedBox: boundingBox.clone()\n };\n\n var intersectionPoint = null;\n\n // Calculate the intersections points p(i) of all left side edges of the bounding boxes\n // and the ray from the center of the drag&drop object to the left edge of the canva\n //\n // BBox of Drag&Drop\n // any Figure Figure\n //\n // ....+ ........\n // | . .\n // . |p(i) . .\n // . X<------------->+ .\n // . | . .\n // ....+ . .\n // ........\n //\n //\n var topIntersections = [];\n var topInputPoint = center.clone();\n topInputPoint.y = 0;\n this.bounds.forEach(function (bbox) {\n intersectionPoint = _packages2.default.shape.basic.Line.intersection(bbox.getBottomLeft(), bbox.getBottomRight(), center, topInputPoint);\n if (intersectionPoint !== null) {\n intersectionPoint.causedBBox = bbox;\n topIntersections.push(intersectionPoint);\n }\n });\n // we can abort if we didn't find an intersection on the left hand side\n if (topIntersections.length === 0) {\n return result;\n }\n\n // sort the intersection point and get the closest point to the tested inputPoint\n // In this case it is the point with the greates X coordinate\n //\n topIntersections.sort(function (a, b) {\n return b.y - a.y;\n });\n\n // Calculate the intersections points p(i) of all right hand side edges of the\n // bounding boxes and the ray from the center of the drag&drop object to the\n // left edge of the canvas\n //\n // Drag&Drop bbox of any\n // Figure figure\n //\n // ........\n // . .\n // . . ...........\n // . +<-------------->X |\n // . . p(i)| |\n // . . | |\n // ........ | |\n // ...........\n //\n var bottomIntersections = [];\n var bottomInputPoint = center.clone();\n bottomInputPoint.y = Number.MAX_SAFE_INTEGER;\n this.bounds.forEach(function (bbox) {\n intersectionPoint = _packages2.default.shape.basic.Line.intersection(bbox.getTopLeft(), bbox.getTopRight(), center, bottomInputPoint);\n if (intersectionPoint !== null) {\n intersectionPoint.causedBBox = bbox;\n bottomIntersections.push(intersectionPoint);\n }\n });\n // we can abort if we didn't find an intersection on the right hand side\n if (bottomIntersections.length === 0) {\n return result;\n }\n\n // sort the intersection point and get the closest point to the tested inputPoint\n // In this case it is the point with the greates X coordinate\n //\n bottomIntersections.sort(function (a, b) {\n return a.y - b.y;\n });\n\n // Snap the point (S) between the two founded intersections\n // p(i1) and p(i2)\n //\n // BBox FigureA Drag&Drop BBox of FigureB\n // Figure\n //\n // ....+ ........\n // | . .\n // . |p(i1) . S . ...........\n // . X<------------->X<-------------->X |\n // . | . . p(i2)| |\n // ....+ . . | |\n // ........ | |\n // ...........\n //\n var snappedRect = boundingBox.clone();\n var diff = (topIntersections[0].y + bottomIntersections[0].y) / 2 - center.y;\n\n snappedRect.y += diff;\n\n return {\n snapped: Math.abs(diff) < this.SNAP_THRESHOLD,\n snappedRect: snappedRect,\n diff: diff,\n topSide: topIntersections[0],\n bottomSide: bottomIntersections[0]\n };\n },\n\n populateBounds: function populateBounds() {\n var selection = this.canvas.getSelection().getAll(true);\n var bounds = this.bounds = [];\n\n var figures = this.canvas.getFigures();\n figures.each(function (index, figure) {\n if (!selection.contains(figure)) {\n bounds.push(figure.getBoundingBox());\n }\n });\n },\n\n showHorizontalGuides: function showHorizontalGuides(causedFigure, constraint) {\n if (this.horizontalGuideLines != null) {\n this.horizontalGuideLines.stop();\n this.horizontalGuideLines.remove();\n }\n\n var snapTopLeft = constraint.snappedRect.getTopLeft();\n var snapTopRight = constraint.snappedRect.getTopRight();\n var y = (Math.min(constraint.leftSide.causedBBox.getTopRight().y, Math.min(constraint.rightSide.causedBBox.y, causedFigure.getY())) - 50 | 0) + 0.5;\n\n this.canvas.paper.setStart();\n\n // Vertical lines from left to the right order\n //\n this.canvas.paper.path(\"M \" + ((constraint.leftSide.x | 0) + 0.5) + \" \" + y + \" L \" + ((constraint.leftSide.x | 0) + 0.5) + \" \" + constraint.leftSide.y).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1, \"stroke-dasharray\": \". \" });\n\n this.canvas.paper.path(\"M \" + ((snapTopLeft.x | 0) + 0.5) + \" \" + y + \" L \" + ((snapTopLeft.x | 0) + 0.5) + \" \" + snapTopLeft.y).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1, \"stroke-dasharray\": \". \" });\n\n this.canvas.paper.path(\"M \" + ((snapTopRight.x | 0) + 0.5) + \" \" + y + \" L \" + ((snapTopRight.x | 0) + 0.5) + \" \" + snapTopRight.y).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1, \"stroke-dasharray\": \". \" });\n\n this.canvas.paper.path(\"M \" + ((constraint.rightSide.x | 0) + 0.5) + \" \" + y + \" L \" + ((constraint.rightSide.x | 0) + 0.5) + \" \" + constraint.rightSide.y).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1, \"stroke-dasharray\": \". \" });\n\n // horizontal lines\n //\n this.canvas.paper.path(\"M \" + constraint.leftSide.x + \" \" + (y + 5) + \" L \" + snapTopLeft.x + \" \" + (y + 5)).attr({\n \"stroke\": this.lineColor.rgba(),\n \"stroke-width\": 1\n });\n this.canvas.paper.path(\"M \" + constraint.rightSide.x + \" \" + (y + 5) + \" L \" + snapTopRight.x + \" \" + (y + 5)).attr({\n \"stroke\": this.lineColor.rgba(),\n \"stroke-width\": 1\n });\n\n // 4 arrow heads starting on the left side and add one by one\n //\n this.canvas.paper.path(\" M \" + (constraint.leftSide.x + 5) + \" \" + y + \" L \" + constraint.leftSide.x + \" \" + (y + 5) + \" L \" + (constraint.leftSide.x + 5) + \" \" + (y + 10)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n this.canvas.paper.path(\" M \" + (snapTopLeft.x - 5) + \" \" + y + \" L \" + snapTopLeft.x + \" \" + (y + 5) + \" L \" + (snapTopLeft.x - 5) + \" \" + (y + 10)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n this.canvas.paper.path(\" M \" + (snapTopRight.x + 5) + \" \" + y + \" L \" + snapTopRight.x + \" \" + (y + 5) + \" L \" + (snapTopRight.x + 5) + \" \" + (y + 10)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n this.canvas.paper.path(\" M \" + (constraint.rightSide.x - 5) + \" \" + y + \" L \" + constraint.rightSide.x + \" \" + (y + 5) + \" L \" + (constraint.rightSide.x - 5) + \" \" + (y + 10)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n this.horizontalGuideLines = this.canvas.paper.setFinish();\n this.horizontalGuideLines.toFront();\n },\n\n /**\n *\n * Hide the horizontal snaping guides\n *\n * @param {Boolean} fast\n */\n hideHorizontalGuides: function hideHorizontalGuides(fast) {\n var _this = this;\n\n if (this.horizontalGuideLines == null) {\n return;\n }\n\n if (fast === true) {\n if (this.horizontalGuideLines !== null) {\n this.horizontalGuideLines.remove();\n this.horizontalGuideLines = null;\n }\n } else {\n this.horizontalGuideLines.animate({ opacity: 0.1 }, this.FADEOUT_DURATION, function () {\n if (_this.horizontalGuideLines !== null) {\n _this.horizontalGuideLines.remove();\n _this.horizontalGuideLines = null;\n }\n });\n }\n },\n\n showVerticalGuides: function showVerticalGuides(causedFigure, constraint) {\n if (this.verticalGuideLines != null) {\n this.verticalGuideLines.stop();\n this.verticalGuideLines.remove();\n }\n\n var snapTopRight = constraint.snappedRect.getTopRight();\n var snapBottomRight = constraint.snappedRect.getBottomRight();\n var x = (Math.max(constraint.topSide.causedBBox.getRight(), Math.max(constraint.bottomSide.causedBBox.getRight(), causedFigure.getX())) + 40 | 0) + 0.5;\n\n this.canvas.paper.setStart();\n\n // Vertical lines from left to the right order\n //\n this.canvas.paper.path(\"M \" + x + \" \" + ((constraint.topSide.y | 0) + 0.5) + \" L \" + ((constraint.topSide.x | 0) + 0.5) + \" \" + ((constraint.topSide.y | 0) + 0.5)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1, \"stroke-dasharray\": \". \" });\n this.canvas.paper.path(\"M \" + x + \" \" + ((snapTopRight.y | 0) + 0.5) + \" L \" + ((snapTopRight.x | 0) + 0.5) + \" \" + ((snapTopRight.y | 0) + 0.5)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1, \"stroke-dasharray\": \". \" });\n this.canvas.paper.path(\"M \" + x + \" \" + ((snapBottomRight.y | 0) + 0.5) + \" L \" + ((snapBottomRight.x | 0) + 0.5) + \" \" + ((snapBottomRight.y | 0) + 0.5)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1, \"stroke-dasharray\": \". \" });\n this.canvas.paper.path(\"M \" + x + \" \" + ((constraint.bottomSide.y | 0) + 0.5) + \" L \" + ((constraint.bottomSide.x | 0) + 0.5) + \" \" + ((constraint.bottomSide.y | 0) + 0.5)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1, \"stroke-dasharray\": \". \" });\n\n // horizontal lines\n //\n this.canvas.paper.path(\"M \" + (x - 5) + \" \" + ((constraint.topSide.y | 0) + 0.5) + \" L \" + (x - 5) + \" \" + ((snapTopRight.y | 0) + 0.5)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n this.canvas.paper.path(\"M \" + (x - 5) + \" \" + ((constraint.bottomSide.y | 0) + 0.5) + \" L \" + (x - 5) + \" \" + ((snapBottomRight.y | 0) + 0.5)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n // 4 arrow heads starting on the left side and add one by one\n //\n this.canvas.paper.path(\" M \" + (x - 10) + \" \" + (constraint.topSide.y + 5) + \" L \" + (x - 5) + \" \" + constraint.topSide.y + \" L \" + x + \" \" + (constraint.topSide.y + 5)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n this.canvas.paper.path(\" M \" + (x - 10) + \" \" + (snapTopRight.y - 5) + \" L \" + (x - 5) + \" \" + snapTopRight.y + \" L \" + x + \" \" + (snapTopRight.y - 5)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n this.canvas.paper.path(\" M \" + (x - 10) + \" \" + (snapBottomRight.y + 5) + \" L \" + (x - 5) + \" \" + snapBottomRight.y + \" L \" + x + \" \" + (snapBottomRight.y + 5)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n this.canvas.paper.path(\" M \" + (x - 10) + \" \" + (constraint.bottomSide.y - 5) + \" L \" + (x - 5) + \" \" + constraint.bottomSide.y + \" L \" + x + \" \" + (constraint.bottomSide.y - 5)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n this.verticalGuideLines = this.canvas.paper.setFinish();\n this.verticalGuideLines.toFront();\n },\n\n hideVerticalGuides: function hideVerticalGuides() {\n var _this2 = this;\n\n if (this.verticalGuideLines == null) {\n return; //silently\n }\n\n this.verticalGuideLines.animate({ opacity: 0.1 }, this.FADEOUT_DURATION, function () {\n if (_this2.verticalGuideLines !== null) {\n _this2.verticalGuideLines.remove();\n _this2.verticalGuideLines = null;\n }\n });\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/SnapToVerticesEditPolicy.js\":\n/*!*******************************************************!*\\\n !*** ./src/policy/canvas/SnapToVerticesEditPolicy.js ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Snapping is based on the existing children of a container. When snapping a shape,\n * the edges of the bounding box will snap to edges of other rectangles generated\n * from the children of the given canvas.\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.canvas.SnapToEditPolicy\n */\n_packages2.default.policy.canvas.SnapToVerticesEditPolicy = _packages2.default.policy.canvas.SnapToEditPolicy.extend(\n/** @lends draw2d.policy.canvas.SnapToVerticesEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.SnapToVerticesEditPolicy\",\n\n SNAP_THRESHOLD: 3,\n FADEOUT_DURATION: 300,\n\n /**\n * Creates a new constraint policy for snap to geometry\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.constraints = null;\n this.vline = null;\n this.hline = null;\n },\n\n /**\n * \n *\n * @param {draw2d.Figure} figure the shape below the mouse or null\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseUp: function onMouseUp(figure, x, y, shiftKey, ctrlKey) {\n this.constraints = null;\n this.hideVerticalLine();\n this.hideHorizontalLine();\n },\n\n /**\n * \n * Adjust the coordinates to the canvas neighbours\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {draw2d.Figure} figure the figure to snap\n * @param {draw2d.geo.Point} modifiedPos the already modified position of the figure (e.g. from an another Policy)\n * @param {draw2d.geo.Point} originalPos the original requested position of the figure\n *\n * @returns {draw2d.geo.Point} the constraint position of the figure\n */\n snap: function snap(canvas, figure, modifiedPos, originalPos) {\n // can only handle PolyLies at the moment\n //\n if (!(figure instanceof _packages2.default.shape.basic.VertexResizeHandle)) {\n return modifiedPos;\n }\n\n var allowXChanges = modifiedPos.x === originalPos.x;\n var allowYChanges = modifiedPos.y === originalPos.y;\n\n // Coordinates already snapped to an x/y coordinate.\n // Don't change them and in this case no further calculation is required.\n //\n if (!allowXChanges && !allowYChanges) {\n return modifiedPos;\n }\n\n var result = modifiedPos.clone();\n var correction = this.getCorrectionFor(figure, originalPos);\n\n if (allowXChanges && correction.vertical.x !== Number.MAX_SAFE_INTEGER) {\n result.x = correction.vertical.x;\n this.showVerticalLine(originalPos, correction.vertical);\n } else {\n this.hideVerticalLine();\n }\n\n if (allowYChanges && correction.horizontal.y !== Number.MAX_SAFE_INTEGER) {\n result.y = correction.horizontal.y;\n this.showHorizontalLine(originalPos, correction.horizontal);\n } else {\n this.hideHorizontalLine();\n }\n\n return result;\n },\n\n getCorrectionFor: function getCorrectionFor(vertexResizeHandle, point) {\n var _this = this;\n if (this.constraints === null) {\n this.constraints = [];\n\n var lines = this.canvas.getLines();\n lines.each(function (i, line) {\n line.getVertices().each(function (ii, vertex) {\n if (vertexResizeHandle.index !== ii || vertexResizeHandle.owner !== line) _this.constraints.push(vertex);\n });\n });\n }\n\n var SNAP = this.SNAP_THRESHOLD;\n var vertical = { x: Number.MAX_SAFE_INTEGER, y: Number.MAX_SAFE_INTEGER, diffy: Number.MAX_SAFE_INTEGER };\n var horizontal = { x: Number.MAX_SAFE_INTEGER, y: Number.MAX_SAFE_INTEGER, diffx: Number.MAX_SAFE_INTEGER };\n var diffx, diffy;\n\n for (var i = 0; i < this.constraints.length; i++) {\n var entry = this.constraints[i];\n\n diffx = Math.abs(point.x - entry.x);\n diffy = Math.abs(point.y - entry.y);\n // we found a possible candidate for the vertical snap line\n //\n if (diffx < SNAP) {\n if (diffy < vertical.diffy) {\n vertical = { x: entry.x, y: entry.y, diffy: diffy };\n }\n }\n\n if (diffy < SNAP) {\n if (diffx < horizontal.diffx) {\n horizontal = { x: entry.x, y: entry.y, diffx: diffx };\n }\n }\n }\n return { vertical: vertical, horizontal: horizontal };\n },\n\n showVerticalLine: function showVerticalLine(originalPos, snappedPos) {\n if (this.vline != null) {\n this.vline.stop();\n this.vline.remove();\n }\n\n var maxLength = this.canvas.getHeight();\n var x = (snappedPos.x | 0) + 0.5; // force a .5 number to avoid subpixel rendering. Blurry lines...\n this.canvas.paper.setStart();\n this.canvas.paper.path(\"M \" + x + \" 0 l 0 \" + maxLength).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1, \"stroke-dasharray\": \". \" });\n this.canvas.paper.path(\"M \" + x + \" \" + originalPos.y + \" L \" + x + \" \" + snappedPos.y).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n this.vline = this.canvas.paper.setFinish();\n this.vline.toBack();\n },\n\n hideVerticalLine: function hideVerticalLine() {\n var _this2 = this;\n\n if (this.vline == null) {\n return;\n }\n this.vline.animate({ opacity: 0.1 }, this.FADEOUT_DURATION, function () {\n if (_this2.vline !== null) {\n _this2.vline.remove();\n _this2.vline = null;\n }\n });\n },\n\n showHorizontalLine: function showHorizontalLine(originalPos, snappedPos) {\n if (this.hline != null) {\n this.hline.stop();\n this.hline.remove();\n }\n\n var maxLength = this.canvas.getWidth();\n var y = (snappedPos.y | 0) + 0.5; // force a .5 number to avoid subpixel rendering. Blurry lines...\n\n this.canvas.paper.setStart();\n this.canvas.paper.path(\"M 0 \" + y + \" l \" + maxLength + \" 0\").attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1, \"stroke-dasharray\": \". \" });\n this.canvas.paper.path(\"M \" + originalPos.x + \" \" + y + \" L \" + snappedPos.x + \" \" + y).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n this.hline = this.canvas.paper.setFinish();\n this.hline.toBack();\n },\n\n hideHorizontalLine: function hideHorizontalLine() {\n var _this3 = this;\n\n if (this.hline === null) {\n return; //silently\n }\n this.hline.animate({ opacity: 0.1 }, this.FADEOUT_DURATION, function () {\n if (_this3.hline !== null) {\n _this3.hline.remove();\n _this3.hline = null;\n }\n });\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/WheelZoomPolicy.js\":\n/*!**********************************************!*\\\n !*** ./src/policy/canvas/WheelZoomPolicy.js ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _shifty = __webpack_require__(/*! shifty */ \"./node_modules/shifty/dist/shifty.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Zoom support for a canvas. Use the mouse wheel and the shift key to zoom in/out.\n *\n *\n * @example\n *\n * canvas.installEditPolicy(new draw2d.policy.canvas.WheelZoomPolicy());\n * let shape = new draw2d.shape.basic.Text({text:\"Use the mouse wheel + SHIFT to zoom\"});\n *\n * canvas.add(shape,40,10);\n *\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.CanvasPolicy\n * @since 5.8.0\n */\n_packages2.default.policy.canvas.WheelZoomPolicy = _packages2.default.policy.canvas.ZoomPolicy.extend(\n/** @lends draw2d.policy.canvas.WheelZoomPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.WheelZoomPolicy\",\n\n /**\n */\n init: function init() {\n var _this = this;\n\n this._super();\n\n this.center = null;\n this.debouncedZoomedCallback = this._debounce(function () {\n var canvas = _this.canvas;\n if (canvas !== null) {\n canvas.fireEvent(\"zoomed\", { value: canvas.zoomFactor });\n }\n _this.center = null;\n }, 200);\n },\n\n onInstall: function onInstall(canvas) {\n this._super(canvas);\n canvas.setZoom(1);\n canvas.__wheelZoom = 1;\n },\n\n onUninstall: function onUninstall(canvas) {\n this._super(canvas);\n\n // cleanup the canvas object and remove custom properties\n //\n delete canvas.__wheelZoom;\n },\n\n /**\n *\n * called if the user uses the mouse wheel.\n *\n *\n * @param wheelDelta\n * @param {Number} x the x coordinate of the event\n * @param {Number} y the y coordinate of the event\n * @param shiftKey\n * @param ctrlKey\n * @since 5.8.0\n * @template\n * @returns {Boolean} return <b>false</b> to preven tthe default event operation (e.g. scrolling)\n */\n onMouseWheel: function onMouseWheel(wheelDelta, x, y, shiftKey, ctrlKey) {\n // mouse wheel is only supported if the user presses the shift key.\n // normally the canvas scrolls during mouseWheel usage.\n //\n if (shiftKey === false) {\n return true;\n }\n\n wheelDelta = wheelDelta / 1024;\n\n var newZoom = (Math.min(5, Math.max(0.1, this.canvas.zoomFactor + wheelDelta)) * 10000 | 0) / 10000;\n if (this.center === null) {\n var client = this.canvas.fromCanvasToDocumentCoordinate(x, y);\n\n this.center = {\n x: x,\n y: y,\n clientX: client.x,\n clientY: client.y\n };\n }\n this._zoom(newZoom, this.center);\n this.debouncedZoomedCallback();\n\n return false;\n },\n\n /**\n *\n * Set the new zoom level of the canvas.\n *\n * @param zoomFactor\n * @param animated\n */\n setZoom: function setZoom(zoomFactor, animated) {\n var _this2 = this;\n\n // determine the center of the current canvas. We try to keep the\n // current center during zoom operation\n //\n var scrollTop = this.canvas.getScrollTop();\n var scrollLeft = this.canvas.getScrollLeft();\n var scrollWidth = this.canvas.getScrollArea().width();\n var scrollHeight = this.canvas.getScrollArea().height();\n var centerY = scrollTop + scrollHeight / 2 * this.canvas.zoomFactor;\n var centerX = scrollLeft + scrollWidth / 2 * this.canvas.zoomFactor;\n\n if (animated) {\n var myTweenable = new _shifty.Tweenable();\n myTweenable.tween({\n from: { 'x': this.canvas.zoomFactor },\n to: { 'x': zoomFactor },\n duration: 300,\n easing: \"easeOutSine\",\n step: function step(params) {\n _this2._zoom(params.x, centerX, centerY);\n },\n finish: function finish(state) {\n _this2.debouncedZoomedCallback();\n }\n });\n } else {\n this._zoom(zoomFactor, { x: centerX, y: centerY });\n this.debouncedZoomedCallback();\n }\n },\n\n /**\n *\n *\n * @param {Number} zoom\n * @param {draw2d.geo.Point} center\n * @private\n */\n _zoom: function _zoom(zoom, center) {\n var canvas = this.canvas;\n\n if (zoom === canvas.zoomFactor) {\n return;\n }\n\n canvas.zoomFactor = zoom;\n\n canvas.paper.setViewBox(0, 0, canvas.initialWidth, canvas.initialHeight);\n // Change the width and the height attributes manually through DOM\n // unfortunately the raphaelJS 'setSize' method changes the viewBox as well and this is unwanted in this case\n //\n canvas.html.find(\"svg\").attr({\n 'width': canvas.initialWidth / zoom,\n 'height': canvas.initialHeight / zoom\n });\n\n // try to keep the document position to the given client position\n //\n if (center.clientX) {\n var coordsAfter = canvas.fromCanvasToDocumentCoordinate(center.x, center.y);\n canvas.scrollTo(this.canvas.getScrollTop() - (center.clientY - coordsAfter.y), canvas.getScrollLeft() - (center.clientX - coordsAfter.x));\n }\n\n canvas.fireEvent(\"zoom\", { value: canvas.zoomFactor });\n },\n\n // Returns a function, that, as long as it continues to be invoked, will not\n // be triggered. The function will be called after it stops being called for\n // N milliseconds. If `immediate` is passed, trigger the function on the\n // leading edge, instead of the trailing.\n _debounce: function _debounce(func, wait, immediate) {\n var _this3 = this,\n _arguments = arguments;\n\n var timeout = void 0;\n return function () {\n var context = _this3,\n args = _arguments;\n var later = function later() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/ZoomPolicy.js\":\n/*!*****************************************!*\\\n !*** ./src/policy/canvas/ZoomPolicy.js ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _shifty = __webpack_require__(/*! shifty */ \"./node_modules/shifty/dist/shifty.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Generic zoom policy installable into a canvas object.\n * This is the legacy implementation of the very first zooming in\n * Draw2D. You can use this implementation if you want backward compatible.\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.CanvasPolicy\n * @since 5.8.0\n */\n_packages2.default.policy.canvas.ZoomPolicy = _packages2.default.policy.canvas.CanvasPolicy.extend(\n/** @lends draw2d.policy.canvas.ZoomPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.ZoomPolicy\",\n\n /**\n */\n init: function init() {\n this._super();\n },\n\n onInstall: function onInstall(canvas) {\n this._super(canvas);\n canvas.setZoom(1);\n },\n\n onUninstall: function onUninstall(canvas) {\n this._super(canvas);\n },\n\n /** \n * Set the new zoom factor for the canvas. The value must be between [0.01..10]\n *\n * // you can register an eventhandler to listen to the zoom factor of the canvas.\n * //\n * canvas.on(\"zoom\", function(emitterFigure, zoomData){\n * alert(\"canvas zoomed to:\"+zoomData.factor);\n * });\n *\n * @param {Number} zoomFactor new zoom factor.\n * @param {Boolean} [animated] set it to true for smooth zoom in/out\n **/\n setZoom: function setZoom(zoomFactor, animated) {\n var canvas = this.canvas;\n\n var _zoom = function _zoom(z) {\n canvas.zoomFactor = Math.min(Math.max(0.01, z), 10);\n\n var viewBoxWidth = canvas.initialWidth * canvas.zoomFactor | 0;\n var viewBoxHeight = canvas.initialHeight * canvas.zoomFactor | 0;\n\n canvas.paper.setViewBox(0, 0, viewBoxWidth, viewBoxHeight);\n\n canvas.fireEvent(\"zoom\", { value: canvas.zoomFactor });\n };\n\n if (animated) {\n var myTweenable = new _shifty.Tweenable();\n myTweenable.tween({\n from: { 'x': canvas.zoomFactor },\n to: { 'x': zoomFactor },\n duration: 300,\n easing: \"easeOutSine\",\n step: function step(params) {\n return _zoom(params.x);\n },\n finish: function finish(state) {\n return canvas.fireEvent(\"zoomed\", { value: canvas.zoomFactor });\n }\n });\n } else {\n _zoom(zoomFactor);\n canvas.fireEvent(\"zoomed\", { value: canvas.zoomFactor });\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/connection/ClickConnectionCreatePolicy.js\":\n/*!**************************************************************!*\\\n !*** ./src/policy/connection/ClickConnectionCreatePolicy.js ***!\n \\**************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.policy.connection.ClickConnectionCreatePolicy = _packages2.default.policy.connection.ConnectionCreatePolicy.extend(\n/** @lends draw2d.policy.connection.ClickConnectionCreatePolicy.prototype */\n{\n\n NAME: \"draw2d.policy.connection.ClickConnectionCreatePolicy\",\n\n /**\n *\n * Creates a new connection create policy instance\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.port1 = null;\n this.beeline = null;\n this.pulse = null;\n this.tempConnection = null;\n\n this.vertices = [];\n },\n\n /**\n * \n * Called by the canvas if the user click on a figure.\n *\n * @param {draw2d.Figure} the figure under the click event. Can be null\n * @param {Number} x the x coordinate of the mouse during the click event\n * @param {Number} y the y coordinate of the mouse during the click event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @since 6.1.0\n */\n onClick: function onClick(figure, x, y, shiftKey, ctrlKey) {\n var _this = this;\n var port = figure;\n\n if (port === null && this.port1 === null) {\n return;\n }\n\n // nothing found at all\n //\n if (port === null) {\n this.vertices.push(new _packages2.default.geo.Point(x, y));\n this.beeline.setStartPosition(x, y);\n this.tempConnection.setVertices(this.vertices);\n if (this.pulse !== null) {\n this.pulse.remove();\n this.pulse = null;\n }\n this.ripple(x, y, 0);\n return;\n }\n\n //just consider ports\n //\n if (!(port instanceof _packages2.default.Port)) {\n return;\n }\n\n // start connection create by selection the start port\n //\n if (this.port1 === null) {\n var canvas = port.getCanvas();\n this.port1 = port;\n this.vertices.push(port.getAbsolutePosition());\n this.beeline = new _packages2.default.shape.basic.Line({\n start: this.port1.getAbsolutePosition(),\n end: this.port1.getAbsolutePosition(),\n dasharray: \"- \",\n color: \"#2C70FF\"\n });\n\n this.beeline.hide = function () {\n _this.beeline.setCanvas(null);\n };\n\n this.beeline.show = function (canvas) {\n _this.beeline.setCanvas(canvas);\n _this.beeline.shape.toFront();\n };\n this.beeline.show(canvas);\n\n this.tempConnection = new _packages2.default.shape.basic.PolyLine({\n start: this.port1.getAbsolutePosition(),\n end: this.port1.getAbsolutePosition(),\n stroke: 2,\n color: \"#2C70FF\"\n });\n\n this.tempConnection.hide = function () {\n _this.tempConnection.setCanvas(null);\n };\n\n this.tempConnection.show = function (canvas) {\n _this.tempConnection.setCanvas(canvas);\n _this.tempConnection.shape.toFront();\n };\n this.tempConnection.show(canvas);\n this.tempConnection.setVertices([this.port1.getAbsolutePosition(), this.port1.getAbsolutePosition()]);\n\n var a = function a() {\n _this.tempConnection.shape.animate({ \"stroke-width\": 2 }, 800, b);\n };\n var b = function b() {\n _this.tempConnection.shape.animate({ \"stroke-width\": 1 }, 800, a);\n };\n a();\n\n var pos = port.getAbsolutePosition();\n this.pulse = this.ripple(pos.x, pos.y, 1);\n return;\n }\n\n var possibleTarget = port.delegateTarget(this.port1);\n\n if (!(possibleTarget instanceof _packages2.default.Port)) {\n return; // silently\n }\n\n var request = new _packages2.default.command.CommandType(_packages2.default.command.CommandType.CONNECT);\n request.source = this.port1;\n request.target = port;\n\n var command = null;\n if (this.port1 instanceof _packages2.default.InputPort) {\n command = this.port1.createCommand(request);\n } else {\n command = port.createCommand(request);\n }\n\n if (command !== null) {\n this.vertices.push(port.getPosition());\n command.setConnection(this.createConnection());\n figure.getCanvas().getCommandStack().execute(command);\n this.beeline.hide();\n this.tempConnection.hide();\n if (this.pulse !== null) {\n this.pulse.remove();\n this.pulse = null;\n }\n this.beeline = null;\n this.port1 = null;\n this.vertices = [];\n }\n },\n\n /**\n * \n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseMove: function onMouseMove(canvas, x, y, shiftKey, ctrlKey) {\n if (this.beeline !== null) {\n this.beeline.setEndPosition(x, y);\n }\n },\n\n /**\n * \n * Callback if the user press a key down\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {Number} keyCode the pressed key\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n **/\n onKeyDown: function onKeyDown(canvas, keyCode, shiftKey, ctrlKey) {\n var KEYCODE_ENTER = 13;\n var KEYCODE_ESC = 27;\n if (keyCode === KEYCODE_ESC && this.beeline !== null) {\n this.beeline.hide();\n this.tempConnection.hide();\n this.beeline = null;\n this.port1 = null;\n this.vertices = [];\n if (this.pulse != null) {\n this.pulse.remove();\n this.pulse = null;\n }\n }\n },\n\n createConnection: function createConnection() {\n var connection = this._super();\n if (this.vertices.length === 2) {\n connection.setRouter(new _packages2.default.layout.connection.DirectRouter());\n } else {\n connection.setRouter(new _packages2.default.layout.connection.VertexRouter());\n connection.setVertices(this.vertices);\n }\n connection.setRadius(10);\n return connection;\n }\n\n});\n/**\n * @class\n *\n * The ClickConnectionCreatePolicy can be installed into the canvas to override the\n * default connection crate behaviour. Normally you can create connections by drag&drop a port.\n *\n * With this policy you can route the connection during creation.\n *\n * Creates a connection by clicking on a port.\n * <ul>\n * <li> click on the first port</li>\n * <li> click within the canvas to add additional vertices</li>\n * <li> click on the target port to draw the connection</li>\n * <li> press ESC to abort the operation (didn't work within this JSDoc)</li>\n * </ul>\n * <br>\n * <br>\n * <b>The generated connections didn't have any orthogonal constraints nor any other restrictions or guidance.</b>\n * <br>\n * <br>\n *\n *\n *\n * @example\n *\n * // Override the default connection creation.\n * //\n * canvas.installEditPolicy( new draw2d.policy.connection.ClickConnectionCreatePolicy());\n *\n * // create and add two Node which contains Ports (In and OUT)\n * //\n * var start = new draw2d.shape.node.Start({x:50, y:50});\n * var endNode = new draw2d.shape.node.End({x:200, y:70});\n *\n * // add the two nodes to the canvas\n * //\n * canvas.add( start);\n * canvas.add( endNode);\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.connection.ConnectionCreatePolicy\n * @since 6.1.0\n */\n\n/***/ }),\n\n/***/ \"./src/policy/connection/ComposedConnectionCreatePolicy.js\":\n/*!*****************************************************************!*\\\n !*** ./src/policy/connection/ComposedConnectionCreatePolicy.js ***!\n \\*****************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.policy.connection.ComposedConnectionCreatePolicy = _packages2.default.policy.connection.ConnectionCreatePolicy.extend(\n/** @lends draw2d.policy.connection.ComposedConnectionCreatePolicy.prototype */\n{\n\n NAME: \"draw2d.policy.connection.ComposedConnectionCreatePolicy\",\n\n /**\n *\n * Creates a new connection create policy instance\n *\n * @param {array} policies the policies to use\n */\n init: function init(policies) {\n this.policies = policies;\n this._super();\n },\n\n onMouseDown: function onMouseDown() {\n var _arg = arguments;\n this.policies.forEach(function (p) {\n p.onMouseDown.apply(p, _arg);\n });\n },\n onMouseDrag: function onMouseDrag() {\n var _arg = arguments;\n this.policies.forEach(function (p) {\n p.onMouseDrag.apply(p, _arg);\n });\n },\n\n onMouseUp: function onMouseUp() {\n var _arg = arguments;\n this.policies.forEach(function (p) {\n p.onMouseUp.apply(p, _arg);\n });\n },\n\n onClick: function onClick() {\n var _arg = arguments;\n this.policies.forEach(function (p) {\n p.onClick.apply(p, _arg);\n });\n },\n onMouseMove: function onMouseMove() {\n var _arg = arguments;\n this.policies.forEach(function (p) {\n p.onMouseMove.apply(p, _arg);\n });\n },\n\n /**\n * @inheritDoc\n **/\n onKeyUp: function onKeyUp(canvas, keyCode, shiftKey, ctrlKey) {\n var _arg = arguments;\n this.policies.forEach(function (p) {\n p.onKeyUp.apply(p, _arg);\n });\n },\n\n /**\n * @inheritDoc\n **/\n onKeyDown: function onKeyDown(canvas, keyCode, shiftKey, ctrlKey) {\n var _arg = arguments;\n this.policies.forEach(function (p) {\n p.onKeyDown.apply(p, _arg);\n });\n },\n\n /**\n * \n * Called if the policy is installed into the canvas.\n *\n * @param {draw2d.Canvas} canvas\n */\n onInstall: function onInstall(canvas) {\n var _arg = arguments;\n this.policies.forEach(function (p) {\n p.onInstall.apply(p, _arg);\n });\n },\n\n /**\n * \n * Called if the policy is deinstalled from the canvas\n *\n * @param {draw2d.Canvas} canvas\n */\n onUninstall: function onUninstall(canvas) {\n var _arg = arguments;\n this.policies.forEach(function (p) {\n p.onUninstall.apply(p, _arg);\n });\n }\n\n});\n/**\n * @class\n * A composed connection create policy. Use this to install more than one\n * ConnectionCreatePolicy into the canvas. Normally it is not allowed to install\n * more than one policy from the same type.\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.connection.ConnectionCreatePolicy\n */\n\n/***/ }),\n\n/***/ \"./src/policy/connection/ConnectionCreatePolicy.js\":\n/*!*********************************************************!*\\\n !*** ./src/policy/connection/ConnectionCreatePolicy.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.policy.connection.ConnectionCreatePolicy = _packages2.default.policy.canvas.KeyboardPolicy.extend(\n/** @lends draw2d.policy.connection.ConnectionCreatePolicy.prototype */\n{\n\n NAME: \"draw2d.policy.connection.ConnectionCreatePolicy\",\n\n /**\n *\n * Creates a new connection create policy instance\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Factory method to create the connection to insert.\n *\n * @returns {draw2d.Connection}\n * @template\n */\n createConnection: function createConnection() {\n return new _packages2.default.Connection({\n router: new _packages2.default.layout.connection.DirectRouter()\n });\n },\n\n ripple: function ripple(x, y, type) {\n switch (type) {\n case 0:\n var circle = this.canvas.paper.circle(x, y, 3, 3).attr({ fill: null, stroke: \"#d0d0ff\" });\n var anim = Raphael.animation({ transform: \"s6\", opacity: 0.0, \"stroke-width\": 3 }, 500, \"linear\", function () {\n circle.remove();\n });\n circle.animate(anim);\n // return an emmpty raphael.set. The circle removes itself after animation is done\n //\n return this.canvas.paper.set();\n break;\n case 1:\n var circle1 = this.canvas.paper.circle(x, y, 3, 3).attr({ fill: null, stroke: \"#3f72bf\" });\n var circle2 = this.canvas.paper.circle(x, y, 3, 3).attr({ fill: null, stroke: \"#ff0000\" });\n var anim1 = Raphael.animation({ transform: \"s6\", opacity: 0.0, \"stroke-width\": 1 }, 1200, \"linear\").repeat(Infinity);\n circle1.animate(anim1);\n var anim2 = Raphael.animation({ transform: \"s12\", opacity: 0.0, \"stroke-width\": 4 }, 500, \"linear\", function () {\n circle2.remove();\n });\n circle2.animate(anim2);\n\n // return the \"circle1\". This shape must be remove by the caller\n // \"circle2\" is removed automaticly\n //\n return circle1;\n break;\n }\n }\n\n});\n/**\n * @class\n * Base class for connection creation by user interaction.\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.canvas.KeyboardPolicy\n */\n\n/***/ }),\n\n/***/ \"./src/policy/connection/DragConnectionCreatePolicy.js\":\n/*!*************************************************************!*\\\n !*** ./src/policy/connection/DragConnectionCreatePolicy.js ***!\n \\*************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.policy.connection.DragConnectionCreatePolicy = _packages2.default.policy.connection.ConnectionCreatePolicy.extend(\n/** @lends draw2d.policy.connection.DragConnectionCreatePolicy.prototype */\n{\n\n NAME: \"draw2d.policy.connection.DragConnectionCreatePolicy\",\n\n /**\n *\n * Creates a new connection create policy instance\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.mouseDraggingElement = null;\n this.currentDropTarget = null;\n this.currentTarget = null;\n },\n\n /**\n * \n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseDown: function onMouseDown(canvas, x, y, shiftKey, ctrlKey) {\n //just consider ports\n //\n var port = canvas.getBestFigure(x, y);\n\n // nothing found at all\n //\n if (port === null) {\n return;\n }\n\n // may there is a resize handle below the port or another figure\n // in this case the ResizeHandle has prio. and handled by another\n // Policy\n if (!(port instanceof _packages2.default.Port)) {\n return;\n }\n\n // this can happen if the user release the mouse button outside the window during a drag&drop\n // operation. In this case we must fire the \"onDragEnd\" event postpond.\n //\n if (port.isInDragDrop === true) {\n port.onDragEnd(x, y, shiftKey, ctrlKey);\n port.isInDragDrop = false;\n }\n\n // introspect the port only if it is draggable at all\n //\n if (port.isDraggable()) {\n var canDragStart = port.onDragStart(x - port.getAbsoluteX(), y - port.getAbsoluteY(), shiftKey, ctrlKey);\n if (canDragStart) {\n port.fireEvent(\"dragstart\", { x: x - port.getAbsoluteX(), y: y - port.getAbsoluteY(), shiftKey: shiftKey, ctrlKey: ctrlKey });\n }\n\n // Element send a veto about the drag&drop operation\n this.mouseDraggingElement = canDragStart === false ? null : port;\n this.mouseDownElement = port;\n }\n },\n\n /**\n * \n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} dx The x diff between start of dragging and this event\n * @param {Number} dy The y diff between start of dragging and this event\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @template\n */\n onMouseDrag: function onMouseDrag(canvas, dx, dy, dx2, dy2, shiftKey, ctrlKey) {\n try {\n if (this.mouseDraggingElement !== null) {\n var de = this.mouseDraggingElement;\n var ct = this.currentTarget;\n\n de.isInDragDrop = true;\n de.onDrag(dx, dy, dx2, dy2, shiftKey, ctrlKey);\n\n var target = canvas.getBestFigure(de.getAbsoluteX(), de.getAbsoluteY(), de);\n\n // the hovering element has been changed\n if (target !== ct) {\n if (ct !== null) {\n ct.onDragLeave(de);\n ct.fireEvent(\"dragLeave\", { draggingElement: de });\n de.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.port.PortFeedbackPolicy) {\n e.onHoverLeave(canvas, de, ct);\n }\n });\n }\n\n // possible hoverEnter event\n //\n if (target !== null) {\n this.currentTarget = ct = target.delegateTarget(de);\n if (ct !== null) {\n ct.onDragEnter(de); // legacy\n ct.fireEvent(\"dragEnter\", { draggingElement: de });\n de.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.port.PortFeedbackPolicy) {\n e.onHoverEnter(canvas, de, ct);\n }\n });\n }\n } else {\n this.currentTarget = null;\n }\n }\n\n var p = canvas.fromDocumentToCanvasCoordinate(canvas.mouseDownX + dx / canvas.zoomFactor, canvas.mouseDownY + dy / canvas.zoomFactor);\n var target = canvas.getBestFigure(p.x, p.y, this.mouseDraggingElement);\n\n if (target !== this.currentDropTarget) {\n if (this.currentDropTarget !== null) {\n this.currentDropTarget.onDragLeave(this.mouseDraggingElement);\n this.currentDropTarget.fireEvent(\"dragLeave\", { draggingElement: this.mouseDraggingElement });\n this.currentDropTarget = null;\n }\n if (target !== null) {\n this.currentDropTarget = target.delegateTarget(this.mouseDraggingElement);\n // inform all listener that the element has accept the dragEnter event\n //\n if (this.currentDropTarget !== null) {\n this.currentDropTarget.onDragEnter(this.mouseDraggingElement); // legacy\n this.currentDropTarget.fireEvent(\"dragEnter\", { draggingElement: this.mouseDraggingElement });\n }\n }\n }\n }\n } catch (exc) {\n console.log(exc);\n debugger;\n }\n },\n\n /**\n * \n *\n * @param {draw2d.Figure} figure the shape below the mouse or null\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseUp: function onMouseUp(canvas, x, y, shiftKey, ctrlKey) {\n if (this.mouseDraggingElement !== null) {\n\n var de = this.mouseDraggingElement;\n var ct = this.currentTarget;\n // start CommandStack transaction\n canvas.getCommandStack().startTransaction();\n\n de.onDragEnd(x, y, shiftKey, ctrlKey);\n // notify all installed policies\n //\n if (ct) {\n de.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.port.PortFeedbackPolicy) {\n e.onHoverLeave(canvas, de, ct);\n }\n });\n }\n\n de.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.onDragEnd(canvas, de, x, y, shiftKey, ctrlKey);\n }\n });\n\n // Reset the drag&drop flyover information\n //\n this.currentTarget = null;\n de.isInDragDrop = false;\n\n // fire an event\n // @since 5.3.3\n de.fireEvent(\"dragend\", { x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n\n // check if we drop the port onto a valid\n // drop target and create a connection if possible\n //\n if (this.currentDropTarget !== null) {\n this.mouseDraggingElement.onDrop(this.currentDropTarget, x, y, shiftKey, ctrlKey);\n\n this.currentDropTarget.onDragLeave(this.mouseDraggingElement);\n this.currentDropTarget.fireEvent(\"dragLeave\", { draggingElement: this.mouseDraggingElement });\n\n // Ports accepts only Ports as DropTarget\n //\n if (this.currentDropTarget instanceof _packages2.default.Port) {\n var request = new _packages2.default.command.CommandType(_packages2.default.command.CommandType.CONNECT);\n request.source = this.currentDropTarget;\n request.target = this.mouseDraggingElement;\n var command = this.mouseDraggingElement.createCommand(request);\n\n if (command !== null) {\n command.setConnection(this.createConnection());\n canvas.getCommandStack().execute(command);\n this.currentDropTarget.onCatch(this.mouseDraggingElement, x, y, shiftKey, ctrlKey);\n }\n }\n }\n\n // end command stack trans\n canvas.getCommandStack().commitTransaction();\n this.currentDropTarget = null;\n this.mouseDraggingElement = null;\n }\n },\n\n createConnection: function createConnection() {\n var connection = this._super();\n connection.setRouter(new _packages2.default.layout.connection.DirectRouter());\n\n return connection;\n }\n\n});\n/**\n * @class\n *\n * The DragConnectionCreatePolicy is the default configuration for connection creation.\n * You must drag a port and drop them onto another port to create connection.\n *\n * Creates a connection by drag&drop on a port.\n * <ul>\n * <li> click on the first port</li>\n * <li> drag it to the target port</li>\n * <li> drop it onto the target</li>\n * </ul>\n * <br>\n * <br>\n *\n *\n *\n * @example\n *\n * // Override the default connection creation.\n * //\n * canvas.installEditPolicy( new draw2d.policy.connection.DragConnectionCreatePolicy());\n *\n * // create and add two Node which contains Ports (In and OUT)\n * //\n * var start = new draw2d.shape.node.Start({x:50, y:50});\n * var endNode = new draw2d.shape.node.End({x:200, y:70});\n *\n * // add the two nodes to the canvas\n * //\n * canvas.add( start);\n * canvas.add( endNode);\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.connection.ConnectionCreatePolicy\n */\n\n/***/ }),\n\n/***/ \"./src/policy/connection/OrthogonalConnectionCreatePolicy.js\":\n/*!*******************************************************************!*\\\n !*** ./src/policy/connection/OrthogonalConnectionCreatePolicy.js ***!\n \\*******************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.policy.connection.OrthogonalConnectionCreatePolicy = _packages2.default.policy.connection.ConnectionCreatePolicy.extend(\n/** @lends draw2d.policy.connection.ClickConnectionCreatePolicy.prototype */\n{\n\n NAME: \"draw2d.policy.connection.ClickConnectionCreatePolicy\",\n\n /**\n *\n * Creates a new connection create policy instance\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.port1 = null;\n this.beeline = null;\n this.pulse = null;\n this.tempConnection = null;\n\n this.vertices = new _packages2.default.util.ArrayList();\n },\n\n /**\n * \n * Called by the canvas if the user click on a figure.\n *\n * @param {draw2d.Figure} the figure under the click event. Can be null\n * @param {Number} x the x coordinate of the mouse during the click event\n * @param {Number} y the y coordinate of the mouse during the click event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @since 6.1.0\n *\n * @template\n */\n onClick: function onClick(figure, x, y, shiftKey, ctrlKey) {\n var UP = _packages2.default.geo.Rectangle.DIRECTION_UP;\n var RIGHT = _packages2.default.geo.Rectangle.DIRECTION_RIGHT;\n var DOWN = _packages2.default.geo.Rectangle.DIRECTION_DOWN;\n var LEFT = _packages2.default.geo.Rectangle.DIRECTION_LEFT;\n\n var _this = this;\n var port = figure; // .getCanvas().getBestFigure(x, y);\n\n // nothing to do\n if (port === null && this.port1 === null) {\n return;\n }\n\n // nothing found at all\n //\n if (port === null) {\n var canvas = this.port1.getCanvas();\n var newPos = this.beeline.getEndPosition();\n this.vertices.add(newPos);\n this.beeline.setStartPosition(this.beeline.getEndPosition());\n this.tempConnection.setVertices(this.vertices);\n if (this.pulse !== null) {\n this.pulse.remove();\n this.pulse = null;\n }\n this.ripple(newPos.x, newPos.y, 0);\n return;\n }\n\n // we just considering ports\n //\n if (!(port instanceof _packages2.default.Port)) {\n return;\n }\n\n // start connection create by selection the start port\n //\n if (this.port1 === null) {\n var canvas = port.getCanvas();\n this.port1 = port;\n this.vertices.add(port.getAbsolutePosition());\n this.beeline = new _packages2.default.shape.basic.Line({\n start: this.port1.getAbsolutePosition(),\n end: this.port1.getAbsolutePosition(),\n dasharray: \"- \",\n color: \"#2C70FF\"\n });\n\n this.beeline.hide = function () {\n _this.beeline.setCanvas(null);\n };\n\n this.beeline.show = function (canvas) {\n _this.beeline.setCanvas(canvas);\n _this.beeline.shape.toFront();\n };\n this.beeline.show(canvas);\n\n this.tempConnection = new _packages2.default.shape.basic.PolyLine({\n start: this.port1.getAbsolutePosition(),\n end: this.port1.getAbsolutePosition(),\n stroke: 2,\n color: \"#2C70FF\"\n });\n\n this.tempConnection.hide = function () {\n _this.tempConnection.setCanvas(null);\n };\n\n this.tempConnection.show = function (canvas) {\n _this.tempConnection.setCanvas(canvas);\n _this.tempConnection.shape.toFront();\n };\n this.tempConnection.show(canvas);\n this.tempConnection.setVertices([this.port1.getAbsolutePosition(), this.port1.getAbsolutePosition()]);\n\n var a = function a() {\n _this.tempConnection.shape.animate({ \"stroke-width\": 2 }, 800, b);\n };\n var b = function b() {\n _this.tempConnection.shape.animate({ \"stroke-width\": 1 }, 800, a);\n };\n a();\n\n canvas.paper.setStart();\n\n // delete the previews puls if the user press twice on the starting port\n //\n if (this.pulse !== null) {\n this.pulse.remove();\n this.pulse = null;\n }\n\n var pos = port.getAbsolutePosition();\n this.ripple(pos.x, pos.y, 1);\n this.pulse = canvas.paper.setFinish();\n } else {\n var possibleTarget = port.delegateTarget(this.port1);\n\n if (!(possibleTarget instanceof _packages2.default.Port)) {\n return; // silently\n }\n\n // check whenever the target port allows a connection\n //\n var request = new _packages2.default.command.CommandType(_packages2.default.command.CommandType.CONNECT);\n request.source = this.port1;\n request.target = port;\n var command = null;\n if (this.port1 instanceof _packages2.default.InputPort) {\n command = this.port1.createCommand(request);\n } else {\n command = port.createCommand(request);\n }\n\n if (command !== null) {\n var connection = this.createConnection();\n command.setConnection(connection);\n port.getCanvas().getCommandStack().execute(command);\n\n this.beeline.hide();\n this.tempConnection.hide();\n if (this.pulse !== null) {\n this.pulse.remove();\n this.pulse = null;\n }\n this.beeline = null;\n this.port1 = null;\n\n // use the default routing if the user didn't add some\n // vertices\n if (this.vertices.getSize() <= 2) {\n return;\n }\n\n var MINDIST = command.getConnection().getRouter().MINDIST;\n var beforeVertex = this.vertices.get(this.vertices.getSize() - 2);\n var lastVertex = this.vertices.last();\n var portPos = port.getAbsolutePosition();\n var lastSegmentDir = UP;\n if (lastVertex.x === beforeVertex.x) {\n lastSegmentDir = lastVertex.y < beforeVertex.y ? UP : DOWN;\n } else {\n lastSegmentDir = lastVertex.x < beforeVertex.x ? LEFT : RIGHT;\n }\n\n // CALCULATE THE LAST MILE OF THE CONNECTION\n //\n // ensure that we have a valid \"manhattan style\" connection.\n // We must add or adjust some points or segments.\n //\n // The code below creates and adjust the points in that way that the\n // DOTTED line is the calculated part to the user defined vertices.\n // ==================================\n //\n switch (port.getConnectionDirection(this.port1)) {\n case UP:\n switch (lastSegmentDir) {\n case UP:\n // o..................o lastVertex\n // | . |\n // | . |\n // | +----O----+ |\n // ------o | portPos | o------------\n // | | beforeVertex\n // +---------+\n //\n if (lastVertex.y < portPos.y - MINDIST) {\n this.vertices.add(new _packages2.default.geo.Point(portPos.x, lastVertex.y));\n this.vertices.add(portPos);\n }\n // ...................\n // . . .\n // . +----O----+ .\n // o | portPos | o lastVertex\n // | | | |\n // | +---------+ |\n // -------o o------------\n // beforeVertex\n //\n else {\n lastVertex.y = portPos.y - MINDIST;\n this.vertices.add(new _packages2.default.geo.Point(portPos.x, lastVertex.y));\n this.vertices.add(portPos);\n }\n break;\n case RIGHT:\n // ..............................\n // . . .\n // . . .\n // o------->o +----O----+ o---------------->O\n // | | portPos | | beforeVertex lastVertex\n // | | | |\n // | +---------+\n if (lastVertex.y > portPos.y - MINDIST) {\n beforeVertex.y = portPos.y - MINDIST;\n lastVertex.x = portPos.x;\n lastVertex.y = beforeVertex.y;\n this.vertices.add(portPos);\n }\n //\n // beforeVertex lastVertex\n // o---------->o..................o------------->O\n // | . |\n // | +----O----+ |\n // | | portPos | |\n // | | | |\n // +---------+\n else {\n lastVertex.x = portPos.x;\n this.vertices.add(portPos);\n }\n break;\n case DOWN:\n // beforeVertex\n // ------o..................o------------\n // | . |\n // | . |\n // V +----O----+ V\n // o | portPos | o lastVertex\n // | |\n // +---------+\n //\n if (lastVertex.y < portPos.y - MINDIST) {\n beforeVertex.x = portPos.x;\n lastVertex.setPosition(portPos);\n }\n // ...................\n // . . .\n // . +----O----+ . beforeVertex\n // -------o | portPos | o------------\n // | | | |\n // V +---------+ V\n // o o\n // lastVertex\n //\n else {\n lastVertex.y = portPos.y - MINDIST;\n this.vertices.add(new _packages2.default.geo.Point(portPos.x, lastVertex.y));\n this.vertices.add(portPos);\n }\n break;\n case LEFT:\n // ..................................\n // . . .\n // . . .\n // o<--------o +----O----+ o<-------------O beforeVertex\n // | | portPos | lastVertex |\n // | | | |\n // +---------+\n if (lastVertex.y > portPos.y - MINDIST) {\n beforeVertex.y = portPos.y - MINDIST;\n lastVertex.x = portPos.x;\n lastVertex.y = beforeVertex.y;\n this.vertices.add(portPos);\n }\n // | |\n // | |\n // o<--------o................o<-------------O\n // . lastVertex beforeVertex\n // +----O----+\n // | portPos |\n // | |\n // +---------+\n else {\n lastVertex.x = portPos.x;\n this.vertices.add(portPos);\n }\n break;\n }\n break;\n case RIGHT:\n switch (lastSegmentDir) {\n case UP:\n // o lastVertex\n // |\n // |\n // ------------------o beforeVertex\n // .\n // +----------+ .\n // | | .\n // | portPos O.......\n // | | .\n // +----------+ .\n // o lastVertex\n // |\n // |\n // -----------------o beforeVertex\n //\n if (lastVertex.x > portPos.x + MINDIST) {\n lastVertex.y = portPos.y;\n this.vertices.add(portPos);\n }\n // lastVertex\n // o...............\n // | .\n // | .\n // ----o beforeVertex .\n // .\n // +----------+ .\n // | | .\n // | portPos O........\n // | | .\n // +----------+ .\n // o...............\n // | lastVertex\n // |\n //------o\n // beforeVertex\n //\n //\n else {\n this.vertices.add(new _packages2.default.geo.Point(portPos.x + MINDIST, lastVertex.y));\n this.vertices.add(new _packages2.default.geo.Point(portPos.x + MINDIST, portPos.y));\n this.vertices.add(portPos);\n }\n break;\n case RIGHT:\n // beforeVertex lastVertex\n // o-------------->o\n // .\n // +----------+ .\n // | | .\n // | portPos O.......\n // | | .\n // +----------+ .\n // .\n // o-------------->o\n // beforeVertex lastVertex\n //\n if (lastVertex.x > portPos.x + MINDIST) {\n this.vertices.add(new _packages2.default.geo.Point(lastVertex.x, portPos.y));\n this.vertices.add(portPos);\n }\n // beforeVertex lastVertex\n // o------------>o.........\n // .\n // +----------+ .\n // | | .\n // | portPos O.......\n // | | .\n // +----------+ .\n // .\n // o----------->o..........\n // beforeVertex lastVertex\n //\n else {\n lastVertex.x = portPos.x + MINDIST;\n this.vertices.add(new _packages2.default.geo.Point(lastVertex.x, portPos.y));\n this.vertices.add(portPos);\n }\n break;\n case DOWN:\n // ----------------o beforeVertex\n // |\n // |\n // o lastVertex\n // .\n // +----------+ .\n // | | .\n // | portPos O.......\n // | | .\n // +----------+ .\n // .\n // --------------o beforeVertex\n // |\n // |\n // o lastVertex\n //\n if (lastVertex.x > portPos.x + MINDIST) {\n lastVertex.y = portPos.y;\n this.vertices.add(portPos);\n }\n // -----o beforeVertex\n // |\n // | lastVertex\n // o...........\n // .\n // +----------+ .\n // | | .\n // | portPos O.......\n // | | .\n // +----------+ .\n // .\n // ----o beforeVertex .\n // | .\n // | lastVertex .\n // o...............\n //\n else {\n this.vertices.add(new _packages2.default.geo.Point(portPos.x + MINDIST, lastVertex.y));\n this.vertices.add(new _packages2.default.geo.Point(portPos.x + MINDIST, portPos.y));\n this.vertices.add(portPos);\n }\n break;\n case LEFT:\n // lastVertex beforeVertex\n // o<--------------o\n // .\n // +----------+ .\n // | | .\n // | portPos O..\n // | | .\n // +----------+ .\n // .\n // o<--------------o\n // lastVertex beforeVertex\n //\n if (lastVertex.x > portPos.x + MINDIST) {\n this.vertices.add(new _packages2.default.geo.Point(lastVertex.x, portPos.y));\n this.vertices.add(portPos);\n }\n // lastVertex beforeVertex\n // o<-----------------------o\n // .\n // +----------+ .\n // | | .\n // | portPos O....\n // | | .\n // +----------+ .\n // .\n // o<----------------------o\n // lastVertex beforeVertex\n //\n else {\n lastVertex.x = portPos.x + MINDIST;\n this.vertices.add(new _packages2.default.geo.Point(lastVertex.x, portPos.y));\n this.vertices.add(portPos);\n }\n break;\n }\n break;\n case DOWN:\n switch (lastSegmentDir) {\n case UP:\n // o o lastVertex\n // | |\n // | |\n // | +---------+ |\n // ------o | | o------------\n // . | portPos | . beforeVertex\n // . +----O----+ .\n // . . .\n // ....................\n //\n if (lastVertex.y < portPos.y + MINDIST) {\n lastVertex.y = portPos.y + MINDIST;\n this.vertices.add(new _packages2.default.geo.Point(portPos.x, lastVertex.y));\n this.vertices.add(portPos);\n }\n // +---------+\n // | |\n // | portPos |\n // +----O----+\n // .\n // o.................o lastVertex\n // | |\n // | |\n // -------o o------------\n // beforeVertex\n //\n else {\n lastVertex.x = portPos.x;\n lastVertex.y = portPos.y;\n beforeVertex.x = portPos.x;\n }\n break;\n case RIGHT:\n // +---------+\n // | |\n // | portPos |\n // o------->o +----O----+ o--------------->O\n // | . . | beforeVertex . lastVertex\n // | .....................|.................\n // |\n //\n //\n if (lastVertex.y < portPos.y + MINDIST) {\n this.vertices.add(new _packages2.default.geo.Point(lastVertex.x, portPos.y + MINDIST));\n this.vertices.add(new _packages2.default.geo.Point(portPos.x, portPos.y + MINDIST));\n this.vertices.add(portPos);\n }\n // +---------+\n // | |\n // | portPos |\n // +----O----+\n // .\n // ...................................\n // . beforeVertex . lastVertex\n // o---------->o o------------->O\n // | |\n // | |\n //\n else {\n lastVertex.x = portPos.x;\n this.vertices.add(portPos);\n }\n break;\n case DOWN:\n // beforeVertex\n // ------o o------------\n // | |\n // | |\n // V +---------+ V\n // o | | o lastVertex\n // . | portPos | .\n // . +----O----+ .\n // . . .\n // ....................\n //\n if (lastVertex.y < portPos.y + MINDIST) {\n lastVertex.y = portPos.y + MINDIST;\n this.vertices.add(new _packages2.default.geo.Point(portPos.x, lastVertex.y));\n this.vertices.add(portPos);\n }\n //\n // +---------+ beforeVertex\n // -------o | portPos | o------------\n // | | | |\n // V +----O----+ V\n // o . o\n // .................. lastVertex\n //\n else {\n this.vertices.add(new _packages2.default.geo.Point(portPos.x, lastVertex.y));\n this.vertices.add(portPos);\n }\n break;\n case LEFT:\n //\n // o<--------o +---------+ o<-------------O beforeVertex\n // . | | | . lastVertex |\n // . | | portPos | . |\n // . +----O----+ .\n // . . .\n // ..............................\n //\n if (lastVertex.y < portPos.y - MINDIST) {\n beforeVertex.y = portPos.y - MINDIST;\n lastVertex.x = portPos.x;\n lastVertex.y = beforeVertex.y;\n this.vertices.add(portPos);\n }\n //\n // +---------+\n // | | | |\n // | | portPos | |\n // | +----O----+ |\n // | . |\n // o<--------o...................o<---------o\n //\n else {\n lastVertex.x = portPos.x;\n this.vertices.add(portPos);\n }\n break;\n }\n break;\n case LEFT:\n switch (lastSegmentDir) {\n case UP:\n // ................o lastVertex\n // . |\n // . |\n // --.---------------o beforeVertex\n // .\n // . +----------+\n // . | |\n // ....o portPos |\n // . | |\n // . +----------+\n // .\n // ................o lastVertex\n // |\n // |\n // -----------------o beforeVertex\n //\n if (lastVertex.x >= portPos.x - MINDIST) {\n this.vertices.add(new _packages2.default.geo.Point(portPos.x - MINDIST, lastVertex.y));\n this.vertices.add(new _packages2.default.geo.Point(portPos.x - MINDIST, portPos.y));\n this.vertices.add(portPos);\n }\n //\n // +----------+\n // | |\n // ......o portPos |\n // . | |\n // . +----------+\n // o\n // | lastVertex\n // |\n //------o\n // beforeVertex\n //\n //\n else if (lastVertex.y > portPos.y && lastVertex.x < portPos.x - MINDIST) {\n lastVertex.y = portPos.y;\n this.vertices.add(portPos);\n }\n // lastVertex\n // o..\n // | .\n // | .\n // ----o . beforeVertex\n // .\n // . +----------+\n // . | |\n // ....o portPos |\n // | |\n // +----------+\n //\n else {\n this.vertices.add(new _packages2.default.geo.Point(portPos.x - MINDIST, lastVertex.y));\n this.vertices.add(new _packages2.default.geo.Point(portPos.x - MINDIST, portPos.y));\n this.vertices.add(portPos);\n }\n break;\n case RIGHT:\n // beforeVertex lastVertex\n // o-------------->o\n // .\n // ....................\n // .\n // . +----------+\n // . | |\n // .......o portPos |\n // | |\n // +----------+\n //\n if (lastVertex.y < portPos.y && lastVertex.x > portPos.x - MINDIST) {\n var center = portPos.y - (portPos.y - lastVertex.y) / 2;\n this.vertices.add(new _packages2.default.geo.Point(lastVertex.x, center));\n this.vertices.add(new _packages2.default.geo.Point(portPos.x - MINDIST, center));\n this.vertices.add(new _packages2.default.geo.Point(portPos.x - MINDIST, portPos.y));\n this.vertices.add(portPos);\n }\n // +----------+\n // | |\n // .......o portPos |\n // . | |\n // . +----------+\n // .\n // ....................\n // .\n // o-------------->o\n // beforeVertex lastVertex\n //\n else if (lastVertex.y > portPos.y && lastVertex.x > portPos.x - MINDIST) {\n var center = portPos.y + (lastVertex.y - portPos.y) / 2;\n this.vertices.add(new _packages2.default.geo.Point(lastVertex.x, center));\n this.vertices.add(new _packages2.default.geo.Point(portPos.x - MINDIST, center));\n this.vertices.add(new _packages2.default.geo.Point(portPos.x - MINDIST, portPos.y));\n this.vertices.add(portPos);\n }\n // beforeVertex lastVertex\n // o------------>o\n // .\n // . +----------+\n // . | |\n // ....o portPos |\n // . | |\n // . +----------+\n // .\n // o----------->o\n // beforeVertex lastVertex\n //\n else {\n this.vertices.add(new _packages2.default.geo.Point(lastVertex.x, portPos.y));\n this.vertices.add(portPos);\n }\n break;\n case DOWN:\n // -----------o beforeVertex\n // |\n // |\n // V\n // ................o lastVertex\n // .\n // . +----------+\n // . | |\n // ........o portPos |\n // . | |\n // . +----------+\n // .\n // . --------o beforeVertex\n // . |\n // . |\n // . V\n // .................o lastVertex\n //\n if (lastVertex.x >= portPos.x - MINDIST) {\n this.vertices.add(new _packages2.default.geo.Point(portPos.x - MINDIST, lastVertex.y));\n this.vertices.add(new _packages2.default.geo.Point(portPos.x - MINDIST, portPos.y));\n this.vertices.add(portPos);\n }\n // -----o beforeVertex\n // |\n // |\n // o lastVertex\n // .\n // . +----------+\n // . | |\n // ........o portPos |\n // . | |\n // . +----------+\n // beforeVertex.\n // ------------o\n // |\n // |\n // lastVertex o\n //\n else {\n lastVertex.y = portPos.y;\n this.vertices.add(portPos);\n }\n break;\n case LEFT:\n // lastVertex beforeVertex\n // o<--------------o\n // .\n // . +----------+\n // . | |\n // ....... o portPos |\n // . | |\n // . +----------+\n // .\n // o<--------------o\n // lastVertex beforeVertex\n //\n if (lastVertex.x < portPos.x - MINDIST) {\n this.vertices.add(new _packages2.default.geo.Point(lastVertex.x, portPos.y));\n this.vertices.add(portPos);\n }\n // lastVertex beforeVertex\n // .......o<-----------------------o\n // .\n // . +----------+\n // . | |\n // .....o portPos |\n // . | |\n // . +----------+\n // .\n // ........o<----------------------o\n // lastVertex beforeVertex\n //\n else {\n lastVertex.x = portPos.x - MINDIST;\n this.vertices.add(new _packages2.default.geo.Point(lastVertex.x, portPos.y));\n this.vertices.add(portPos);\n }\n break;\n }\n break;\n }\n\n if (this.vertices.getSize() > 3) {\n connection._routingMetaData.routedByUserInteraction = true;\n connection.setVertices(this.vertices);\n }\n this.vertices.clear();\n }\n }\n },\n\n /**\n * \n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n */\n onMouseMove: function onMouseMove(canvas, x, y, shiftKey, ctrlKey) {\n if (this.beeline !== null) {\n this.beeline.setEndPosition(this.orthogonal(this.vertices.last(), { x: x, y: y }));\n }\n },\n\n /**\n * \n * Callback if the user press a key down\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {Number} keyCode the pressed key\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @private\n **/\n onKeyDown: function onKeyDown(canvas, keyCode, shiftKey, ctrlKey) {\n var KEYCODE_ENTER = 13;\n var KEYCODE_ESC = 27;\n if (keyCode === KEYCODE_ESC && this.beeline !== null) {\n this.beeline.hide();\n this.tempConnection.hide();\n this.beeline = null;\n this.port1 = null;\n this.vertices.clear();\n if (this.pulse != null) {\n this.pulse.remove();\n this.pulse = null;\n }\n }\n },\n\n orthogonal: function orthogonal(anchor, p) {\n // calculate vertical line distance\n //\n var xDiff = Math.abs(anchor.x - p.x) + 10;\n var xDist = _packages2.default.geo.Line.distance(anchor.x - xDiff, anchor.y, anchor.x + xDiff, anchor.y, p.x, p.y);\n\n // calculate horizontal line distance\n //\n var yDiff = Math.abs(anchor.y - p.y) + 10;\n var yDist = _packages2.default.geo.Line.distance(anchor.x, anchor.y - yDiff, anchor.x, anchor.y + yDiff, p.x, p.y);\n\n return yDist > xDist ? { x: p.x, y: anchor.y } : { x: anchor.x, y: p.y };\n },\n\n createConnection: function createConnection() {\n var connection = this._super();\n connection.attr({ radius: 7, stroke: 3 });\n connection.setRouter(new _packages2.default.layout.connection.InteractiveManhattanConnectionRouter());\n return connection;\n }\n\n});\n/**\n * @class\n *\n * The OrthogonalConnectionCreatePolicy can be installed into the canvas to override the\n * default connection crate behaviour. Normaly you can create connections by drag&drop a port.\n *\n * With this policy you can route the connection during creation.\n *\n * Creates a connection by clicking on a port.\n * <ul>\n * <li> click on the first port</li>\n * <li> click within the canvas to add additional vertices</li>\n * <li> click on the target port to draw the connection</li>\n * <li> press ESC to abort the operation (didn't work within this JSDoc)</li>\n * </ul>\n * <br>\n * <br>\n * <b>The generated connection has always perpendicular segments.</b>\n * <br>\n * <br>\n *\n *\n * @example\n *\n * // Override the default connection creation.\n * //\n * canvas.installEditPolicy( new draw2d.policy.connection.OrthogonalConnectionCreatePolicy());\n *\n * // create and add two Node which contains Ports (In and OUT)\n * //\n * var start = new draw2d.shape.node.Start({x:50, y:50});\n * var endNode = new draw2d.shape.node.End({x:200, y:70});\n *\n * // add the two nodes to the canvas\n * //\n * canvas.add( start);\n * canvas.add( endNode);\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.connection.ConnectionCreatePolicy\n */\n\n/***/ }),\n\n/***/ \"./src/policy/figure/AntSelectionFeedbackPolicy.js\":\n/*!*********************************************************!*\\\n !*** ./src/policy/figure/AntSelectionFeedbackPolicy.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Provide support for selecting and positioning a non-resizable figure.\n * Selection is indicated via rectangular handle that outlines the figure with a 1-pixel black\n * dotted line.\n *\n *\n * @example\n *\n * circle =new draw2d.shape.basic.Circle({diameter:50, x:90, y:50});\n * circle.installEditPolicy(new draw2d.policy.figure.AntSelectionFeedbackPolicy());\n * canvas.add(circle);\n *\n * canvas.add(new draw2d.shape.basic.Label({text:\"Click on the circle to see the selection feedback\"}),20,10);\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.SelectionFeedbackPolicy\n */\n_packages2.default.policy.figure.AntSelectionFeedbackPolicy = _packages2.default.policy.figure.SelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.figure.AntSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.AntSelectionFeedbackPolicy\",\n\n /**\n * Creates a new Router object\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * Called by the framework of the Policy should show a resize handle for the given shape\n *\n * @param {draw2d.Canvas} canvas the responsible canvas\n * @param {draw2d.Figure} figure the figure to decorate with a selection feedback\n * @param {Boolean} [isPrimarySelection]\n */\n onSelect: function onSelect(canvas, figure, isPrimarySelection) {\n if (figure.selectionHandles.isEmpty()) {\n var box = new _packages2.default.shape.basic.Rectangle({ bgColor: null, dasharray: \"- \", color: \"#2C70FF\" });\n box.hide = function () {\n // IMPORTANT\n // don't add/remove this rectangle to the canvas resizeHandles. This rect isn't responsible for any hitTest or\n // dragDrop operation\n //canvas.resizeHandles.remove(box);\n box.setCanvas(null);\n };\n box.show = function (canvas) {\n box.setCanvas(canvas);\n // IMPORTANT\n // don't add/remove this rectangle to the canvas resizeHandles. This rect isn't responsible for any hitTest or\n // dragDrop operation\n //canvas.resizeHandles.remove(box);\n //canvas.resizeHandles.add(box);\n box.shape.toFront();\n };\n box.show(canvas);\n figure.selectionHandles.add(box);\n\n // add a bee line to the parent if a parent is given and if the bounding box\n // of the parent and the figure didn't have intersections\n if (figure.getParent() !== null) {\n var line = new _packages2.default.shape.basic.Line({ opacity: 0.5, bgColor: null, dasharray: \"- \", color: \"#2C70FF\" });\n //line.setStartPosition(figure.getBoundingBox().getCenter());\n //line.setEndPosition(figure.getParent().getBoundingBox().getCenter());\n line.show = function (canvas) {\n return line.setCanvas(canvas);\n };\n line.hide = function () {\n return line.setCanvas(null);\n };\n line.show(canvas);\n figure.selectionHandles.add(line);\n this._updateBeeLine(line, figure);\n }\n }\n this.moved(canvas, figure);\n },\n\n /**\n *\n * Callback if the figure has been moved\n *\n * @param figure\n *\n * @template\n */\n moved: function moved(canvas, figure) {\n if (figure.selectionHandles.isEmpty()) {\n return; // silently\n }\n\n var margin = 2;\n var box = figure.selectionHandles.first();\n box.setPosition(figure.getAbsolutePosition().translate(-margin, -margin));\n box.setDimension(figure.getWidth() + margin * 2, figure.getHeight() + margin * 2);\n box.setRotationAngle(figure.getRotationAngle());\n\n if (figure.selectionHandles.getSize() > 1) {\n this._updateBeeLine(figure.selectionHandles.get(1), figure);\n }\n },\n\n /**\n *\n * @param {draw2d.shape.basic.Line} line\n * @param {draw2d.Figure} figure\n * @private\n */\n _updateBeeLine: function _updateBeeLine(line, figure) {\n var parent = figure.getParent();\n\n if (parent === null) {\n return;\n }\n\n if (parent instanceof _packages2.default.shape.basic.Line) {\n var center = figure.getBoundingBox().getCenter();\n var projection = parent.pointProjection(center);\n if (projection === null) {\n var p1 = line.getStartPosition();\n var p2 = line.getEndPosition();\n var d1 = center.distance(p1);\n var d2 = center.distance(p1);\n projection = d1 < d2 ? p1 : p2;\n }\n var intersection = figure.getBoundingBox().intersectionWithLine(center, projection);\n if (intersection.getSize() > 0) {\n line.setStartPosition(figure.getBoundingBox().intersectionWithLine(center, projection).get(0)).setEndPosition(projection);\n } else {\n line.setStartPosition(figure.getBoundingBox().getCenter()).setEndPosition(projection);\n }\n } else {\n var rect1 = figure.getBoundingBox(),\n rect2 = parent.getBoundingBox();\n\n var center1 = rect1.getCenter();\n var center2 = rect2.getCenter();\n // the rectangle overlaps -> return the center of booth\n if (rect1.intersects(rect2)) {\n line.setStartPosition(center1).setEndPosition(center2);\n }\n // one rect is inside the other rect\n //\n else if (rect1.hitTest(center2) || rect2.hitTest(center1)) {\n line.setStartPosition(center1).setEndPosition(center2);\n } else {\n rect1.scale(3, 3);\n rect2.scale(3, 3);\n\n line.setStartPosition(rect1.intersectionWithLine(center1, center2).get(0)).setEndPosition(rect2.intersectionWithLine(center1, center2).get(0));\n }\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/BigRectangleSelectionFeedbackPolicy.js\":\n/*!******************************************************************!*\\\n !*** ./src/policy/figure/BigRectangleSelectionFeedbackPolicy.js ***!\n \\******************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @example\n *\n * circle =new draw2d.shape.basic.Circle();\n * circle.installEditPolicy(new draw2d.policy.figure.BigRectangleSelectionFeedbackPolicy());\n * canvas.add(circle,90,50);\n *\n * canvas.add(new draw2d.shape.basic.Label({text:\"Click on the circle to see the selection feedback\"}),20,10);\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.SelectionFeedbackPolicy\n */\n_packages2.default.policy.figure.BigRectangleSelectionFeedbackPolicy = _packages2.default.policy.figure.RectangleSelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.figure.BigRectangleSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.BigRectangleSelectionFeedbackPolicy\",\n\n /**\n * Creates a new Router object\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n createResizeHandle: function createResizeHandle(owner, type) {\n return new _packages2.default.ResizeHandle({ owner: owner, type: type, width: 15, height: 15 });\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/BusSelectionFeedbackPolicy.js\":\n/*!*********************************************************!*\\\n !*** ./src/policy/figure/BusSelectionFeedbackPolicy.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.SelectionFeedbackPolicy\n */\n_packages2.default.policy.figure.BusSelectionFeedbackPolicy = _packages2.default.policy.figure.SelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.figure.BusSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.BusSelectionFeedbackPolicy\",\n\n /**\n * Creates a new Router object\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Called by the framework of the Policy should show a resize handle for the given shape\n *\n * @param {Boolean} isPrimarySelection\n */\n onSelect: function onSelect(canvas, figure, isPrimarySelection) {\n if (figure.selectionHandles.isEmpty()) {\n var r2 = _packages2.default.Configuration.factory.createResizeHandle(figure, 2); // 2 = CENTER_TOP\n var r4 = _packages2.default.Configuration.factory.createResizeHandle(figure, 4); // 4 = RIGHT_MIDDLE\n var r6 = _packages2.default.Configuration.factory.createResizeHandle(figure, 6); // 6 = CENTER_BOTTOM\n var r8 = _packages2.default.Configuration.factory.createResizeHandle(figure, 8); // 8 = LEFT_MIDDLE\n\n figure.selectionHandles.add(r2, r4, r6, r8);\n\n r2.setDraggable(figure.isResizeable());\n r4.setDraggable(figure.isResizeable());\n r6.setDraggable(figure.isResizeable());\n r8.setDraggable(figure.isResizeable());\n\n r2.show(canvas);\n r4.show(canvas);\n r6.show(canvas);\n r8.show(canvas);\n }\n this.moved(canvas, figure);\n },\n\n /**\n * \n * Callback if the figure has been moved\n *\n * @param figure\n *\n * @template\n */\n moved: function moved(canvas, figure) {\n if (figure.selectionHandles.isEmpty()) {\n return; // silently\n }\n var r2 = figure.selectionHandles.find(function (handle) {\n return handle.type === 2;\n });\n var r4 = figure.selectionHandles.find(function (handle) {\n return handle.type === 4;\n });\n var r6 = figure.selectionHandles.find(function (handle) {\n return handle.type === 6;\n });\n var r8 = figure.selectionHandles.find(function (handle) {\n return handle.type === 8;\n });\n\n var objHeight = figure.getHeight();\n var objWidth = figure.getWidth();\n\n var xPos = figure.getX();\n var yPos = figure.getY();\n r2.setPosition(xPos + objWidth / 2 - r2.getWidth() / 2, yPos - r2.getHeight());\n r4.setPosition(xPos + objWidth, yPos + objHeight / 2 - r4.getHeight() / 2);\n r6.setPosition(xPos + objWidth / 2 - r6.getWidth() / 2, yPos + objHeight);\n r8.setPosition(xPos - r8.getWidth(), yPos + objHeight / 2 - r8.getHeight() / 2);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/DragDropEditPolicy.js\":\n/*!*************************************************!*\\\n !*** ./src/policy/figure/DragDropEditPolicy.js ***!\n \\*************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Called by the framework if the user edit the position of a figure with a drag drop operation.\n * Sub class like SelectionEditPolicy or RegionEditPolicy can adjust the position of the figure or the selections handles.\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.FigureEditPolicy\n */\n_packages2.default.policy.figure.DragDropEditPolicy = _packages2.default.policy.figure.FigureEditPolicy.extend(\n/** @lends draw2d.policy.figure.DragDropEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.DragDropEditPolicy\",\n\n /**\n */\n init: function init(attr, setter, getter) {\n var _this = this;\n\n this._super(attr, setter, getter);\n this.moveCallback = function (emitter, event) {\n _this.moved(emitter.getCanvas(), emitter);\n };\n },\n\n /**\n *\n * Called by the host if the policy has been installed.\n *\n * @param {draw2d.Canvas|draw2d.Figure} host\n */\n onInstall: function onInstall(host) {\n this._super(host);\n host.on(\"move\", this.moveCallback);\n },\n\n /**\n *\n * Called by the host if the policy has been uninstalled.\n *\n * @param {draw2d.Canvas|draw2d.Figure} host\n */\n onUninstall: function onUninstall(host) {\n this._super(host);\n host.off(this.moveCallback);\n },\n\n /**\n *\n * Called by the framework if the related shape has init a drag&drop\n * operation\n *\n * The Policy can send a veto to prevent the DragDrop operation\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @returns {Boolean} return <b>false</b> to send a veto to the drag operation\n */\n onDragStart: function onDragStart(canvas, figure, x, y, shiftKey, ctrlKey) {\n figure.shape.attr({ cursor: \"move\" });\n\n // this happens if you drag&drop the shape outside of the screen and\n // release the mouse button outside the window. We restore the alpha\n // with the next drag&drop operation\n if (figure.isMoving === true) {\n figure.setAlpha(figure.originalAlpha);\n }\n\n figure.originalAlpha = figure.getAlpha();\n figure.isMoving = false;\n\n // return value since 6.1.0\n return true;\n },\n\n /**\n *\n * Called by the framework during drag a figure.\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n * @template\n */\n onDrag: function onDrag(canvas, figure) {\n // enable the alpha blending of the first real move of the object\n //\n if (figure.isMoving === false) {\n figure.isMoving = true;\n figure.setAlpha(figure.originalAlpha * 0.4);\n }\n },\n\n /**\n *\n * Called by the framework if the drag drop operation ends.\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n */\n onDragEnd: function onDragEnd(canvas, figure, x, y, shiftKey, ctrlKey) {\n figure.shape.attr({ cursor: \"default\" });\n figure.isMoving = false;\n figure.setAlpha(figure.originalAlpha);\n },\n\n /**\n *\n * Adjust the coordinates to the rectangle/region of this constraint.\n *\n * @param {draw2d.Figure} figure\n * @param {Number|draw2d.geo.Point} x\n * @param {Number} [y]\n * @returns {draw2d.geo.Point} the constraint position of the figure\n *\n * @template\n */\n adjustPosition: function adjustPosition(figure, x, y) {\n // do nothing per default implementation\n if (x instanceof _packages2.default.geo.Point) {\n return x;\n }\n\n return new _packages2.default.geo.Point(x, y);\n },\n\n /**\n *\n * ensure that the dimension didn't goes outside the given restrictions\n *\n * @param {draw2d.Figure} figure\n * @param {Number} w\n * @param {number} h\n * @returns {draw2d.geo.Rectangle} the constraint position of the figure\n */\n adjustDimension: function adjustDimension(figure, w, h) {\n return new _packages2.default.geo.Rectangle(0, 0, w, h);\n },\n\n /**\n *\n * Callback if the figure has moved\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n *\n * @template\n */\n moved: function moved(canvas, figure) {}\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/FigureEditPolicy.js\":\n/*!***********************************************!*\\\n !*** ./src/policy/figure/FigureEditPolicy.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Called by the framework if the user edit the position of a figure with a drag drop operation.\n * Sub class like SelectionEditPolicy or RegionEditPolicy can adjust the position of the figure\n * or the selections handles.\n *\n * @author Andreas Herz\n * @extends draw2d.policy.EditPolicy\n * @since 4.4.0\n */\n_packages2.default.policy.figure.FigureEditPolicy = _packages2.default.policy.EditPolicy.extend(\n/** @lends draw2d.policy.figure.FigureEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.FigureEditPolicy\",\n\n /**\n * Creates a new Router object\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Called if the user press the right mouse on the figure.<br>\n * You can either override the \"onContextMenu\" method of the figure or install an editor policy and override this method.\n * Booth is valid and possible.\n *\n * @param {draw2d.Figure|draw2d.shape.basic.Line} figure the figure below the mouse\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n * @since 4.4.0\n */\n onRightMouseDown: function onRightMouseDown(figure, x, y, shiftKey, ctrlKey) {}\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/GlowSelectionFeedbackPolicy.js\":\n/*!**********************************************************!*\\\n !*** ./src/policy/figure/GlowSelectionFeedbackPolicy.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @example\n *\n * circle =new draw2d.shape.basic.Circle();\n * circle.installEditPolicy(new draw2d.policy.figure.GlowSelectionFeedbackPolicy());\n * canvas.add(circle,90,50);\n *\n * canvas.add(new draw2d.shape.basic.Label(\"Click on the circle to see the selection feedback\"),20,10);\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.SelectionFeedbackPolicy\n */\n_packages2.default.policy.figure.GlowSelectionFeedbackPolicy = _packages2.default.policy.figure.SelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.figure.GlowSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.GlowSelectionFeedbackPolicy\",\n\n /**\n * Creates a new Router object\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Called by the framework of the Policy should show a resize handle for the given shape\n *\n * @param {Boolean} isPrimarySelection\n */\n onSelect: function onSelect(canvas, figure, isPrimarySelection) {\n figure.setGlow(true);\n this.moved(canvas, figure);\n },\n\n /**\n * \n *\n * @param {draw2d.Figure} figure the unselected figure\n */\n onUnselect: function onUnselect(canvas, figure) {\n this._super(canvas, figure);\n figure.setGlow(false);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/HBusSelectionFeedbackPolicy.js\":\n/*!**********************************************************!*\\\n !*** ./src/policy/figure/HBusSelectionFeedbackPolicy.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.policy.figure.HBusSelectionFeedbackPolicy = _packages2.default.policy.figure.BusSelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.figure.HBusSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.HBusSelectionFeedbackPolicy\",\n /**\n * Creates a new Router object\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Callback if the figure has been moved\n *\n * @param figure\n *\n * @template\n */\n moved: function moved(canvas, figure) {\n if (figure.selectionHandles.isEmpty()) {\n return; // silently\n }\n var r4 = figure.selectionHandles.find(function (handle) {\n return handle.type === 4;\n });\n var r8 = figure.selectionHandles.find(function (handle) {\n return handle.type === 8;\n });\n\n r4.setDimension(r4.getWidth(), figure.getHeight());\n r8.setDimension(r4.getWidth(), figure.getHeight());\n\n this._super(canvas, figure);\n }\n\n});\n/**\n * @class\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.BusSelectionFeedbackPolicy\n */\n\n/***/ }),\n\n/***/ \"./src/policy/figure/HorizontalEditPolicy.js\":\n/*!***************************************************!*\\\n !*** ./src/policy/figure/HorizontalEditPolicy.js ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * An EditPolicy for use with Figures. With this edit policy you can move the shape only in a horizontal manner.\n *\n *\n * @example\n * // add some demo figure to the canvas\n * var circle =new draw2d.shape.basic.Circle({diameter:50, x:10, y:30});\n * canvas.add(circle);\n *\n * // add the edit policy to the shape. At this point you can move the shape only\n * // horizontal\n * circle.installEditPolicy(new draw2d.policy.figure.HorizontalEditPolicy());\n *\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.figure.DragDropEditPolicy\n */\n_packages2.default.policy.figure.HorizontalEditPolicy = _packages2.default.policy.figure.DragDropEditPolicy.extend(\n/** @lends draw2d.policy.figure.HorizontalEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.HorizontalEditPolicy\",\n\n /**\n * Creates a new constraint object\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * It is only possible to drag&drop the element in a horizontal line\n *\n * @param figure\n * @param {Number|draw2d.geo.Point} x\n * @param {number} [y]\n *\n * @returns {draw2d.geo.Point} the constraint position of the figure\n */\n adjustPosition: function adjustPosition(figure, x, y) {\n return new _packages2.default.geo.Point(x, figure.getY());\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/RectangleSelectionFeedbackPolicy.js\":\n/*!***************************************************************!*\\\n !*** ./src/policy/figure/RectangleSelectionFeedbackPolicy.js ***!\n \\***************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A SelectionFeedbackPolicy with resize handles (rectangles) on each side and corner of the shape\n *\n *\n * @example\n *\n * circle =new draw2d.shape.basic.Circle({diameter:50});\n * circle.installEditPolicy(new draw2d.policy.RectangleSelectionFeedbackPolicy());\n * canvas.add(circle,90,50);\n *\n * canvas.add(new draw2d.shape.basic.Label({text:\"Click on the circle to see the selection feedback\"}),20,10);\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.SelectionFeedbackPolicy\n */\n_packages2.default.policy.figure.RectangleSelectionFeedbackPolicy = _packages2.default.policy.figure.SelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.figure.RectangleSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.RectangleSelectionFeedbackPolicy\",\n /**\n * Creates a selection feedback for a shape.\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * @inheritdoc\n */\n onSelect: function onSelect(canvas, figure, isPrimarySelection) {\n if (figure.selectionHandles.isEmpty()) {\n // Add a dotted line rectangle to the figure. Override the show/hide method of the standard\n // figure to avoid adding these element to the hit test of the canvas. In this case the element\n // is just visible but not part of the model or responsible for any drag/drop operation\n // #2C70FF #2096fc\n var box = new _packages2.default.shape.basic.Rectangle({ bgColor: null, dashArray: \"- \", color: \"#2C70FF\", stroke: 0.5 });\n box.hide = function () {\n // IMPORTANT\n // don't add/remove this rectangle to the canvas resizeHandles. This rect isn't responsible for any hitTest or\n // dragDrop operation\n //canvas.resizeHandles.remove(box);\n box.setCanvas(null);\n };\n box.show = function (canvas) {\n box.setCanvas(canvas);\n // IMPORTANT\n // don't add/remove this rectangle to the canvas resizeHandles. This rect isn't responsible for any hitTest or\n // dragDrop operation\n //canvas.resizeHandles.remove(box);\n //canvas.resizeHandles.add(box);\n box.toFront(figure);\n };\n\n // create standard Resize handles for the figure\n //\n var r1 = this.createResizeHandle(figure, 1); // 1 = LEFT TOP\n var r3 = this.createResizeHandle(figure, 3); // 3 = RIGHT_TOP\n var r5 = this.createResizeHandle(figure, 5); // 5 = RIGHT_BOTTOM\n var r7 = this.createResizeHandle(figure, 7); // 7 = LEFT_BOTTOM\n figure.selectionHandles.add(r1, r3, r5, r7);\n r1.show(canvas);\n r3.show(canvas);\n r5.show(canvas);\n r7.show(canvas);\n\n // change the look&feel of the corner resizehandles if the\n // figure isn't resizeable\n //\n if (figure.isResizeable() === false) {\n var attr = { bgColor: null, draggable: false };\n r1.attr(attr);\n r3.attr(attr);\n r5.attr(attr);\n r7.attr(attr);\n r1.setDraggable(false);\n r3.setDraggable(false);\n r5.setDraggable(false);\n r7.setDraggable(false);\n }\n\n // show only the additional resizehandles if the figure is resizeable and didn't care about\n // the aspect ration\n //\n if (!figure.getKeepAspectRatio() && figure.isResizeable()) {\n var r2 = this.createResizeHandle(figure, 2); // 2 = CENTER_TOP\n var r4 = this.createResizeHandle(figure, 4); // 4 = RIGHT_MIDDLE\n var r6 = this.createResizeHandle(figure, 6); // 6 = CENTER_BOTTOM\n var r8 = this.createResizeHandle(figure, 8); // 8 = LEFT_MIDDLE\n figure.selectionHandles.add(r2, r4, r6, r8);\n r2.show(canvas);\n r4.show(canvas);\n r6.show(canvas);\n r8.show(canvas);\n }\n\n // add the reference of the \"ant box\" to the figure as well. But wee add them\n // to the end of the array because inherit classes expect the resizehandles\n // on index 0-7.\n //\n figure.selectionHandles.add(box);\n\n // call the box.show() at last to ensure that the resize handles are above the\n // rectangle. The rectangle did a toFront(parentShape);\n box.show(canvas);\n }\n this.moved(canvas, figure);\n },\n\n /**\n * \n * Callback if the figure has been moved. In this case we must update the position of the\n * resize handles and the \"ant\" box.\n *\n * @param figure\n *\n * @template\n */\n moved: function moved(canvas, figure) {\n\n if (figure.selectionHandles.isEmpty()) {\n return; // silently\n }\n\n var margin = 3 * canvas.getZoom();\n var objHeight = figure.getHeight();\n var objWidth = figure.getWidth();\n var xPos = figure.getAbsoluteX();\n var yPos = figure.getAbsoluteY();\n\n var r1 = figure.selectionHandles.find(function (handle) {\n return handle.type === 1;\n });\n var r3 = figure.selectionHandles.find(function (handle) {\n return handle.type === 3;\n });\n var r5 = figure.selectionHandles.find(function (handle) {\n return handle.type === 5;\n });\n var r7 = figure.selectionHandles.find(function (handle) {\n return handle.type === 7;\n });\n\n r1.setPosition(xPos - r1.getWidth(), yPos - r1.getHeight());\n r3.setPosition(xPos + objWidth, yPos - r3.getHeight());\n r5.setPosition(xPos + objWidth, yPos + objHeight);\n r7.setPosition(xPos - r7.getWidth(), yPos + objHeight);\n\n if (!figure.getKeepAspectRatio() && figure.isResizeable()) {\n var r2 = figure.selectionHandles.find(function (handle) {\n return handle.type === 2;\n });\n var r4 = figure.selectionHandles.find(function (handle) {\n return handle.type === 4;\n });\n var r6 = figure.selectionHandles.find(function (handle) {\n return handle.type === 6;\n });\n var r8 = figure.selectionHandles.find(function (handle) {\n return handle.type === 8;\n });\n\n r2.setPosition(xPos + objWidth / 2 - r2.getWidth() / 2, yPos - r2.getHeight());\n r4.setPosition(xPos + objWidth, yPos + objHeight / 2 - r4.getHeight() / 2);\n r6.setPosition(xPos + objWidth / 2 - r6.getWidth() / 2, yPos + objHeight);\n r8.setPosition(xPos - r8.getWidth(), yPos + objHeight / 2 - r8.getHeight() / 2);\n }\n var box = figure.selectionHandles.last();\n box.attr({\n x: xPos - margin,\n y: yPos - margin,\n width: objWidth + margin * 2,\n height: objHeight + margin * 2,\n stroke: canvas.getZoom()\n });\n\n box.setRotationAngle(figure.getRotationAngle());\n },\n\n createResizeHandle: function createResizeHandle(owner, type) {\n return new _packages2.default.ResizeHandle({ owner: owner, type: type, width: 10, height: 10 });\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/RegionEditPolicy.js\":\n/*!***********************************************!*\\\n !*** ./src/policy/figure/RegionEditPolicy.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * An EditPolicy for use with Figures. The constraint for RegionEditPolicy is a Rectangle. It is\n * not possible to move the related figure outside this constrained area.\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.figure.DragDropEditPolicy\n */\n_packages2.default.policy.figure.RegionEditPolicy = _packages2.default.policy.figure.DragDropEditPolicy.extend(\n/** @lends draw2d.policy.figure.RegionEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.RegionEditPolicy\",\n\n /**\n * Creates a new constraint object\n *\n * @param {Number|draw2d.geo.Rectangle} x x coordinate or a rectangle as constraint for the assigned figure.\n * @param {Number} y\n * @param {Number} w\n * @param {Number} h\n */\n init: function init(x, y, w, h) {\n this._super();\n if (x instanceof _packages2.default.geo.Rectangle) {\n this.constRect = x;\n } else if (typeof h === \"number\") {\n this.constRect = new _packages2.default.geo.Rectangle(x, y, w, h);\n } else {\n throw \"Invalid parameter. RegionEditPolicy need a rectangle as parameter in the constructor\";\n }\n },\n\n /**\n *\n * Update the constraint bounding box for the policy.\n *\n * @param {draw2d.geo.Rectangle} boundingBox the constraint rectangle\n * @since 4.8.2\n * @returns {this}\n */\n setBoundingBox: function setBoundingBox(boundingBox) {\n this.constRect = boundingBox;\n\n return this;\n },\n\n /**\n *\n * Returns the constraint bounding box for the policy.\n *\n * @returns {draw2d.geo.Rectangle}\n */\n getBoundingBox: function getBoundingBox() {\n return this.constRect;\n },\n\n /**\n *\n * Adjust the coordinates to the rectangle/region of this constraint.\n *\n * @param {draw2d.Figure} figure\n * @param {Number|draw2d.geo.Point} x\n * @param {Number} [y]\n *\n * @returns {draw2d.geo.Point} the constraint position of the figure\n */\n adjustPosition: function adjustPosition(figure, x, y) {\n var r = null;\n if (x instanceof _packages2.default.geo.Point) {\n r = new _packages2.default.geo.Rectangle(x.x, x.y, figure.getWidth(), figure.getHeight());\n } else {\n r = new _packages2.default.geo.Rectangle(x, y, figure.getWidth(), figure.getHeight());\n }\n r = this.constRect.moveInside(r);\n return r.getTopLeft();\n },\n\n /**\n *\n * Adjust the dimension of the rectangle to fit into the region of the policy\n *\n * @param {draw2d.Figure} figure\n * @param {Number} w\n * @param {Number} h\n * @returns {draw2d.geo.Rectangle} the constraint position of the figure\n */\n adjustDimension: function adjustDimension(figure, w, h) {\n var diffW = figure.getAbsoluteX() + w - this.constRect.getRight();\n var diffH = figure.getAbsoluteY() + h - this.constRect.getBottom();\n\n if (diffW > 0) {\n w = w - diffW;\n }\n if (diffH > 0) {\n h = h - diffH;\n }\n\n return new _packages2.default.geo.Rectangle(0, 0, w, h);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/ResizeSelectionFeedbackPolicy.js\":\n/*!************************************************************!*\\\n !*** ./src/policy/figure/ResizeSelectionFeedbackPolicy.js ***!\n \\************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Selection feedback policy without \"marching ant lines\" or any other rectangle highlight. Just\n * some resize handles at each corner of the shape.\n *\n *\n * @example\n * circle =new draw2d.shape.basic.Circle();\n * circle.installEditPolicy(new draw2d.policy.ResizeSelectionFeedbackPolicy());\n * canvas.add(circle,90,50);\n *\n * canvas.add(new draw2d.shape.basic.Label({text:\"Click on the circle to see the selection feedback\"}),20,10);\n *\n * @author Andreas Herz\n * @since 4.0.0\n * @extends draw2d.policy.figure.SelectionFeedbackPolicy\n *\n */\n_packages2.default.policy.figure.ResizeSelectionFeedbackPolicy = _packages2.default.policy.figure.SelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.figure.ResizeSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.ResizeSelectionFeedbackPolicy\",\n /**\n * Creates a new Router object\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * Called by the framework of the Policy should show a resize handle for the given shape\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {draw2d.Figure} figure the selected figure\n * @param {Boolean} [isPrimarySelection]\n */\n onSelect: function onSelect(canvas, figure, isPrimarySelection) {\n\n if (figure.selectionHandles.isEmpty()) {\n // create standard Resize handles for the figure\n //\n var r1 = _packages2.default.Configuration.factory.createResizeHandle(figure, 1); // 1 = LEFT TOP\n var r3 = _packages2.default.Configuration.factory.createResizeHandle(figure, 3); // 3 = RIGHT_TOP\n var r5 = _packages2.default.Configuration.factory.createResizeHandle(figure, 5); // 5 = RIGHT_BOTTOM\n var r7 = _packages2.default.Configuration.factory.createResizeHandle(figure, 7); // 7 = LEFT_BOTTOM\n figure.selectionHandles.add(r1, r3, r5, r7);\n r1.show(canvas);\n r3.show(canvas);\n r5.show(canvas);\n r7.show(canvas);\n\n // The corner ResizeHandles are only draggable fi the figure is\n // resizeable. But the Resize handles are visible\n //\n\n // change the look&feel of the corner resizehandles if the\n // figure isn't resizeable\n //\n if (figure.isResizeable() === false) {\n r1.setBackgroundColor(null);\n r3.setBackgroundColor(null);\n r5.setBackgroundColor(null);\n r7.setBackgroundColor(null);\n r1.setDraggable(false);\n r3.setDraggable(false);\n r5.setDraggable(false);\n r7.setDraggable(false);\n }\n\n // show only the additional resizehandles if the figure is resizeable\n //\n if (!figure.getKeepAspectRatio() && figure.isResizeable()) {\n var r2 = _packages2.default.Configuration.factory.createResizeHandle(figure, 2); // 2 = CENTER_TOP\n var r4 = _packages2.default.Configuration.factory.createResizeHandle(figure, 4); // 4 = RIGHT_MIDDLE\n var r6 = _packages2.default.Configuration.factory.createResizeHandle(figure, 6); // 6 = CENTER_BOTTOM\n var r8 = _packages2.default.Configuration.factory.createResizeHandle(figure, 8); // 8 = LEFT_MIDDLE\n figure.selectionHandles.add(r2, r4, r6, r8);\n r2.show(canvas);\n r4.show(canvas);\n r6.show(canvas);\n r8.show(canvas);\n }\n }\n this.moved(canvas, figure);\n },\n\n /**\n *\n * Callback if the figure has been moved. In this case we must update the position of the\n * resize handles.\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {draw2d.Figure} figure the moved figure\n *\n */\n moved: function moved(canvas, figure) {\n if (figure.selectionHandles.isEmpty()) {\n return; // silently\n }\n\n var objHeight = figure.getHeight();\n var objWidth = figure.getWidth();\n var xPos = figure.getX();\n var yPos = figure.getY();\n\n var r1 = figure.selectionHandles.find(function (handle) {\n return handle.type === 1;\n });\n var r3 = figure.selectionHandles.find(function (handle) {\n return handle.type === 3;\n });\n var r5 = figure.selectionHandles.find(function (handle) {\n return handle.type === 5;\n });\n var r7 = figure.selectionHandles.find(function (handle) {\n return handle.type === 7;\n });\n r1.setPosition(xPos - r1.getWidth(), yPos - r1.getHeight());\n r3.setPosition(xPos + objWidth, yPos - r3.getHeight());\n r5.setPosition(xPos + objWidth, yPos + objHeight);\n r7.setPosition(xPos - r7.getWidth(), yPos + objHeight);\n\n if (!figure.getKeepAspectRatio()) {\n var r2 = figure.selectionHandles.find(function (handle) {\n return handle.type === 2;\n });\n var r4 = figure.selectionHandles.find(function (handle) {\n return handle.type === 4;\n });\n var r6 = figure.selectionHandles.find(function (handle) {\n return handle.type === 6;\n });\n var r8 = figure.selectionHandles.find(function (handle) {\n return handle.type === 8;\n });\n\n r2.setPosition(xPos + objWidth / 2 - r2.getWidth() / 2, yPos - r2.getHeight());\n r4.setPosition(xPos + objWidth, yPos + objHeight / 2 - r4.getHeight() / 2);\n r6.setPosition(xPos + objWidth / 2 - r6.getWidth() / 2, yPos + objHeight);\n r8.setPosition(xPos - r8.getWidth(), yPos + objHeight / 2 - r8.getHeight() / 2);\n }\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/RoundRectangleSelectionFeedbackPolicy.js\":\n/*!********************************************************************!*\\\n !*** ./src/policy/figure/RoundRectangleSelectionFeedbackPolicy.js ***!\n \\********************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @example\n * circle =new draw2d.shape.basic.Circle();\n * circle.installEditPolicy(new draw2d.policy.RoundRectangleSelectionFeedbackPolicy());\n * canvas.add(circle,90,50);\n *\n * canvas.add(new draw2d.shape.basic.Label({text:\"Click on the circle to see the selection feedback\"}),20,10);\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.RectangleSelectionFeedbackPolicy\n */\n_packages2.default.policy.figure.RoundRectangleSelectionFeedbackPolicy = _packages2.default.policy.figure.RectangleSelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.figure.RoundRectangleSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.RoundRectangleSelectionFeedbackPolicy\",\n\n /**\n * Creates a new Router object\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n createResizeHandle: function createResizeHandle(owner, type) {\n return new _packages2.default.ResizeHandle({ owner: owner, type: type, width: 12, height: 12, radius: 4 });\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/SelectionFeedbackPolicy.js\":\n/*!******************************************************!*\\\n !*** ./src/policy/figure/SelectionFeedbackPolicy.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A {@link draw2d.policy.SelectionFeedbackPolicy} that is sensitive to the canvas selection. Subclasses will typically\n * decorate the {@link draw2d.Figure figure} with things like selection handles and/or focus feedback.\n * <br>\n * If you want to change the handle visibility for a figure, then you should use SelectionFeedbackPolicy to do that.\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.DragDropEditPolicy\n */\n_packages2.default.policy.figure.SelectionFeedbackPolicy = _packages2.default.policy.figure.SelectionPolicy.extend(\n/** @lends draw2d.policy.figure.SelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.SelectionFeedbackPolicy\",\n\n /**\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n *\n * @param {draw2d.Figure} figure the unselected figure\n */\n onUnselect: function onUnselect(canvas, figure) {\n this._super(canvas, figure);\n\n figure.selectionHandles.each(function (i, e) {\n return e.hide();\n });\n figure.selectionHandles = new _packages2.default.util.ArrayList();\n },\n\n /**\n * \n * Called by the host if the policy has been installed.\n *\n * @param {draw2d.Figure} figure\n */\n onInstall: function onInstall(figure) {\n this._super(figure);\n\n var canvas = figure.getCanvas();\n if (canvas !== null) {\n if (canvas.getSelection().contains(figure)) {\n this.onSelect(canvas, figure, true);\n }\n }\n },\n\n /**\n * \n * Called by the host if the policy has been uninstalled.\n *\n * @param {draw2d.Figure} figure\n */\n onUninstall: function onUninstall(figure) {\n this._super(figure);\n\n figure.selectionHandles.each(function (i, e) {\n return e.hide();\n });\n figure.selectionHandles = new _packages2.default.util.ArrayList();\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/SelectionPolicy.js\":\n/*!**********************************************!*\\\n !*** ./src/policy/figure/SelectionPolicy.js ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A {@link draw2d.policy.SelectionFeedbackPolicy} that is sensitive to the canvas selection. Subclasses will typically\n * decorate the {@link draw2d.Figure figure} with things like selection handles and/or focus feedback.\n * <br>\n * If you want to change the handle visibility for a figure, then you should use SelectionFeedbackPolicy to do that.\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.DragDropEditPolicy\n */\n_packages2.default.policy.figure.SelectionPolicy = _packages2.default.policy.figure.DragDropEditPolicy.extend(\n/** @lends draw2d.policy.figure.SelectionPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.SelectionPolicy\",\n\n /**\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n *\n * @template\n * @param figure\n * @param isPrimarySelection\n */\n onSelect: function onSelect(canvas, figure, isPrimarySelection) {},\n\n /**\n *\n *\n * @param {draw2d.Figure} figure the unselected figure\n */\n onUnselect: function onUnselect(canvas, figure) {}\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/SlimSelectionFeedbackPolicy.js\":\n/*!**********************************************************!*\\\n !*** ./src/policy/figure/SlimSelectionFeedbackPolicy.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Add only very small resize handles to the figure.\n *\n *\n *\n * @example\n * circle =new draw2d.shape.basic.Circle();\n * circle.installEditPolicy(new draw2d.policy.SlimSelectionFeedbackPolicy());\n * canvas.add(circle,90,50);\n *\n * canvas.add(new draw2d.shape.basic.Label({text:\"Click on the circle to see the selection feedback\"}),20,10);\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.RectangleSelectionFeedbackPolicy\n */\n_packages2.default.policy.figure.SlimSelectionFeedbackPolicy = _packages2.default.policy.figure.RectangleSelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.figure.SlimSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.SlimSelectionFeedbackPolicy\",\n\n /**\n * Creates a new Router object\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n createResizeHandle: function createResizeHandle(owner, type) {\n return new _packages2.default.ResizeHandle({ owner: owner, type: type, width: 6, height: 6, radius: 0 });\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/VBusSelectionFeedbackPolicy.js\":\n/*!**********************************************************!*\\\n !*** ./src/policy/figure/VBusSelectionFeedbackPolicy.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.policy.figure.VBusSelectionFeedbackPolicy = _packages2.default.policy.figure.BusSelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.figure.VBusSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.VBusSelectionFeedbackPolicy\",\n /**\n * Creates a new Router object\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * Callback if the figure has been moved\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n *\n **/\n moved: function moved(canvas, figure) {\n if (figure.selectionHandles.isEmpty()) {\n return; // silently\n }\n\n var r2 = figure.selectionHandles.find(function (handle) {\n return handle.type === 2;\n });\n var r6 = figure.selectionHandles.find(function (handle) {\n return handle.type === 6;\n });\n\n var objWidth = figure.getWidth();\n // adjust the resize handles on the left/right to the new dimension of the shape\n //\n r2.setDimension(objWidth, r2.getHeight());\n r6.setDimension(objWidth, r6.getHeight());\n\n this._super(canvas, figure);\n }\n\n});\n/**\n * @class\n *\n * Selection feedback policy for vertical bus figures.\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.BusSelectionFeedbackPolicy\n */\n\n/***/ }),\n\n/***/ \"./src/policy/figure/VertexSelectionFeedbackPolicy.js\":\n/*!************************************************************!*\\\n !*** ./src/policy/figure/VertexSelectionFeedbackPolicy.js ***!\n \\************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Called by the framework if the user edit the position of a figure with a drag drop operation.\n * Sub class like SelectionEditPolicy or RegionEditPolicy cam adjust th e position of the figure or the selections handles.\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.SelectionFeedbackPolicy\n */\n_packages2.default.policy.figure.VertexSelectionFeedbackPolicy = _packages2.default.policy.figure.SelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.figure.VertexSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.VertexSelectionFeedbackPolicy\",\n\n /**\n * Creates a new Router object\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Connection} connection the selected figure\n * @param {Boolean} isPrimarySelection\n */\n onSelect: function onSelect(canvas, connection, isPrimarySelection) {\n // \tthis._super(canvas, connection, isPrimarySelection);\n\n var points = connection.getVertices();\n for (var i = 0; i < points.getSize(); i++) {\n var handle = new _packages2.default.shape.basic.VertexResizeHandle(connection, i);\n connection.selectionHandles.add(handle);\n handle.setDraggable(connection.isResizeable());\n handle.show(canvas);\n\n if (i !== 0) {\n var _handle = new _packages2.default.shape.basic.GhostVertexResizeHandle(connection, i - 1);\n connection.selectionHandles.add(_handle);\n _handle.setDraggable(connection.isResizeable());\n _handle.show(canvas);\n }\n }\n\n this.moved(canvas, connection);\n },\n\n /**\n *\n * Callback method if the figure has been moved.\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n */\n moved: function moved(canvas, figure) {\n figure.selectionHandles.each(function (i, e) {\n return e.relocate();\n });\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/VerticalEditPolicy.js\":\n/*!*************************************************!*\\\n !*** ./src/policy/figure/VerticalEditPolicy.js ***!\n \\*************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.policy.figure.VerticalEditPolicy = _packages2.default.policy.figure.DragDropEditPolicy.extend(\n/** @lends draw2d.policy.figure.VerticalEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.VerticalEditPolicy\",\n\n /**\n * Creates a new constraint object\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * It is only possible to drag&drop the element in a vertical line\n *\n * @param {draw2d.Figure} figure\n * @param {Number|draw2d.geo.Point} x\n * @param {number} [y]\n * @returns {draw2d.geo.Point} the constraint position of the figure\n */\n adjustPosition: function adjustPosition(figure, x, y) {\n return new _packages2.default.geo.Point(figure.getX(), y);\n }\n\n});\n/**\n * @class\n *\n * An EditPolicy for use with Figures. With this edit policy you can move the shape only in a vertical manner.\n *\n *\n * @example\n * // add some demo figure to the canvas\n * var circle =new draw2d.shape.basic.Circle({diameter:50, x:10, y:30});\n * canvas.add(circle);\n *\n * // add the edit policy to the shape. At this point you can move the shape only\n * // horizontal\n * circle.installEditPolicy(new draw2d.policy.figure.VerticalEditPolicy());\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.figure.DragDropEditPolicy\n */\n\n/***/ }),\n\n/***/ \"./src/policy/figure/WidthSelectionFeedbackPolicy.js\":\n/*!***********************************************************!*\\\n !*** ./src/policy/figure/WidthSelectionFeedbackPolicy.js ***!\n \\***********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * This selection shows only selection handles for the width. It is only possible to change the width\n * of an shaped. The height stays always the same or is recalculated by the figure itself.\n *\n * @example\n * // add some demo figure to the canvas\n * //\n * let shape =new draw2d.shape.basic.Rectangle({width:50, height:100, x:10, y:30});\n * canvas.add(shape);\n *\n * // At this point you can only change the width of the shape\n * //\n * shape.installEditPolicy(new draw2d.policy.figure.WidthSelectionFeedbackPolicy());\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.SelectionFeedbackPolicy\n */\n_packages2.default.policy.figure.WidthSelectionFeedbackPolicy = _packages2.default.policy.figure.SelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.figure.BusSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.BusSelectionFeedbackPolicy\",\n\n /**\n * Creates a new Router object\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * Called by the framework of the Policy should show a resize handle for the given shape\n *\n * @param {draw2d.Canvas} canvas the host of the diagram\n * @param {draw2d.Figure} figure the figure to select\n * @param {Boolean} isPrimarySelection\n */\n onSelect: function onSelect(canvas, figure, isPrimarySelection) {\n if (figure.selectionHandles.isEmpty()) {\n var r4 = new _packages2.default.ResizeHandle({ owner: figure, type: 4 }); // 4 = RIGHT_MIDDLE\n var r8 = new _packages2.default.ResizeHandle({ owner: figure, type: 8 }); // 8 = LEFT_MIDDLE\n\n r4.installEditPolicy(new _packages2.default.policy.figure.HorizontalEditPolicy());\n r8.installEditPolicy(new _packages2.default.policy.figure.HorizontalEditPolicy());\n figure.selectionHandles.add(r4, r8);\n\n r4.setDraggable(figure.isResizeable());\n r8.setDraggable(figure.isResizeable());\n\n r4.show(canvas);\n r8.show(canvas);\n }\n this.moved(canvas, figure);\n },\n\n /**\n *\n * Callback if the figure has been moved\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n *\n * @template\n */\n moved: function moved(canvas, figure) {\n if (figure.selectionHandles.isEmpty()) {\n return; // silently\n }\n var r4 = figure.selectionHandles.find(function (handle) {\n return handle.type === 4;\n });\n var r8 = figure.selectionHandles.find(function (handle) {\n return handle.type === 8;\n });\n\n var objWidth = figure.getWidth();\n\n var xPos = figure.getX();\n var yPos = figure.getY();\n r4.setDimension(r4.getWidth(), figure.getHeight());\n r8.setDimension(r8.getWidth(), figure.getHeight());\n r4.setPosition(xPos + objWidth, yPos);\n r8.setPosition(xPos - r8.getWidth(), yPos);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/line/LineSelectionFeedbackPolicy.js\":\n/*!********************************************************!*\\\n !*** ./src/policy/line/LineSelectionFeedbackPolicy.js ***!\n \\********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.SelectionFeedbackPolicy\n */\n_packages2.default.policy.line.LineSelectionFeedbackPolicy = _packages2.default.policy.figure.SelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.line.LineSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.line.LineSelectionFeedbackPolicy\",\n\n /**\n * Creates a new selection feedback policy for a line or connection\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Called by the framework of the Policy should show a resize handle for the given shape\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n * @param {Boolean} [isPrimarySelection]\n */\n onSelect: function onSelect(canvas, figure, isPrimarySelection) {\n if (figure.selectionHandles.isEmpty()) {\n figure.selectionHandles.add(new _packages2.default.shape.basic.LineStartResizeHandle(figure));\n figure.selectionHandles.add(new _packages2.default.shape.basic.LineEndResizeHandle(figure));\n\n figure.selectionHandles.each(function (i, e) {\n e.setDraggable(figure.isResizeable());\n e.show(canvas);\n });\n }\n this.moved(canvas, figure);\n },\n\n /**\n * \n * Callback method if the figure has been moved.\n *\n * @template\n */\n moved: function moved(canvas, figure) {\n figure.selectionHandles.each(function (i, e) {\n return e.relocate();\n });\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/line/OrthogonalSelectionFeedbackPolicy.js\":\n/*!**************************************************************!*\\\n !*** ./src/policy/line/OrthogonalSelectionFeedbackPolicy.js ***!\n \\**************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _jquery = __webpack_require__(/*! lib/jquery.contextmenu */ \"./src/lib/jquery.contextmenu.js\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _contextmenu = __webpack_require__(/*! css/contextmenu.css */ \"./src/css/contextmenu.css\");\n\nvar _contextmenu2 = _interopRequireDefault(_contextmenu);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Feedback and edit policy for the InteractiveManhattanRouter.\n *\n * @author Andreas Herz\n * @extends draw2d.policy.line.LineSelectionFeedbackPolicy\n */\n// do not delete them\n_packages2.default.policy.line.OrthogonalSelectionFeedbackPolicy = _packages2.default.policy.line.LineSelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.line.OrthogonalSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.line.OrthogonalSelectionFeedbackPolicy\",\n\n /**\n * Creates a new Router object\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n // The ResizeHandle for the Policy. This is inline to avoid that a user want to use them without\n // the right installed policy.\n //\n this.ResizeHandle = _packages2.default.ResizeHandle.extend(\n /** @lends draw2d.policy.line.OrthogonalSelectionFeedbackPolicy.ResizeHandle.prototype */\n {\n\n NAME: \"draw2d.policy.line.OrthogonalSelectionFeedbackPolicy.ResizeHandle\",\n\n init: function init(owner, index) {\n this._super({ owner: owner });\n this.index = index;\n },\n\n /**\n * \n * Called if a drag&drop operation starts.<br>\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @private\n **/\n onDragStart: function onDragStart(x, y, shiftKey, ctrlKey) {\n this._super(x, y, shiftKey, ctrlKey);\n this.command = this.getCanvas().getPrimarySelection().createCommand(new _packages2.default.command.CommandType(_packages2.default.command.CommandType.MOVE_VERTICES));\n\n // Vertex is a reference and not a copy of the point\n this.vertex = this.owner.getVertex(this.index).clone();\n },\n\n /**\n * \n * Called from the framework during a drag&drop operation of the ResizeHandles\n *\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n *\n * @returns {Boolean}\n **/\n onDrag: function onDrag(dx, dy, dx2, dy2) {\n if (this.command == null) {\n return false;\n }\n\n var MINDIST = this.owner.getRouter().MINDIST || 10;\n\n var fromDir = this.owner.getSource().getConnectionDirection(this.owner.getTarget());\n var toDir = this.owner.getTarget().getConnectionDirection(this.owner.getSource());\n\n this.vertex.translate(dx2, dy2);\n\n var vertices = this.owner.getVertices();\n var count = vertices.getSize();\n //shortcut for math operations\n var max = Math.max;\n var min = Math.min;\n\n // Keep in mind: \"p1\" is always the dragged handle in the coding below\n // marked with an '*' in the diagram\n //\n\n // FIRST handle of the connection\n //\n if (this.index === 1) {\n var p0 = vertices.get(this.index - 1); // first vertex of the connection\n var p1 = vertices.get(this.index); // dragged vertex\n var p2 = vertices.get(this.index + 1); // additional neighbor\n\n // vertex alignment to handle:\n //\n // p0 +-----* p1 p1 *------+ p0\n // | |\n // | |\n // + p2 p2 +\n if (p1.x === p2.x && p0.y === p1.y) {\n switch (fromDir) {\n case _packages2.default.geo.Rectangle.DIRECTION_RIGHT:\n // p0 is on the left of p1\n //\n this.owner.setVertex(1, max(p0.x + MINDIST, this.vertex.x), p1.y); // p1\n this.owner.setVertex(2, max(p0.x + MINDIST, this.vertex.x), p2.y); // p2\n break;\n // p0 is on the right of p2\n //\n case _packages2.default.geo.Rectangle.DIRECTION_LEFT:\n this.owner.setVertex(1, min(p0.x - MINDIST, this.vertex.x), p1.y); // p1\n this.owner.setVertex(2, min(p0.x - MINDIST, this.vertex.x), p2.y); // p2\n break;\n }\n }\n\n // vertices alignment to handle:\n //\n // p0 + p1 *--------+ p2\n // | |\n // | |\n // p1 *-----+ p2 p0 +\n else {\n switch (fromDir) {\n case _packages2.default.geo.Rectangle.DIRECTION_UP:\n // p0 is below of p1\n //\n this.owner.setVertex(1, p1.x, min(p0.y - MINDIST, this.vertex.y)); // p1\n this.owner.setVertex(2, p2.x, min(p0.y - MINDIST, this.vertex.y)); // p2\n break;\n // p0 is above of p2\n //\n case _packages2.default.geo.Rectangle.DIRECTION_DOWN:\n this.owner.setVertex(1, p1.x, max(p0.y + MINDIST, this.vertex.y)); // p1\n this.owner.setVertex(2, p2.x, max(p0.y + MINDIST, this.vertex.y)); // p2\n break;\n }\n }\n }\n\n // LAST handle: Only the left hand side sibling can be changed\n //\n else if (this.index === count - 2) {\n var _p = vertices.get(this.index - 1); // neighbor of the dragged vertex\n var _p2 = vertices.get(this.index); // dragged vertex\n var _p3 = vertices.get(this.index + 1); // last vertex of the connection\n\n // vertices with this alignment.\n //\n // p2 +-----* p1 + p0\n // | |\n // | |\n // + p0 p2 +--------* p1\n if (_p3.x === _p2.x && _p.y === _p2.y) {\n switch (toDir) {\n // p0 is below of p1\n case _packages2.default.geo.Rectangle.DIRECTION_UP:\n this.owner.setVertex(count - 2, _p2.x, min(_p3.y - MINDIST, this.vertex.y)); // p1\n this.owner.setVertex(count - 3, _p.x, min(_p3.y - MINDIST, this.vertex.y)); // p2\n break;\n // p0 is above p2\n case _packages2.default.geo.Rectangle.DIRECTION_DOWN:\n this.owner.setVertex(count - 2, _p2.x, max(_p3.y + MINDIST, this.vertex.y)); // p1\n this.owner.setVertex(count - 3, _p.x, max(_p3.y + MINDIST, this.vertex.y)); // p2\n break;\n }\n }\n\n // vertices with this alignment.\n //\n // p2 + p0 +--------* p1\n // | |\n // | |\n // p1 *-----+ p0 p2 +\n else {\n switch (toDir) {\n case _packages2.default.geo.Rectangle.DIRECTION_RIGHT:\n // p0 is on the left of p1\n //\n this.owner.setVertex(count - 2, max(_p3.x + MINDIST, this.vertex.x), _p2.y); // p1\n this.owner.setVertex(count - 3, max(_p3.x + MINDIST, this.vertex.x), _p.y); // p2\n break;\n // p0 is on the right of p2\n //\n case _packages2.default.geo.Rectangle.DIRECTION_LEFT:\n this.owner.setVertex(count - 2, min(_p3.x - MINDIST, this.vertex.x), _p2.y); // p1\n this.owner.setVertex(count - 3, min(_p3.x - MINDIST, this.vertex.x), _p.y); // p2\n break;\n }\n }\n }\n // The resize handle is in the middle of the connection.\n // -> In this case the connection MUST HAVE at least 5 vertices\n //\n else {\n var p_m1 = vertices.get(this.index - 2);\n var _p4 = vertices.get(this.index - 1);\n var _p5 = vertices.get(this.index); // selected DragHandle\n var _p6 = vertices.get(this.index + 1);\n var p3 = vertices.get(this.index + 2);\n\n // vertices alignment to handle\n //\n // . .\n // . .\n // p1 *------->+ p0 p0 +<---------* p1\n // | . . |\n // | . . |\n // p2 | | p2\n // ...+... ......+.....\n //\n if (_p5.x === _p6.x && _p5.y === _p4.y) {\n // Exception handling if the dragged handle (p1) is near by the start of the connection\n // p_m1 is the start of the connection\n // p0 must be the immediate neighbor of p_m1\n //\n if (this.index - 2 === 0) {\n switch (fromDir) {\n case _packages2.default.geo.Rectangle.DIRECTION_RIGHT:\n this.owner.setVertex(this.index - 1, _p4.x, max(this.vertex.y, p_m1.y - MINDIST)); // p0\n this.owner.setVertex(this.index, this.vertex.x, max(this.vertex.y, p_m1.y - MINDIST)); // p1\n this.owner.setVertex(this.index + 1, this.vertex.x, _p6.y); // p2\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_LEFT:\n this.owner.setVertex(this.index - 1, _p4.x, min(this.vertex.y, p_m1.y + MINDIST)); // p0\n this.owner.setVertex(this.index, this.vertex.x, this.vertex.y); // p1\n this.owner.setVertex(this.index + 1, this.vertex.x, _p6.y); // p2\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_UP:\n this.owner.setVertex(this.index - 1, _p4.x, min(this.vertex.y, p_m1.y - MINDIST)); // p0\n this.owner.setVertex(this.index, this.vertex.x, min(this.vertex.y, p_m1.y - MINDIST)); // p1\n this.owner.setVertex(this.index + 1, this.vertex.x, _p6.y); // p2\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_DOWN:\n this.owner.setVertex(this.index - 1, _p4.x, max(this.vertex.y, p_m1.y + MINDIST)); // p0\n this.owner.setVertex(this.index, this.vertex.x, max(this.vertex.y, p_m1.y + MINDIST)); // p1\n this.owner.setVertex(this.index + 1, this.vertex.x, _p6.y); // p2\n break;\n }\n }\n // Exception handling if the dragged handle (p1L) near by the end of the connection\n // p3 is the end of the connection\n //\n else if (this.index - count + 3 === 0) {\n switch (toDir) {\n case _packages2.default.geo.Rectangle.DIRECTION_RIGHT:\n this.owner.setVertex(this.index - 1, _p4.x, this.vertex.y); // p0\n this.owner.setVertex(this.index, max(this.vertex.x, p3.x + MINDIST), this.vertex.y); // p1\n this.owner.setVertex(this.index + 1, max(this.vertex.x, p3.x + MINDIST), _p6.y); // p2\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_LEFT:\n this.owner.setVertex(this.index - 1, _p4.x, this.vertex.y); // p0\n this.owner.setVertex(this.index, min(this.vertex.x, p3.x - MINDIST), this.vertex.y); // p1\n this.owner.setVertex(this.index + 1, min(this.vertex.x, p3.x - MINDIST), _p6.y); // p2\n break;\n }\n } else {\n this.owner.setVertex(this.index - 1, _p4.x, this.vertex.y); // p0\n this.owner.setVertex(this.index, this.vertex); // p1\n this.owner.setVertex(this.index + 1, this.vertex.x, _p6.y); // p2\n }\n }\n // vertices alignment to handle\n //\n // ...+... ...+...\n // p0 | . | p0\n // | . . |\n // | . . |\n // p1 *----------+ p2 p2 +---------* p1\n // . .\n // . .\n else if (_p4.x === _p5.x && _p5.y === _p6.y) {\n // p_m1 is the start of the analyzed segment\n // p0 must be the immediate neighbor of p_m1\n //\n if (this.index - 2 === 0) {\n switch (fromDir) {\n case _packages2.default.geo.Rectangle.DIRECTION_RIGHT:\n this.owner.setVertex(this.index - 1, max(this.vertex.x, p_m1.x + MINDIST), _p4.y); // p0\n this.owner.setVertex(this.index, max(this.vertex.x, p_m1.x + MINDIST), this.vertex.y); // p1\n this.owner.setVertex(this.index + 1, _p6.x, this.vertex.y); // p2\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_LEFT:\n this.owner.setVertex(this.index - 1, min(this.vertex.x, p_m1.x - MINDIST), _p4.y); // p0\n this.owner.setVertex(this.index, min(this.vertex.x, p_m1.x - MINDIST), this.vertex.y); // p1\n this.owner.setVertex(this.index + 1, _p6.x, this.vertex.y); // p2\n break;\n }\n }\n // p3 is the end point\n //\n else if (this.index - count + 3 === 0) {\n switch (toDir) {\n case _packages2.default.geo.Rectangle.DIRECTION_UP:\n this.owner.setVertex(this.index - 1, this.vertex.x, max(this.vertex.y, _p4.y)); // p0\n this.owner.setVertex(this.index, this.vertex.x, min(this.vertex.y, p3.y - MINDIST)); // p1\n this.owner.setVertex(this.index + 1, _p6.x, min(this.vertex.y, p3.y - MINDIST)); // p2\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_DOWN:\n this.owner.setVertex(this.index - 1, this.vertex.x, _p4.y); // p0\n this.owner.setVertex(this.index, this.vertex.x, max(this.vertex.y, p3.y + MINDIST)); // p1\n this.owner.setVertex(this.index + 1, _p6.x, max(this.vertex.y, p3.y + MINDIST)); // p2\n break;\n }\n }\n // just any element in the middle of the connection\n //\n else {\n this.owner.setVertex(this.index - 1, this.vertex.x, _p4.y); // p0\n this.owner.setVertex(this.index, this.vertex); // p1\n this.owner.setVertex(this.index + 1, _p6.x, this.vertex.y); // p2\n }\n }\n }\n\n this.relocate();\n\n // update the command for the undo/redo stuff\n //\n if (this.command !== null) {\n this.command.updateVertices(this.owner.getVertices().clone());\n }\n\n // note that the user has changed the routing manually.\n // This skips the automatic routing.\n this.owner._routingMetaData.routedByUserInteraction = true;\n return true;\n },\n\n /**\n * Called after a drag and drop action.<br>\n * Sub classes can override this method to implement additional stuff. Don't forget to call the super implementation via <code>this._super();</code>\n *\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @returns {Boolean}\n */\n onDragEnd: function onDragEnd(x, y, shiftKey, ctrlKey) {\n var stack = this.getCanvas().getCommandStack();\n\n stack.execute(this.command);\n this.command = null;\n return true;\n },\n\n /**\n * \n * Controls the location of the resize handle\n *\n * @template\n **/\n relocate: function relocate() {\n\n var resizeWidthHalf = this.getWidth() / 2;\n var resizeHeightHalf = this.getHeight() / 2;\n\n var anchor = this.owner.getVertices().get(this.index);\n if (anchor) this.setPosition(anchor.x - resizeWidthHalf, anchor.y - resizeHeightHalf);\n }\n\n });\n },\n\n /**\n * \n *\n * @template\n * @param {draw2d.Connection} connection the selected figure\n * @param {Boolean} isPrimarySelection\n */\n onSelect: function onSelect(canvas, connection, isPrimarySelection) {\n this._super(canvas, connection, isPrimarySelection);\n\n var points = connection.getVertices();\n var i = 1;\n for (; i < points.getSize() - 1; i++) {\n var handle = new this.ResizeHandle(connection, i);\n connection.selectionHandles.add(handle);\n handle.setDraggable(connection.isResizeable());\n handle.show(canvas);\n }\n\n this.moved(canvas, connection);\n },\n\n /**\n * \n * remove the segment with the given index.\n * You must check if it possible to remove the segment before. The method didn'T do any consistency checks.\n *\n * @param conn\n * @param segmentIndex\n */\n removeSegment: function removeSegment(conn, segmentIndex) {\n var PADDING = 10;\n\n var segmentCount = conn.getVertices().getSize() - 1;\n\n var fromPt = conn.getStartPoint();\n var fromDir = conn.getSource().getConnectionDirection(conn.getTarget());\n\n var toPt = conn.getEndPoint();\n var toDir = conn.getTarget().getConnectionDirection(conn.getSource());\n\n var p0 = conn.getVertex(segmentIndex - 1);\n var p1 = conn.getVertex(segmentIndex);\n var p2 = conn.getVertex(segmentIndex + 1);\n var p3 = conn.getVertex(segmentIndex + 2);\n\n // p0 .\n // Es wird ein Horizontales Segment .\n // geloescht. Es muessen somit die Punkte .\n // p0 und p3 neu gesetzt werden. p1 +------*-----+ p2\n // Ihre neue X-Koordinate ist somit in der ^ .\n // Mitte des geloeschten Segmentes newX .\n // . p3\n //\n if (p1.y === p2.y) {\n var _newX = (p1.x + p2.x) / 2;\n // Die neue X-Koordinate muss auf jeden Falls zwischen p-1 und p4 liegen\n //\n if (segmentIndex === 1) {\n switch (fromDir) {\n case _packages2.default.geo.Rectangle.DIRECTION_RIGHT:\n _newX = Math.max(_newX, fromPt.x + PADDING);\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_LEFT:\n _newX = Math.min(_newX, fromPt.x - PADDING);\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_UP:\n _newX = fromPt.x;\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_DOWN:\n _newX = fromPt.x;\n break;\n }\n }\n\n if (segmentIndex === segmentCount - 2) {\n switch (fromDir) {\n case _packages2.default.geo.Rectangle.DIRECTION_RIGHT:\n _newX = Math.max(_newX, toPt.x + PADDING);\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_LEFT:\n _newX = Math.min(_newX, toPt.x - PADDING);\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_UP:\n _newX = toPt.x;\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_DOWN:\n _newX = toPt.x;\n break;\n }\n }\n\n conn.setVertex(segmentIndex - 1, new _packages2.default.geo.Point(_newX, p0.y));\n conn.setVertex(segmentIndex + 2, new _packages2.default.geo.Point(_newX, p3.y));\n\n conn.removeVertexAt(segmentIndex);\n conn.removeVertexAt(segmentIndex);\n conn._routingMetaData.routedByUserInteraction = true;\n }\n\n // p2 p3\n // Es wird ein vertikales Segment +..........+\n // geloescht. Es muessen somit die Punkte |\n // p0 und p3 neu gesetzt werden. |\n // Ihre neue Y-Koordinate ist somit in der |\n // Mitte des geloeschten Segmentes p0 | p1\n // +........+\n //\n else if (p1.x === p2.x) {\n var newY = (p1.y + p2.y) / 2;\n // Die neue Y-Koordinate muss auf jeden Falls zwischen p-1 und p4 liegen\n //\n if (segmentIndex === 1) {\n switch (fromDir) {\n case _packages2.default.geo.Rectangle.DIRECTION_RIGHT:\n case _packages2.default.geo.Rectangle.DIRECTION_LEFT:\n newY = fromPt.y;\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_UP:\n case _packages2.default.geo.Rectangle.DIRECTION_DOWN:\n debugger; // newX is newer read....why did I calculate them?!\n newX = fromPt.x;\n break;\n }\n }\n if (segmentIndex === segmentCount - 2) {\n switch (toDir) {\n case _packages2.default.geo.Rectangle.DIRECTION_RIGHT:\n case _packages2.default.geo.Rectangle.DIRECTION_LEFT:\n newY = toPt.y;\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_UP:\n case _packages2.default.geo.Rectangle.DIRECTION_DOWN:\n debugger; // newX is newer read....why did I calculate them?!\n newX = toPt.x;\n break;\n }\n }\n\n conn.setVertex(segmentIndex - 1, new _packages2.default.geo.Point(p0.x, newY));\n conn.setVertex(segmentIndex + 2, new _packages2.default.geo.Point(p3.x, newY));\n\n conn.removeVertexAt(segmentIndex);\n conn.removeVertexAt(segmentIndex);\n conn._routingMetaData.routedByUserInteraction = true;\n }\n },\n\n /**\n * \n * split the segment with the given index and insert a new segment.\n *\n * @param conn\n * @param segmentIndex\n */\n splitSegment: function splitSegment(conn, segmentIndex, x, y) {\n var segmentCount = conn.getVertices().getSize() - 1;\n var p1 = conn.getVertex(segmentIndex);\n var p2 = conn.getVertex(segmentIndex + 1);\n var length = 40;\n\n // the selected segment is vertical\n //\n if (p1.x === p2.x) {\n conn._routingMetaData.routedByUserInteraction = true;\n // edge case of an ManhattanRouter: One segment. This happens if the source/target on the same x - coordinate\n //\n if (segmentCount === 1) {\n // + p1\n // |\n // np1 +-----+ np2\n // |\n // |\n // np3 +-----+ np3\n // |\n // |\n // + p2\n //\n var newSegLength = p1.getDistance(p2) / 4 / 2;\n var np1 = new _packages2.default.geo.Point(p1.x, y - newSegLength);\n var np2 = new _packages2.default.geo.Point(p2.x + length, y - newSegLength);\n var np3 = new _packages2.default.geo.Point(p2.x + length, y + newSegLength);\n var np4 = new _packages2.default.geo.Point(p2.x, y + newSegLength);\n\n conn.insertVertexAt(segmentIndex + 1, np1);\n conn.insertVertexAt(segmentIndex + 2, np2);\n conn.insertVertexAt(segmentIndex + 3, np3);\n conn.insertVertexAt(segmentIndex + 4, np4);\n } else {\n var _np = new _packages2.default.geo.Point(0, 0);\n var _np2 = new _packages2.default.geo.Point(0, 0);\n // p2 +\n // .\n // np1 +----+ np2\n // .\n // .\n // + p1\n // p1 ist der Startpunkt und darf somit nicht verschoben werden\n //\n if (segmentIndex === 0) {\n _np.y = y;\n _np.x = p1.x;\n _np2.y = y;\n _np2.x = p2.x + length;\n conn.setVertex(segmentIndex + 1, new _packages2.default.geo.Point(_np2.x, p2.y));\n }\n // p2 ist der Schlusspunkt und darf somit nicht veaendert werden\n //\n else if (segmentIndex === segmentCount - 1) {\n _np.y = y;\n _np.x = p1.x - length;\n _np2.y = y;\n _np2.x = p2.x;\n conn.setVertex(segmentIndex, new _packages2.default.geo.Point(_np.x, p1.y));\n } else {\n _np.y = y;\n _np.x = p1.x - length / 2;\n _np2.y = y;\n _np2.x = p2.x + length / 2;\n conn.setVertex(segmentIndex, new _packages2.default.geo.Point(_np.x, p1.y));\n conn.setVertex(segmentIndex + 1, new _packages2.default.geo.Point(_np2.x, p2.y));\n }\n\n conn.insertVertexAt(segmentIndex + 1, _np);\n conn.insertVertexAt(segmentIndex + 2, _np2);\n }\n }\n // the selected segment is horizontal\n //\n else if (p1.y == p2.y) {\n conn._routingMetaData.routedByUserInteraction = true;\n // edge case of an ManhattanRouter: One segment. This happens if the source/target on the same y - coordinate\n //\n if (segmentCount === 1) {\n // np2 +---------+ np3\n // | |\n // --------+np1 np4+--------\n //\n var _newSegLength = p1.getDistance(p2) / 4 / 2;\n var _np3 = new _packages2.default.geo.Point(x - _newSegLength, p1.y);\n var _np4 = new _packages2.default.geo.Point(x - _newSegLength, p1.y - length);\n var _np5 = new _packages2.default.geo.Point(x + _newSegLength, p1.y - length);\n var _np6 = new _packages2.default.geo.Point(x + _newSegLength, p1.y);\n\n conn.insertVertexAt(segmentIndex + 1, _np3);\n conn.insertVertexAt(segmentIndex + 2, _np4);\n conn.insertVertexAt(segmentIndex + 3, _np5);\n conn.insertVertexAt(segmentIndex + 4, _np6);\n } else {\n // p1 np1\n // +.........+\n // |\n // |\n // | np2 p2\n // +.........+\n var _np7 = new _packages2.default.geo.Point(0, 0);\n var _np8 = new _packages2.default.geo.Point(0, 0);\n\n // p1 ist der Startpunkt und darf somit nicht verschoben werden\n //\n if (segmentIndex === 0) {\n _np7.x = x;\n _np7.y = p1.y;\n _np8.x = x;\n _np8.y = p2.y + length;\n conn.setVertex(segmentIndex + 1, new _packages2.default.geo.Point(p2.x, _np8.y));\n }\n // p2 ist der Schlusspunkt und darf somit nicht veaendert werden\n //\n else if (segmentIndex === segmentCount - 1) {\n _np7.x = x;\n _np7.y = p1.y - length;\n _np8.x = x;\n _np8.y = p2.y;\n conn.setVertex(segmentIndex, new _packages2.default.geo.Point(p1.x, _np7.y));\n } else {\n _np7.x = x;\n _np7.y = p1.y - length / 2;\n _np8.x = x;\n _np8.y = p2.y + length / 2;\n conn.setVertex(segmentIndex, new _packages2.default.geo.Point(p1.x, _np7.y));\n conn.setVertex(segmentIndex + 1, new _packages2.default.geo.Point(p2.x, _np8.y));\n }\n conn.insertVertexAt(segmentIndex + 1, _np7);\n conn.insertVertexAt(segmentIndex + 2, _np8);\n }\n }\n },\n\n /**\n * \n * Called if the user press the right mouse on the figure.<br>\n * You can either override the \"onContextMenu\" method of the figure or install an editor policy and override this method.\n * Booth is valid and possible.\n *\n * @param {draw2d.shape.basic.Line} conn the polyline below the mouse\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n * @since 4.4.0\n */\n onRightMouseDown: function onRightMouseDown(conn, x, y, shiftKey, ctrlKey) {\n var _this = this;\n\n var segment = conn.hitSegment(x, y);\n var items = { \"split\": { name: _packages2.default.Configuration.i18n.menu.addSegment } };\n\n if (segment === null) {\n return;\n }\n\n if (conn.getRouter().canRemoveSegmentAt(conn, segment.index)) {\n items.remove = { name: _packages2.default.Configuration.i18n.menu.deleteSegment };\n }\n\n $.contextMenu({\n selector: 'body',\n events: {\n hide: function hide() {\n $.contextMenu('destroy');\n }\n },\n callback: function callback(key, options) {\n switch (key) {\n case \"remove\":\n {\n // deep copy of the vertices of the connection for the command stack to avoid side effects\n var originalVertices = conn.getVertices().clone(true);\n _this.removeSegment(conn, segment.index);\n var newVertices = conn.getVertices().clone(true);\n conn.getCanvas().getCommandStack().execute(new _packages2.default.command.CommandReplaceVertices(conn, originalVertices, newVertices));\n }\n break;\n case \"split\":\n {\n // deep copy of the vertices of the connection for the command stack to avoid side effects\n var _originalVertices = conn.getVertices().clone(true);\n _this.splitSegment(conn, segment.index, x, y);\n var _newVertices = conn.getVertices().clone(true);\n conn.getCanvas().getCommandStack().execute(new _packages2.default.command.CommandReplaceVertices(conn, _originalVertices, _newVertices));\n }\n break;\n default:\n break;\n }\n },\n x: x,\n y: y,\n items: items\n });\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/line/VertexSelectionFeedbackPolicy.js\":\n/*!**********************************************************!*\\\n !*** ./src/policy/line/VertexSelectionFeedbackPolicy.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Feedback and edit policy for the VertexRouter.\n *\n * @author Andreas Herz\n * @extends draw2d.policy.line.LineSelectionFeedbackPolicy\n */\n_packages2.default.policy.line.VertexSelectionFeedbackPolicy = _packages2.default.policy.line.LineSelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.line.VertexSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.line.VertexSelectionFeedbackPolicy\",\n\n /**\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {draw2d.Connection} figure the selected figure\n * @param {Boolean} isPrimarySelection\n */\n onSelect: function onSelect(canvas, figure, isPrimarySelection) {\n var startHandle = new _packages2.default.shape.basic.LineStartResizeHandle(figure);\n var endHandle = new _packages2.default.shape.basic.LineEndResizeHandle(figure);\n figure.selectionHandles.add(startHandle);\n figure.selectionHandles.add(endHandle);\n\n var points = figure.getVertices();\n var count = points.getSize() - 1;\n var i = 1;\n for (; i < count; i++) {\n figure.selectionHandles.add(new _packages2.default.shape.basic.VertexResizeHandle(figure, i));\n figure.selectionHandles.add(new _packages2.default.shape.basic.GhostVertexResizeHandle(figure, i - 1));\n }\n\n figure.selectionHandles.add(new _packages2.default.shape.basic.GhostVertexResizeHandle(figure, i - 1));\n\n figure.selectionHandles.each(function (i, e) {\n e.setDraggable(figure.isResizeable());\n e.show(canvas);\n });\n\n this.moved(canvas, figure);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/port/ElasticStrapFeedbackPolicy.js\":\n/*!*******************************************************!*\\\n !*** ./src/policy/port/ElasticStrapFeedbackPolicy.js ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A draw2d.policy.SelectionFeedbackPolicy that is sensitive to the canvas selection. Subclasses will typically\n * decorate the {@link draw2d.Figure figure} with things like selection handles and/or focus feedback.\n * <br>\n * If you want to change the handle visibility for a figure, then you should use SelectionFeedbackPolicy to do that.\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.DragDropEditPolicy\n */\n_packages2.default.policy.port.ElasticStrapFeedbackPolicy = _packages2.default.policy.port.PortFeedbackPolicy.extend(\n/** @lends draw2d.policy.port.ElasticStrapFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.port.ElasticStrapFeedbackPolicy\",\n\n /**\n * Creates a new Router object\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n this.connectionLine = null;\n },\n\n /**\n *\n * Called by the framework if the related shape has init a drag&drop\n * operation\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @returns {Boolean} return <b>false</b> to send a veto to the drag operation\n */\n onDragStart: function onDragStart(canvas, figure, x, y, shiftKey, ctrlKey) {\n this.connectionLine = new _packages2.default.shape.basic.Line();\n this.connectionLine.setCanvas(canvas);\n this.connectionLine.getShapeElement();\n\n this.onDrag(canvas, figure);\n\n return true;\n },\n\n /**\n *\n * Called by the framework during drag a figure.\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n */\n onDrag: function onDrag(canvas, figure) {\n var x1 = figure.ox + figure.getParent().getAbsoluteX();\n var y1 = figure.oy + figure.getParent().getAbsoluteY();\n\n this.connectionLine.setStartPosition(x1, y1);\n this.connectionLine.setEndPosition(figure.getAbsoluteX(), figure.getAbsoluteY());\n },\n\n /**\n *\n * Called by the framework if the drag drop operation ends.\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onDragEnd: function onDragEnd(canvas, figure, x, y, shiftKey, ctrlKey) {\n this.connectionLine.setCanvas(null);\n this.connectionLine = null;\n },\n\n onHoverEnter: function onHoverEnter(canvas, draggedFigure, hoverFiger) {\n this.connectionLine.setGlow(true);\n hoverFiger.setGlow(true);\n },\n\n onHoverLeave: function onHoverLeave(canvas, draggedFigure, hoverFiger) {\n hoverFiger.setGlow(false);\n this.connectionLine.setGlow(false);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/port/IntrusivePortsFeedbackPolicy.js\":\n/*!*********************************************************!*\\\n !*** ./src/policy/port/IntrusivePortsFeedbackPolicy.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _shifty = __webpack_require__(/*! shifty */ \"./node_modules/shifty/dist/shifty.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.DragDropEditPolicy\n */\n_packages2.default.policy.port.IntrusivePortsFeedbackPolicy = _packages2.default.policy.port.PortFeedbackPolicy.extend(\n/** @lends draw2d.policy.port.IntrusivePortsFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.port.IntrusivePortsFeedbackPolicy\",\n\n /**\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n this.connectionLine = null;\n this.tweenable = null;\n this.growFactor = 2;\n },\n\n /**\n *\n * Called by the framework if the related shape has init a drag&drop\n * operation\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onDragStart: function onDragStart(canvas, figure, x, y, shiftKey, ctrlKey) {\n var allPorts = canvas.getAllPorts().clone();\n\n // filter all candidates for the DropEvent\n //\n allPorts.grep(function (p) {\n return p.NAME !== figure.NAME && p.parent !== figure.parent && p.getSemanticGroup() === figure.getSemanticGroup() || p instanceof _packages2.default.HybridPort || figure instanceof _packages2.default.HybridPort;\n });\n\n var start = 0;\n allPorts.each(function (i, element) {\n if (typeof element.__beforeInflate === \"undefined\") {\n element.__beforeInflate = element.getWidth();\n }\n start = element.__beforeInflate;\n });\n\n // Animate the ports for a visual feedback\n //\n this.tweenable = new _shifty.Tweenable();\n this.tweenable.tween({\n from: { 'size': start },\n to: { 'size': start * this.growFactor },\n duration: 200,\n easing: \"easeOutSine\",\n step: function step(params) {\n allPorts.each(function (i, element) {\n // IMPORTANT shortcut to avoid rendering errors!!\n // performance shortcut to avoid a lot of events and recalculate/routing of all related connections\n // for each setDimension call. Additional the connection is following a port during Drag&Drop operation\n element.shape.attr({ rx: params.size / 2, ry: params.size / 2 });\n element.width = element.height = params.size;\n element.fireEvent(\"resize\");\n });\n }\n });\n\n this.connectionLine = new _packages2.default.shape.basic.Line();\n this.connectionLine.setCanvas(canvas);\n this.connectionLine.getShapeElement();\n this.connectionLine.setDashArray(\"- \");\n this.connectionLine.setColor(\"#30c48a\");\n\n this.onDrag(canvas, figure);\n\n return true;\n },\n\n /**\n *\n * Called by the framework during drag a figure.\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n * @template\n */\n onDrag: function onDrag(canvas, figure) {\n var x1 = figure.ox + figure.getParent().getAbsoluteX();\n var y1 = figure.oy + figure.getParent().getAbsoluteY();\n\n this.connectionLine.setStartPosition(x1, y1);\n this.connectionLine.setEndPosition(figure.getAbsoluteX(), figure.getAbsoluteY());\n },\n\n /**\n *\n * Called by the framework if the drag drop operation ends.\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onDragEnd: function onDragEnd(canvas, figure, x, y, shiftKey, ctrlKey) {\n if (this.tweenable) {\n this.tweenable.stop(true);\n this.tweenable.dispose();\n this.tweenable = null;\n }\n\n var allPorts = canvas.getAllPorts().clone();\n // filter all candidates for the DropEvent\n //\n allPorts.grep(function (p) {\n return p.__beforeInflate;\n });\n\n allPorts.each(function (i, element) {\n // IMPORTANT shortcut to avoid rendering errors!!\n // performance shortcut to avoid a lot of events and recalculate/routing of all related connections\n // for each setDimension call. Additional the connection is following a port during Drag&Drop operation\n element.shape.attr({ rx: element.__beforeInflate / 2, ry: element.__beforeInflate / 2 });\n element.width = element.height = element.__beforeInflate;\n delete element.__beforeInflate;\n });\n this.connectionLine.setCanvas(null);\n this.connectionLine = null;\n },\n\n onHoverEnter: function onHoverEnter(canvas, draggedFigure, hoverFigure) {\n this.connectionLine.setGlow(true);\n hoverFigure.setGlow(true);\n },\n\n onHoverLeave: function onHoverLeave(canvas, draggedFigure, hoverFigure) {\n hoverFigure.setGlow(false);\n if (this.connectionLine === null) {\n debugger;\n }\n this.connectionLine.setGlow(false);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/port/PortFeedbackPolicy.js\":\n/*!***********************************************!*\\\n !*** ./src/policy/port/PortFeedbackPolicy.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Base class for all port feedback policies. Used for grow, highlight or\n * other decorations during drag&drop and connecting of ports.\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.DragDropEditPolicy\n */\n_packages2.default.policy.port.PortFeedbackPolicy = _packages2.default.policy.figure.DragDropEditPolicy.extend(\n/** @lends draw2d.policy.port.PortFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.port.PortFeedbackPolicy\",\n\n /**\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * Called if the dragged port hove another port\n *\n * @param {draw2d.Canvas} canvas\n * @param {draw2d.Port} draggedFigure\n * @param {draw2d.Figure} hoverFigure\n */\n onHoverEnter: function onHoverEnter(canvas, draggedFigure, hoverFigure) {},\n\n /**\n *\n * Fired if the dragged figures leaves the hover figure\n *\n * @param {draw2d.Canvas} canvas\n * @param {draw2d.Port} draggedFigure\n * @param {draw2d.Figure} hoverFigure\n */\n onHoverLeave: function onHoverLeave(canvas, draggedFigure, hoverFigure) {}\n});\n\n/***/ }),\n\n/***/ \"./src/shape/analog/OpAmp.js\":\n/*!***********************************!*\\\n !*** ./src/shape/analog/OpAmp.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Hand drawn arrow which points down left\n *\n *\n * @example\n * let figure = new draw2d.shape.analog.OpAmp({x:10, y:10});\n *\n * canvas.add(figure);\n *\n *\n * @extends draw2d.SVGFigure\n */\n_packages2.default.shape.analog.OpAmp = _packages2.default.SVGFigure.extend(\n/** @lends draw2d.shape.analog.OpAmp.prototype */\n{\n\n NAME: \"draw2d.shape.analog.OpAmp\",\n\n // custom locator for the special design of the OpAmp Input area\n MyInputPortLocator: _packages2.default.layout.locator.PortLocator.extend({\n init: function init() {\n this._super();\n },\n relocate: function relocate(index, port) {\n var parent = port.getParent();\n var calcY = (8 + 18.5 * index) * parent.scaleY;\n this.applyConsiderRotation(port, 1, calcY);\n }\n }),\n\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ stroke: 0, bgColor: \"#f0f0ff\" }, attr), setter, getter);\n\n this.inputLocator = new this.MyInputPortLocator();\n\n this.createPort(\"input\", this.inputLocator);\n this.createPort(\"input\", this.inputLocator);\n\n this.createPort(\"output\");\n },\n\n /**\n * @inheritdoc\n */\n getSVG: function getSVG() {\n return '<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"50\" height=\"50\">' + '<path d=\"m8.2627,0l0,35.36035l31.23926,-17.76025l-31.23926,-17.60011l0,0l0,0.00001zm2.27832,27.36719l4.08105,0m-2.10449,-2.20703l0,4.27979m2.26367,-21.35938l-4.15918,0\" stroke=\"#1B1B1B\" fill=\"none\"/>' + '<line x1=\"0.53516\" y1=\"8\" x2=\"8.21191\" y2=\"8\" stroke=\"#010101\"/>' + '<line x1=\"39.14941\" y1=\"18\" x2=\"45.81055\" y2=\"18\" stroke=\"#010101\" />' + '<line x1=\"0.53516\" y1=\"27\" x2=\"8.21191\" y2=\"27\" stroke=\"#010101\" />' + '</svg>';\n },\n\n /**\n * @inheritdoc\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = attributes || {};\n\n // redirect the backgroundColor to an internal SVG node.\n // In this case only a small part of the shape are filled with the background color\n // and not the complete rectangle/bounding box\n //\n attributes[\"fill\"] = \"none\";\n if (this.bgColor != null) {\n this.svgNodes[0].attr({ fill: this.bgColor.rgba() });\n }\n\n this._super(attributes);\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/analog/ResistorBridge.js\":\n/*!********************************************!*\\\n !*** ./src/shape/analog/ResistorBridge.js ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.analog.ResistorBridge({x:10, y:10});\n *\n * canvas.add(figure);\n *\n *\n * @extends draw2d.SVGFigure\n */\n_packages2.default.shape.analog.ResistorBridge = _packages2.default.SVGFigure.extend(\n/** @lends draw2d.shape.analog.ResistorBridge.prototype */\n{\n\n NAME: \"draw2d.shape.analog.ResistorBridge\",\n\n // custom locator for the special design of the ResistorBridge Input area\n MyInputPortLocator: _packages2.default.layout.locator.PortLocator.extend({\n init: function init() {\n this._super();\n },\n relocate: function relocate(index, figure) {\n var w = figure.getParent().getWidth();\n var h = figure.getParent().getHeight();\n this.applyConsiderRotation(figure, w / 2 + 1, h * index);\n }\n }),\n\n // custom locator for the special design of the ResistorBridge Input area\n MyOutputPortLocator: _packages2.default.layout.locator.PortLocator.extend({\n init: function init() {\n this._super();\n },\n relocate: function relocate(index, figure) {\n var w = figure.getParent().getWidth();\n var h = figure.getParent().getHeight();\n\n this.applyConsiderRotation(figure, w * (index - 2), h / 2);\n }\n }),\n\n /**\n * Create a new instance\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n\n this.inputLocator = new this.MyInputPortLocator();\n this.outputLocator = new this.MyOutputPortLocator();\n\n this.createPort(\"hybrid\", this.inputLocator);\n this.createPort(\"hybrid\", this.inputLocator);\n\n this.createPort(\"hybrid\", this.outputLocator);\n this.createPort(\"hybrid\", this.outputLocator);\n },\n\n /**\n * @inheritdoc\n */\n getSVG: function getSVG() {\n return '<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">' + '<path fill=\"#010101\" stroke=\"#010101\" stroke-miterlimit=\"14.3\" id=\"path12322\" d=\"m47.62207,22.71094l0,0c0.73145,0.73242 0.71777,1.93359 -0.03027,2.68164c-0.74805,0.74951 -1.94922,0.76123 -2.68073,0.0293c-0.73138,-0.73242 -0.71967,-1.93211 0.03033,-2.68115c0.74707,-0.74803 1.94727,-0.76219 2.68066,-0.02979l0,0z\"/>' + '<path fill=\"#010101\" stroke=\"#010101\" stroke-miterlimit=\"14.3\" id=\"path12324\" d=\"m25.84082,0.93115l0,0c0.73145,0.73096 0.71875,1.93359 -0.02832,2.68066c-0.75,0.74951 -1.94922,0.76123 -2.68164,0.0293c-0.73242,-0.73241 -0.71973,-1.93164 0.0293,-2.68065c0.74805,-0.74756 1.94922,-0.76172 2.68066,-0.0293l0,0l0,-0.00002z\"/>' + '<path fill=\"#010101\" stroke=\"#010101\" stroke-miterlimit=\"14.3\" id=\"path12326\" d=\"m25.75098,44.58203l0,0c0.73145,0.73193 0.71875,1.93311 -0.02832,2.68115c-0.75,0.74902 -1.94922,0.76074 -2.68262,0.0293c-0.73145,-0.73193 -0.71973,-1.93262 0.03033,-2.68164c0.74707,-0.74756 1.94922,-0.76123 2.68066,-0.02879l0,0l-0.00006,-0.00002z\"/>' + '<path fill=\"#010101\" stroke=\"#010101\" stroke-miterlimit=\"14.3\" id=\"path12328\" d=\"m3.9707,22.80127l0,0c0.73242,0.73193 0.71777,1.93359 -0.0293,2.68115c-0.74902,0.74951 -1.94922,0.76172 -2.68164,0.0293c-0.73145,-0.73242 -0.71973,-1.93164 0.03027,-2.68115c0.74707,-0.74707 1.94922,-0.76074 2.68066,-0.0293l0,0z\"/>' + '<polyline fill=\"none\" stroke=\"#010101\" id=\"polyline12334\" points=\"24.908203125,45.49267578125 31.71875,38.68310546875 31.2119140625,36.98876953125 34.892578125,37.95703125 33.953125,34.22265625 37.6650390625,35.18359375 36.6767578125,31.52490234375 40.3759765625,32.47314453125 39.873046875,30.52783203125 45.884765625,24.51708984375 \" stroke-miterlimit=\"14.3\"/>' + '<polyline fill=\"#010101\" id=\"polyline12338\" points=\"36.3408203125,23.98876953125 38.146484375,29.55810546875 33.630859375,29.55810546875 35.435546875,23.98779296875 \"/>' + '<line fill=\"none\" stroke=\"#010101\" id=\"line12340\" y2=\"28.90967\" x2=\"35.8877\" y1=\"41.13428\" x1=\"35.88867\" stroke-miterlimit=\"14.3\"/>' + '<polyline fill=\"none\" stroke=\"#010101\" id=\"polyline12346\" points=\"3.2109375,23.79248046875 10.01953125,16.98388671875 9.513671875,15.2890625 13.193359375,16.25732421875 12.251953125,12.5234375 15.9658203125,13.48486328125 14.9775390625,9.82568359375 18.6767578125,10.7734375 18.173828125,8.82958984375 24.185546875,2.81787109375 \" stroke-miterlimit=\"14.3\"/>' + '<polyline fill=\"#010101\" id=\"polyline12350\" points=\"13.126953125,23.80419921875 11.3212890625,18.236328125 15.8369140625,18.236328125 14.0322265625,23.806640625 \"/>' + '<line fill=\"none\" stroke=\"#010101\" id=\"line12352\" y2=\"18.8833\" x2=\"13.58008\" y1=\"6.65967\" x1=\"13.5791\" stroke-miterlimit=\"14.3\"/>' + '<polyline fill=\"none\" stroke=\"#010101\" id=\"polyline12358\" points=\"46.65625,24.33642578125 39.84765625,17.52783203125 38.154296875,18.033203125 39.1220703125,14.353515625 35.3876953125,15.29345703125 36.34765625,11.58056640625 32.689453125,12.56884765625 33.6376953125,8.86865234375 31.6923828125,9.373046875 24.322265625,2.00341796875 \" stroke-miterlimit=\"14.3\"/>' + '<polyline fill=\"#010101\" id=\"polyline12362\" points=\"36.578125,1.87109375 38.3828125,7.439453125 33.8681640625,7.439453125 35.6728515625,1.869140625 \"/>' + '<line fill=\"none\" stroke=\"#010101\" id=\"line12364\" y2=\"6.7915\" x2=\"36.125\" y1=\"19.01758\" x1=\"36.125\" stroke-miterlimit=\"14.3\"/>' + '<polyline fill=\"none\" stroke=\"#010101\" id=\"polyline12370\" points=\"24.494140625,46.49951171875 17.685546875,39.69091796875 15.9921875,40.1953125 16.958984375,36.515625 13.2265625,37.45556640625 14.185546875,33.7421875 10.52734375,34.73193359375 11.474609375,31.03125 9.529296875,31.53515625 2.1611328125,24.166015625 \" stroke-miterlimit=\"14.3\"/>' + '<polyline fill=\"#010101\" id=\"polyline12374\" points=\"12.150390625,44.80029296875 10.34765625,39.23193359375 14.861328125,39.23095703125 13.0556640625,44.80224609375 \"/>' + '<line fill=\"none\" stroke=\"#010101\" id=\"line12376\" y2=\"39.87891\" x2=\"12.60352\" y1=\"27.6543\" x1=\"12.60352\" stroke-miterlimit=\"14.3\"/>' + '</svg>';\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/analog/ResistorVertical.js\":\n/*!**********************************************!*\\\n !*** ./src/shape/analog/ResistorVertical.js ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.analog.ResistorVertical({x:10, y:10});\n *\n * canvas.add(figure);\n *\n *\n * @extends draw2d.SVGFigure\n */\n_packages2.default.shape.analog.ResistorVertical = _packages2.default.SetFigure.extend(\n/** @lends draw2d.shape.analog.ResistorVertical.prototype */\n{\n\n NAME: \"draw2d.shape.analog.ResistorVertical\",\n\n // custom locator for the special design of the Input area\n MyInputPortLocator: _packages2.default.layout.locator.PortLocator.extend({\n init: function init() {\n this._super();\n },\n relocate: function relocate(index, figure) {\n var w = figure.getParent().getWidth();\n var h = figure.getParent().getHeight();\n this.applyConsiderRotation(figure, w / 2, h);\n }\n }),\n\n // custom locator for the special design of the Output area\n MyOutputPortLocator: _packages2.default.layout.locator.PortLocator.extend({\n init: function init() {\n this._super();\n },\n relocate: function relocate(index, figure) {\n var w = figure.getParent().getWidth();\n this.applyConsiderRotation(figure, w / 2, 0);\n }\n }),\n\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n\n this._super(extend({ width: 30, height: 50, bgColor: null }, attr), setter, getter);\n\n this.inputLocator = new this.MyInputPortLocator();\n this.outputLocator = new this.MyOutputPortLocator();\n\n this.createPort(\"hybrid\", this.inputLocator);\n this.createPort(\"hybrid\", this.outputLocator);\n },\n\n /**\n * @inheritdoc\n */\n createSet: function createSet() {\n var set = this._super();\n\n set.push(this.canvas.paper.path(\"M15,0 L15,5 L0,7.5 L30,10 L0,15 L30,20 L0,25 L30,30 L15,32.5 L15,40\"));\n\n return set;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/analog/VoltageSupplyHorizontal.js\":\n/*!*****************************************************!*\\\n !*** ./src/shape/analog/VoltageSupplyHorizontal.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.analog.VoltageSupplyHorizontal({x:10, y:10});\n *\n * canvas.add(figure);\n *\n *\n * @extends draw2d.SVGFigure\n */\n_packages2.default.shape.analog.VoltageSupplyHorizontal = _packages2.default.SVGFigure.extend(\n/** @lends draw2d.shape.analog.VoltageSupplyHorizontal.prototype */\n{\n\n NAME: \"draw2d.shape.analog.VoltageSupplyHorizontal\",\n\n // custom locator for the special design of the Input area\n MyInputPortLocator: _packages2.default.layout.locator.PortLocator.extend({\n init: function init() {\n this._super();\n },\n relocate: function relocate(index, figure) {\n var h = figure.getParent().getHeight();\n this.applyConsiderRotation(figure, 0, h / 2);\n }\n }),\n\n // custom locator for the special design of the Output area\n MyOutputPortLocator: _packages2.default.layout.locator.PortLocator.extend({\n init: function init() {\n this._super();\n },\n relocate: function relocate(index, figure) {\n var w = figure.getParent().getWidth();\n var h = figure.getParent().getHeight();\n this.applyConsiderRotation(figure, w, h / 2);\n }\n }),\n\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 30 }, attr), setter, getter);\n\n this.createPort(\"hybrid\", new this.MyInputPortLocator()); // GND\n this.createPort(\"hybrid\", new this.MyOutputPortLocator()); // VCC\n },\n\n /**\n * @inheritdoc\n */\n getSVG: function getSVG() {\n return '<svg width=\"49\" height=\"28\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">' + '<path d=\"m24.99933,18.95592l0,-9.54576m-5.78374,-9.40907l0,28.35939m-5.78718,-9.40457l0,-9.54576m-5.78374,-9.40907l0,28.35939\" id=\"path10566\" stroke-miterlimit=\"14.3\" stroke=\"#010101\" fill=\"none\"/>' + '<path d=\"m26.79878,14.13039l6.90583,0m-33.22691,0l6.90583,0\" id=\"path10568\" stroke-miterlimit=\"14.3\" stroke-linecap=\"square\" stroke=\"#010101\" fill=\"none\"/>' + '</svg>';\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/analog/VoltageSupplyVertical.js\":\n/*!***************************************************!*\\\n !*** ./src/shape/analog/VoltageSupplyVertical.js ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.analog.VoltageSupplyVertical({x:10, y:10});\n *\n * canvas.add(figure);\n *\n *\n * @extends draw2d.SVGFigure\n */\n_packages2.default.shape.analog.VoltageSupplyVertical = _packages2.default.SVGFigure.extend(\n/** @lends draw2d.shape.analog.VoltageSupplyVertical.prototype */\n{\n\n NAME: \"draw2d.shape.analog.VoltageSupplyVertical\",\n\n // custom locator for the special design of the Input area\n MyInputPortLocator: _packages2.default.layout.locator.PortLocator.extend({\n init: function init() {\n this._super();\n },\n relocate: function relocate(index, figure) {\n var w = figure.getParent().getWidth();\n var h = figure.getParent().getHeight();\n this.applyConsiderRotation(figure, w / 2, h);\n }\n }),\n\n // custom locator for the special design of the Output area\n MyOutputPortLocator: _packages2.default.layout.locator.PortLocator.extend({\n init: function init() {\n this._super();\n },\n relocate: function relocate(index, figure) {\n var w = figure.getParent().getWidth();\n this.applyConsiderRotation(figure, w / 2, 0);\n }\n }),\n\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 30, height: 50 }, attr), setter, getter);\n\n this.inputLocator = new this.MyInputPortLocator();\n this.outputLocator = new this.MyOutputPortLocator();\n\n this.createPort(\"hybrid\", this.inputLocator); // GND\n this.createPort(\"hybrid\", this.outputLocator); // VCC\n },\n\n /**\n * @inheritdoc\n */\n getSVG: function getSVG() {\n return '<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">' + '<path d=\"m19.62398,12.37594l-9.87926,0m-9.74355,8.22145l29.36289,0m-9.74007,8.22469l-9.87927,0m-9.74355,8.22145l29.36289,0\" id=\"path10560\" stroke-miterlimit=\"14.3\" stroke=\"#010101\" fill=\"none\"/>' + '<path d=\"m14.63157,9.81646l0,-9.81646m0,47.2328l0,-9.81646\" id=\"path10562\" stroke-miterlimit=\"14.3\" stroke-linecap=\"square\" stroke=\"#010101\" fill=\"none\"/>' + '</svg>';\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/arrow/CalligrapherArrowDownLeft.js\":\n/*!******************************************************!*\\\n !*** ./src/shape/arrow/CalligrapherArrowDownLeft.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Hand drawn arrow which points down left\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.arrow.CalligrapherArrowDownLeft({x:10,y:10, color:\"#3d3d3d\"});\n *\n * canvas.add(figure);\n *\n *\n * @extends draw2d.SVGFigure\n */\n_packages2.default.shape.arrow.CalligrapherArrowDownLeft = _packages2.default.SVGFigure.extend(\n/** @lends draw2d.shape.arrow.CalligrapherArrowDownLeft.prototype */\n{\n\n NAME: \"draw2d.shape.arrow.CalligrapherArrowDownLeft\",\n\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(attr);\n },\n\n getSVG: function getSVG() {\n return '<svg width=\"180\" height=\"300\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">' + ' <path style=\"fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none\" id=\"path3084\" d=\"m 159.63578,17.846597 c 0.43137,9.44641 -0.0636,18.88035 -0.8284,28.30165 c -1.73211,18.38336 -4.05381,36.71698 -6.08253,55.075313 c -1.61738,13.7075 -3.03402,27.43467 -3.97611,41.19113 c -1.09101,11.16584 -1.31019,22.36559 -1.28541,33.56466 c -0.1328,4.82188 0.3218,9.6468 0.14332,14.46812 c -0.0888,2.39977 -0.28315,3.73625 -0.55012,6.12095 c -0.85848,4.73147 -2.27416,9.40019 -4.7769,13.68272 c -1.47003,2.51544 -3.78493,5.6647 -5.47739,8.05048 c -5.02888,6.66256 -11.08555,12.65652 -18.10552,17.75963 c -4.23302,3.07716 -7.74942,5.12065 -12.22081,7.86298 c -13.253319,6.72606 -25.889792,15.11686 -40.84124,18.60576 c -3.016829,0.7039 -4.431417,0.8157 -7.450859,1.2076 c -6.983246,0.5774 -14.009174,0.3375 -21.010676,0.2509 c -3.278795,-0.033 -6.55749,0.01 -9.835897,0.045 c 0,0 20.838833,-13.2364 20.838833,-13.2364 l 0,0 c 3.147056,0.093 6.294483,0.1852 9.443646,0.2007 c 6.966697,0.011 13.971433,0.1301 20.897176,-0.6344 c 3.732439,-0.5577 7.321215,-1.2431 10.881203,-2.4145 c 1.517208,-0.4992 5.830867,-2.43339 4.487902,-1.6386 c -6.098183,3.6088 -25.104875,12.8748 -9.52514,5.223 c 4.40875,-2.5927 8.262057,-4.7459 12.425175,-7.65986 c 6.839117,-4.78709 12.633657,-10.50427 17.500607,-16.86761 c 2.53518,-3.56692 5.24684,-7.12748 7.07617,-11.03446 c 1.42357,-3.0404 2.21532,-6.28727 2.91146,-9.50152 c 0.91919,-6.88822 1.03991,-13.81392 1.25118,-20.74151 c 0.47683,-11.27871 0.96259,-22.55877 1.61689,-33.83062 c 1.21127,-14.03392 3.64191,-27.94339 5.46543,-41.92167 c 2.26899,-18.186603 4.6835,-36.384373 5.4487,-54.679643 c 0.0788,-2.46092 0.23808,-4.92087 0.23618,-7.38276 c -0.005,-6.45916 -0.62194,-13.00218 -2.13821,-19.32664 c 0,0 23.48134,-10.73998 23.48134,-10.73998 z\" inkscape:connector-curvature=\"0\" />' + ' <path style=\"fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none\" id=\"path3086\" d=\"m 41.271518,252.40239 c 2.465518,-0.7264 4.879503,-1.7726 7.145328,-2.9859 c 0.955597,-0.5117 3.736822,-2.1986 2.791991,-1.6673 c -5.218817,2.9348 -10.409826,5.9187 -15.61474,8.878 c 5.366557,-3.4898 10.227818,-7.6685 14.119927,-12.75576 c 3.507157,-5.09382 4.097613,-11.17122 4.301158,-17.17644 c 0.02635,-3.95844 -0.31227,-7.90612 -0.635377,-11.84752 c 0,0 19.920693,-10.3059 19.920693,-10.3059 l 0,0 c 0.171761,4.05015 0.409899,8.09777 0.50079,12.15101 c -0.185739,6.23619 -0.347804,12.66862 -3.492579,18.24747 c -0.503375,0.75197 -0.961922,1.53596 -1.510126,2.25591 c -3.478528,4.56826 -8.226837,8.04586 -12.757403,11.47443 c -7.345206,4.3297 -14.671333,8.692 -22.035619,12.9891 c -3.551305,2.0723 -7.368692,3.8726 -11.394645,4.7773 c 0,0 18.660602,-14.0344 18.660602,-14.0344 z\" inkscape:connector-curvature=\"0\" />' + ' <path style=\"fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none\" id=\"path3088\" d=\"m 37.815923,255.49919 c 3.41111,0.1581 6.814569,0.2213 10.182693,0.8184 c 6.92998,2.6928 13.533527,6.2357 20.043462,9.8162 c 3.912139,2.1362 7.91195,4.4644 10.690321,8.0298 c 1.039962,1.2802 1.510411,2.7604 1.893523,4.3313 c 0,0 -20.370847,10.9259 -20.370847,10.9259 l 0,0 c -0.225419,-1.2711 -0.55067,-2.4558 -1.329618,-3.5184 c -2.332229,-3.3633 -5.869056,-5.6279 -9.247191,-7.8233 c -6.335066,-3.7106 -12.98611,-7.1834 -20.232784,-8.6836 c -3.497247,-0.3814 -7.011372,-0.4307 -10.521829,-0.1703 c 0,0 18.89227,-13.726 18.89227,-13.726 z\" inkscape:connector-curvature=\"0\" />' + '</svg>';\n },\n\n /**\n *\n * propagate all attributes like color, stroke,... to the shape element\n **/\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n if (this.svgNodes !== null) {\n this.svgNodes.attr({ fill: this.color.rgba() });\n }\n\n this._super(attributes);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/arrow/CalligrapherArrowLeft.js\":\n/*!**************************************************!*\\\n !*** ./src/shape/arrow/CalligrapherArrowLeft.js ***!\n \\**************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Hand drawn arrow to the left.\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.arrow.CalligrapherArrowLeft({x:10, y:10, color:\"#3d3d3d\"});\n *\n * canvas.add(figure);\n *\n * @extends draw2d.SVGFigure\n */\n_packages2.default.shape.arrow.CalligrapherArrowLeft = _packages2.default.SVGFigure.extend(\n/** @lends draw2d.shape.arrow.CalligrapherArrowLeft.prototype */\n{\n NAME: \"draw2d.shape.arrow.CalligrapherArrowLeft\",\n\n /**\n * Creates a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(attr);\n },\n\n getSVG: function getSVG() {\n return '<svg width=\"230\" height=\"60\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">' + ' <path style=\"fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none\" id=\"path3024\" d=\"m 218.87943,27.464763 c -1.21088,-0.0563 -2.42064,-0.14616 -3.63262,-0.16893 c -5.82495,-0.10948 -18.61676,-0.0226 -22.97385,0.0122 c -7.12848,0.057 -14.25673,0.14021 -21.38495,0.22333 c -9.03765,0.10539 -18.07511,0.22813 -27.11266,0.3422 c -10.2269,0.11878 -20.4538,0.23756 -30.6807,0.35634 c -35.488759,0.4089 -70.975849,0.82793 -106.4669238,0.95195 c 0,0 7.9718628,-5.70244 7.9718628,-5.70244 l 0,0 c 6.374241,0.28694 12.745594,0.64561 19.122722,0.86083 c 28.09499,0.94816 56.21338,0.92473 84.315959,0.32205 c 10.51273,-0.32805 21.0288,-0.56402 31.53819,-0.98412 c 27.47361,-1.09824 54.91405,-2.91665 82.28177,-5.53697 c 0,0 -12.9788,9.32351 -12.9788,9.32351 z\" inkscape:connector-curvature=\"0\" />' + ' <path style=\"fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none\" id=\"path3026\" d=\"m 100.75066,1.6309831 c -7.165239,3.9571 -14.284929,7.47866 -22.036659,10.2707299 c -5.00195,1.80163 -10.10374,3.31886 -15.2402,4.79424 c -8.25878,2.37815 -16.55626,4.65805 -24.9012,6.79479 c -2.89107,0.71593 -5.74687,1.56407 -8.66266,2.20424 c -3.211679,0.70512 -6.49468,1.17333 -9.752959,1.6747 c -5.447101,0.92112 -10.9044008,1.81762 -16.3983488,2.50082 c -1.608931,0.0814 -0.850754,0.10697 -2.275834,-0.0365 C 20.004071,21.041553 19.256899,21.517873 32.515691,19.216243 c 6.21537,-1.05913 12.34875,-2.37668 18.3945,-4.03234 c 8.12719,-2.02803 16.23765,-4.1157 24.26421,-6.4321199 c 5.23574,-1.55053 10.41682,-3.15473 15.46857,-5.12875 c 1.38953,-0.54295 2.7579,-1.12682 4.12253,-1.71603 c 0.98421,-0.42496 3.86537,-1.81801999 2.92296,-1.32600999 C 93.642191,2.6934931 89.529511,4.7073031 85.450031,6.7704531 l 15.300629,-5.1394 z\" inkscape:connector-curvature=\"0\" sodipodi:nodetypes=\"csccsccccccsssccc\" />' + ' <path style=\"fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none\" id=\"path3028\" d=\"m 80.764281,58.068863 c -2.45498,-3.50762 -6.58178,-6.10525 -10.40324,-8.66732 c -4.30614,-2.72676 -7.93958,-6.28283 -12.6021,-8.28702 c -7.39912,-4.50257 -11.70055,-7.85592 -20.85866,-9.23429 c -4.9257,-0.85706 -17.294247,-1.32043 -22.226462,-2.15427 c -3.445882,-0.42869 -6.2035918,0.70541 -9.6845138,0.57715 c -1.496337,-0.0586 -2.99355,-0.0965 -4.491229,-0.12472 l 13.9525278,-6.24562 l 3.25,-1.17153 c 1.441459,0.0813 -1.116338,0.15309 0.325505,0.23016 c 3.574557,0.17902 7.211864,0.0695 10.712655,0.73822 c 4.723107,1.08097 9.443947,2.1624 14.234177,3.05317 c 2.76739,0.64203 3.92627,0.87082 6.64127,1.66289 c 4.42146,1.28993 8.60075,3.01513 12.86503,4.58129 c 1.90199,0.73446 5.05193,1.93181 6.89302,2.7216 c 4.92005,2.11061 9.5916,4.57045 13.9716,7.31023 c 4.16708,2.62011 8.48023,5.20033 11.72012,8.56863 z\" inkscape:connector-curvature=\"0\" sodipodi:nodetypes=\"ccccccccccccscsccc\" />' + '</svg>';\n },\n\n /**\n *\n * propagate all attributes like color, stroke,... to the shape element\n **/\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n if (this.svgNodes !== null) {\n this.svgNodes.attr({ fill: this.color.rgba() });\n }\n\n this._super(attributes);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/Arc.js\":\n/*!********************************!*\\\n !*** ./src/shape/basic/Arc.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Oval figure.\n * @example\n *\n * let arc = new draw2d.shape.basic.Arc({diameter:150, x:50, y:10, startAngle:0, endAngle:45});\n *\n * canvas.add(arc);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.VectorFigure\n */\n_packages2.default.shape.basic.Arc = _packages2.default.SetFigure.extend(\n/** @lends draw2d.shape.basic.Arc.prototype */\n{\n\n NAME: \"draw2d.shape.basic.Arc\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.startAngle = 180;\n this.endAngle = 360;\n\n this._super((0, _extend2.default)({ width: 80, height: 50, bgColor: null, color: \"#1B1B1B\" }, attr), setter, getter);\n this.strokeScale = false; // scale the stroke width of the children nodes if the parent resize\n },\n\n /**\n * @template\n **/\n createSet: function createSet() {\n this.canvas.paper.setStart();\n\n var flag = this.endAngle - this.startAngle > 180;\n var a1 = this.startAngle % 360 * Math.PI / 180;\n var a2 = this.endAngle % 360 * Math.PI / 180;\n\n var w2 = this.getWidth() / 2;\n var h2 = this.getHeight() / 2;\n\n this.canvas.paper.path([[\"M\", w2, h2, \"l\", w2 * Math.cos(a1), h2 * Math.sin(a1), \"A\", w2, h2, 0, +flag, 1, w2 + w2 * Math.cos(a2), h2 + h2 * Math.sin(a2), \"z\"]].join(\"\")).attr({ \"fill\": \"#fff0f0\" });\n\n return this.canvas.paper.setFinish();\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/Circle.js\":\n/*!***********************************!*\\\n !*** ./src/shape/basic/Circle.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * A circle figure with basic background and stroke API. <br>\n * A circle can not be streched. <strong>The aspect ration is always 1:1</strong>.\n *\n *\n * @example\n *\n * let shape = new draw2d.shape.basic.Circle({x:40,y:10, stroke:3, color:\"#3d3d3d\", bgColor:\"#3dff3d\"});\n *\n * canvas.add(shape);\n *\n *\n * @author Andreas Herz\n * @extends draw2d.shape.basic.Oval\n */\n_packages2.default.shape.basic.Circle = _packages2.default.shape.basic.Oval.extend(\n/** @lends draw2d.shape.basic.Circle.prototype */\n{\n\n NAME: \"draw2d.shape.basic.Circle\",\n\n /**\n *\n * @param {Object} [attr] the configuration of the shape\n * @param {Object} [setter] add or replace setter methods\n * @param {Object} [getter] add or replace getter methods\n **/\n init: function init(attr, setter, getter) {\n this._super(attr, (0, _extend2.default)({\n // @attr {Number} diameter the diameter of the circle */\n diameter: this.setDiameter,\n // @attr {Number} radius the radius of the circle */\n radius: this.setRadius\n }, setter), (0, _extend2.default)({\n diameter: this.getDiameter,\n radius: this.getRadius\n }, getter));\n\n this.setKeepAspectRatio(true);\n },\n\n /**\n *\n * Set the diameter of the circle. The center of the circle will be retained.\n *\n * @param {Number} d The new diameter of the circle.\n * @since 4.0.0\n * @returns {this}\n **/\n setDiameter: function setDiameter(d) {\n var center = this.getCenter();\n this.setDimension(d, d);\n this.setCenter(center);\n this.fireEvent(\"change:diameter\", { value: d });\n\n return this;\n },\n\n /**\n *\n * Get the diameter of the circle.\n *\n * @since 4.0.0\n * @returns {Number} the diameter of the circle\n **/\n getDiameter: function getDiameter() {\n return this.getWidth();\n },\n\n /**\n *\n * Set the radius of the circle. The center of the circle will be retained.\n *\n * @param {Number} r The new radius of the circle.\n * @since 4.0.0\n * @returns {this}\n **/\n setRadius: function setRadius(r) {\n this.setDiameter(r * 2);\n this.fireEvent(\"change:radius\", { value: r });\n\n return this;\n },\n\n /**\n * Get the radius of the circle\n *\n * @returns {Number} the radius of the circle\n */\n getRadius: function getRadius() {\n return this.getWidth / 2;\n },\n\n /**\n * @inheritdoc\n * @returns {Object}\n */\n getPersistentAttributes: function getPersistentAttributes() {\n var memento = this._super();\n // delete the radius attribute of the parent. Because the \"radius\" is the corner radius\n // of the shape and not the \"radius\" of the circle. Design flaw. :-/\n delete memento.radius;\n\n return memento;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/Diamond.js\":\n/*!************************************!*\\\n !*** ./src/shape/basic/Diamond.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * A Diamond Figure.\n *\n *\n * @example\n *\n * let d1 = new draw2d.shape.basic.Diamond({x:10,y:10});\n * let d2 = new draw2d.shape.basic.Diamond({x:100,y:10, bgColor:\"#f0f000\", alpha:0.7, width:100, height:60});\n *\n * canvas.add(d1);\n * canvas.add(d2);\n *\n * canvas.setCurrentSelection(d2);\n *\n * @author Andreas Herz\n * @extends draw2d.VectorFigure\n */\n_packages2.default.shape.basic.Diamond = _packages2.default.shape.basic.Polygon.extend(\n/** @lends draw2d.shape.basic.Diamond.prototype */\n{\n\n NAME: \"draw2d.shape.basic.Diamond\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ bgColor: \"#00a3f6\", color: \"#1B1B1B\" }, attr), setter, getter);\n\n var pos = this.getPosition();\n\n this.resetVertices();\n\n var box = this.getBoundingBox();\n this.addVertex(box.w / 2, 0); // Go to the top center..\n this.addVertex(box.w, box.h / 2); // ...draw line to the right middle\n this.addVertex(box.w / 2, box.h); // ...bottom center...\n this.addVertex(0, box.h / 2); // ...left middle...\n\n // override the selection handler from the polygon. Because the vertices of\n // the diamond are not selectable and modifiable\n //\n this.installEditPolicy(new _packages2.default.policy.figure.RectangleSelectionFeedbackPolicy());\n\n this.setPosition(pos);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/GhostVertexResizeHandle.js\":\n/*!****************************************************!*\\\n !*** ./src/shape/basic/GhostVertexResizeHandle.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * ResizeHandle for a vertex edit policy. Click of this kind of resize handles\n * adds a new vertex to the polyline or polygon.\n *\n *\n * @author Andreas Herz\n * @extends draw2d.shape.basic.LineResizeHandle\n */\n_packages2.default.shape.basic.GhostVertexResizeHandle = _packages2.default.shape.basic.LineResizeHandle.extend(\n/** @lends draw2d.shape.basic.GhostVertexResizeHandle.prototype */\n{\n\n NAME: \"draw2d.shape.basic.GhostVertexResizeHandle\",\n\n /**\n *\n *\n */\n init: function init(owner, precursorIndex) {\n this.maxOpacity = 0.35;\n this.precursorIndex = precursorIndex;\n\n this._super({ owner: owner, opacity: this.maxOpacity });\n },\n\n createShapeElement: function createShapeElement() {\n var shape = this._super();\n\n shape.attr({ \"cursor\": \"pointer\" });\n\n return shape;\n },\n\n /**\n *\n * Set the alpha blending of this figure.\n *\n * @param {Number} percent Value between [0..1].\n * @template\n **/\n setAlpha: function setAlpha(percent) {\n this._super(Math.min(this.maxOpacity, Math.max(0, parseFloat(percent))));\n\n return this;\n },\n\n /**\n *\n * Called when a user clicks on the element\n *\n * @template\n */\n onClick: function onClick() {\n var cmd = new _packages2.default.command.CommandAddVertex(this.owner, this.precursorIndex + 1, this.getAbsoluteX() + this.getWidth() / 2, this.getAbsoluteY() + this.getHeight() / 2);\n this.getCanvas().getCommandStack().execute(cmd);\n },\n\n /**\n * Called if the drag and drop action begins. You can return [false] if you\n * want avoid the that the figure can be move.\n *\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @type {Boolean}\n **/\n onDragStart: function onDragStart(x, y, shiftKey, ctrlKey) {\n return true;\n },\n\n /**\n *\n * Called from the framework during a drag&drop operation\n *\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @returns {Boolean}\n **/\n onDrag: function onDrag(dx, dy, dx2, dy2) {\n return true;\n },\n\n /**\n * Called after a drag and drop action.<br>\n * Sub classes can override this method to implement additional stuff. Don't forget to call the super implementation via <code>this._super();</code>\n *\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @returns {Boolean}\n */\n onDragEnd: function onDragEnd(x, y, shiftKey, ctrlKey) {\n // fire an event\n // @since 5.3.3\n this.fireEvent(\"dragend\", { x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n\n return true;\n },\n\n /**\n *\n * Controls the location of the resize handle\n *\n * @template\n **/\n relocate: function relocate() {\n var p1 = this.owner.getVertices().get(this.precursorIndex);\n var p2 = this.owner.getVertices().get(this.precursorIndex + 1);\n\n this.setPosition((p2.x - p1.x) / 2 + p1.x - this.getWidth() / 2, (p2.y - p1.y) / 2 + p1.y - this.getHeight() / 2);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/Image.js\":\n/*!**********************************!*\\\n !*** ./src/shape/basic/Image.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Simple Image shape.\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.node.Node\n */\n_packages2.default.shape.basic.Image = _packages2.default.shape.node.Node.extend(\n/** @lends draw2d.shape.basic.Image.prototype */\n{\n\n NAME: \"draw2d.shape.basic.Image\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(attr, (0, _extend2.default)({\n // @attr {String} path the image path (absolute or relative) of the shape */\n path: this.setPath\n }, setter), (0, _extend2.default)({\n path: this.getPath\n }, getter));\n },\n\n /**\n * \n * Set the image path attribute of the Image shape and repaint them.\n * The path can be relative or absolute\n *\n * @param path\n * @since 2.8.0\n */\n setPath: function setPath(path) {\n this.path = path;\n\n if (this.shape !== null) {\n this.shape.attr({ src: this.path });\n }\n this.fireEvent(\"change:path\", { value: this.path });\n\n return this;\n },\n\n /**\n * \n * Return the image path attribute of the shape.\n *\n * @returns {String}\n * @since 2.8.0\n */\n getPath: function getPath() {\n return this.path;\n },\n\n /**\n * @inheritdoc\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return this;\n }\n\n attributes = attributes || {};\n\n attributes.x = this.getAbsoluteX();\n attributes.y = this.getAbsoluteY();\n attributes.width = this.getWidth();\n attributes.height = this.getHeight();\n attributes.src = this.path;\n\n // propagate the width/height and the display:inline-block as CSS attribute as well because Chrome\n // did some \"flickering\" in some versions and sometimes the image disappear complete\n $(this.shape.node).css({ display: \"inline-block\", \"width\": attributes.width, \"height\": attributes.height });\n\n this._super(attributes);\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n createShapeElement: function createShapeElement() {\n return this.canvas.paper.image(this.path, this.getX(), this.getY(), this.getWidth(), this.getHeight());\n },\n\n /**\n * @inheritdoc\n */\n getPersistentAttributes: function getPersistentAttributes() {\n return (0, _extend2.default)(this._super(), {\n path: this.path\n });\n },\n\n /**\n * @inheritdoc\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n if (typeof memento.path !== \"undefined\") {\n this.setPath(memento.path);\n }\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/Label.js\":\n/*!**********************************!*\\\n !*** ./src/shape/basic/Label.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _JSONUtil = __webpack_require__(/*! ../../util/JSONUtil */ \"./src/util/JSONUtil.js\");\n\nvar _JSONUtil2 = _interopRequireDefault(_JSONUtil);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Implements a simple text label.\n *\n *\n * @example\n *\n * let shape = new draw2d.shape.basic.Label({text:\"This is a simple label\", x:40, y:10});\n *\n * canvas.add(shape);\n *\n * @author Andreas Herz\n * @extends draw2d.SetFigure\n */\n_packages2.default.shape.basic.Label = _packages2.default.SetFigure.extend(\n/** @lends draw2d.shape.basic.Label.prototype */\n{\n\n NAME: \"draw2d.shape.basic.Label\",\n\n FONT_FALLBACK: {\n 'Georgia': 'Georgia, serif',\n 'Palatino Linotype': '\"Palatino Linotype\", \"Book Antiqua\", Palatino, serif',\n 'Times New Roman': '\"Times New Roman\", Times, serif',\n 'Arial': 'Arial, Helvetica, sans-serif',\n 'Arial Black': '\"Arial Black\", Gadget, sans-serif',\n 'Comic Sans MS': '\"Comic Sans MS\", cursive, sans-serif',\n 'Impact': 'Impact, Charcoal, sans-serif',\n 'Lucida Sans Unicode': '\"Lucida Sans Unicode\", \"Lucida Grande\", sans-serif',\n 'Tahoma, Geneva': 'Tahoma, Geneva, sans-seri',\n 'Trebuchet MS': '\"Trebuchet MS\", Helvetica, sans-serif',\n 'Verdana': 'Verdana, Geneva, sans-serif',\n 'Courier New': '\"Courier New\", Courier, monospace',\n 'Lucida Console': '\"Lucida Console\", Monaco, monospace'\n },\n\n /**\n * Creates a new text element.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n\n this.text = \"\";\n // for performance reasons\n //\n this.cachedWidth = null;\n this.cachedHeight = null;\n this.cachedMinWidth = null;\n this.cachedMinHeight = null;\n\n // appearance of the shape\n //\n this.fontSize = 12;\n this.fontColor = new _packages2.default.util.Color(\"#080808\");\n this.fontFamily = null;\n this.padding = { top: 4, right: 4, bottom: 4, left: 4 };\n\n this.outlineStroke = 0;\n this.outlineColor = new _packages2.default.util.Color(null);\n\n this.bold = false;\n\n // behavior of the shape\n //\n this.editor = null;\n\n this._super((0, _extend2.default)({ stroke: 1, width: 1, height: 1, resizeable: false }, attr), (0, _extend2.default)({\n // @attr {String} text the text to show */\n text: this.setText,\n // @attr {String} set the editor to use see {@link draw2d.ui.LabelEditor} */\n editor: this.installEditor,\n // @attr {Number} outlineStroke the line width of the text to draw. Fill color and outline of the text can be different. */\n outlineStroke: this.setOutlineStroke,\n // @attr {String|draw2d.util.Color} outlineColor the outline color of the text */\n outlineColor: this.setOutlineColor,\n // @attr {String} fontFamily the font to use*/\n fontFamily: this.setFontFamily,\n // @attr {Number} fontSize the font size to use */\n fontSize: this.setFontSize,\n // @attr {String|draw2d.util.Color} fontColor the font color */\n fontColor: this.setFontColor,\n // @attr {Number} padding the padding in pixel around the text */\n padding: this.setPadding,\n // @attr {Boolean} bold indicator if bold text should be used*/\n bold: this.setBold\n }, setter), (0, _extend2.default)({\n text: this.getText,\n outlineStroke: this.getOutlineStroke,\n outlineColor: this.getOutlineColor,\n fontFamily: this.getFontFamily,\n fontSize: this.getFontSize,\n fontColor: this.getFontColor,\n padding: this.getPadding,\n bold: this.isBold\n }, getter));\n\n this.installEditPolicy(new _packages2.default.policy.figure.AntSelectionFeedbackPolicy());\n\n // some performance improvements\n this.lastAppliedLabelRotation = \"\";\n this.lastAppliedTextAttributes = {};\n },\n\n /**\n *\n * Creates the shape object for a text node.\n *\n * @private\n **/\n createSet: function createSet() {\n return this.canvas.paper.text(0, 0, this.text);\n },\n\n /**\n *\n * Set the canvas element of this figures.\n *\n * @param {draw2d.Canvas} canvas the new parent of the figure or null\n * @private\n */\n setCanvas: function setCanvas(canvas) {\n this.clearCache();\n this._super(canvas);\n this.clearCache();\n },\n\n /**\n *\n * Trigger the repaint of the element and transport all style properties to the visual representation.<br>\n * Called by the framework.\n *\n * @private\n **/\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null || this.parent && this.parent.repaintBlocked === true) {\n return;\n }\n\n // style the label\n var lattr = this.calculateTextAttr();\n lattr.text = this.text;\n\n var attrDiff = _JSONUtil2.default.flatDiff(lattr, this.lastAppliedTextAttributes);\n this.lastAppliedTextAttributes = lattr;\n\n // the two \"attr\" calls takes 2/3 of the complete method call (chrome performance check).\n // now we check if any changes happens and call this method only if necessary.\n if (Object.getOwnPropertyNames(attrDiff).length > 0) {\n this.svgNodes.attr(lattr);\n // set of the x/y must be done AFTER the font-size and bold has been set.\n // Reason: the getBBox method needs the font attributes for calculation\n this.svgNodes.attr({\n x: this.padding.left + this.stroke,\n y: this.svgNodes.getBBox(true).height / 2 + this.padding.top + this.getStroke()\n });\n }\n this._super(attributes);\n },\n\n /**\n *\n * @private\n */\n calculateTextAttr: function calculateTextAttr() {\n var lattr = {\n \"text-anchor\": \"start\",\n \"font-size\": this.fontSize,\n \"font-weight\": this.bold === true ? \"bold\" : \"normal\",\n fill: this.fontColor.rgba(),\n stroke: this.outlineColor.rgba(),\n \"stroke-width\": this.outlineStroke\n };\n if (this.fontFamily !== null) {\n lattr[\"font-family\"] = this.fontFamily;\n }\n return lattr;\n },\n\n /**\n * @private\n * @returns {this}\n */\n applyTransformation: function applyTransformation() {\n var ts = \"R\" + this.rotationAngle;\n // if(ts!==this.lastAppliedLabelRotation){\n this.shape.transform(ts);\n this.lastAppliedLabelRotation = ts;\n // }\n\n this.svgNodes.transform(\"R\" + this.rotationAngle + \"T\" + this.getAbsoluteX() + \",\" + this.getAbsoluteY());\n\n return this;\n },\n\n /**\n *\n * Set the new font size in [pt].\n *\n * @returns {this}\n * @param {Number} size The new font size in <code>pt</code>\n **/\n setFontSize: function setFontSize(size) {\n this.clearCache();\n this.fontSize = size;\n\n this.repaint();\n\n this.fireEvent(\"change:fontSize\", { value: this.fontSize });\n this.fireEvent(\"resize\");\n\n // Update the resize handles if the user change the position of the element via an API call.\n //\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n\n return this;\n },\n\n /**\n *\n * Return the current used font size in px.\n *\n * @returns {Number}\n * @since 4.0.1\n */\n getFontSize: function getFontSize() {\n return this.fontSize;\n },\n\n /**\n *\n * Set the label to <b>bold</b> or <b>normal</b> font weight.\n *\n * @param {Boolean} bold The bold flag for the label\n * @since 2.4.1\n * @returns {this}\n **/\n setBold: function setBold(bold) {\n this.clearCache();\n this.bold = bold;\n this.repaint();\n\n this.fireEvent(\"change:bold\", { value: this.bold });\n this.fireEvent(\"resize\");\n\n // Update the resize handles if the user change the position of the element via an API call.\n //\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n\n return this;\n },\n\n /**\n *\n * Return the \"bold\" attribute of the label\n *\n * @since 5.0.0\n * @returns {Boolean}\n */\n isBold: function isBold() {\n return this.bold;\n },\n\n /**\n *\n * Set the outline color of the font.\n *\n * @param {draw2d.util.Color/String} color The new color of the line.\n * @since 4.2.1\n * @returns {this}\n **/\n setOutlineColor: function setOutlineColor(color) {\n this.outlineColor = new _packages2.default.util.Color(color);\n this.repaint();\n this.fireEvent(\"change:outlineColor\", { value: this.outlineColor });\n\n return this;\n },\n\n /**\n *\n * The outline color of the text\n *\n * @returns {draw2d.util.Color}\n * @since 4.2.1\n */\n getOutlineColor: function getOutlineColor() {\n return this.outlineColor;\n },\n\n /**\n *\n * Set the stroke of the text to use.\n *\n * @param {Number} w The new line width of the figure\n * @since 4.2.1\n * @returns {this}\n **/\n setOutlineStroke: function setOutlineStroke(w) {\n this.outlineStroke = w;\n this.repaint();\n this.fireEvent(\"change:outlineStroke\", { value: this.outlineStroke });\n\n return this;\n },\n\n /**\n *\n * The used outline line width.\n *\n * @type {Number}\n * @since 4.2.1\n **/\n getOutlineStroke: function getOutlineStroke() {\n return this.outlineStroke;\n },\n\n /**\n *\n * Set the color of the font.\n *\n * @param {draw2d.util.Color|String} color The new color of the line.\n * @returns {this}\n **/\n setFontColor: function setFontColor(color) {\n this.fontColor = new _packages2.default.util.Color(color);\n this.repaint();\n this.fireEvent(\"change:fontColor\", { value: this.fontColor });\n\n return this;\n },\n\n /**\n *\n * The current used font color\n *\n * @returns {draw2d.util.Color}\n */\n getFontColor: function getFontColor() {\n return this.fontColor;\n },\n\n /**\n *\n * Set the padding of the element\n *\n * // Alternatively you can use the attr method:\n * //\n * // set the padding for top,left,bottom,right in one call\n * figure.attr({\n * padding: 3\n * });\n *\n * // update the padding left and top\n * figure.attr({\n * padding: {left:3, top:30}\n * });\n *\n * @param {Number|Object} padding The new padding\n * @returns {this}\n **/\n setPadding: function setPadding(padding) {\n this.clearCache();\n if (typeof padding === \"number\") {\n this.padding = { top: padding, right: padding, bottom: padding, left: padding };\n } else {\n this.padding = (0, _extend2.default)(this.padding, padding);\n }\n this.repaint();\n this.fireEvent(\"change:padding\", { value: this.padding });\n\n return this;\n },\n\n /**\n *\n * Get the padding of the element.\n *\n * @since 4.0.1\n **/\n getPadding: function getPadding() {\n return this.padding;\n },\n\n /**\n *\n * Set the font family to use. If you use the shown font names the typical fallback\n * font are installed as well.\n *\n * <b>Serif Fonts</b>\n * <ul>\n * <li><span style=\"font-family:'Georgia'\">Georgia</span></li>\n * <li><span style=\"font-family:'Palatino Linotype'\">Palatino Linotype</span></li>\n * <li><span style=\"font-family:'Times New Roman'\">Times New Roman</span></li>\n * </ul>\n *\n * <b>Sans-Serif Fonts</b>\n * <ul>\n * <li><span style=\"font-family:'Arial'\">Arial</span></li>\n * <li><span style=\"font-family:'Arial Black'\">Arial Black</span></li>\n * <li><span style=\"font-family:'Comic Sans MS'\">Comic Sans MS</span></li>\n * <li><span style=\"font-family:'Impact, Charcoal'\">Impact, Charcoal</span></li>\n * <li><span style=\"font-family:'Lucida Sans Unicode'\">Lucida Sans Unicode</span></li>\n * <li><span style=\"font-family:'Tahoma, Geneva'\">Tahoma, Geneva</span></li>\n * <li><span style=\"font-family:'Trebuchet MS'\">Trebuchet MS</span> </li>\n * <li><span style=\"font-family:'Verdana'\">Verdana</span></li>\n * </ul>\n *\n * <b>Monospace Fonts</b>\n * <ul>\n * <li><span style=\"font-family:'Courier New'\">Courier New</span></li>\n * <li><span style=\"font-family:'Lucida Console'\">Lucida Console</span></li>\n * </ul>\n *\n * @param {String} font The font to use\n * @returns {this}\n **/\n setFontFamily: function setFontFamily(font) {\n this.clearCache();\n\n // check for fallback\n //\n if (typeof font !== \"undefined\" && font !== null && typeof this.FONT_FALLBACK[font] !== \"undefined\") {\n font = this.FONT_FALLBACK[font];\n }\n\n this.fontFamily = font;\n this.repaint();\n this.fireEvent(\"change:fontFamily\", { value: this.fontFamily });\n\n return this;\n },\n\n /**\n *\n * Returns the used font family of the label.\n *\n * @returns {String}\n */\n getFontFamily: function getFontFamily() {\n return this.fontFamily;\n },\n\n /**\n *\n * A Label did have \"autosize\". Do nothing at all.\n *\n * @returns {this}\n **/\n setDimension: function setDimension(w, h) {\n this.clearCache();\n\n this._super(w, h);\n\n return this;\n },\n\n /**\n *\n * clear the internal cache for width/height precalculation\n * @private\n */\n clearCache: function clearCache() {\n this.portRelayoutRequired = true;\n this.cachedMinWidth = null;\n this.cachedMinHeight = null;\n this.cachedWidth = null;\n this.cachedHeight = null;\n this.lastAppliedTextAttributes = {};\n\n return this;\n },\n\n /**\n *\n * This value is relevant for the interactive resize of the figure.\n *\n * @returns {Number} Returns the min. width of this object.\n */\n getMinWidth: function getMinWidth() {\n if (this.shape === null) {\n return 0;\n }\n\n if (this.cachedMinWidth === null) {\n this.cachedMinWidth = this.svgNodes.getBBox(true).width + this.padding.left + this.padding.right + 2 * this.getStroke();\n }\n\n return this.cachedMinWidth;\n },\n\n /**\n *\n * This value is relevant for the interactive resize of the figure.\n *\n * @returns {Number} Returns the min. width of this object.\n */\n getMinHeight: function getMinHeight() {\n if (this.shape === null) {\n return 0;\n }\n\n if (this.cachedMinHeight === null) {\n this.cachedMinHeight = this.svgNodes.getBBox(true).height + this.padding.top + this.padding.bottom + 2 * this.getStroke();\n }\n\n return this.cachedMinHeight;\n },\n\n /**\n *\n * Return the calculate width of the set. This calculates the bounding box of all elements.\n *\n * @returns {Number} the calculated width of the label\n **/\n getWidth: function getWidth() {\n if (this.shape === null) {\n return 0;\n }\n\n if (this.cachedWidth === null) {\n if (this.resizeable === true) {\n this.cachedWidth = Math.max(this.width, this.getMinWidth());\n } else {\n this.cachedWidth = this.getMinWidth();\n }\n }\n\n return this.cachedWidth;\n },\n\n /**\n *\n * Return the calculated height of the set. This calculates the bounding box of all elements.\n *\n * @returns {Number} the calculated height of the label\n */\n getHeight: function getHeight() {\n if (this.shape === null) {\n return 0;\n }\n\n if (this.cachedHeight === null) {\n this.cachedHeight = Math.max(this.height, this.getMinHeight());\n }\n\n return this.cachedHeight;\n },\n\n /**\n *\n * Set an editor for the label. This can be a dialog or inplace editor for the\n * Text.<br>\n * The editor will be activated if you doubleClick on the label.\n *\n * @param {draw2d.ui.LabelEditor|String} editor\n */\n installEditor: function installEditor(editor) {\n if (typeof editor === \"string\") {\n editor = eval(\"new \" + editor + \"()\");\n }\n this.editor = editor;\n\n return this;\n },\n\n /**\n *\n * Called when a user dbl clicks on the element\n *\n */\n onDoubleClick: function onDoubleClick() {\n if (this.editor !== null) {\n this.editor.start(this);\n }\n },\n\n /**\n *\n * Returns the current text of the label.\n *\n * @returns the current display text of the label\n * @type {String}\n **/\n getText: function getText() {\n return this.text;\n },\n\n /**\n *\n * Set the text for the label. Use \\n for multiline text.\n *\n * @param {String} text The new text for the label.\n * @returns {this}\n **/\n setText: function setText(text) {\n this.clearCache();\n this.text = text;\n\n this.repaint();\n // Update the resize handles if the user change the position of the element via an API call.\n //\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n\n this.fireEvent(\"resize\");\n this.fireEvent(\"change:text\", { value: this.text });\n\n if (this.parent !== null) {\n this.parent.repaint();\n }\n\n return this;\n },\n\n /**\n *\n * Detect whenever the hands over coordinate is inside the figure.\n * The default implementation is a simple bounding box test.\n *\n * @param {Number} iX\n * @param {Number} iY\n * @param {Number} [corona]\n *\n * @returns {Boolean}\n */\n hitTest: function hitTest(x, y, corona) {\n\n // apply a simple bounding box test if the label isn'T rotated\n //\n if (this.rotationAngle === 0) {\n return this._super(x, y, corona);\n }\n\n var boundingBox = this.getBoundingBox();\n if (typeof corona === \"number\") {\n boundingBox.scale(corona, corona);\n }\n\n // rotate the box with the current matrix of the\n // shape\n var matrix = this.shape.matrix;\n var points = boundingBox.getVertices();\n points.each(function (i, point) {\n var x = matrix.x(point.x, point.y);\n var y = matrix.y(point.x, point.y);\n point.x = x;\n point.y = y;\n });\n\n var polySides = 4;\n\n var j = polySides - 1;\n var oddNodes = false;\n\n for (var i = 0; i < polySides; i++) {\n var pi = points.get(i);\n var pj = points.get(j);\n if ((pi.y < y && pj.y >= y || pj.y < y && pi.y >= y) && (pi.x <= x || pj.x <= x)) {\n if (pi.x + (y - pi.y) / (pj.y - pi.y) * (pj.x - pi.x) < x) {\n oddNodes = !oddNodes;\n }\n }\n j = i;\n }\n return oddNodes;\n },\n\n /**\n *\n * Return an objects with all important attributes for XML or JSON serialization\n *\n * @returns {Object}\n */\n getPersistentAttributes: function getPersistentAttributes() {\n var memento = this._super();\n\n memento.text = this.text;\n memento.outlineStroke = this.outlineStroke;\n memento.outlineColor = this.outlineColor.rgba();\n memento.fontSize = this.fontSize;\n memento.fontColor = this.fontColor.rgba();\n memento.fontFamily = this.fontFamily;\n\n if (this.editor !== null) {\n memento.editor = this.editor.NAME;\n }\n return memento;\n },\n\n /**\n *\n * Apply all attributes from the serialized properties to the shape.\n * Used during JSON serialisation.\n *\n * @param {Object} memento\n * @returns {this}\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n if (typeof memento.text !== \"undefined\") {\n this.setText(memento.text);\n }\n if (typeof memento.outlineStroke !== \"undefined\") {\n this.setOutlineStroke(memento.outlineStroke);\n }\n if (typeof memento.outlineColor !== \"undefined\") {\n this.setOutlineColor(memento.outlineColor);\n }\n if (typeof memento.fontFamily !== \"undefined\") {\n this.setFontFamily(memento.fontFamily);\n }\n if (typeof memento.fontSize !== \"undefined\") {\n this.setFontSize(memento.fontSize);\n }\n if (typeof memento.fontColor !== \"undefined\") {\n this.setFontColor(memento.fontColor);\n }\n\n if (typeof memento.editor === \"string\") {\n this.installEditor(eval(\"new \" + memento.editor + \"()\"));\n }\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/Line.js\":\n/*!*********************************!*\\\n !*** ./src/shape/basic/Line.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _JSONUtil = __webpack_require__(/*! ../../util/JSONUtil */ \"./src/util/JSONUtil.js\");\n\nvar _JSONUtil2 = _interopRequireDefault(_JSONUtil);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n/**\n * @class\n * The base class for all visible elements inside a canvas.\n *\n *\n * @example\n *\n * // Create the line and modify the start/end after inserting them into\n * // the canvas\n * let line1 = new draw2d.shape.basic.Line({startX:30, startY:30, endX:100, endY:80});\n *\n * canvas.add(line1);\n *\n * // Create the line with a given start/end coordinate in the constructor\n * //\n * let line2 = new draw2d.shape.basic.Line({\n * startX:20,\n * startY:80,\n * endX:200,\n * endY:150,\n * stroke:3,\n * color:\"#1d1dff\"\n * });\n * canvas.add(line2);\n *\n * @author Andreas Herz\n * @extends draw2d.Figure\n */\n_packages2.default.shape.basic.Line = _packages2.default.Figure.extend(\n/** @lends draw2d.shape.basic.Line.prototype */\n{\n\n NAME: \"draw2d.shape.basic.Line\",\n\n DEFAULT_COLOR: new _packages2.default.util.Color(0, 0, 0),\n\n /**\n * Creates a new figure element which are not assigned to any canvas witht he given start and\n * end coordinate.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n // click area for the line hit test\n this.corona = 10;\n this.isGlowing = false;\n this.lineColor = this.DEFAULT_COLOR;\n this.stroke = 1;\n this.outlineStroke = 0;\n this.outlineColor = new _packages2.default.util.Color(null);\n this.outlineVisible = false;\n\n this.draggedSegment = null;\n\n this.dasharray = null;\n\n this.start = new _packages2.default.geo.Point(30, 30);\n this.end = new _packages2.default.geo.Point(100, 100);\n\n this.vertices = new _packages2.default.util.ArrayList();\n this.vertices.add(this.start.clone());\n this.vertices.add(this.end.clone());\n\n this._super((0, _extend2.default)({\n deleteable: false,\n selectable: true\n }, attr), (0, _extend2.default)({}, {\n // @attr {Number} start the coordinates of the start point */\n start: this.setStartPosition,\n // @attr {Number} startX the x coordinate of the start point */\n startX: this.setStartX,\n // @attr {Number} startY the y coordinate of the start point */\n startY: this.setStartY,\n // @attr {Number} end the coordinates of the end point */\n end: this.setEndPosition,\n // @attr {Number} endX the x coordinate of the end */\n endX: this.setEndX,\n // @attr {Number} endY the y coordinate of the end */\n endY: this.setEndY,\n // @attr {Number} vertices the x coordinate of the start point */\n vertices: this.setVertices,\n // @attr {String | draw2d.util.Color} outlineColor the outline color of the line */\n outlineColor: this.setOutlineColor,\n // @attr {Number} outlineStroke the line width of the outline */\n outlineStroke: this.setOutlineStroke,\n // @attr {String|draw2d.util.Color} color the color of the line */\n color: this.setColor,\n // @attr {Number} stroke the line width of the color */\n stroke: this.setStroke,\n corona: this.setCorona,\n // @attr {String} dasharray the line pattern see {@link draw2d.shape.basic.Line#setDashArray} for more information*/\n dasharray: this.setDashArray,\n // @attr {Boolean} glow the glow flag for the shape. The representation of the \"glow\" depends on the shape */\n glow: this.setGlow\n }, setter), (0, _extend2.default)({}, {\n start: this.getStartPosition,\n end: this.getEndPosition,\n outlineColor: this.getOutlineColor,\n outlineStroke: this.getOutlineStroke,\n stroke: this.getStroke,\n corona: this.getCorona,\n color: this.getColor,\n dasharray: this.getDashArray,\n vertices: this.getVertices\n }, getter));\n\n // some router installs a edit policy. In this case we want delete them\n //\n if (this.editPolicy.getSize() === 0) {\n this.installEditPolicy(new _packages2.default.policy.line.LineSelectionFeedbackPolicy());\n }\n },\n\n /**\n *\n * Set the outline color of the line.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * outlineColor: color\n * });\n *\n * @param {draw2d.util.Color/String} color The new color of the line.\n * @since 4.2.1\n **/\n setOutlineColor: function setOutlineColor(color) {\n this.outlineColor = new _packages2.default.util.Color(color);\n this.repaint();\n this.fireEvent(\"change:outlineColor\", { value: this.outlineColor });\n\n return this;\n },\n\n /**\n *\n * The outline color of the text\n *\n * @returns {draw2d.util.Color}\n * @since 4.2.1\n */\n getOutlineColor: function getOutlineColor() {\n return this.outlineColor;\n },\n\n /**\n *\n * Set the outline stroke of the line to use.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * outlineStroke: w\n * });\n *\n * @param {Number} w The new outline width of the line\n * @since 4.2.1\n **/\n setOutlineStroke: function setOutlineStroke(w) {\n this.outlineStroke = w;\n this.repaint();\n this.fireEvent(\"change:outlineStroke\", { value: this.outlineStroke });\n\n return this;\n },\n\n /**\n *\n * The used outline line width.\n *\n * @returns {Number}\n * @since 4.2.1\n **/\n getOutlineStroke: function getOutlineStroke() {\n return this.outlineStroke;\n },\n\n /**\n *\n * Called if the drag and drop action begins. You can return [false] if you\n * want avoid that the figure can be move.\n *\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @returns {Boolean} true if the figure accepts dragging\n **/\n onDragStart: function onDragStart(x, y, shiftKey, ctrlKey, isFaked) {\n var result = this._super(x, y, shiftKey, ctrlKey);\n\n if (result === true && isFaked !== true) {\n this.draggedSegment = { index: 0, start: this.start, end: this.end };\n }\n return result;\n },\n\n /**\n *\n * Don't call them manually. This will be done by the framework.<br>\n * Will be called if the object are moved via drag and drop.\n * Sub classes can override this method to implement additional stuff. Don't forget to call\n * the super implementation via <code>this._super(dx, dy, dx2, dy2);</code>\n * @private\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n **/\n onDrag: function onDrag(dx, dy, dx2, dy2) {\n if (this.command === null) {\n return;\n }\n\n this.vertices.each(function (i, e) {\n e.translate(dx2, dy2);\n });\n this.command.updateVertices(this.vertices.clone());\n\n // start/end are separate draw2d.geo.Point objects. Required for routing and determining if a node is dragged away\n // from the connection. In this case we must modify the start/end by hand\n this.start.translate(dx2, dy2);\n this.end.translate(dx2, dy2);\n\n this.svgPathString = null;\n this._super(dx, dy, dx2, dy2);\n },\n\n /**\n *\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onDragEnd: function onDragEnd(x, y, shiftKey, ctrlKey) {\n var _this2 = this;\n\n // Element ist zwar schon an seine Position, das Command muss aber trotzdem\n // in dem CommandStack gelegt werden damit das Undo funktioniert.\n //\n this.isInDragDrop = false;\n this.draggedSegment = null;\n\n if (this.command === null) {\n return;\n }\n\n this.canvas.getCommandStack().execute(this.command);\n this.command = null;\n this.isMoving = false;\n\n // notify all installed policies\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.onDragEnd(_this2.canvas, _this2, x, y, shiftKey, ctrlKey);\n }\n });\n\n // inform all other listener\n this.fireEvent(\"move\", { figure: this, dx: 0, dy: 0 });\n\n // fire an event\n // @since 5.3.3\n this.fireEvent(\"dragend\", { x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n },\n\n /**\n *\n * Called when a user clicks on the element.\n *\n * // Alternatively you can register for this event with\n * figure.on(\"click\", function(emitterFigure){\n * alert(\"clicked\");\n * });\n *\n * @template\n * @since 4.0.0\n */\n onClick: function onClick() {},\n\n /**\n *\n * Set the line style for this object.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * dasharray: dashPattern\n * });\n *\n * @param {String} dashPattern Can be one of this [\"\", \"-\", \".\", \"-.\", \"-..\", \". \", \"- \", \"--\", \"- .\", \"--.\", \"--..\"]\n */\n setDashArray: function setDashArray(dashPattern) {\n this.dasharray = dashPattern;\n this.repaint();\n\n this.fireEvent(\"change:dashArray\", { value: this.dasharray });\n\n return this;\n },\n\n /**\n *\n * Get the line style for this object.\n *\n * // Alternatively you can use the attr method:\n * figure.attr(\"dasharray\");\n *\n * @since 5.1.0\n */\n getDashArray: function getDashArray() {\n return this.dasharray;\n },\n\n /**\n *\n * Called by the framework. Don't call them manually.\n *\n * @private\n **/\n createShapeElement: function createShapeElement() {\n var set = this.canvas.paper.set();\n\n // the drop shadow or border line\n set.push(this.canvas.paper.path(\"M\" + this.start.x + \" \" + this.start.y + \"L\" + this.end.x + \" \" + this.end.y));\n // the main path\n set.push(this.canvas.paper.path(\"M\" + this.start.x + \" \" + this.start.y + \"L\" + this.end.x + \" \" + this.end.y));\n set.node = set.items[1].node;\n\n // indicate that the outline is visible at the moment\n // the repaint update the status correct and set the attributes for\n // the first time\n this.outlineVisible = true; //this.outlineStroke>0;\n\n return set;\n },\n\n /**\n * @inheritdoc\n *\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n // don't override existing values\n //\n if (typeof attributes === \"undefined\") {\n attributes = {\n \"stroke\": this.lineColor.rgba(),\n \"stroke-width\": this.stroke,\n \"path\": [\"M\", this.start.x, this.start.y, \"L\", this.end.x, this.end.y].join(\" \")\n };\n } else {\n // may a router has calculate another path. don't override them.\n if (typeof attributes.path === \"undefined\") {\n attributes.path = [\"M\", this.start.x, this.start.y, \"L\", this.end.x, this.end.y].join(\" \");\n }\n _JSONUtil2.default.ensureDefault(attributes, \"stroke\", this.lineColor.rgba());\n _JSONUtil2.default.ensureDefault(attributes, \"stroke-width\", this.stroke);\n }\n\n _JSONUtil2.default.ensureDefault(attributes, \"stroke-dasharray\", this.dasharray);\n this._super(attributes);\n\n if (this.outlineStroke > 0) {\n this.shape.items[0].attr({\n \"stroke-width\": this.outlineStroke + this.stroke,\n \"stroke\": this.outlineColor.rgba()\n });\n if (this.outlineVisible === false) this.shape.items[0].show();\n this.outlineVisible = true;\n } else if (this.outlineVisible === true) {\n // reset them once\n this.shape.items[0].attr({ \"stroke-width\": 0, \"stroke\": \"none\" });\n this.shape.items[0].hide();\n this.outlineVisible = false;\n }\n },\n\n /**\n *\n * Moves the element to the background. Additional\n * the internal model changed as well.\n *\n * @since 4.7.2\n */\n toBack: function toBack(figure) {\n this._super(figure);\n\n if (this.outlineVisible === true) {\n this.shape.items[0].insertBefore(this.shape.items[1]);\n }\n\n return this;\n },\n\n /**\n *\n * Highlight the element or remove the highlighting\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * glow: flag\n * });\n *\n * @param {Boolean} flag indicates glow/noGlow\n * @template\n */\n setGlow: function setGlow(flag) {\n if (this.isGlowing === flag) {\n return;\n }\n\n if (flag === true) {\n // store old values for restore\n this._lineColor = this.lineColor;\n this._stroke = this.stroke;\n\n this.setColor(new _packages2.default.util.Color(\"#3f72bf\"));\n this.setStroke(this.stroke * 4 | 0);\n } else {\n this.setColor(this._lineColor);\n this.setStroke(this._stroke);\n }\n\n this.isGlowing = flag;\n\n return this;\n },\n\n /**\n * You can't drag&drop the resize handles if the line not resizeable.\n * @returns boolean\n **/\n isResizeable: function isResizeable() {\n return true;\n },\n\n /**\n * Set the line width. This enforce a repaint of the line.\n * This method fires a <i>document dirty</i> event.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * stroke: w\n * });\n *\n * @param {Number} w The new line width of the figure.\n **/\n setStroke: function setStroke(w) {\n this.stroke = parseFloat(w);\n\n this.repaint();\n this.fireEvent(\"change:stroke\", { value: this.stroke });\n\n return this;\n },\n\n /**\n *\n * The used line width.\n *\n * @returns {Number}\n **/\n getStroke: function getStroke() {\n return this.stroke;\n },\n\n /**\n * click area for the line hit test.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * corona: w\n * });\n *\n * @param {Number} w The new click hit offset\n **/\n setCorona: function setCorona(w) {\n this.corona = parseFloat(w);\n return this;\n },\n\n /**\n *\n * The used corona hitTest area.\n *\n * @returns {Number}\n **/\n getCorona: function getCorona() {\n return this.corona;\n },\n\n /**\n *\n * Set the color of the line.\n * This method fires a <i>document dirty</i> event.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * color: color\n * });\n *\n * @param {draw2d.util.Color|String} color The new color of the line.\n **/\n setColor: function setColor(color) {\n this.lineColor = new _packages2.default.util.Color(color);\n this.repaint();\n this.fireEvent(\"change:color\", { value: this.lineColor });\n\n return this;\n },\n\n /**\n *\n * Return the current paint color.\n *\n * @returns {draw2d.util.Color} The paint color of the line.\n **/\n getColor: function getColor() {\n return this.lineColor;\n },\n\n /**\n *\n * Translate the line with the given x/y offset.\n *\n * @param {Number} dx The new x translate offset\n * @param {Number} dy The new y translate offset\n * @since 4.1.0\n **/\n translate: function translate(dx, dy) {\n this.vertices.each(function (i, e) {\n e.translate(dx, dy);\n });\n\n // update start/end if the first or last vertex has been changed\n //\n this.start = this.vertices.first().clone();\n this.end = this.vertices.last().clone();\n\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n\n this.svgPathString = null;\n this.repaint();\n\n return this;\n },\n\n /**\n *\n * return the bounding box of the line or polygon\n *\n * TODO: precalculate or cache this values\n *\n * @returns {draw2d.geo.Rectangle}\n * @since 4.8.2\n */\n getBoundingBox: function getBoundingBox() {\n var minX = Math.min.apply(Math, _toConsumableArray(this.vertices.asArray().map(function (n) {\n return n.x;\n })));\n var minY = Math.min.apply(Math, _toConsumableArray(this.vertices.asArray().map(function (n) {\n return n.y;\n })));\n var maxX = Math.max.apply(Math, _toConsumableArray(this.vertices.asArray().map(function (n) {\n return n.x;\n })));\n var maxY = Math.max.apply(Math, _toConsumableArray(this.vertices.asArray().map(function (n) {\n return n.y;\n })));\n var width = maxX - minX;\n var height = maxY - minY;\n\n return new _packages2.default.geo.Rectangle(minX, minY, width, height);\n },\n\n /**\n *\n * Set the start point of the line.\n * This method fires a <i>document dirty</i> event.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * startX: x,\n * startY: y\n * });\n *\n * @param {Number|draw2d.geo.Point} x the x coordinate of the start point\n * @param {Number} [y] the y coordinate of the start point\n **/\n setStartPosition: function setStartPosition(x, y) {\n var pos = new _packages2.default.geo.Point(x, y);\n if (this.start.equals(pos)) {\n return this;\n }\n\n this.start.setPosition(pos);\n this.vertices.first().setPosition(pos);\n this.repaint();\n\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n this.fireEvent(\"change:start\", { value: this.start });\n\n return this;\n },\n /** @deprecated */\n setStartPoint: function setStartPoint(x, y) {\n return this.setStartPosition(x, y);\n },\n\n setStartX: function setStartX(x) {\n this.setStartPosition(x, this.start.y);\n },\n\n setStartY: function setStartY(y) {\n this.setStartPosition(this.start.x, y);\n },\n\n setEndX: function setEndX(x) {\n this.setEndPosition(x, this.end.y);\n },\n\n setEndY: function setEndY(y) {\n this.setEndPosition(this.end.x, y);\n },\n\n /**\n * Set the end point of the line.\n * This method fires a <i>document dirty</i> event.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * endX: 3,\n * endY: 10\n * });\n *\n * // or\n * figure.attr({\n * end: {x:3, y:10}\n * });\n * @param {Number|draw2d.geo.Point} x the x coordinate or a draw2d.geo.Point of the end point\n * @param {Number} [y] the y coordinate of the end point\n **/\n setEndPosition: function setEndPosition(x, y) {\n var pos = new _packages2.default.geo.Point(x, y);\n if (this.end.equals(pos)) {\n return this;\n }\n\n this.end.setPosition(pos);\n this.vertices.last().setPosition(pos);\n this.repaint();\n\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n\n this.fireEvent(\"change:end\", { value: this.end });\n\n return this;\n },\n /** @deprecated **/\n setEndPoint: function setEndPoint(x, y) {\n return this.setEndPosition(x, y);\n },\n\n /**\n *\n * Return the x coordinate of the start.\n * @returns {Number}\n **/\n getStartX: function getStartX() {\n return this.start.x;\n },\n\n /**\n *\n * Return the y coordinate of the start.\n *\n * @returns {Number}\n **/\n getStartY: function getStartY() {\n return this.start.y;\n },\n\n /**\n *\n * Return the start point.\n *\n * @returns {draw2d.geo.Point}\n **/\n getStartPosition: function getStartPosition() {\n return this.start.clone();\n },\n /** @deprecated **/\n getStartPoint: function getStartPoint() {\n return this.getStartPosition();\n },\n\n /**\n *\n * Return the x coordinate of the end point\n *\n * @returns {Number}\n **/\n getEndX: function getEndX() {\n return this.end.x;\n },\n\n /**\n *\n * Return the y coordinate of the end point.\n *\n * @returns {Number}\n **/\n getEndY: function getEndY() {\n return this.end.y;\n },\n\n /**\n *\n * Return the end point.\n *\n * @returns {draw2d.geo.Point}\n **/\n getEndPosition: function getEndPosition() {\n return this.end.clone();\n },\n /**\n * @deprecated use `getEndPosition`\n * @returns {draw2d.geo.Point}\n **/\n getEndPoint: function getEndPoint() {\n return this.getEndPosition();\n },\n\n /**\n *\n * The x-offset related to the parent figure or canvas.\n *\n * @returns {Number} the x-offset to the parent figure\n **/\n getX: function getX() {\n return this.getBoundingBox().x;\n },\n\n /**\n *\n * The x-offset related to the parent figure or canvas.\n *\n * @returns {Number} the x-offset to the parent figure\n **/\n getY: function getY() {\n return this.getBoundingBox().y;\n },\n\n /**\n *\n * Return the Vertex with the given index.\n *\n * @param {Number} index the index of the vertex to return\n */\n getVertex: function getVertex(index) {\n return this.vertices.get(index);\n },\n\n /**\n *\n * Update the vertex at the give position with the new coordinate\n *\n * @param {Number} index the index of the vertex to update\n * @param {Number|draw2d.geo.Point} x the x coordinate or the draw2d.geo.Point object\n * @param {Number} [y] the y coordinate or undefined of the second argument is a point\n *\n * @since 4.0.0\n */\n setVertex: function setVertex(index, x, y) {\n if (x instanceof _packages2.default.geo.Point) {\n y = x.y;\n x = x.x;\n }\n\n var vertex = this.vertices.get(index);\n\n // invalid point or nothing to do\n //\n if (vertex === null || vertex.x === x && vertex.y === y) {\n return;\n }\n\n vertex.x = parseFloat(x);\n vertex.y = parseFloat(y);\n\n // update start/end if the first or last vertex has been changed\n //\n this.start = this.vertices.first().clone();\n this.end = this.vertices.last().clone();\n\n this.svgPathString = null;\n this.routingRequired = true;\n this.repaint();\n\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n this.fireEvent(\"change:vertices\", { value: this.vertices });\n\n return this;\n },\n\n /**\n *\n * Returns the vertices of the connection\n *\n * @returns {draw2d.util.ArrayList} an draw2d.util.ArrayList of type draw2d.Point\n **/\n getVertices: function getVertices() {\n return this.vertices;\n },\n\n /**\n *\n * Update the vertices of the object. The given array is copied and assigned.\n *\n * @param {draw2d.util.ArrayList|Array} vertices the new vertices of the polyline.\n *\n * @since 4.0.1\n */\n setVertices: function setVertices(vertices) {\n var _this3 = this;\n\n var _this = this;\n // convert json document/array to draw2d ArrayList\n //\n if (Array.isArray(vertices)) {\n this.vertices = new _packages2.default.util.ArrayList();\n vertices.forEach(function (element) {\n _this3.vertices.add(new _packages2.default.geo.Point(element));\n });\n }\n // use the given ArrayList\n //\n else if (vertices instanceof _packages2.default.util.ArrayList) {\n this.vertices = vertices.clone(true);\n } else {\n throw \"invalid argument for Line.setVertices\";\n }\n\n // can happen if the given vertices array is empty\n //\n if (this.vertices.getSize() > 1) {\n this.start = this.vertices.first().clone();\n this.end = this.vertices.last().clone();\n }\n\n // update the UI and the segment parts\n this.svgPathString = null;\n this.repaint();\n\n // align the SelectionHandles to the new situation\n // This is a Hack....normally this should be done below and the Line shouldn't know\n // something about this issue....this is complete a \"EditPolicy\" domain to handle this.\n if (!this.selectionHandles.isEmpty()) {\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy) {\n e.onUnselect(_this.canvas, _this);\n e.onSelect(_this.canvas, _this);\n }\n });\n }\n\n // notify the listener about the changes\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n\n this.fireEvent(\"change:vertices\", { value: this.vertices });\n\n return this;\n },\n\n /**\n *\n * Return the segments of the line with {start:s, end: e} JSON array list\n *\n * @returns {draw2d.util.ArrayList}\n */\n getSegments: function getSegments() {\n var result = new _packages2.default.util.ArrayList();\n result.add({ start: this.getStartPosition(), end: this.getEndPosition() });\n\n return result;\n },\n\n /**\n *\n * Returns the length of the line.\n *\n * @returns {Number}\n **/\n getLength: function getLength() {\n return Math.sqrt((this.start.x - this.end.x) * (this.start.x - this.end.x) + (this.start.y - this.end.y) * (this.start.y - this.end.y));\n },\n\n /**\n *\n * Returns the angle of the line in degree.\n *\n * <pre>\n * 270°\n * |\n * |\n * |\n * |\n * 180° -------------------------+------------------------> +X\n * | 0°\n * |\n * |\n * |\n * V +Y\n * 90°\n * </pre>\n * @returns {Number}\n **/\n getAngle: function getAngle() {\n var length = this.getLength();\n var angle = -(180 / Math.PI) * Math.asin((this.start.y - this.end.y) / length);\n\n if (angle < 0) {\n if (this.end.x < this.start.x) {\n angle = Math.abs(angle) + 180;\n } else {\n angle = 360 - Math.abs(angle);\n }\n } else {\n if (this.end.x < this.start.x) {\n angle = 180 - angle;\n }\n }\n return angle;\n },\n\n /**\n *\n * Returns the Command to perform the specified Request or null if the shape want cancel the\n * operation or it can't operate the command.\n *\n * @param {draw2d.command.CommandType} request describes the Command being requested\n * @returns {draw2d.command.Command} null or a Command\n * @private\n **/\n createCommand: function createCommand(request) {\n if (request.getPolicy() === _packages2.default.command.CommandType.MOVE) {\n if (this.isDraggable()) {\n return new _packages2.default.command.CommandMoveVertices(this);\n }\n }\n\n if (request.getPolicy() === _packages2.default.command.CommandType.DELETE) {\n if (this.isDeleteable()) {\n return new _packages2.default.command.CommandDelete(this);\n }\n }\n\n if (request.getPolicy() === _packages2.default.command.CommandType.MOVE_BASEPOINT) {\n if (this.isDraggable()) {\n return new _packages2.default.command.CommandMoveVertex(this);\n }\n }\n\n return null;\n },\n\n installEditPolicy: function installEditPolicy(policy) {\n if (!(policy instanceof _packages2.default.policy.line.LineSelectionFeedbackPolicy) && policy instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy) {\n return; // silently\n }\n\n this._super(policy);\n },\n\n /**\n *\n * Checks if the hands over coordinate close to the line. The 'corona' is considered\n * for this test. This means the point isn't direct on the line. Is it only close to the\n * line!\n *\n * @param {Number} px the x coordinate of the test point\n * @param {Number} py the y coordinate of the test point\n * @returns {Boolean}\n **/\n hitTest: function hitTest(px, py) {\n return _packages2.default.shape.basic.Line.hit(this.corona + this.stroke, this.start.x, this.start.y, this.end.x, this.end.y, px, py);\n },\n\n /**\n *\n * Returns the projection of the point on the line.\n *\n * @param {Number} px the x coordinate of the test point\n * @param {Number} py the y coordinate of the test point\n * @returns {draw2d.geo.Point}\n **/\n pointProjection: function pointProjection(px, py) {\n var pt = new _packages2.default.geo.Point(px, py);\n var p1 = this.getStartPosition();\n var p2 = this.getEndPosition();\n return _packages2.default.geo.Line.pointProjection(p1.x, p1.y, p2.x, p2.y, pt.x, pt.y);\n },\n\n /**\n *\n * Returns the point onto the line which has the 'percentage' position onto the line.\n *\n * @param {Number} percentage value between [0..1]\n * @returns {*}\n */\n lerp: function lerp(percentage) {\n var p1 = this.getStartPosition();\n var p2 = this.getEndPosition();\n percentage = Math.min(1, Math.max(0, percentage));\n return new _packages2.default.geo.Point(p1.x + (p2.x - p1.x) * percentage, p1.y + (p2.y - p1.y) * percentage);\n },\n\n /**\n *\n * Return all intersection points between the given Line.\n *\n * @param {draw2d.shape.basic.Line} other\n * @returns {draw2d.util.ArrayList}\n */\n intersection: function intersection(other) {\n var result = new _packages2.default.util.ArrayList();\n\n // empty result. the lines are equal...infinit array\n if (other === this) {\n return result;\n }\n\n var segments1 = this.getSegments();\n var segments2 = other.getSegments();\n\n segments1.each(function (i, s1) {\n segments2.each(function (j, s2) {\n var p = _packages2.default.shape.basic.Line.intersection(s1.start, s1.end, s2.start, s2.end);\n if (p !== null) {\n result.add(p);\n }\n });\n });\n return result;\n },\n\n /**\n *\n * Return an objects with all important attributes for XML or JSON serialization\n *\n * @returns {Object}\n */\n getPersistentAttributes: function getPersistentAttributes() {\n var memento = this._super();\n delete memento.x;\n delete memento.y;\n delete memento.width;\n delete memento.height;\n\n memento.stroke = this.stroke;\n memento.color = this.getColor().rgba();\n memento.outlineStroke = this.outlineStroke;\n memento.outlineColor = this.outlineColor.rgba();\n if (this.dasharray !== null) {\n memento.dasharray = this.dasharray;\n }\n\n if (this.editPolicy.getSize() > 0) {\n memento.policy = this.editPolicy.first().NAME;\n }\n\n // the attribute \"vertex\" will be overridden by a router if the element is a\n // \"PolyLine\" instance and has the correct router. Connections mainly ignore this\n // attribute because the start/end is defined by the ports and the vertices in between are\n // calculated by a router.\n memento.vertex = [];\n this.getVertices().each(function (i, e) {\n memento.vertex.push({ x: e.x, y: e.y });\n });\n\n return memento;\n },\n\n /**\n *\n * Read all attributes from the serialized properties and transfer them into the shape.\n *\n * @param {Object} memento\n * @returns {this}\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n\n if (typeof memento.dasharray === \"string\") {\n this.dasharray = memento.dasharray;\n }\n if (typeof memento.stroke !== \"undefined\") {\n this.setStroke(parseFloat(memento.stroke));\n }\n if (typeof memento.color !== \"undefined\") {\n this.setColor(memento.color);\n }\n if (typeof memento.outlineStroke !== \"undefined\") {\n this.setOutlineStroke(memento.outlineStroke);\n }\n if (typeof memento.outlineColor !== \"undefined\") {\n this.setOutlineColor(memento.outlineColor);\n }\n if (typeof memento.policy !== \"undefined\") {\n try {\n this.installEditPolicy(eval(\"new \" + memento.policy + \"()\"));\n } catch (exc) {\n debug.warn(\"Unable to install edit policy '\" + memento.policy + \"' forced by \" + this.NAME + \".setPersistentAttributes. Using default.\");\n }\n }\n\n // restore the vertex of the connection/line if any are given\n //\n // it makes no sense to restore vertices with only zero or one vertex. This\n // isn't a \"line\" at all.\n if (Array.isArray(memento.vertex) && memento.vertex.length > 1) {\n this.setVertices(memento.vertex);\n }\n\n return this;\n }\n});\n\n/**\n * see: http://en.wikipedia.org/wiki/Line-line_intersection\n *\n * @param {draw2d.geo.Point} a1\n * @param {draw2d.geo.Point} a2\n * @param {draw2d.geo.Point} b1\n * @param {draw2d.geo.Point} b2\n *\n * @static\n * @private\n * @returns {draw2d.geo.Point}\n */\n_packages2.default.shape.basic.Line.intersection = function (a1, a2, b1, b2) {\n var result = null;\n\n var ua_t = (b2.x - b1.x) * (a1.y - b1.y) - (b2.y - b1.y) * (a1.x - b1.x);\n var ub_t = (a2.x - a1.x) * (a1.y - b1.y) - (a2.y - a1.y) * (a1.x - b1.x);\n var u_b = (b2.y - b1.y) * (a2.x - a1.x) - (b2.x - b1.x) * (a2.y - a1.y);\n\n if (u_b !== 0) {\n var ua = ua_t / u_b;\n var ub = ub_t / u_b;\n\n if (0 <= ua && ua <= 1 && 0 <= ub && ub <= 1) {\n result = new _packages2.default.geo.Point(a1.x + ua * (a2.x - a1.x) | 0, a1.y + ua * (a2.y - a1.y) | 0);\n\n // determine if the lines are crossing or just touching\n //\n result.justTouching = 0 === ua || ua === 1 || 0 === ub || ub === 1;\n }\n }\n\n return result;\n};\n\n/**\n * Static util function to determine is a point(px,py) on the line(x1,y1,x2,y2)\n * A simple hit test.\n *\n * @returns {Boolean}\n * @static\n * @private\n * @param {Number} coronaWidth the accepted corona for the hit test\n * @param {Number} X1 x coordinate of the start point of the line\n * @param {Number} Y1 y coordinate of the start point of the line\n * @param {Number} X2 x coordinate of the end point of the line\n * @param {Number} Y2 y coordinate of the end point of the line\n * @param {Number} px x coordinate of the point to test\n * @param {Number} py y coordinate of the point to test\n **/\n_packages2.default.shape.basic.Line.hit = function (coronaWidth, X1, Y1, X2, Y2, px, py) {\n return _packages2.default.geo.Line.distance(X1, Y1, X2, Y2, px, py) < coronaWidth;\n};\n\n/***/ }),\n\n/***/ \"./src/shape/basic/LineEndResizeHandle.js\":\n/*!************************************************!*\\\n !*** ./src/shape/basic/LineEndResizeHandle.js ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Selection handle for connections and normal lines.\n *\n *\n * @author Andreas Herz\n * @extends draw2d.shape.basic.LineResizeHandle\n */\n_packages2.default.shape.basic.LineEndResizeHandle = _packages2.default.shape.basic.LineResizeHandle.extend(\n/** @lends draw2d.shape.basic.LineEndResizeHandle.prototype */\n{\n\n NAME: \"draw2d.shape.basic.LineEndResizeHandle\",\n\n /**\n *\n */\n init: function init(figure) {\n this._super({ owner: figure, index: figure.getVertices().getSize() - 1 });\n },\n\n /**\n *\n * Return the Port assigned to this ResizeHandle if the line is an instance of draw2d.Connection\n *\n * @returns {draw2d.Port}\n */\n getRelatedPort: function getRelatedPort() {\n if (this.owner instanceof _packages2.default.Connection) {\n return this.owner.getTarget();\n }\n\n return null;\n },\n\n /**\n *\n * Return the peer Port assigned to this ResizeHandle if the line is an instance of draw2d.Connection\n *\n * @returns {draw2d.Port}\n */\n getOppositePort: function getOppositePort() {\n if (this.owner instanceof _packages2.default.Connection) {\n return this.owner.getSource();\n }\n\n return null;\n },\n\n /**\n *\n * Called from the framework during a drag&drop operation\n *\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @returns {Boolean}\n * @private\n **/\n onDrag: function onDrag(dx, dy, dx2, dy2) {\n this._super(dx, dy, dx2, dy2);\n\n var objPos = this.owner.getEndPoint().clone();\n objPos.translate(dx2, dy2);\n\n if (this.command !== null) {\n this.command.updatePosition(objPos);\n }\n\n this.owner.setEndPoint(objPos);\n\n this.owner.isMoving = true;\n\n return true;\n },\n\n /**\n *\n * Resizehandle has been drop on a InputPort/OutputPort.\n *\n * @param {draw2d.Figure} dropTarget\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @private\n **/\n onDrop: function onDrop(dropTarget, x, y, shiftKey, ctrlKey) {\n this.owner.isMoving = false;\n\n if (this.owner instanceof _packages2.default.Connection && this.command !== null) {\n this.command.setNewPorts(this.owner.getSource(), dropTarget);\n this.getCanvas().getCommandStack().execute(this.command);\n }\n this.command = null;\n },\n\n /**\n *\n * Controls the location of the resize handle\n *\n **/\n relocate: function relocate() {\n\n var resizeWidthHalf = this.getWidth() / 2;\n var resizeHeightHalf = this.getHeight() / 2;\n\n var anchor = this.owner.getEndPoint();\n\n this.setPosition(anchor.x - resizeWidthHalf, anchor.y - resizeHeightHalf);\n\n return this;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/LineResizeHandle.js\":\n/*!*********************************************!*\\\n !*** ./src/shape/basic/LineResizeHandle.js ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Base class for selection handle for connections and normal lines.\n *\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.basic.Circle\n */\n_packages2.default.shape.basic.LineResizeHandle = _packages2.default.shape.basic.Circle.extend(\n/** @lends draw2d.shape.basic.LineResizeHandle.prototype */\n{\n\n NAME: \"draw2d.shape.basic.LineResizeHandle\",\n\n /**\n *\n */\n init: function init(attr, setter, getter) {\n var _this = this;\n\n this.zoomCallback = function () {\n _this.attr({\n width: _this.origWidth * _this.getCanvas().getZoom(),\n height: _this.origHeight * _this.getCanvas().getZoom(),\n stroke: _this.origStroke * _this.getCanvas().getZoom()\n });\n // size of the ResizeHandle has changed. Force a reposition of handle\n //\n if (!_this.blockEvent) _this.owner.fireEvent(\"move\", {});\n };\n\n this._super((0, _extend2.default)({\n bgColor: \"#5bcaff\",\n stroke: 1,\n width: 10,\n height: 10,\n minWidth: 0.3,\n minHeight: 0.3,\n selectable: false\n }, attr), (0, _extend2.default)({\n owner: this.setOwner,\n index: this.setIndex\n }, setter), (0, _extend2.default)({\n owner: this.getOwner,\n index: this.getIndex\n }, getter));\n\n // required in the SelectionEditPolicy to indicate the type of figure\n // which the user clicks\n this.isResizeHandle = true;\n this.currentTarget = null;\n\n this.origWidth = this.width;\n this.origHeight = this.height;\n this.origStroke = this.stroke;\n },\n\n /**\n * \n * Returns the current used SVG as string\n *\n * @returns {String}\n */\n getOwner: function getOwner() {\n return this.owner;\n },\n\n setOwner: function setOwner(owner) {\n this.owner = owner;\n return this;\n },\n\n /**\n * \n * Returns the index of the selection. In case of a PlyLine the count is dynamic.\n *\n * @returns {Number}\n */\n getIndex: function getIndex() {\n return this.index;\n },\n\n setIndex: function setIndex(index) {\n this.index = index;\n return this;\n },\n\n /**\n * @inheritdoc\n */\n createShapeElement: function createShapeElement() {\n var shape = this._super();\n\n shape.attr({ \"cursor\": \"move\" });\n return shape;\n },\n\n /**\n * @inheritdoc\n **/\n setBackgroundColor: function setBackgroundColor(color) {\n color = new _packages2.default.util.Color(color);\n\n this.bgGradient = \"r(.4,.3)\" + color.hash() + \"-\" + color.darker(0.1).hash() + \":60-\" + color.darker(0.2).hash();\n this._super(color);\n this.setColor(color.darker(0.3));\n\n return this;\n },\n\n /**\n * \n * Return the port below the ResizeHandle.\n *\n * @template\n * @returns {draw2d.Port}\n */\n getRelatedPort: function getRelatedPort() {\n return null;\n },\n\n /**\n * \n * Return the port of the other side of the related connection.\n *\n * @template\n * @returns {draw2d.Port}\n */\n getOppositePort: function getOppositePort() {\n return null;\n },\n\n /**\n * @inheritdoc\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = attributes || {};\n\n if (this.bgColor.hash() === \"none\") {\n attributes.fill = this.bgColor.rgba();\n } else if (this.getAlpha() < 0.9) {\n attributes.fill = this.bgColor.rgba();\n } else {\n attributes.fill = this.bgGradient;\n }\n\n this._super(attributes);\n },\n\n /**\n * Called if the drag and drop action begins. You can return [false] if you\n * want avoid the that the figure can be move.\n *\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @type {Boolean}\n **/\n onDragStart: function onDragStart(x, y, shiftKey, ctrlKey) {\n this.command = this.owner.createCommand(new _packages2.default.command.CommandType(_packages2.default.command.CommandType.MOVE_BASEPOINT));\n // no drag&drop allowed if we didn'T have a valid command.\n // This is one way to send a veto for Connection reconnect\n if (this.command !== null) {\n this.command.setIndex(this.index);\n }\n\n this.setAlpha(0.2);\n this.shape.attr({ \"cursor\": \"crosshair\" });\n\n // fire an event\n // @since 5.3.3\n this.fireEvent(\"dragstart\", { x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n\n return true;\n },\n\n /**\n * \n * Called from the framework during a drag&drop operation\n *\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @returns {Boolean}\n * @private\n **/\n onDrag: function onDrag(dx, dy, dx2, dy2) {\n this.setPosition(this.x + dx2, this.y + dy2);\n\n var port = this.getOppositePort();\n\n var target = port !== null ? port.getCanvas().getBestFigure(this.getX(), this.getY(), [this, this.owner]) : null;\n\n // the hovering element has been changed\n if (target !== this.currentTarget) {\n\n if (this.currentTarget !== null) {\n this.currentTarget.onDragLeave(port);\n this.currentTarget.setGlow(false);\n this.currentTarget.fireEvent(\"dragLeave\", { draggingElement: port });\n }\n\n if (target !== null) {\n this.currentTarget = target.delegateTarget(port);\n if (this.currentTarget !== null) {\n this.currentTarget.setGlow(true);\n this.currentTarget.onDragEnter(port); // legacy\n this.currentTarget.fireEvent(\"dragEnter\", { draggingElement: port });\n }\n }\n }\n\n return true;\n },\n\n /**\n * Called after a drag and drop action.<br>\n * Sub classes can override this method to implement additional stuff. Don't forget to call the super implementation via <code>this._super();</code>\n *\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @returns {Boolean}\n */\n onDragEnd: function onDragEnd(x, y, shiftKey, ctrlKey) {\n if (!this.isDraggable()) {\n return false;\n }\n\n this.shape.attr({ \"cursor\": \"move\" });\n\n var port = this.getOppositePort();\n if (port !== null) {\n if (this.currentTarget !== null) {\n\n this.onDrop(this.currentTarget, x, y, shiftKey, ctrlKey);\n this.currentTarget.onDragLeave(port);\n this.currentTarget.setGlow(false);\n this.currentTarget.fireEvent(\"dragLeave\", { draggingElement: port });\n this.currentTarget.onCatch(this, x, y, shiftKey, ctrlKey);\n this.currentTarget = null;\n }\n }\n\n this.owner.isMoving = false;\n // A Connection is stuck to the corresponding ports. So we must reset the position\n // to the origin port if we doesn't drop the ResizeHandle on a other port.\n //\n if (this.owner instanceof _packages2.default.Connection) {\n if (this.command !== null) {\n this.command.cancel();\n }\n }\n //\n else {\n // An non draggable resizeHandle doesn't create a move/resize command.\n // This happens if the selected figure has set \"isResizeable=false\".\n //\n if (this.command !== null) {\n this.getCanvas().getCommandStack().execute(this.command);\n }\n }\n this.command = null;\n\n this.setAlpha(1);\n\n // fire an event\n // @since 5.3.3\n this.fireEvent(\"dragend\", { x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n },\n\n /**\n * \n * Controls the position of the ResizeHandle\n * Called by the framework.\n *\n **/\n relocate: function relocate() {\n\n return this;\n },\n\n /**\n * \n * The LineResizeHandle didn't support the SnapToHelper feature if the\n * corresponding object is an Connection. A Connection is always bounded to\n * Port. In this case it makes no sense to use a Grid or Geometry for snapping.\n *\n * @returns {Boolean} return false if the corresponding object didn't support snapTo\n **/\n supportsSnapToHelper: function supportsSnapToHelper() {\n if (this.owner instanceof _packages2.default.Connection) {\n return false;\n }\n\n return true;\n },\n\n /**\n * \n * Show the ResizeHandle and add it to the canvas.<br>\n * Additional bring it in to the front of other figures.\n *\n * @param {draw2d.Canvas} canvas the canvas to use\n * @param {Number} x the x-position\n * @param {Number} y the y-position\n **/\n show: function show(canvas, x, y) {\n if (x) debugger;\n // don't call the parent function. The parent functions make this object selectable/deleteable\n // and a resize handle can't be deleted.\n this.setCanvas(canvas);\n try {\n this.blockEvent = true;\n this.zoomCallback();\n } finally {\n this.blockEvent = false;\n }\n\n // this.setPosition(x,y);\n this.shape.toFront();\n this.canvas.resizeHandles.add(this);\n },\n\n /**\n * \n * Hide the resize handle and remove it from the canvas.\n *\n **/\n hide: function hide() {\n // don't call the parent function. The parent functions delete this object\n // and a resize handle shouldn't be deleted.\n if (this.shape === null) {\n return;\n }\n\n this.canvas.resizeHandles.remove(this);\n this.setCanvas(null);\n },\n\n setCanvas: function setCanvas(canvas) {\n\n if (this.canvas !== null) {\n this.canvas.off(this.zoomCallback);\n }\n\n this._super(canvas);\n\n if (this.canvas !== null) {\n this.canvas.on(\"zoom\", this.zoomCallback);\n }\n },\n\n /**\n * \n * Override this method and redirect them to the canvas. A ResizeHandle didn't support\n * Keyboard interaction at the moment.\n *\n * @param {Number} keyCode the id of the pressed key\n * @param {Boolean} ctrl true if the user has pressed the CTRL/STRG key as well.\n **/\n onKeyDown: function onKeyDown(keyCode, ctrl) {\n // don't call the parent function. The parent functions delete this object\n // and a resize handle can't be deleted.\n this.canvas.onKeyDown(keyCode, ctrl);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/LineStartResizeHandle.js\":\n/*!**************************************************!*\\\n !*** ./src/shape/basic/LineStartResizeHandle.js ***!\n \\**************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Selection handle for connections and normal lines.\n *\n * @author Andreas Herz\n * @extends draw2d.shape.basic.LineResizeHandle\n */\n_packages2.default.shape.basic.LineStartResizeHandle = _packages2.default.shape.basic.LineResizeHandle.extend(\n/** @lends draw2d.shape.basic.LineStartResizeHandle.prototype */\n{\n\n NAME: \"draw2d.shape.basic.LineStartResizeHandle\",\n\n /**\n *\n */\n init: function init(figure) {\n this._super({ owner: figure, index: 0 });\n },\n\n /**\n * Returns the Port below the ResizeHandle\n *\n * @returns {draw2d.Port}\n */\n getRelatedPort: function getRelatedPort() {\n if (this.owner instanceof _packages2.default.Connection) return this.owner.getSource();\n\n return null;\n },\n\n /**\n * Returns the Port on the opposite side of the ResizeHandle\n *\n * @returns {draw2d.Port}\n */\n getOppositePort: function getOppositePort() {\n if (this.owner instanceof _packages2.default.Connection) return this.owner.getTarget();\n\n return null;\n },\n\n /**\n * \n * Called from the framework during a drag&drop operation\n *\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @returns {Boolean}\n **/\n onDrag: function onDrag(dx, dy, dx2, dy2) {\n this._super(dx, dy, dx2, dy2);\n\n var objPos = this.owner.getStartPoint();\n objPos.translate(dx2, dy2);\n\n if (this.command !== null) {\n this.command.updatePosition(objPos);\n }\n this.owner.setStartPoint(objPos);\n\n this.owner.isMoving = true;\n\n return true;\n },\n\n /**\n * \n * Resize handle has been drop on a InputPort/OutputPort.\n *\n * @param {draw2d.Port} dropTarget\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n **/\n onDrop: function onDrop(dropTarget, x, y, shiftKey, ctrlKey) {\n this.owner.isMoving = false;\n\n // The ResizeHandle of a Connection has been dropped on a Port\n // This will enforce a ReconnectCommand\n if (this.owner instanceof _packages2.default.Connection && this.command !== null) {\n this.command.setNewPorts(dropTarget, this.owner.getTarget());\n this.getCanvas().getCommandStack().execute(this.command);\n }\n this.command = null;\n },\n\n /**\n * \n * Controls the location of the resize handle\n **/\n relocate: function relocate() {\n var resizeWidthHalf = this.getWidth() / 2;\n var resizeHeightHalf = this.getHeight() / 2;\n\n var anchor = this.owner.getStartPoint();\n\n this.setPosition(anchor.x - resizeWidthHalf, anchor.y - resizeHeightHalf);\n\n return this;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/Oval.js\":\n/*!*********************************!*\\\n !*** ./src/shape/basic/Oval.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Oval figure.\n *\n * @example\n *\n * let oval = new draw2d.shape.basic.Oval({width:150, height:100, x:50, y:10});\n *\n * canvas.add(oval);\n *\n * @author Andreas Herz\n * @extends draw2d.VectorFigure\n */\n_packages2.default.shape.basic.Oval = _packages2.default.VectorFigure.extend(\n/** @lends draw2d.shape.basic.Oval.prototype */\n{\n\n NAME: \"draw2d.shape.basic.Oval\",\n\n /**\n *\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super((0, _extend2.default)({\n bgColor: \"#C02B1D\",\n color: \"#1B1B1B\"\n }, attr), (0, _extend2.default)({\n center: this.setCenter\n }, setter), getter);\n },\n\n /**\n * @template\n **/\n createShapeElement: function createShapeElement() {\n var halfW = this.getWidth() / 2;\n var halfH = this.getHeight() / 2;\n\n return this.canvas.paper.ellipse(this.getAbsoluteX() + halfW, this.getAbsoluteY() + halfH, halfW, halfH);\n },\n\n /**\n *\n * Get the center of the figure\n *\n */\n getCenter: function getCenter() {\n var w2 = this.getWidth() / 2;\n var h2 = this.getHeight() / 2;\n\n return this.getPosition().translated(w2, h2);\n },\n\n /**\n *\n * Set the center of the figure.\n *\n * @param {Number|draw2d.geo.Point} x the new x coordinate of the center or a draw2d.geo.Point object with the center\n * @param {Number} [y] the y coordinate of the new center of the first argument isn't a draw2d.geo.Point object\n */\n setCenter: function setCenter(x, y) {\n var pos = new _packages2.default.geo.Point(x, y);\n var w2 = this.getWidth() / 2;\n var h2 = this.getHeight() / 2;\n\n pos.translate(-w2, -h2);\n this.setPosition(pos);\n\n this.fireEvent(\"change:center\", { value: { x: x, y: y } });\n\n return this;\n },\n\n /**\n * @inheritdoc\n *\n * @template\n **/\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = attributes || {};\n\n // don't override cx/cy if inherited class has set the center already.\n if (typeof attributes.rx === \"undefined\") {\n attributes.rx = this.width / 2;\n attributes.ry = this.height / 2;\n }\n\n // don't override cx/cy if inherited class has set the center already.\n if (typeof attributes.cx === \"undefined\") {\n attributes.cx = this.getAbsoluteX() + attributes.rx;\n attributes.cy = this.getAbsoluteY() + attributes.ry;\n }\n\n this._super(attributes);\n },\n\n /**\n *\n *\n * NOTE: Rotation will need to be added to this function\n *\n **/\n intersectionWithLine: function intersectionWithLine(a1, a2) {\n var rx = this.getWidth() / 2;\n var ry = this.getHeight() / 2;\n\n var result = new _packages2.default.util.ArrayList();\n\n var origin = new _packages2.default.geo.Point(a1.x, a1.y);\n var dir = a2.subtract(a1);\n var center = new _packages2.default.geo.Point(this.getAbsoluteX() + rx, this.getAbsoluteY() + ry);\n var diff = origin.subtract(center);\n var mDir = new _packages2.default.geo.Point(dir.x / (rx * rx), dir.y / (ry * ry));\n var mDiff = new _packages2.default.geo.Point(diff.x / (rx * rx), diff.y / (ry * ry));\n\n var a = dir.dot(mDir);\n var b = dir.dot(mDiff);\n var c = diff.dot(mDiff) - 1.0;\n var d = b * b - a * c;\n\n if (d < 0) {\n // \"Outside\"\n } else if (d > 0) {\n var root = Math.sqrt(d);\n var t_a = (-b - root) / a;\n var t_b = (-b + root) / a;\n\n if ((t_a < 0 || 1 < t_a) && (t_b < 0 || 1 < t_b)) {\n if (t_a < 0 && t_b < 0 || t_a > 1 && t_b > 1) {\n //\"Outside\";\n } else {\n //\"Inside\";\n }\n } else {\n if (0 <= t_a && t_a <= 1) result.add(a1.lerp(a2, t_a));\n if (0 <= t_b && t_b <= 1) result.add(a1.lerp(a2, t_b));\n }\n } else {\n var t = -b / a;\n if (0 <= t && t <= 1) {\n result.add(a1.lerp(a2, t));\n } else {\n //\"Outside\";\n }\n }\n\n return result;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/PolyLine.js\":\n/*!*************************************!*\\\n !*** ./src/shape/basic/PolyLine.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _JSONUtil = __webpack_require__(/*! ../../util/JSONUtil */ \"./src/util/JSONUtil.js\");\n\nvar _JSONUtil2 = _interopRequireDefault(_JSONUtil);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A PolyLine is a line with more than 2 points.\n *\n *\n * @example\n *\n * let line = new draw2d.shape.basic.PolyLine();\n * line.setVertices([{x:10,y:10},{x:80,y:70},{x:100,y:110}]);\n * canvas.add(line);\n *\n *\n * canvas.setCurrentSelection(line);\n *\n * @author Andreas Herz\n * @extends draw2d.shape.basic.Line\n */\n_packages2.default.shape.basic.PolyLine = _packages2.default.shape.basic.Line.extend(\n/** @lends draw2d.shape.basic.PolyLine.prototype */\n{\n\n NAME: \"draw2d.shape.basic.PolyLine\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n // internal status handling for performance reasons\n //\n this.svgPathString = null;\n this.oldPoint = null;\n\n this.router = null;\n this.routingRequired = true;\n this.lineSegments = new _packages2.default.util.ArrayList();\n\n this.radius = \"\";\n\n this._super((0, _extend2.default)({\n router: new _packages2.default.layout.connection.VertexRouter()\n }, attr), (0, _extend2.default)({}, {\n // @attr {draw2d.layout.connection.ConnectionRouter} the router to use to layout the polyline */\n router: this.setRouter,\n // @attr {Number} radius the radius to render the line edges */\n radius: this.setRadius\n }, setter), (0, _extend2.default)({}, {\n router: this.getRouter,\n radius: this.getRadius\n }, getter));\n },\n\n /**\n * \n * Sets the corner radius of the edges.\n *\n * @param {Number} radius the corner radius\n * @since 4.2.1\n */\n setRadius: function setRadius(radius) {\n this.radius = radius;\n this.svgPathString = null;\n this.repaint();\n this.fireEvent(\"change:radius\", { value: this.radius });\n\n return this;\n },\n\n setOutlineStroke: function setOutlineStroke(w) {\n if (this.outlineStroke !== w) {\n this.svgPathString = null;\n this.routingRequired = true;\n }\n this._super(w);\n\n return this;\n },\n\n /**\n * \n * Get the corner radius of the edges.\n *\n * @returns {Number}\n * @since 4.2.1\n */\n getRadius: function getRadius() {\n return this.radius;\n },\n\n /**\n * \n * Set the start point of the line.\n *\n * @param {Number} x the x coordinate of the start point\n * @param {Number} y the y coordinate of the start point\n **/\n setStartPoint: function setStartPoint(x, y) {\n if (this.vertices.getSize() > 0) {\n this.vertices.first().setPosition(x, y);\n } else {\n this.vertices.add(new _packages2.default.geo.Point(x, y));\n }\n this.start = this.vertices.first().clone();\n // if(this.isInDragDrop===false)\n this.calculatePath({ startMoved: true, endMoved: false });\n\n this.repaint();\n\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n\n this.fireEvent(\"change:start\", { value: this.start });\n\n return this;\n },\n\n /**\n * \n * Set the end point of the line.\n *\n * @param {Number} x the x coordinate of the end point\n * @param {Number} y the y coordinate of the end point\n */\n setEndPoint: function setEndPoint(x, y) {\n if (this.vertices.getSize() > 1) {\n this.vertices.last().setPosition(x, y);\n } else {\n this.vertices.add(new _packages2.default.geo.Point(x, y));\n }\n this.end = this.vertices.last().clone();\n\n if (this.isInDragDrop === false) this.calculatePath({ startMoved: false, endMoved: true });\n\n this.repaint();\n\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n this.fireEvent(\"change:end\", { value: this.end });\n\n return this;\n },\n\n /**\n * \n * Inserts the draw2d.geo.Point object into the vertex list of the polyline just after the object with the given index.\n *\n * @param {Number|draw2d.geo.Point} x the x coordinate or the draw2d.geo.Point object\n * @param {Number} [y] the y coordinate or undefined of the second argument is a point\n *\n * @since 4.0.0\n */\n addVertex: function addVertex(x, y) {\n this.vertices.add(new _packages2.default.geo.Point(x, y));\n\n this.start = this.vertices.first().clone();\n this.end = this.vertices.last().clone();\n\n this.svgPathString = null;\n this.repaint();\n\n if (!this.selectionHandles.isEmpty()) {\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy) {\n e.onUnselect(_this.canvas, _this);\n e.onSelect(_this.canvas, _this);\n }\n });\n }\n this.fireEvent(\"change:vertices\", { value: this.vertices });\n\n return this;\n },\n\n /**\n * \n * Inserts the draw2d.geo.Point object into the vertex list of the polyline just after the object with the given index.\n *\n * @param {Number} index the insert index\n * @param {Number|draw2d.geo.Point} x the x coordinate or the draw2d.geo.Point object\n * @param {Number} [y] the y coordinate or undefined of the second argument is a point\n *\n * @since 4.0.0\n */\n insertVertexAt: function insertVertexAt(index, x, y) {\n var vertex = new _packages2.default.geo.Point(x, y);\n\n this.vertices.insertElementAt(vertex, index);\n\n this.start = this.vertices.first().clone();\n this.end = this.vertices.last().clone();\n\n this.svgPathString = null;\n this.repaint();\n\n if (!this.selectionHandles.isEmpty()) {\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy) {\n e.onUnselect(_this.canvas, _this);\n e.onSelect(_this.canvas, _this);\n }\n });\n }\n this.fireEvent(\"change:vertices\", { value: this.vertices });\n\n return this;\n },\n\n /**\n * \n * Remove a vertex from the polyline and return the removed point. The current installed connection router\n * can send an veto for this operation.\n *\n * @param index\n * @returns {draw2d.geo.Point} the removed point or null of the current router decline this operation\n * @since 4.0.0\n */\n removeVertexAt: function removeVertexAt(index) {\n var removedPoint = this.vertices.removeElementAt(index);\n\n this.start = this.vertices.first().clone();\n this.end = this.vertices.last().clone();\n\n this.svgPathString = null;\n this.repaint();\n\n if (!this.selectionHandles.isEmpty()) {\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy) {\n e.onUnselect(_this.canvas, _this);\n e.onSelect(_this.canvas, _this);\n }\n });\n }\n this.fireEvent(\"change:vertices\", { value: this.vertices });\n\n return removedPoint;\n },\n\n /**\n * \n * Set the router for this connection.\n *\n * @param {draw2d.layout.connection.ConnectionRouter} [router] the new router for this connection or null if the connection should use the default routing\n **/\n setRouter: function setRouter(router) {\n if (this.router !== null) {\n this.router.onUninstall(this);\n }\n\n if (typeof router === \"undefined\" || router === null) {\n this.router = new _packages2.default.layout.connection.DirectRouter();\n } else {\n this.router = router;\n }\n\n this.router.onInstall(this);\n\n this.routingRequired = true;\n\n // repaint the connection with the new router\n this.repaint();\n\n this.fireEvent(\"change:router\", { value: this.router });\n\n return this;\n },\n\n /**\n * \n * Return the current active router of this connection.\n *\n * @returns draw2d.layout.connection.ConnectionRouter\n **/\n getRouter: function getRouter() {\n return this.router;\n },\n\n /**\n * \n * Calculate the path of the polyline\n *\n * @param {Object} [routingHints] some helper attributes for the router\n * @param {Boolean} routingHints.startMoved is true if just the start location has moved\n * @param {Boolean} routingHints.endMoved is true if the destination location has changed\n * @param {Boolean} routingHints.oldVertices store old vertices for after processing\n *\n * @private\n */\n calculatePath: function calculatePath(routingHints) {\n routingHints = routingHints || {};\n\n if (this.shape === null) {\n return;\n }\n\n this.svgPathString = null;\n\n routingHints.oldVertices = this.vertices;\n\n // cleanup the routing cache\n //\n this.oldPoint = null;\n this.lineSegments = new _packages2.default.util.ArrayList();\n this.vertices = new _packages2.default.util.ArrayList();\n\n // Use the internal router\n //\n this.router.route(this, routingHints);\n this.routingRequired = false;\n this.fireEvent(\"routed\");\n this.fireEvent(\"change:route\", {});\n },\n\n /**\n * @inheritdoc\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return this;\n }\n\n if (this.svgPathString === null || this.routingRequired === true) {\n this.calculatePath();\n }\n\n if (typeof attributes === \"undefined\") {\n attributes = {};\n }\n attributes.path = this.svgPathString;\n _JSONUtil2.default.ensureDefault(attributes, \"stroke-linecap\", \"round\");\n _JSONUtil2.default.ensureDefault(attributes, \"stroke-linejoin\", \"round\");\n\n return this._super(attributes);\n },\n\n /**\n * \n * Return all line segments of the polyline.\n *\n * @returns {draw2d.util.ArrayList}\n */\n getSegments: function getSegments() {\n return this.lineSegments;\n },\n\n /**\n * used for the router to add the calculated points\n *\n * @param p\n * @param y\n */\n addPoint: function addPoint(p, y) {\n if (typeof y !== \"undefined\") {\n p = new _packages2.default.geo.Point(p, y);\n }\n this.vertices.add(p);\n\n if (this.oldPoint !== null) {\n // store the painted line segment for the \"mouse selection test\"\n // (required for user interaction)\n this.lineSegments.add({\n start: this.oldPoint,\n end: p\n });\n }\n this.svgPathString = null;\n this.oldPoint = p;\n },\n\n /**\n * \n * Called if the drag and drop action begins. You can return [false] if you\n * want avoid that the figure can be move.\n *\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @returns {Boolean} true if the figure accepts dragging\n **/\n onDragStart: function onDragStart(x, y, shiftKey, ctrlKey, isFaked) {\n var result = this._super(x, y, shiftKey, ctrlKey, isFaked);\n\n if (result === true && isFaked !== true) {\n this.draggedSegment = this.hitSegment(x, y);\n }\n return result;\n },\n\n /**\n * \n * Returns the length of the polyline.\n *\n * @returns {Number}\n * @since 6.1.43\n **/\n getLength: function getLength() {\n var result = 0;\n for (var i = 0; i < this.lineSegments.getSize(); i++) {\n var segment = this.lineSegments.get(i);\n var p1 = segment.start;\n var p2 = segment.end;\n result += Math.sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y));\n }\n return result;\n },\n\n setVertices: function setVertices(vertices) {\n // inform the router tha the vertices has set outside. This switch some\n // router from full autoroute to half autoroute\n this.router.verticesSet(this);\n\n this._super(vertices);\n },\n\n /**\n * \n * Returns the projection of the point on the line.\n *\n * @param {Number} px the x coordinate of the test point\n * @param {Number} py the y coordinate of the test point\n * @returns {draw2d.geo.Point}\n **/\n pointProjection: function pointProjection(px, py) {\n var result = null,\n projection = null,\n p1 = null,\n p2 = null,\n segment = null;\n var lastDist = Number.MAX_SAFE_INTEGER;\n var pt = new _packages2.default.geo.Point(px, py);\n for (var i = 0; i < this.lineSegments.getSize(); i++) {\n segment = this.lineSegments.get(i);\n p1 = segment.start;\n p2 = segment.end;\n projection = _packages2.default.geo.Line.pointProjection(p1.x, p1.y, p2.x, p2.y, pt.x, pt.y);\n if (projection !== null) {\n var dist = projection.distance(pt);\n if (result == null || dist < lastDist) {\n result = projection;\n result.index = i;\n lastDist = dist;\n }\n }\n }\n\n if (result !== null) {\n var length = 0;\n var _segment = void 0;\n for (var _i = 0; _i < result.index; _i++) {\n _segment = this.lineSegments.get(_i);\n length += _segment.start.distance(_segment.end);\n }\n _segment = this.lineSegments.get(result.index);\n p1 = _segment.start;\n p2 = _segment.end;\n length += p1.distance(p2) * _packages2.default.geo.Line.inverseLerp(p2.x, p2.y, p1.x, p1.y, result.x, result.y);\n result.percentage = 1.0 / this.getLength() * length;\n }\n return result;\n },\n\n /**\n * \n * Returns the point onto the line which has the relative 'percentage' position onto the line.\n *\n * @param {Number} percentage the relative position between [0..1]\n * @returns {draw2d.geo.Point}\n */\n lerp: function lerp(percentage) {\n var length = this.getLength() * percentage;\n var lastValidLength = length;\n var segment = null,\n p1 = null,\n p2 = null;\n for (var i = 0; i < this.lineSegments.getSize(); i++) {\n segment = this.lineSegments.get(i);\n p1 = segment.start;\n p2 = segment.end;\n length = length - p1.distance(p2);\n if (length <= 0) {\n percentage = 1.0 / p1.distance(p2) * lastValidLength;\n return new _packages2.default.geo.Point(p1.x + (p2.x - p1.x) * percentage, p1.y + (p2.y - p1.y) * percentage);\n }\n lastValidLength = length;\n }\n return p2;\n },\n\n /**\n * \n * get the best segment of the line which is below the given coordinate or null if\n * all segment are not below the coordinate. <br>\n * The 'corona' property of the polyline is considered for this test. This means\n * the point isn't direct on the line. Is it only close to the line!\n *\n * @param {Number} px the x coordinate of the test point\n * @param {Number} py the y coordinate of the test point\n * @returns {Object}\n * @since 4.4.0\n **/\n hitSegment: function hitSegment(px, py) {\n for (var i = 0; i < this.lineSegments.getSize(); i++) {\n var segment = this.lineSegments.get(i);\n if (_packages2.default.shape.basic.Line.hit(this.corona + this.stroke, segment.start.x, segment.start.y, segment.end.x, segment.end.y, px, py)) {\n return { index: i, start: segment.start, end: segment.end };\n }\n }\n return null;\n },\n\n /**\n * \n * Checks if the hands over coordinate close to the line. The 'corona' property of the polyline\n * is considered for this test. This means the point isn't direct on the line. Is it only close to the\n * line!\n *\n * @param {Number} px the x coordinate of the test point\n * @param {Number} py the y coordinate of the test point\n * @returns {Boolean}\n **/\n hitTest: function hitTest(px, py) {\n return this.hitSegment(px, py) !== null;\n },\n\n /**\n * @inheritdoc\n */\n createCommand: function createCommand(request) {\n\n if (request.getPolicy() === _packages2.default.command.CommandType.DELETE) {\n if (this.isDeleteable() === true) {\n return new _packages2.default.command.CommandDelete(this);\n }\n } else if (request.getPolicy() === _packages2.default.command.CommandType.MOVE_VERTEX) {\n if (this.isResizeable() === true) {\n return new _packages2.default.command.CommandMoveVertex(this);\n }\n } else if (request.getPolicy() === _packages2.default.command.CommandType.MOVE_VERTICES) {\n if (this.isResizeable() === true) {\n return new _packages2.default.command.CommandMoveVertices(this);\n }\n }\n\n return this._super(request);\n },\n\n /**\n * @inheritdoc\n */\n getPersistentAttributes: function getPersistentAttributes() {\n var memento = (0, _extend2.default)(this._super(), {\n router: this.router.NAME,\n radius: this.radius\n });\n\n memento = this.router.getPersistentAttributes(this, memento);\n\n return memento;\n },\n\n /**\n * @inheritdoc\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n\n if (typeof memento.router !== \"undefined\") {\n try {\n this.setRouter(eval(\"new \" + memento.router + \"()\"));\n } catch (exc) {\n debug.warn(\"Unable to install router '\" + memento.router + \"' forced by \" + this.NAME + \".setPersistentAttributes. Using default\");\n }\n }\n\n if (typeof memento.radius !== \"undefined\") {\n this.setRadius(memento.radius);\n }\n\n this.router.setPersistentAttributes(this, memento);\n\n if (this.vertices.getSize() > 1) {\n this.start = this.vertices.first().clone();\n this.end = this.vertices.last().clone();\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/Polygon.js\":\n/*!************************************!*\\\n !*** ./src/shape/basic/Polygon.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _JSONUtil = __webpack_require__(/*! ../../util/JSONUtil */ \"./src/util/JSONUtil.js\");\n\nvar _JSONUtil2 = _interopRequireDefault(_JSONUtil);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n/**\n * @class\n * A Polygon figure.\n *\n *\n * @example\n *\n * let p1 = new draw2d.shape.basic.Polygon({width:100, height:100});\n * let p2 = new draw2d.shape.basic.Polygon({width:100, height:60});\n *\n * canvas.add(p1,10,10);\n * canvas.add(p2,100,10);\n *\n * p2.attr({color:\"#f0f000\", alpha:0.7});\n *\n * canvas.setCurrentSelection(p2);\n *\n * @author Andreas Herz\n * @extends draw2d.VectorFigure\n */\n_packages2.default.shape.basic.Polygon = _packages2.default.VectorFigure.extend(\n/** @lends draw2d.shape.basic.Polygon.prototype */\n{\n\n NAME: \"draw2d.shape.basic.Polygon\",\n\n /**\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.minX = 0;\n this.minY = 0;\n this.maxX = 0;\n this.maxY = 0;\n this.vertices = new _packages2.default.util.ArrayList();\n\n this._super(attr, setter, getter);\n\n // we must cache the initial width/height because the width/height of the shape\n // is recalculated in the addVertex method. After the first call this values are 0/0\n if (this.vertices.getSize() === 0) {\n var w = this.width;\n var h = this.height;\n var pos = this.getPosition();\n this.addVertex(new _packages2.default.geo.Point(0, 0));\n this.addVertex(new _packages2.default.geo.Point(w, 0));\n this.addVertex(new _packages2.default.geo.Point(w, h));\n\n this.setPosition(pos);\n }\n\n this.svgPathString = null;\n\n this.installEditPolicy(new _packages2.default.policy.figure.VertexSelectionFeedbackPolicy());\n },\n\n /**\n * @inheritdoc\n */\n setRadius: function setRadius(radius) {\n this.svgPathString = null;\n\n this._super(radius);\n this.fireEvent(\"change:radius\", { value: radius });\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n createShapeElement: function createShapeElement() {\n // return some good default...\n return this.canvas.paper.path(\"M0 10L100 100\");\n },\n\n /**\n * \n * calculate the path of the polygon\n *\n */\n calculatePath: function calculatePath() {\n var radius = this.getRadius();\n var path = [];\n // hard corners\n //\n if (radius === 0) {\n var _length = this.vertices.getSize();\n var p = this.vertices.get(0);\n path.push(\"M\", p.x, \" \", p.y);\n for (var i = 1; i < _length; i++) {\n p = this.vertices.get(i);\n path.push(\"L\", p.x, \" \", p.y);\n }\n path.push(\"Z\");\n }\n // soften/round corners\n //\n else {\n length = this.vertices.getSize();\n var start = this.vertices.first();\n var end = this.vertices.last();\n if (start.equals(end)) {\n length = length - 1;\n end = this.vertices.get(length - 1);\n }\n var begin = _packages2.default.geo.Util.insetPoint(start, end, radius);\n path.push(\"M\", begin.x, \",\", begin.y);\n for (var _i = 0; _i < length; _i++) {\n start = this.vertices.get(_i);\n end = this.vertices.get((_i + 1) % length);\n var modStart = _packages2.default.geo.Util.insetPoint(start, end, radius);\n var modEnd = _packages2.default.geo.Util.insetPoint(end, start, radius);\n path.push(\"Q\", start.x, \",\", start.y, \" \", modStart.x, \", \", modStart.y);\n path.push(\"L\", modEnd.x, \",\", modEnd.y);\n }\n }\n this.svgPathString = path.join(\"\");\n return this;\n },\n\n /**\n * @inheritdoc\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n if (this.svgPathString === null) {\n this.calculatePath();\n }\n\n attributes = attributes || {};\n\n _JSONUtil2.default.ensureDefault(attributes, \"path\", this.svgPathString);\n\n this._super(attributes);\n },\n\n /**\n * \n * Translate the figure with the given x/y offset. This method modifies all\n * vertices and the bounding box.\n *\n * @param {Number} dx The new x translate offset\n * @param {Number} dy The new y translate offset\n **/\n translate: function translate(dx, dy) {\n var _this = this;\n\n // TODO: This is not good. If the polygon part of an \"Composite\" I should call\n // the adjustPosition. IF we DragDrap the composition the figures inside should follow\n // without modify the dx/dy.\n //\n dx = this.x + dx;\n dy = this.y + dy;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n var newPos = e.adjustPosition(_this, dx, dy);\n dx = newPos.x;\n dy = newPos.y;\n }\n });\n dx = dx - this.x;\n dy = dy - this.y;\n\n this.vertices.each(function (i, e) {\n e.translate(dx, dy);\n });\n this.svgPathString = null;\n this.updateBoundingBox();\n\n this.repaint();\n\n // Update the resize handles if the user change the position of the\n // element via an API call.\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n\n this.fireEvent(\"move\", { figure: this, dx: dx, dy: dy });\n this.fireEvent(\"change:x\", { value: this.x });\n this.fireEvent(\"change:y\", { value: this.y });\n\n return this;\n },\n\n /**\n * \n * Change the position of the polygon. This method updates all vertices.\n *\n * @param {Number|draw2d.geo.Point} x\n * @param {Number} [y]\n */\n setPosition: function setPosition(x, y) {\n if (x instanceof _packages2.default.geo.Point) {\n y = x.y;\n x = x.x;\n }\n this.svgPathString = null;\n\n var dx = x - this.minX;\n var dy = y - this.minY;\n\n this.translate(dx, dy);\n\n this.x = x;\n this.y = y;\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n setDimension: function setDimension(w, h) {\n var oldWidth = this.width;\n var oldHeight = this.height;\n\n this._super(w, h);\n\n var fracWidth = 1 / oldWidth * this.width;\n var fracHeight = 1 / oldHeight * this.height;\n\n var thisX = this.x;\n var thisY = this.y;\n this.vertices.each(function (i, e) {\n // calculate difference between point and figure origin\n var diffX = (e.getX() - thisX) * fracWidth;\n var diffY = (e.getY() - thisY) * fracHeight;\n e.setPosition(thisX + diffX, thisY + diffY);\n });\n\n this.svgPathString = null;\n this.repaint();\n this.fireEvent(\"change:dimension\", { value: { width: this.width, height: this.height } });\n\n return this;\n },\n\n /**\n * \n * Return all vertices of the polygon.\n *\n * @returns {draw2d.util.ArrayList}\n */\n getVertices: function getVertices() {\n return this.vertices;\n },\n\n /**\n * \n * Return the Vertex with the given index.\n *\n * @param {Number} index the index of the vertex to return\n * @since 5.0.2\n */\n getVertex: function getVertex(index) {\n return this.vertices.get(index);\n },\n\n resetVertices: function resetVertices() {\n var _this2 = this;\n\n this.vertices = new _packages2.default.util.ArrayList();\n\n this.svgPathString = null;\n this.repaint();\n\n this.updateBoundingBox();\n\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this2.canvas, _this2);\n }\n });\n\n return this;\n },\n\n /**\n * \n * Update the vertex at the given index. The method call didn't have any effect\n * if the vertex didn't exists.\n *\n * @param {Number} index\n * @param {Number} x\n * @param {Number} y\n */\n setVertex: function setVertex(index, x, y) {\n var vertex = this.vertices.get(index);\n\n // invalid point or nothing to do\n //\n if (vertex === null || vertex.x === x && vertex.y === y) {\n return this;\n }\n\n vertex.x = parseFloat(x);\n vertex.y = parseFloat(y);\n\n this.svgPathString = null;\n this.repaint();\n\n this.updateBoundingBox();\n\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n this.fireEvent(\"change:vertices\", { value: this.vertices });\n\n return this;\n },\n\n /**\n * \n * Append a new vertex to the polygon.\n *\n * @param {Number | draw2d.geo.Point} x\n * @param {Number} [y]\n */\n addVertex: function addVertex(x, y) {\n this.vertices.add(new _packages2.default.geo.Point(x, y));\n\n this.svgPathString = null;\n this.repaint();\n\n this.updateBoundingBox();\n\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n this.fireEvent(\"change:vertices\", { value: this.vertices });\n\n return this;\n },\n\n /**\n * \n * Insert a new vertex at the given index. All vertices will be shifted to\n * free the requested index.\n *\n * @param {Number} index\n * @param {Number} x\n * @param {Number} y\n */\n insertVertexAt: function insertVertexAt(index, x, y) {\n this.vertices.insertElementAt(new _packages2.default.geo.Point(x, y), index);\n\n this.svgPathString = null;\n this.repaint();\n\n this.updateBoundingBox();\n\n if (!this.selectionHandles.isEmpty()) {\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy) {\n e.onUnselect(_this.canvas, _this);\n e.onSelect(_this.canvas, _this);\n }\n });\n }\n this.fireEvent(\"change:vertices\", { value: this.vertices });\n\n return this;\n },\n\n /**\n * \n * Remove a vertex from the polygon and return the removed point.\n *\n * @param {Number} index\n *\n * @returns {draw2d.geo.Point} the removed vertex\n */\n removeVertexAt: function removeVertexAt(index) {\n // a polygon need at least 3 vertices\n //\n if (this.vertices.getSize() <= 3) {\n return null;\n }\n\n var vertex = this.vertices.removeElementAt(index);\n\n this.svgPathString = null;\n this.repaint();\n\n this.updateBoundingBox();\n\n if (!this.selectionHandles.isEmpty()) {\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy) {\n e.onUnselect(_this.canvas, _this);\n e.onSelect(_this.canvas, _this);\n }\n });\n }\n this.fireEvent(\"change:vertices\", { value: this.vertices });\n\n return vertex;\n },\n\n /**\n * @inheritdoc\n */\n setRotationAngle: function setRotationAngle(angle) {\n this.rotationAngle = 360 % angle;\n\n // The different to the other figures is, the the vertices must rotated instead of\n // transform the shape with SVG matrix.\n //\n // Reason: the vertices are selectable and in this case the coordinates must transform\n // and not only the resulting SVG shape.\n //\n var radian = angle / (180 / Math.PI);\n var center = this.getBoundingBox().getCenter();\n var rotate = function rotate(x, y, xm, ym, radian) {\n var cos = Math.cos,\n sin = Math.sin;\n return {\n x: (x - xm) * cos(radian) - (y - ym) * sin(radian) + xm,\n y: (x - xm) * sin(radian) + (y - ym) * cos(radian) + ym\n };\n };\n\n this.vertices.each(function (i, e) {\n var rot = rotate(e.x, e.y, center.x, center.y, radian);\n e.setPosition(rot.x, rot.y);\n });\n\n this.updateBoundingBox();\n\n // Update the resize handles if the user change the position of the element via an API call.\n //\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n\n this.repaint();\n this.fireEvent(\"change:angle\", { value: this.rotationAngle });\n\n return this;\n },\n\n /**\n * \n * Calculate the bounding box of the shape and store them in an internal\n * variable for fast access.\n *\n * @private\n */\n updateBoundingBox: function updateBoundingBox() {\n if (this.vertices.isEmpty()) {\n this.minX = this.x;\n this.minY = this.y;\n this.maxX = this.x + this.width;\n this.maxY = this.y + this.height;\n } else {\n this.minX = this.x = Math.min.apply(Math, _toConsumableArray(this.vertices.asArray().map(function (n) {\n return n.x;\n })));\n this.minY = this.y = Math.min.apply(Math, _toConsumableArray(this.vertices.asArray().map(function (n) {\n return n.y;\n })));\n this.maxX = Math.max.apply(Math, _toConsumableArray(this.vertices.asArray().map(function (n) {\n return n.x;\n })));\n this.maxY = Math.max.apply(Math, _toConsumableArray(this.vertices.asArray().map(function (n) {\n return n.y;\n })));\n this.width = this.maxX - this.minX;\n this.height = this.maxY - this.minY;\n }\n },\n\n /**\n * @inheritdoc\n */\n createCommand: function createCommand(request) {\n\n if (request.getPolicy() === _packages2.default.command.CommandType.MOVE_VERTEX) {\n if (this.isResizeable() === true) {\n return new _packages2.default.command.CommandMoveVertex(this);\n }\n }\n\n return this._super(request);\n },\n\n /**\n * @inheritdoc\n */\n getPersistentAttributes: function getPersistentAttributes() {\n var memento = this._super();\n\n memento.vertices = [];\n\n this.vertices.each(function (i, e) {\n memento.vertices.push({ x: e.x, y: e.y });\n });\n\n return memento;\n },\n\n /**\n * @inheritdoc\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n var _this3 = this;\n\n this._super(memento);\n\n // restore the points from the JSON data and add them to the polyline\n //\n if (typeof memento.vertices !== \"undefined\") {\n this.vertices = new _packages2.default.util.ArrayList();\n memento.vertices.forEach(function (point) {\n _this3.addVertex(point);\n });\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/Rectangle.js\":\n/*!**************************************!*\\\n !*** ./src/shape/basic/Rectangle.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * A Rectangle Figure.\n *\n *\n * @example\n *\n * let rect1 = new draw2d.shape.basic.Rectangle({\n * \tx:10,\n * y:10\n * });\n *\n * let rect2 = new draw2d.shape.basic.Rectangle({\n * x: 100,\n * y: 10,\n * bgColor: \"#f0f000\",\n * alpha : 0.7,\n * width: 100,\n * height: 60,\n * radius: 10\n * });\n *\n * canvas.add(rect1);\n * canvas.add(rect2);\n *\n * canvas.setCurrentSelection(rect2);\n *\n * @author Andreas Herz\n * @param {Object} [attr] the configuration of the shape\n * @param {Object} [setter] add or replace setter methods\n * @param {Object} [getter] add or replace getter methods\n * @extends draw2d.VectorFigure\n */\n_packages2.default.shape.basic.Rectangle = _packages2.default.VectorFigure.extend(\n/** @lends draw2d.shape.basic.Rectangle.prototype */\n{\n\n NAME: \"draw2d.shape.basic.Rectangle\",\n\n init: function init(attr, setter, getter) {\n this.dasharray = null;\n\n this._super((0, _extend2.default)({ bgColor: \"#a0a0a0\", color: \"#1B1B1B\" }, attr), (0, _extend2.default)({}, {\n // @attr {String} dash The dot/dash pattern for the line style. Valid values: [\"\", \"-\", \".\", \"-.\", \"-..\", \". \", \"- \", \"--\", \"- .\", \"--.\", \"--..\"]*/\n dash: this.setDashArray,\n // @attr {String} dasharray The dot/dash pattern for the line style. Valid values: [\"\", \"-\", \".\", \"-.\", \"-..\", \". \", \"- \", \"--\", \"- .\", \"--.\", \"--..\"]*/\n dasharray: this.setDashArray\n }, setter), (0, _extend2.default)({}, {\n dash: this.getDashArray,\n dasharray: this.getDashArray\n }, getter));\n },\n\n /**\n * @inheritdoc\n **/\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = (0, _extend2.default)({}, {\n width: this.getWidth(),\n height: this.getHeight(),\n r: this.getRadius()\n }, attributes);\n\n if (this.dasharray !== null) {\n attributes[\"stroke-dasharray\"] = this.dasharray;\n }\n\n this._super(attributes);\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n applyTransformation: function applyTransformation() {\n var ts = \"R\" + this.rotationAngle;\n\n if (this.getRotationAngle() === 90 || this.getRotationAngle() === 270) {\n var ratio = this.getHeight() / this.getWidth();\n ts = ts + \"S\" + ratio + \",\" + 1 / ratio + \",\" + (this.getAbsoluteX() + this.getWidth() / 2) + \",\" + (this.getAbsoluteY() + this.getHeight() / 2);\n }\n\n this.shape.transform(ts);\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n createShapeElement: function createShapeElement() {\n return this.canvas.paper.rect(this.getAbsoluteX(), this.getAbsoluteY(), this.getWidth(), this.getHeight());\n },\n\n /**\n *\n * Set the line style for dot/dash styling. Possible values are\n * [\"\", \"-\", \".\", \"-.\", \"-..\", \". \", \"- \", \"--\", \"- .\", \"--.\", \"--..\"]\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * dash: pattern\n * });\n *\n * @param {String} pattern the string with the dot/dash pattern. valid values: [\"\", \"-\", \".\", \"-.\", \"-..\", \". \", \"- \", \"--\", \"- .\", \"--.\", \"--..\"]\n */\n setDashArray: function setDashArray(pattern) {\n this.dasharray = pattern;\n this.repaint();\n this.fireEvent(\"change:dashArray\", { value: this.dasharray });\n\n return this;\n },\n\n /**\n *\n * Get the line style for this object.\n *\n * // Alternatively you can use the attr method:\n * figure.attr(\"dash\");\n *\n * @since 5.1.0\n */\n getDashArray: function getDashArray() {\n return this.dasharray;\n },\n\n /**\n * @inheritdoc\n */\n getPersistentAttributes: function getPersistentAttributes() {\n var memento = this._super();\n\n if (this.dasharray !== null) {\n memento.dasharray = this.dasharray;\n }\n\n return memento;\n },\n\n /**\n * @inheritdoc\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n\n if (typeof memento.dasharray === \"string\") {\n this.dasharray = memento.dasharray;\n }\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/Text.js\":\n/*!*********************************!*\\\n !*** ./src/shape/basic/Text.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Implements a simple text with word wrapping.<br>The height of the element is automatic calculated. The widht of\n * the element is changeable by the user and respect the minWidth constraint.\n * <br>\n *\n *\n * @example\n *\n * let shape = new draw2d.shape.basic.Text({text:\"This is a simple text with some loooooong word in.\"});\n *\n * canvas.add(shape,40,10);\n *\n * @author Andreas Herz\n * @since 4.2.3\n * @extends draw2d.shape.basic.Label\n */\n_packages2.default.shape.basic.Text = _packages2.default.shape.basic.Label.extend(\n/** @lends draw2d.shape.basic.Text.prototype */\n{\n\n NAME: \"draw2d.shape.basic.Text\",\n\n /**\n * Creates a new text element.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.cachedWrappedAttr = null;\n\n this._super(extend({ width: 100, height: 50, resizeable: true }, attr), setter, getter);\n\n this.installEditPolicy(new _packages2.default.policy.figure.WidthSelectionFeedbackPolicy());\n },\n\n /**\n * @inheritdoc\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n // style the label\n this.svgNodes.attr(extend({}, this.calculateTextAttr(), this.wrappedTextAttr(this.text, this.getWidth() - this.padding.left - this.padding.right)));\n\n // set of the x/y must be done AFTER the font-size and bold has been set.\n // Reason: the getHeight method needs the font-size for calculation because\n // it redirects the calculation to the SVG element.\n this.svgNodes.attr({ x: this.padding.left, y: this.getHeight() / 2 });\n\n // this is an exception call. Don't call the super method (Label) to avoid\n // the calculation in this method.\n _packages2.default.SetFigure.prototype.repaint.call(this, attributes);\n },\n\n /**\n * @inheritdoc\n */\n setDimension: function setDimension(w, h) {\n this.clearCache();\n var attr = this.wrappedTextAttr(this.text, w);\n\n this.cachedMinWidth = Math.max(w, attr.width);\n this.cachedMinHeight = attr.height;\n\n _packages2.default.shape.node.Node.prototype.setDimension.call(this, this.cachedMinWidth, this.cachedMinHeight);\n // this._super(Math.min(w,attr.width),attr.height);\n this.fireEvent(\"change:dimension\", { value: { width: this.cachedMinWidth, height: this.cachedMinHeight } });\n\n return this;\n },\n\n /**\n *\n * clear the internal cache for width/height precalculation\n * @private\n */\n clearCache: function clearCache() {\n this._super();\n this.cachedWrappedAttr = null;\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n getMinWidth: function getMinWidth() {\n if (this.shape === null) {\n return 0;\n }\n\n if (this.cachedMinWidth === null) {\n // get the longest word in the text\n //\n var longestWord = this.text.split(\" \").reduce(function (arg1, arg2) {\n return arg1.length > arg2.length ? arg1 : arg2;\n });\n var svgText = this.canvas.paper.text(0, 0, longestWord).attr(extend({}, this.calculateTextAttr(), { text: longestWord }));\n this.cachedMinWidth = svgText.getBBox(true).width + this.padding.left + this.padding.right + 2 * this.getStroke();\n svgText.remove();\n }\n\n return this.cachedMinWidth;\n },\n\n /**\n *\n * calculates the attributes (wrapped text and width, height) with the given parameter\n *\n * @private\n */\n wrappedTextAttr: function wrappedTextAttr(text, width) {\n var words = text.split(\" \");\n if (this.canvas === null || words.length === 0) {\n return { text: text, width: width, height: 20 };\n }\n\n if (this.cachedWrappedAttr === null) {\n var abc = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n var svgText = this.canvas.paper.text(0, 0, \"\").attr(extend({}, this.calculateTextAttr(), { text: abc }));\n\n // get a good estimation of a letter width...not correct but this is working for the very first draft implementation\n var letterWidth = svgText.getBBox(true).width / abc.length;\n\n var s = [words[0]],\n x = s[0].length * letterWidth;\n var w = null;\n for (var i = 1; i < words.length; i++) {\n w = words[i];\n var l = w.length * letterWidth;\n if (x + l > width) {\n s.push(\"\\n\");\n x = l;\n } else {\n s.push(\" \");\n x += l;\n }\n s.push(w);\n }\n // set the wrapped text and get the resulted bounding box\n //\n svgText.attr({ text: s.join(\"\") });\n var bbox = svgText.getBBox(true);\n svgText.remove();\n this.cachedWrappedAttr = {\n text: s.join(\"\"),\n width: Math.max(width, bbox.width) + this.padding.left + this.padding.right,\n height: bbox.height + this.padding.top + this.padding.bottom\n };\n }\n return this.cachedWrappedAttr;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/VertexResizeHandle.js\":\n/*!***********************************************!*\\\n !*** ./src/shape/basic/VertexResizeHandle.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Selection handle for polyline vertices.\n *\n *\n * @author Andreas Herz\n * @extends draw2d.ResizeHandle\n */\n_packages2.default.shape.basic.VertexResizeHandle = _packages2.default.ResizeHandle.extend(\n/** @lends draw2d.shape.basic.VertexResizeHandle.prototype */\n{\n\n NAME: \"draw2d.shape.basic.VertexResizeHandle\",\n\n SNAP_THRESHOLD: 3,\n LINE_COLOR: \"#1387E6\",\n FADEOUT_DURATION: 300,\n\n init: function init(owner, index) {\n this._super({ owner: owner });\n this.index = index;\n this.isDead = false;\n },\n\n /**\n * Called when a user double clicks on the element\n *\n * @template\n */\n onDoubleClick: function onDoubleClick() {\n var cmd = new _packages2.default.command.CommandRemoveVertex(this.owner, this.index);\n this.getCanvas().getCommandStack().execute(cmd);\n\n this.isDead = true;\n },\n\n /**\n *\n * Called if a drag&drop operation starts.<br>\n *\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @private\n **/\n onDragStart: function onDragStart(x, y, shiftKey, ctrlKey) {\n if (this.isDead === true) {\n return;\n }\n\n this._super();\n this.command = this.getCanvas().getPrimarySelection().createCommand(new _packages2.default.command.CommandType(_packages2.default.command.CommandType.MOVE_VERTEX));\n if (this.command != null) {\n this.command.setIndex(this.index);\n this.setAlpha(0.2);\n this.shape.attr({ \"cursor\": \"crosshair\" });\n }\n\n // Vertex is a reference and not a copy of the point\n this.vertex = this.owner.getVertex(this.index).clone();\n\n // fire an event\n // @since 5.3.3\n this.fireEvent(\"dragstart\", { x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n\n return true;\n },\n\n /**\n *\n * Called from the framework during a drag&drop operation\n *\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n **/\n onDrag: function onDrag(dx, dy, dx2, dy2) {\n if (this.isDead === true || this.command == null) {\n return;\n }\n\n this.setPosition(this.x + dx2, this.y + dy2);\n\n // update the polyline for immediately drag&drop feedback\n //\n this.vertex.translate(dx2, dy2);\n var newPos = this.vertex.clone();\n // Adjust the new location if the object can snap to a helper\n // like grid, geometry, ruler,...\n //\n if (this.getCanSnapToHelper()) {\n newPos = this.getCanvas().snapToHelper(this, newPos);\n }\n\n this.owner.setVertex(this.index, newPos.x, newPos.y);\n\n // update the command for the undo/redo stuff\n //\n this.command.updatePosition(this.vertex.x, this.vertex.y);\n },\n\n /**\n * Called after a drag and drop action.<br>\n * Sub classes can override this method to implement additional stuff. Don't forget to call the super implementation via <code>this._super();</code>\n *\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onDragEnd: function onDragEnd(x, y, shiftKey, ctrlKey) {\n if (this.isDead === true || this.command === null) {\n return;\n }\n\n this.shape.attr({ \"cursor\": \"move\" });\n\n var stack = this.getCanvas().getCommandStack();\n\n var transactionCommand = new _packages2.default.command.CommandCollection();\n\n try {\n transactionCommand.add(this.command);\n this.command = null;\n if (this.getEnclosingAngle() > 178) {\n transactionCommand.add(new _packages2.default.command.CommandRemoveVertex(this.owner, this.index));\n }\n } finally {\n stack.execute(transactionCommand);\n }\n\n this.setAlpha(1);\n\n // fire an event\n // @since 5.3.3\n this.fireEvent(\"dragend\", { x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n },\n\n /**\n *\n * Controls the location of the resize handle\n *\n * @template\n **/\n relocate: function relocate() {\n var resizeWidthHalf = this.getWidth() / 2;\n var resizeHeightHalf = this.getHeight() / 2;\n\n var anchor = this.owner.getVertex(this.index);\n\n this.setPosition(anchor.x - resizeWidthHalf, anchor.y - resizeHeightHalf);\n },\n\n /**\n *\n * Calculates the angle between the siblings\n *\n * @returns {Number}\n */\n getEnclosingAngle: function getEnclosingAngle() {\n // calculate the angle between the siblings\n var points = this.owner.getVertices();\n var trans = this.vertex.getScaled(-1);\n var size = points.getSize();\n var left = points.get((this.index - 1 + size) % size).translated(trans); // % is just to ensure the [0, size] interval\n var right = points.get((this.index + 1) % size).translated(trans); // % is just to ensure the [0, size] interval\n\n var dot = left.dot(right);\n\n var acos = Math.acos(dot / (left.length() * right.length()));\n return acos * 180 / Math.PI;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/composite/Composite.js\":\n/*!******************************************!*\\\n !*** ./src/shape/composite/Composite.js ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Base interface for the composite shapes\n *\n * @author Andreas Herz\n * @extends draw2d.shape.basic.Rectangle\n * @since 4.7.2\n */\n_packages2.default.shape.composite.Composite = _packages2.default.SetFigure.extend(\n/** @lends draw2d.shape.composite.Composite.prototype */\n{\n\n NAME: \"draw2d.shape.composite.Composite\",\n\n /**\n * Creates a new composite element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ stroke: 1, \"color\": \"#f0f0f0\" }, attr), setter, getter);\n },\n\n /**\n *\n * Called when a user dbl clicks on the element\n *\n * @template\n */\n onDoubleClick: function onDoubleClick() {\n // do nothing per default. no rotation of the shape.\n },\n\n /**\n *\n * Delegate method to calculate if a figure is selectable. A composite has the right to override the\n * initial selectable flag of the figure.\n *\n * @param {draw2d.Figure} figure the figure to test\n * @param {Boolean} selectable the initial selectable flag of the figure\n * @returns {Boolean} returns `selectable`. A figure in a composite is per default selectable if the figure itself allows it.\n *\n */\n isMemberSelectable: function isMemberSelectable(figure, selectable) {\n return selectable;\n },\n\n /**\n *\n * Delegate method to calculate if a figure is draggable. A composite has the right to override the\n * initial draggable flag of the figure.\n *\n * @param {draw2d.Figure} figure the figure to test\n * @param {Boolean} draggable the initial draggable flag of the figure\n * @returns {Boolean} returns `draggable`. A figure in a composite is per default draggable if the figure itself allows it.\n *\n */\n isMemberDraggable: function isMemberDraggable(figure, draggable) {\n return draggable;\n },\n\n /**\n *\n * Set the canvas element of this figures. This can be used to determine whenever an element\n * is added or removed to the canvas.\n *\n * @param {draw2d.Canvas} canvas the new parent of the figure or null\n * @returns {this}\n */\n setCanvas: function setCanvas(canvas) {\n this._super(canvas);\n\n // an composite shape goes always in the background\n //\n if (canvas !== null) {\n this.toBack();\n }\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/composite/Group.js\":\n/*!**************************************!*\\\n !*** ./src/shape/composite/Group.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A group is a figure that acts as a transparent container for other figures. A group\n * is a StrongComposite node that controls a set of child figures. The bounding rectangle of\n * a group is the union of the bounds of its children. Child nodes cannot be selected or\n * manipulated individually.\n *\n *\n * @author Andreas Herz\n * @extends draw2d.shape.composite.StrongComposite\n * @since 4.8.0\n */\n_packages2.default.shape.composite.Group = _packages2.default.shape.composite.StrongComposite.extend(\n/** @lends draw2d.shape.composite.Group.prototype */\n{\n\n NAME: \"draw2d.shape.composite.Group\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ bgColor: null, color: null, resizeable: false }, attr), setter, getter);\n\n // used during figure assignment/unassignment. The Group is resizing during figure assignment\n // and we want avoid that already assigned figures are moving during this resize.\n //\n this.stickFigures = false;\n },\n\n /**\n *\n * Delegate method to calculate if a figure is selectable. A composite has the right to override the\n * initial selectable flag of the figure.\n *\n * @param {draw2d.Figure} figure the figure to test\n * @param {Boolean} selectable the initial selectable flag of the figure\n * @returns {Boolean} returns false because it is not possible toselect single figures in the group\n */\n isMemberSelectable: function isMemberSelectable(figure, selectable) {\n return false;\n },\n\n /**\n *\n * Delegate method to calculate if a figure is draggable. A composite has the right to override the\n * initial draggable flag of the figure.\n * <br>\n * Returns false because only the complete group is draggable\n *\n * @param {draw2d.Figure} figure the figure to test\n * @param {Boolean} draggable the initial draggable flag of the figure\n * @returns {Boolean} returns always false because it is not possible to drag&drop single figures in a group\n *\n */\n isMemberDraggable: function isMemberDraggable(figure, draggable) {\n return false;\n },\n\n /**\n *\n * Set the position of the object.\n *\n * @param {Number/draw2d.geo.Point} x The new x coordinate of the figure\n * @param {Number} [y] The new y coordinate of the figure\n * @returns {this}\n **/\n setPosition: function setPosition(x, y) {\n var oldX = this.x;\n var oldY = this.y;\n\n this._super(x, y);\n\n var dx = this.x - oldX;\n var dy = this.y - oldY;\n\n if (dx === 0 && dy === 0) {\n return this;\n }\n\n if (this.stickFigures === false) {\n this.assignedFigures.each(function (i, figure) {\n figure.translate(dx, dy);\n });\n }\n\n return this;\n },\n\n /**\n *\n * Assign a figure to the given group.\n * The bounding box of the group is recalculated and the union of the current bounding box with the\n * figure bounding box.\n *\n * @param {draw2d.Figure} figure\n * @returns {this}\n */\n assignFigure: function assignFigure(figure) {\n if (!this.assignedFigures.contains(figure)) {\n var _this = this;\n this.stickFigures = true;\n if (this.assignedFigures.isEmpty() === true) {\n this.setBoundingBox(figure.getBoundingBox());\n } else {\n this.setBoundingBox(this.getBoundingBox().merge(figure.getBoundingBox()));\n }\n this.assignedFigures.add(figure);\n figure.setComposite(this);\n // the selection adapter defines which figure should be selected if the user clicks on\n // \"figure\". The \"group\" redirects to the group instead to allowing select the child.\n figure.setSelectionAdapter(function () {\n return _this;\n });\n this.stickFigures = false;\n }\n return this;\n },\n\n /**\n *\n * Remove the given figure from the group assignment\n *\n * @param {draw2d.Figure} figure the figure to remove\n * @returns {this}\n */\n unassignFigure: function unassignFigure(figure) {\n if (this.assignedFigures.contains(figure)) {\n this.stickFigures = true;\n figure.setComposite(null);\n figure.setSelectionAdapter(null);\n this.assignedFigures.remove(figure);\n if (!this.assignedFigures.isEmpty()) {\n var box = this.assignedFigures.first().getBoundingBox();\n this.assignedFigures.each(function (i, figure) {\n box.merge(figure.getBoundingBox());\n });\n this.setBoundingBox(box);\n }\n this.stickFigures = false;\n }\n\n return this;\n },\n\n /**\n * @inheritDoc\n */\n createCommand: function createCommand(request) {\n if (request === null) {\n return null;\n }\n\n if (request.getPolicy() === _packages2.default.command.CommandType.DELETE) {\n if (!this.isDeleteable()) {\n return null;\n }\n return new _packages2.default.command.CommandDeleteGroup(this);\n }\n\n return this._super(request);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/composite/Jailhouse.js\":\n/*!******************************************!*\\\n !*** ./src/shape/composite/Jailhouse.js ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A Jailhouse is a figure that acts as a container for other figures. A Jailhouse\n * is a StrongComposite node that controls a set of child figures. Child nodes can't\n * moved outside of the composite.<br>\n * Objects in a jailhouse have the same Z-order, which can be relatively controlled with\n * respect to other figures.\n *\n * @author Andreas Herz\n * @extends draw2d.shape.composite.StrongComposite\n * @since 4.8.0\n */\n_packages2.default.shape.composite.Jailhouse = _packages2.default.shape.composite.StrongComposite.extend(\n/** @lends draw2d.shape.composite.Jailhouse.prototype */\n{\n\n NAME: \"draw2d.shape.composite.Jailhouse\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.policy = new _packages2.default.policy.figure.RegionEditPolicy(0, 0, 10, 10);\n this._super(extend({ bgColor: \"#f0f0f0\", color: \"#333333\" }, attr), setter, getter);\n\n this.stickFigures = false;\n },\n\n /**\n *\n * Set the new width and height of the figure and update the constraint policy for the assigned\n * figures..\n *\n * @param {Number} w The new width of the figure\n * @param {Number} h The new height of the figure\n **/\n setDimension: function setDimension(w, h) {\n this._super(w, h);\n this.policy.setBoundingBox(this.getAbsoluteBounds());\n },\n\n /**\n *\n * Set the position of the object.\n *\n * @param {Number/draw2d.geo.Point} x The new x coordinate of the figure\n * @param {Number} [y] The new y coordinate of the figure\n **/\n setPosition: function setPosition(x, y) {\n var oldX = this.x;\n var oldY = this.y;\n\n this._super(x, y);\n\n var dx = this.x - oldX;\n var dy = this.y - oldY;\n\n if (dx === 0 && dy === 0) {\n return this;\n }\n this.policy.getBoundingBox().setPosition(x, y);\n\n if (this.stickFigures === false) {\n this.assignedFigures.each(function (i, figure) {\n figure.translate(dx, dy);\n });\n }\n\n return this;\n },\n\n /**\n *\n * Assign a figure to the given group.\n * The bounding box of the group is recalculated and the union of the current bounding box with the\n * figure bounding box.\n *\n * @param {draw2d.Figure} figure\n */\n assignFigure: function assignFigure(figure) {\n if (!this.assignedFigures.contains(figure) && figure !== this) {\n this.stickFigures = true;\n this.setBoundingBox(this.getBoundingBox().merge(figure.getBoundingBox()));\n this.assignedFigures.add(figure);\n figure.setComposite(this);\n figure.installEditPolicy(this.policy);\n figure.toFront(this);\n this.stickFigures = false;\n }\n return this;\n },\n\n getAssignedFigures: function getAssignedFigures() {\n return this.assignedFigures;\n },\n\n /**\n *\n * Remove the given figure from the group assignment\n *\n * @param {draw2d.Figure} figure the figure to remove\n *\n */\n unassignFigure: function unassignFigure(figure) {\n if (this.assignedFigures.contains(figure)) {\n this.stickFigures = true;\n figure.setComposite(null);\n figure.uninstallEditPolicy(this.policy);\n this.assignedFigures.remove(figure);\n if (!this.assignedFigures.isEmpty()) {\n var box = this.assignedFigures.first().getBoundingBox();\n this.assignedFigures.each(function (i, figure) {\n box.merge(figure.getBoundingBox());\n });\n this.setBoundingBox(box);\n }\n this.stickFigures = false;\n }\n\n return this;\n },\n\n onCatch: function onCatch(droppedFigure, x, y, shiftKey, ctrlKey) {\n this.getCanvas().getCommandStack().execute(new _packages2.default.command.CommandAssignFigure(droppedFigure, this));\n },\n\n /**\n *\n * Return the minWidth of the jailhouse. The minWidth is calculated by care the assigned figures.\n *\n * @returns {Number} the minimum width for the figure\n */\n getMinWidth: function getMinWidth() {\n var width = 0;\n this.assignedFigures.each(function (i, figure) {\n width = Math.max(width, figure.getBoundingBox().getRight());\n });\n return width - this.getAbsoluteX();\n },\n\n /**\n *\n * @returns {Number} the minimum height of the figure\n */\n getMinHeight: function getMinHeight() {\n var height = 0;\n this.assignedFigures.each(function (i, figure) {\n height = Math.max(height, figure.getBoundingBox().getBottom());\n });\n return height - this.getAbsoluteY();\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/composite/Raft.js\":\n/*!*************************************!*\\\n !*** ./src/shape/composite/Raft.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Raft figures are shapes, which aggregate multiple figures. It works like a real raft. Aboard figures are\n * moved if the raft figures moves.\n *\n *\n * @example\n *\n * let rect1 = new draw2d.shape.composite.Raft({width:200, height:100});\n * let rect2 = new draw2d.shape.basic.Rectangle({width:50, height:50});\n *\n * canvas.add(rect1,10,10);\n * canvas.add(rect2,20,20);\n *\n * rect2.attr({bgColor:\"#f0f000\", width:50, height:50, radius:10});\n *\n * canvas.setCurrentSelection(rect1);\n *\n * @author Andreas Herz\n * @extends draw2d.shape.composite.WeakComposite\n * @since 4.7.0\n */\n_packages2.default.shape.composite.Raft = _packages2.default.shape.composite.WeakComposite.extend(\n/** @lends draw2d.shape.composite.Raft.prototype */\n{\n\n NAME: \"draw2d.shape.composite.Raft\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n\n this.aboardFigures = new _packages2.default.util.ArrayList();\n\n this._super(extend({ bgColor: \"#f0f0f0\", color: \"#1B1B1B\" }, attr), setter, getter);\n },\n\n /**\n *\n * Will be called if the drag and drop action begins. You can return [false] if you\n * want avoid that the figure can be move.\n *\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @returns {Boolean} true if the figure accepts dragging\n **/\n onDragStart: function onDragStart(x, y, shiftKey, ctrlKey) {\n this._super(x, y, shiftKey, ctrlKey);\n\n this.aboardFigures = new _packages2.default.util.ArrayList();\n // force the recalculation of the aboard figures if the shape is in a drag&drop operation\n this.getAboardFigures(this.isInDragDrop);\n\n return true;\n },\n\n /**\n *\n * Set the position of the object.\n *\n * @param {Number/draw2d.geo.Point} x The new x coordinate of the figure\n * @param {Number} [y] The new y coordinate of the figure\n * @param {boolean} [dontApplyToChildren] don't move the children if this flag is set.\n **/\n setPosition: function setPosition(x, y, dontApplyToChildren) {\n var oldX = this.x;\n var oldY = this.y;\n\n // we need the figures before the composite has moved. Otherwise some figures are fall out of the raft\n //\n var aboardedFigures = dontApplyToChildren ? _packages2.default.util.ArrayList.EMPTY_LIST : this.getAboardFigures(this.isInDragDrop === false);\n\n this._super(x, y);\n\n var dx = this.x - oldX;\n var dy = this.y - oldY;\n\n if (dx === 0 && dy === 0) {\n return this;\n }\n\n // we must move circuits with \"user routed\" elements as well if the start/target is withing\n // the raft. Some segments stay still because some coordinates has a fixed position\n //\n if (this.canvas !== null) {\n aboardedFigures = aboardedFigures.clone();\n this.canvas.getLines().each(function (i, line) {\n if (line instanceof _packages2.default.Connection) {\n if (aboardedFigures.contains(line.getSource().getRoot()) && aboardedFigures.contains(line.getTarget().getRoot())) {\n aboardedFigures.add(line);\n }\n }\n });\n }\n\n aboardedFigures.each(function (i, figure) {\n figure.translate(dx, dy);\n });\n\n return this;\n },\n\n onDrag: function onDrag(dx, dy, dx2, dy2, shiftKey, ctrlKey) {\n var _this = this;\n\n // apply all EditPolicy for DragDrop Operations\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n var _newPos = e.adjustPosition(_this, _this.ox + dx, _this.oy + dy);\n if (_newPos) {\n dx = _newPos.x - _this.ox;\n dy = _newPos.y - _this.oy;\n }\n }\n });\n\n var newPos = new _packages2.default.geo.Point(this.ox + dx, this.oy + dy);\n\n // Adjust the new location if the object can snap to a helper\n // like grid, geometry, ruler,...\n //\n if (this.getCanSnapToHelper()) {\n newPos = this.getCanvas().snapToHelper(this, newPos);\n }\n\n // push the shiftKey to the setPosition method and avoid to move the children objects\n // if the user press the shift key\n this.setPosition(newPos.x, newPos.y, shiftKey);\n\n // notify all installed policies\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.onDrag(_this.canvas, _this);\n }\n });\n\n // fire an event\n // @since 5.3.3\n this.fireEvent(\"drag\", { dx: dx, dy: dy, dx2: dx2, dy2: dy2, shiftKey: shiftKey, ctrlKey: ctrlKey });\n },\n\n /**\n *\n * Return all figures which are aboard of this shape. These shapes are moved as well if the raft\n * is moving.\n *\n * @returns {draw2d.util.ArrayList}\n */\n getAboardFigures: function getAboardFigures(recalculate) {\n if (recalculate === true && this.canvas !== null) {\n var raftBoundingBox = this.getBoundingBox();\n var zIndex = this.getZOrder();\n this.aboardFigures = new _packages2.default.util.ArrayList();\n\n var _this = this;\n this.getCanvas().getFigures().each(function (i, figure) {\n if (figure !== _this && figure.isSelectable() === true && figure.getBoundingBox().isInside(raftBoundingBox)) {\n // Don't add the figure if it is already catched by another composite with a higher z-index\n //\n if (_this.getNextComposite(figure) !== _this) {\n return;\n }\n // only add the shape if it is in front of the raft\n if (figure.getZOrder() > zIndex) {\n _this.aboardFigures.add(figure);\n }\n }\n });\n }\n return this.aboardFigures;\n },\n\n /**\n *\n * return the next potential composite parent figure\n *\n * @param {draw2d.Figure} figureToTest\n * @returns {draw2d.Figure}\n */\n getNextComposite: function getNextComposite(figureToTest) {\n var nextComposite = null;\n this.getCanvas().getFigures().each(function (i, figure) {\n if (figureToTest === figure) {\n return;\n }\n if (figure instanceof _packages2.default.shape.composite.Composite) {\n if (nextComposite !== null && nextComposite.getZOrder() > figure.getZOrder()) {\n return;\n }\n\n if (figure.getBoundingBox().contains(figureToTest.getBoundingBox())) {\n nextComposite = figure;\n }\n }\n });\n\n return nextComposite;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/composite/StrongComposite.js\":\n/*!************************************************!*\\\n !*** ./src/shape/composite/StrongComposite.js ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * A StrongComposite is a composite figure with strong assignment of the children and the composite.\n * The child knows everything about the assigned composite and receives events about assignment to a\n * composite.\n *\n *\n * @author Andreas Herz\n * @extends draw2d.shape.composite.Composite\n * @since 4.8.0\n */\n_packages2.default.shape.composite.StrongComposite = _packages2.default.shape.composite.Composite.extend(\n/** @lends draw2d.shape.composite.StrongComposite.prototype */\n{\n\n NAME: \"draw2d.shape.composite.StrongComposite\",\n\n /**\n * Creates a new strong composite element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.assignedFigures = new _packages2.default.util.ArrayList();\n\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Check to see if a figure is a descendant of another figure.\n * <br>\n * The contains() method returns true if the figure provided by the argument is a descendant of this figure,\n * whether it is a direct child or nested more deeply. Otherwise, it returns false.\n *\n * @param {draw2d.Figure} containedFigure The figure that may be contained by (a descendant of) this figure.\n * @since 5.5.4\n */\n contains: function contains(containedFigure) {\n for (var i = 0, len = this.assignedFigures.getSize(); i < len; i++) {\n var child = this.assignedFigures.get(i);\n if (child === containedFigure || child.contains(containedFigure)) {\n return true;\n }\n }\n return this._super(containedFigure);\n },\n\n /**\n * \n * Assign a figure to the composite.\n *\n * @param {draw2d.Figure} figure\n * @template\n */\n assignFigure: function assignFigure(figure) {\n return this;\n },\n\n /**\n * \n * Remove the given figure from the group assignment\n *\n * @param {draw2d.Figure} figure the figure to remove\n * @template\n */\n unassignFigure: function unassignFigure(figure) {\n return this;\n },\n\n /**\n * \n * Return all assigned figures of the composite\n *\n * @returns {draw2d.util.ArrayList}\n */\n getAssignedFigures: function getAssignedFigures() {\n return this.assignedFigures;\n },\n\n /**\n * \n * Called if the user drop this element onto the dropTarget. This event is ONLY fired if the\n * shape return \"this\" in the onDragEnter method.\n *\n *\n * @param {draw2d.Figure} dropTarget The drop target.\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n * @since 4.7.4\n **/\n onDrop: function onDrop(dropTarget, x, y, shiftKey, ctrlKey) {},\n\n /**\n * \n * Called if the user dropped an figure onto this element. This event is ONLY fired if the\n * shape return \"this\" in the onDragEnter method.\n *\n *\n * @param {draw2d.Figure} droppedFigure The dropped figure.\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n * @since 4.7.4\n **/\n onCatch: function onCatch(droppedFigure, x, y, shiftKey, ctrlKey) {},\n\n /**\n * \n * Moves the element so it is the closest to the viewer’s eyes, on top of other elements. Additional\n * the internal model changed as well.\n *\n * Optional: Inserts current object in front of the given one.\n *\n * @param {draw2d.Figure} [figure] move current object in front of the given one.\n */\n toFront: function toFront(figure) {\n this._super(figure);\n // ensure that all assigned figures are in front of the composite\n //\n var figures = this.getAssignedFigures().clone();\n figures.sort(function (a, b) {\n // return 1 if a before b\n // return -1 if b before a\n return a.getZOrder() > b.getZOrder() ? -1 : 1;\n });\n var _this = this;\n figures.each(function (i, f) {\n f.toFront(_this);\n });\n\n return this;\n },\n\n /**\n * \n * Moves the element to the background. Additional\n * the internal model changed as well.\n *\n * @since 4.7.2\n */\n toBack: function toBack(figure) {\n this._super(figure);\n // ensure that all assigned figures are in front of the composite\n //\n var figures = this.getAssignedFigures().clone();\n figures.sort(function (a, b) {\n // return 1 if a before b\n // return -1 if b before a\n return a.getZOrder() > b.getZOrder() ? -1 : 1;\n });\n\n var _this = this;\n figures.each(function (i, f) {\n f.toBack(_this);\n });\n\n return this;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/composite/WeakComposite.js\":\n/*!**********************************************!*\\\n !*** ./src/shape/composite/WeakComposite.js ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * A WeakComposite is a composite figure with loose coupling of the children and the composite.\n * The child didn't know anything about the assigned composite nor did they receive any events\n * about assignment to a composite.\n *\n * Assignment without obligation.\n *\n *\n * @author Andreas Herz\n * @extends draw2d.shape.composite.Composite\n * @since 4.8.0\n */\n_packages2.default.shape.composite.WeakComposite = _packages2.default.shape.composite.Composite.extend(\n/** @lends draw2d.shape.composite.WeakComposite.prototype */\n{\n\n NAME: \"draw2d.shape.composite.WeakComposite\",\n\n /**\n * Creates a new weak composite element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/diagram/Diagram.js\":\n/*!**************************************!*\\\n !*** ./src/shape/diagram/Diagram.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _JSONUtil = __webpack_require__(/*! ../../util/JSONUtil */ \"./src/util/JSONUtil.js\");\n\nvar _JSONUtil2 = _interopRequireDefault(_JSONUtil);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Base class for all diagrams.\n *\n * @param {Object} [attr] the configuration of the shape\n * @extends draw2d.SetFigure\n */\n_packages2.default.shape.diagram.Diagram = _packages2.default.SetFigure.extend(\n/** @lends draw2d.shape.diagram.Diagram */\n{\n\n init: function init(attr, setter, getter) {\n this.data = [];\n this.cache = {};\n\n this._super((0, _extend2.default)({ data: [], bgColor: \"#8dabf2\", stroke: 1, color: \"#f0f0f0\", radius: 2, resizeable: true }, attr), (0, _extend2.default)({}, {\n // @attr {Array} data the data to display in the diagram */\n data: this.setData\n }, setter), (0, _extend2.default)({}, {\n data: this.getData\n }, getter));\n },\n\n /**\n * \n * Set the data for the chart/diagram element\n *\n * @param {Array} data\n *\n */\n setData: function setData(data) {\n this.data = data;\n this.cache = {};\n\n if (this.svgNodes !== null) {\n this.svgNodes.remove();\n this.svgNodes = this.createSet();\n }\n\n this.repaint();\n this.fireEvent(\"change:data\", { value: data });\n },\n\n /**\n * \n * Return the data of the diagram\n *\n * @since 5.0.0\n */\n getData: function getData() {\n return this.data;\n },\n\n /**\n * \n * Set the dimension of the diagram and reset the cached calculation\n *\n * @since 5.0.0\n */\n setDimension: function setDimension(w, h) {\n this.cache = {};\n this._super(w, h);\n\n return this;\n },\n\n /**\n * \n * Return the calculate width of the set. This calculates the bounding box of all elements.\n *\n * @returns {Number} the calculated width of the label\n **/\n getWidth: function getWidth() {\n return this.width;\n },\n\n /**\n * \n * Return the calculated height of the set. This calculates the bounding box of all elements.\n *\n * @returns {Number} the calculated height of the label\n */\n getHeight: function getHeight() {\n return this.height;\n },\n\n /**\n *\n * @param attributes\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape == null) {\n return this;\n }\n\n attributes = attributes || {};\n\n _JSONUtil2.default.ensureDefault(attributes, \"fill\", \"none\");\n\n return this._super(attributes);\n },\n\n applyTransformation: function applyTransformation() {\n if (this.isResizeable() === true) {\n this.svgNodes.transform(\"S\" + this.scaleX + \",\" + this.scaleY + \",\" + this.getAbsoluteX() + \",\" + this.getAbsoluteY() + \"t\" + this.getAbsoluteX() + \",\" + this.getAbsoluteY());\n } else {\n this.svgNodes.transform(\"T\" + this.getAbsoluteX() + \",\" + this.getAbsoluteY());\n }\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/diagram/Pie.js\":\n/*!**********************************!*\\\n !*** ./src/shape/diagram/Pie.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Small data pie chart.\n *\n *\n * @example\n *\n * let pie = new draw2d.shape.diagram.Pie({\n * diameter:80,\n * data:[30,60,122,4],\n * x:100,\n * y:60\n * });\n *\n * canvas.add( pie);\n *\n * @param {Object} [attr] the configuration of the shape\n * @extends draw2d.shape.diagram.Diagram\n */\n_packages2.default.shape.diagram.Pie = _packages2.default.shape.diagram.Diagram.extend(\n/** @lends draw2d.shape.diagram.Pie */\n{\n\n NAME: \"draw2d.shape.diagram.Pie\",\n COLORS: ['#00A8F0', '#b9dd69', '#f3546a', '#4DA74D', '#9440ED'],\n TWO_PI: Math.PI * 2,\n\n init: function init(attr, setter, getter) {\n\n this._super((0, _extend2.default)({ stroke: 0 }, attr), (0, _extend2.default)({\n // @attr {Number} diameter the diameter of the pie chart */\n diameter: this.setDiameter,\n // @attr {Number} radius the radius of the pie chart */\n radius: this.setRadius\n }, setter), (0, _extend2.default)({\n diameter: this.getDiameter,\n radius: this.getRadius\n }, getter));\n },\n\n /**\n *\n * Set the diameter of the circle. The center of the circle will be retained.\n *\n * @param {Number} d The new diameter of the circle.\n * @since 4.0.0\n **/\n setDiameter: function setDiameter(d) {\n var center = this.getCenter();\n this.setDimension(d, d);\n this.setCenter(center);\n this.fireEvent(\"change:diameter\", { value: this.width });\n\n return this;\n },\n\n /**\n *\n * Get the diameter of the circle.\n *\n * @since 4.0.0\n **/\n getDiameter: function getDiameter() {\n return this.getWidth();\n },\n\n /**\n *\n * Set the radius of the circle. The center of the circle will be retained.\n *\n * @param {Number} r The new radius of the circle.\n * @since 4.0.0\n **/\n setRadius: function setRadius(r) {\n this.setDiameter(r * 2);\n this.fireEvent(\"change:radius\", { value: this.width / 2 });\n\n return this;\n },\n\n /**\n *\n * Get the center of the circle\n *\n */\n getCenter: function getCenter() {\n var d2 = this.getDiameter() / 2;\n return this.getPosition().translate(d2, d2);\n },\n\n /**\n *\n * Set the center of the circle.\n *\n * @param {Number|draw2d.geo.Point} x the new x coordinate of the center or a draw2d.geo.Point object with the center\n * @param {Number} y the y coordinate of the new center of the first argument isn't a draw2d.geo.Point object\n */\n setCenter: function setCenter(x, y) {\n var pos = new _packages2.default.geo.Point(x, y);\n var d2 = this.getDiameter() / 2;\n pos.translate(-d2, -d2);\n this.setPosition(pos);\n this.fireEvent(\"change:center\", { value: { x: x, y: y } });\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n setData: function setData(data) {\n var _this = this;\n\n // Normalize the Data.\n // The SUM must be == 1.\n this.sum = 0;\n data.forEach(function (val) {\n _this.sum += val;\n });\n var _sum = 1 / this.sum;\n data.forEach(function (val, i) {\n data[i] = _sum * val;\n });\n\n // pass the normalize data to the base implementation\n //\n this._super(data);\n this.fireEvent(\"change:data\", { value: data });\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n createSet: function createSet() {\n var radius = this.getWidth() / 2;\n var length = this.data.length;\n\n var pie = this.canvas.paper.set();\n\n var offsetAngle = 0;\n\n for (var i = 0; i < length; i++) {\n // angle is percent of TWO_PI\n var angle = this.TWO_PI * this.data[i];\n var color = this.COLORS[i % length];\n var seg = this.drawSegment(radius, angle, offsetAngle, 0.1);\n seg.attr({ stroke: this.color.rgba(), fill: color });\n pie.push(seg);\n offsetAngle += angle;\n }\n return pie;\n },\n\n /**\n * @inheritdoc\n */\n setDimension: function setDimension(w, h) {\n // keep the aspect ration\n //\n if (w > h) {\n this._super(w, w);\n } else {\n this._super(h, h);\n }\n\n // we must recreate the diagram if we change the size.\n // low performance. Better: transfor/scale the set. Can be done in the next release\n //\n if (this.svgNodes !== null) {\n this.svgNodes.remove();\n this.svgNodes = this.createSet();\n }\n\n this.repaint();\n\n return this;\n },\n\n polarPath: function polarPath(radius, theta, rotation) {\n var x = void 0,\n y = void 0;\n x = radius * Math.cos(theta + rotation) + radius;\n y = radius * Math.sin(theta + rotation) + radius;\n return \"L \" + x + \" \" + y + \" \";\n },\n\n drawSegment: function drawSegment(radius, value, rotation, resolution) {\n var path = \"M \" + radius + \" \" + radius;\n\n for (var i = 0; i < value; i += resolution) {\n path += this.polarPath(radius, i, rotation);\n }\n path += this.polarPath(radius, value, rotation);\n\n path += \"L \" + radius + \" \" + radius;\n return this.getCanvas().paper.path(path);\n },\n\n /**\n * @inheritdoc\n */\n applyTransformation: function applyTransformation() {\n this.svgNodes.transform(\"T\" + this.getAbsoluteX() + \",\" + this.getAbsoluteY());\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/diagram/Sparkline.js\":\n/*!****************************************!*\\\n !*** ./src/shape/diagram/Sparkline.js ***!\n \\****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n/**\n * @class\n *\n * Small data line diagram.\n *\n *\n * @example\n *\n * let testData = [];\n * for(let i=0;i<100;i++) {\n * testData.push(Math.floor(Math.random() * 100));\n * }\n *\n * let sparkline = new draw2d.shape.diagram.Sparkline({\n * \tdata: testData,\n * width:150,\n * height:50,\n * x:100,\n * y:60\n * });\n *\n * canvas.add( sparkline);\n *\n * @param {Object} [attr] the configuration of the shape\n * @extends draw2d.shape.diagram.Diagram\n */\n_packages2.default.shape.diagram.Sparkline = _packages2.default.shape.diagram.Diagram.extend(\n/** @lends draw2d.shape.diagram.Sparkline */\n{\n\n NAME: \"draw2d.shape.diagram.Sparkline\",\n\n init: function init(attr, setter, getter) {\n this.min = 0;\n this.max = 10;\n this.padding = 4;\n\n this._super((0, _extend2.default)({ width: 180, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @inheritdoc\n */\n setData: function setData(data) {\n if (data.length > 0) {\n // get the min/max from an array and not only from two elements..\n this.min = Math.min.apply(Math, _toConsumableArray(data));\n this.max = Math.max.apply(Math, _toConsumableArray(data));\n } else {\n this.min = 0;\n this.max = 1;\n }\n\n if (this.max === this.min) {\n this.max = this.min + 1;\n }\n\n this._super(data);\n this.fireEvent(\"change:data\", { value: data });\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M0 0 l0 0\");\n },\n\n /**\n * @inheritdoc\n */\n repaint: function repaint(attributes) {\n var _this = this;\n\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = attributes || {};\n\n attributes.fill = \"90-#000:5-#4d4d4d:95\";\n\n var padding = this.padding;\n var width = this.getWidth() - 2 * padding;\n var height = this.getHeight() - 2 * padding;\n var length = this.data.length;\n var min = this.min;\n var max = this.max;\n var toCoords = function toCoords(value, idx) {\n var step = 1;\n // avoid divisionByZero\n if (length > 1) {\n step = width / (length - 1);\n }\n\n return {\n y: -((value - min) / (max - min) * height) + height + padding,\n x: padding + idx * step\n };\n };\n\n if (this.svgNodes !== null && typeof this.cache.pathString === \"undefined\") {\n var prev_pt = null;\n this.data.forEach(function (item, idx) {\n var pt = toCoords(item, idx);\n if (prev_pt === null) {\n _this.cache.pathString = [\"M\", pt.x, pt.y].join(\" \");\n } else {\n _this.cache.pathString = [_this.cache.pathString, \"L\", pt.x, pt.y].join(\" \");\n }\n prev_pt = pt;\n });\n\n this.svgNodes.attr({ path: this.cache.pathString, stroke: \"#f0f0f0\" });\n }\n this._super(attributes);\n\n return this;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/dimetric/Rectangle.js\":\n/*!*****************************************!*\\\n !*** ./src/shape/dimetric/Rectangle.js ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * A Rectangle Figure in a dimetric perspective.\n *\n *\n * @example\n *\n * let d1 = new draw2d.shape.dimetric.Rectangle({x:10,y:10});\n * let d2 = new draw2d.shape.dimetric.Rectangle({x:100,y:10, bgColor:\"#f0f000\", alpha:0.7, width:100, height:60});\n *\n * canvas.add(d1);\n * canvas.add(d2);\n *\n * canvas.setCurrentSelection(d2);\n *\n * @author Andreas Herz\n * @extends draw2d.shape.basic.Polygon\n */\n_packages2.default.shape.dimetric.Rectangle = _packages2.default.shape.basic.Polygon.extend(\n/** @lends draw2d.shape.dimetric.Rectangle.prototype */\n{\n\n NAME: \"draw2d.shape.dimetric.Rectangle\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ bgColor: \"#00a3f6\", color: \"#1B1B1B\" }, attr), setter, getter);\n\n var pos = this.getPosition();\n\n this.resetVertices();\n\n var angle26 = Math.atan(.5);\n var cos30 = Math.cos(angle26);\n var sin30 = Math.sin(angle26);\n\n var box = this.getBoundingBox();\n var w = box.w;\n var h = box.h;\n\n this.addVertex(0, 0); // topLeft\n this.addVertex(cos30 * w, sin30 * w); // topRight\n this.addVertex(cos30 * w - cos30 * h, sin30 * w + sin30 * h); // bottomRight\n this.addVertex(-cos30 * h, sin30 * h); // bottomLeft\n\n // override the selection handler from the polygon. Because the vertices of\n // the diamond are not selectable and modifiable\n //\n this.installEditPolicy(new _packages2.default.policy.figure.RectangleSelectionFeedbackPolicy());\n\n this.setPosition(pos);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/flowchart/Document.js\":\n/*!*****************************************!*\\\n !*** ./src/shape/flowchart/Document.js ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Typical flowchart <b>Document</b> shape\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.flowchart.Document({\n * x:100,\n * y:60\n * });\n *\n * canvas.add( figure);\n *\n * @extends draw2d.VectorFigure\n */\n_packages2.default.shape.flowchart.Document = _packages2.default.VectorFigure.extend(\n/** @lends draw2d.shape.flowchart.Document.prototype */\n{\n\n NAME: \"draw2d.shape.flowchart.Document\",\n\n /**\n *\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.amplitude = 0.08; // percentage of height\n\n this._super(extend({\n width: 80,\n height: 50,\n bgColor: \"#2196f3\",\n color: \"#1B1B1B\",\n stroke: 1\n }, attr), setter, getter);\n },\n\n /**\n * @inheritdoc\n */\n createShapeElement: function createShapeElement() {\n return this.canvas.paper.path(this.calcPath());\n },\n\n calcPath: function calcPath() {\n var w = this.getWidth();\n var h = this.getHeight();\n var w2 = w / 2;\n var w4 = w / 4;\n var h2 = h * this.amplitude | 0;\n\n return [\"M\", this.getAbsoluteX(), \",\", this.getAbsoluteY(), \"l\", w, \",\", 0, \"l\", 0, \",\", h - h2, \"q\", -w4, \",\", -h2, -w2, \",\", 0, \"q\", -w4, \",\", h2, -w2, \",\", 0, \"z\"].join(\" \");\n },\n\n /**\n * @inheritdoc\n **/\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = extend({}, {\n path: this.calcPath()\n }, attributes);\n\n this._super(attributes);\n\n return this;\n }\n /*\n function draw_curve(Ax, Ay, Bx, By, M) {\n // Find midpoint J\n let Jx = Ax + (Bx - Ax) / 2\n let Jy = Ay + (By - Ay) / 2\n // We need a and b to find theta, and we need to know the sign of each to make sure that the orientation is correct.\n let a = Bx - Ax\n let asign = (a < 0 ? -1 : 1)\n let b = By - Ay\n let bsign = (b < 0 ? -1 : 1)\n let theta = Math.atan(b / a)\n // Find the point that's perpendicular to J on side\n let costheta = asign * Math.cos(theta)\n let sintheta = asign * Math.sin(theta)\n // Find c and d\n let c = M * sintheta\n let d = M * costheta\n // Use c and d to find Kx and Ky\n let Kx = Jx - c\n let Ky = Jy + d\n return \"M\" + Ax + \",\" + Ay +\n \"Q\" + Kx + \",\" + Ky +\n \" \" + Bx + \",\" + By\n }*/\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Acw.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Acw.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Acw();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Acw = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Acw.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Acw\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M19.275,3.849l1.695,8.56l1.875-1.642c2.311,3.59,1.72,8.415-1.584,11.317c-2.24,1.96-5.186,2.57-7.875,1.908l-0.84,3.396c3.75,0.931,7.891,0.066,11.02-2.672c4.768-4.173,5.521-11.219,1.94-16.279l2.028-1.775L19.275,3.849zM8.154,20.232c-2.312-3.589-1.721-8.416,1.582-11.317c2.239-1.959,5.186-2.572,7.875-1.909l0.842-3.398c-3.752-0.93-7.893-0.067-11.022,2.672c-4.765,4.174-5.519,11.223-1.939,16.283l-2.026,1.772l8.26,2.812l-1.693-8.559L8.154,20.232z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Alarm.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Alarm.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Alarm();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Alarm = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Alarm.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Alarm\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M8.179,20.115c-0.478,0.277-0.642,0.889-0.365,1.366c0.275,0.479,0.889,0.642,1.365,0.366c0.479-0.275,0.643-0.888,0.367-1.367C9.27,20.004,8.658,19.84,8.179,20.115zM9.18,12.239c-0.479-0.276-1.09-0.112-1.366,0.366s-0.111,1.09,0.365,1.366c0.479,0.276,1.09,0.113,1.367-0.366C9.821,13.126,9.657,12.516,9.18,12.239zM8.625,17.043c-0.001-0.552-0.448-0.999-1.001-1c-0.553,0-1,0.448-1,1c0,0.553,0.449,1,1,1C8.176,18.043,8.624,17.596,8.625,17.043zM16.312,3.957V3.031h1c0.275,0,0.5-0.225,0.5-0.5v-0.5c0-0.275-0.225-0.5-0.5-0.5h-3.625c-0.275,0-0.5,0.225-0.5,0.5v0.5c0,0.275,0.225,0.5,0.5,0.5h1v0.926C7.819,4.381,2.376,10.068,2.374,17.042C2.376,24.291,8.251,30.166,15.5,30.169c7.249-0.003,13.124-5.878,13.125-13.127C28.624,10.067,23.181,4.38,16.312,3.957zM15.5,27.166C9.909,27.157,5.385,22.633,5.375,17.042C5.385,11.451,9.909,6.927,15.5,6.917c5.59,0.01,10.115,4.535,10.124,10.125C25.615,22.633,21.091,27.157,15.5,27.166zM12.062,22.998c-0.478-0.275-1.089-0.111-1.366,0.367c-0.275,0.479-0.111,1.09,0.366,1.365c0.478,0.277,1.091,0.111,1.365-0.365C12.704,23.887,12.54,23.275,12.062,22.998zM12.062,11.088c0.479-0.276,0.642-0.888,0.366-1.366c-0.276-0.478-0.888-0.642-1.366-0.366s-0.642,0.888-0.366,1.366C10.973,11.2,11.584,11.364,12.062,11.088zM22.822,13.971c0.478-0.275,0.643-0.888,0.366-1.366c-0.275-0.478-0.89-0.642-1.366-0.366c-0.479,0.278-0.642,0.89-0.366,1.367C21.732,14.083,22.344,14.247,22.822,13.971zM15.501,23.92c-0.552,0-1,0.447-1,1c0,0.552,0.448,1,1,1s1-0.448,1-1C16.501,24.367,16.053,23.92,15.501,23.92zM19.938,9.355c-0.477-0.276-1.091-0.111-1.365,0.366c-0.275,0.48-0.111,1.091,0.366,1.367s1.089,0.112,1.366-0.366C20.581,10.245,20.418,9.632,19.938,9.355zM23.378,16.042c-0.554,0.002-1.001,0.45-1.001,1c0.001,0.552,0.448,1,1.001,1c0.551,0,1-0.447,1-1C24.378,16.492,23.929,16.042,23.378,16.042zM22.823,20.115c-0.48-0.275-1.092-0.111-1.367,0.365c-0.275,0.479-0.112,1.091,0.367,1.367c0.477,0.275,1.089,0.112,1.365-0.366C23.464,21.004,23.3,20.391,22.823,20.115zM15.501,8.167c-0.552,0-1,0.448-1,1l-0.466,7.343l-3.004,1.96c-0.478,0.277-0.642,0.889-0.365,1.366c0.275,0.479,0.889,0.642,1.365,0.366l3.305-1.676c0.055,0.006,0.109,0.017,0.166,0.017c0.828,0,1.5-0.672,1.5-1.5l-0.5-7.876C16.501,8.614,16.053,8.167,15.501,8.167zM18.939,22.998c-0.479,0.276-0.643,0.888-0.366,1.367c0.275,0.477,0.888,0.642,1.366,0.365c0.478-0.276,0.642-0.889,0.366-1.365C20.028,22.886,19.417,22.723,18.939,22.998zM11.197,3.593c-0.836-1.04-2.103-1.718-3.541-1.718c-2.52,0-4.562,2.042-4.562,4.562c0,0.957,0.297,1.843,0.8,2.576C5.649,6.484,8.206,4.553,11.197,3.593zM27.106,9.014c0.503-0.733,0.8-1.619,0.8-2.576c0-2.52-2.043-4.562-4.562-4.562c-1.438,0-2.704,0.678-3.541,1.717C22.794,4.553,25.351,6.484,27.106,9.014z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Anonymous.js\":\n/*!*************************************!*\\\n !*** ./src/shape/icon/Anonymous.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Anonymous();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Anonymous = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Anonymous.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Anonymous\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.523,23.813c-0.518-0.51-6.795-2.938-7.934-3.396c-1.132-0.451-1.584-1.697-1.584-1.697s-0.51,0.282-0.51-0.51c0-0.793,0.51,0.51,1.021-2.548c0,0,1.414-0.397,1.133-3.68l-0.338,0.001c0,0,0.85-3.511,0-4.699c-0.854-1.188-1.188-1.981-3.062-2.548c-1.869-0.567-1.188-0.454-2.547-0.396c-1.359,0.057-2.492,0.793-2.492,1.188c0,0-0.849,0.057-1.188,0.397c-0.34,0.34-0.906,1.924-0.906,2.32s0.283,3.059,0.566,3.624l-0.337,0.112c-0.283,3.283,1.132,3.681,1.132,3.681c0.509,3.058,1.019,1.755,1.019,2.548c0,0.792-0.51,0.51-0.51,0.51s-0.452,1.246-1.584,1.697c-1.132,0.453-7.416,2.887-7.927,3.396c-0.511,0.521-0.453,2.896-0.453,2.896h26.954C28.977,26.709,29.039,24.332,28.523,23.813zM16.618,13.693c-0.398-0.251-0.783-1.211-0.783-1.64c0-0.133,0-0.236,0-0.236c-0.105-0.106-0.574-0.096-0.67,0c0,0,0,0.104,0,0.236c0,0.429-0.385,1.389-0.783,1.64c-0.399,0.251-1.611,0.237-2.084-0.236c-0.473-0.473-0.524-1.663-0.643-1.78c-0.118-0.119-0.185-0.185-0.185-0.185l0.029-0.414c0,0,0.842-0.207,1.699-0.207s1.803,0.502,1.803,0.502c0.231-0.074,0.784-0.083,0.996,0c0,0,0.945-0.502,1.803-0.502s1.699,0.207,1.699,0.207l0.029,0.414c0,0-0.066,0.066-0.185,0.185c-0.118,0.118-0.169,1.308-0.643,1.78C18.229,13.93,17.018,13.944,16.618,13.693z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Apple.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Apple.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Apple();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Apple = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Apple.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Apple\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.32,10.85c-1.743,1.233-2.615,2.719-2.615,4.455c0,2.079,1.078,3.673,3.232,4.786c-0.578,1.677-1.416,3.134-2.514,4.375c-1.097,1.241-2.098,1.862-3.004,1.862c-0.427,0-1.009-0.143-1.748-0.423l-0.354-0.138c-0.725-0.281-1.363-0.423-1.92-0.423c-0.525,0-1.1,0.11-1.725,0.331l-0.445,0.16l-0.56,0.229c-0.441,0.176-0.888,0.264-1.337,0.264c-1.059,0-2.228-0.872-3.507-2.616c-1.843-2.498-2.764-5.221-2.764-8.167c0-2.095,0.574-3.781,1.725-5.061c1.149-1.279,2.673-1.92,4.568-1.92c0.709,0,1.371,0.13,1.988,0.389l0.423,0.172l0.445,0.183c0.396,0.167,0.716,0.251,0.959,0.251c0.312,0,0.659-0.072,1.04-0.217l0.582-0.229l0.435-0.16c0.693-0.251,1.459-0.377,2.297-0.377C21.512,8.576,23.109,9.334,24.32,10.85zM19.615,3.287c0.021,0.267,0.033,0.473,0.033,0.617c0,1.317-0.479,2.473-1.438,3.467s-2.075,1.49-3.347,1.49c-0.038-0.297-0.058-0.51-0.058-0.639c0-1.12,0.445-2.171,1.337-3.153c0.891-0.982,1.922-1.558,3.096-1.725C19.32,3.329,19.447,3.311,19.615,3.287z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Apps.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Apps.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Apps();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Apps = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Apps.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Apps\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.359,18.424l-2.326,1.215c0.708,1.174,1.384,2.281,1.844,3.033l2.043-1.066C25.538,20.822,24.966,19.652,24.359,18.424zM19.143,14.688c0.445,0.84,1.342,2.367,2.274,3.926l2.414-1.261c-0.872-1.769-1.72-3.458-2.087-4.122c-0.896-1.621-1.982-3.108-3.454-5.417c-1.673-2.625-3.462-5.492-4.052-4.947c-1.194,0.384,1.237,4.094,1.876,5.715C16.73,10.147,17.991,12.512,19.143,14.688zM26.457,22.673l-1.961,1.022l1.982,4.598c0,0,0.811,0.684,1.92,0.213c1.104-0.469,0.81-1.706,0.81-1.706L26.457,22.673zM24.35,15.711c0.168,0.339,2.924,5.93,2.924,5.93h1.983v-5.93H24.35zM18.34,15.704h-4.726l-3.424,5.935h11.66C21.559,21.159,18.771,16.479,18.34,15.704zM3.231,21.613l3.437-5.902H2.083v5.93h1.133L3.231,21.613zM15.048,10.145c0-0.93-0.754-1.685-1.685-1.685c-0.661,0-1.231,0.381-1.507,0.936l2.976,1.572C14.97,10.725,15.048,10.444,15.048,10.145zM14.343,12.06l-3.188-1.684L9.62,13.012l3.197,1.689L14.343,12.06zM3.192,26.886l-0.384,1.108v0.299l0.298-0.128l0.725-0.896l2.997-2.354l-3.137-1.651L3.192,26.886zM9.02,14.044l-4.757,8.17l3.23,1.706l4.728-8.186L9.02,14.044z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/ArrowDown.js\":\n/*!*************************************!*\\\n !*** ./src/shape/icon/ArrowDown.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.ArrowDown();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.ArrowDown = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.ArrowDown.prototype */\n{\n\n NAME: \"draw2d.shape.icon.ArrowDown\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M5.318,6.684L15.5,24.316L25.682,6.684H5.318z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/ArrowLeft.js\":\n/*!*************************************!*\\\n !*** ./src/shape/icon/ArrowLeft.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.ArrowLeft();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.ArrowLeft = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.ArrowLeft.prototype */\n{\n\n NAME: \"draw2d.shape.icon.ArrowLeft\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.316,5.318L6.684,15.5l17.632,10.182V5.318L24.316,5.318z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/ArrowLeft2.js\":\n/*!**************************************!*\\\n !*** ./src/shape/icon/ArrowLeft2.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.ArrowLeft2();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.ArrowLeft2 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.ArrowLeft2.prototype */\n{\n\n NAME: \"draw2d.shape.icon.ArrowLeft2\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M21.871,9.814 15.684,16.001 21.871,22.188 18.335,25.725 8.612,16.001 18.335,6.276z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/ArrowRight.js\":\n/*!**************************************!*\\\n !*** ./src/shape/icon/ArrowRight.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.ArrowRight();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.ArrowRight = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.ArrowRight.prototype */\n{\n\n NAME: \"draw2d.shape.icon.ArrowRight\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M6.684,25.682L24.316,15.5L6.684,5.318V25.682z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/ArrowRight2.js\":\n/*!***************************************!*\\\n !*** ./src/shape/icon/ArrowRight2.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.ArrowRight2();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.ArrowRight2 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.ArrowRight2.prototype */\n{\n\n NAME: \"draw2d.shape.icon.ArrowRight2\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M10.129,22.186 16.316,15.999 10.129,9.812 13.665,6.276 23.389,15.999 13.665,25.725z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/ArrowUp.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/ArrowUp.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.ArrowUp();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.ArrowUp = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.ArrowUp.prototype */\n{\n\n NAME: \"draw2d.shape.icon.ArrowUp\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.682,24.316L15.5,6.684L5.318,24.316H25.682z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Aumade.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Aumade.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Aumade();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Aumade = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Aumade.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Aumade\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M14.513,24.52c-0.131-0.217-0.14-0.481-0.022-0.711l1.987-3.844l0,0c0.186-0.357,0.625-0.497,0.981-0.312c0.357,0.188,0.498,0.625,0.312,0.982l-1.801,3.48l2.228,3.699h12.269l-14.8-25.631L6.433,18.178c0.434,0.242,0.909,0.479,1.391,0.654c0.571,0.211,1.148,0.342,1.658,0.342c0.276,0,0.579-0.078,0.916-0.238c0.337-0.158,0.7-0.396,1.073-0.688c0.749-0.582,1.527-1.354,2.334-2.021c0.539-0.442,1.091-0.844,1.706-1.099c0.352-0.145,0.729-0.239,1.128-0.239c0.622,0,1.174,0.214,1.622,0.5c0.449,0.287,0.813,0.646,1.11,0.995c0.59,0.697,0.902,1.359,0.924,1.394l0,0c0.18,0.361,0.021,0.801-0.341,0.977c-0.356,0.176-0.798,0.021-0.978-0.34c0-0.002-0.002-0.004-0.004-0.007c-0.002-0.011-0.008-0.021-0.018-0.034c-0.018-0.033-0.043-0.082-0.078-0.146c-0.07-0.125-0.179-0.305-0.312-0.496c-0.271-0.391-0.668-0.845-1.092-1.104c-0.281-0.178-0.561-0.272-0.844-0.272c-0.216,0-0.479,0.069-0.788,0.229c-0.309,0.153-0.653,0.396-1.016,0.688c-0.727,0.584-1.511,1.362-2.351,2.033c-0.562,0.445-1.15,0.853-1.809,1.103c-0.375,0.143-0.776,0.229-1.195,0.229c-0.749,0-1.48-0.181-2.164-0.433c-0.58-0.219-1.125-0.482-1.613-0.764L0.86,27.816h15.63L14.513,24.52zM18.214,22.242c0.222-0.557,0.537-1.217,0.963-1.848c0.427-0.627,0.957-1.232,1.646-1.646c0.379-0.229,0.812-0.391,1.282-0.438l-0.604-0.934l0,0c-0.22-0.339-0.123-0.789,0.215-1.009c0.341-0.219,0.789-0.123,1.013,0.216l1.545,2.391c0.184,0.274,0.147,0.646-0.075,0.893c-0.228,0.247-0.591,0.305-0.886,0.145c-0.354-0.191-0.646-0.258-0.901-0.258c-0.291,0-0.562,0.084-0.845,0.25c-0.277,0.164-0.562,0.414-0.813,0.719c-0.519,0.607-0.937,1.422-1.185,2.055c-0.111,0.285-0.387,0.466-0.678,0.466c-0.092,0-0.183-0.021-0.271-0.056C18.249,23.039,18.064,22.615,18.214,22.242z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/BarChart.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/BarChart.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.BarChart();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.BarChart = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.BarChart.prototype */\n{\n\n NAME: \"draw2d.shape.icon.BarChart\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M21.25,8.375V28h6.5V8.375H21.25zM12.25,28h6.5V4.125h-6.5V28zM3.25,28h6.5V12.625h-6.5V28z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/BioHazard.js\":\n/*!*************************************!*\\\n !*** ./src/shape/icon/BioHazard.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.BioHazard();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.BioHazard = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.BioHazard.prototype */\n{\n\n NAME: \"draw2d.shape.icon.BioHazard\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M26.154,13.988c-0.96-0.554-1.982-0.892-3.019-1.032c0.396-0.966,0.616-2.023,0.616-3.131c0-4.399-3.438-8.001-7.772-8.264c3.245,0.258,5.803,2.979,5.803,6.292c0,3.373-2.653,6.123-5.983,6.294v1.292c0.908,0.144,1.605,0.934,1.605,1.883c0,0.232-0.043,0.454-0.118,0.66l1.181,0.683c1.826-2.758,5.509-3.658,8.41-1.981c2.896,1.672,3.965,5.299,2.506,8.254C31.386,21.038,29.992,16.204,26.154,13.988zM4.122,16.587c2.92-1.686,6.628-0.764,8.442,2.034l1.141-0.657c-0.072-0.2-0.109-0.417-0.109-0.642c0-0.909,0.638-1.67,1.489-1.859v-1.319c-3.3-0.202-5.92-2.94-5.92-6.292c0-3.297,2.532-6.007,5.757-6.286c-4.312,0.285-7.729,3.875-7.729,8.258c0,1.078,0.206,2.106,0.581,3.05c-1.004,0.147-1.999,0.481-2.931,1.02c-3.812,2.201-5.209,6.985-3.264,10.87C0.174,21.823,1.251,18.244,4.122,16.587zM11.15,11.452c0.114,0.139,0.235,0.271,0.362,0.398c0.126,0.126,0.259,0.247,0.397,0.361c0.102,0.084,0.211,0.16,0.318,0.236c0.93-0.611,2.045-0.969,3.244-0.969c1.201,0,2.312,0.357,3.242,0.969c0.107-0.077,0.217-0.152,0.318-0.236c0.139-0.114,0.271-0.235,0.397-0.361c0.127-0.127,0.248-0.259,0.362-0.398c0.113-0.138,0.222-0.283,0.323-0.431c-1.307-0.956-2.908-1.528-4.643-1.528c-0.042,0-0.083-0.001-0.124,0c-0.019,0-0.04-0.001-0.06,0c-1.666,0.038-3.201,0.605-4.462,1.528C10.929,11.17,11.037,11.314,11.15,11.452zM9.269,16.787c-0.168-0.062-0.338-0.117-0.512-0.164c-0.173-0.047-0.348-0.083-0.525-0.113c-0.177-0.03-0.355-0.053-0.535-0.065c-0.175,1.609,0.13,3.282,0.998,4.786c0.868,1.503,2.164,2.606,3.645,3.259c0.079-0.162,0.15-0.328,0.212-0.496c0.063-0.169,0.118-0.338,0.164-0.512c0.047-0.173,0.087-0.349,0.115-0.525c0.022-0.13,0.034-0.262,0.046-0.394c-0.993-0.5-1.86-1.286-2.461-2.325c-0.6-1.04-0.847-2.182-0.783-3.294C9.512,16.889,9.392,16.833,9.269,16.787zM18.122,22.657c0.014,0.132,0.024,0.263,0.046,0.394c0.03,0.177,0.067,0.352,0.113,0.524c0.047,0.174,0.102,0.346,0.165,0.514c0.062,0.169,0.132,0.333,0.212,0.495c1.48-0.653,2.777-1.755,3.644-3.257c0.868-1.504,1.176-3.179,1.001-4.788c-0.18,0.013-0.358,0.035-0.535,0.065c-0.177,0.029-0.353,0.067-0.525,0.113s-0.345,0.101-0.513,0.163c-0.124,0.047-0.241,0.105-0.362,0.16c0.063,1.11-0.183,2.253-0.784,3.292C19.984,21.373,19.116,22.157,18.122,22.657zM20.569,27.611c-2.92-1.687-3.977-5.358-2.46-8.329l-1.192-0.689c-0.349,0.389-0.854,0.634-1.417,0.634c-0.571,0-1.086-0.254-1.436-0.653l-1.146,0.666c1.475,2.96,0.414,6.598-2.488,8.272c-2.888,1.668-6.552,0.791-8.386-1.935c2.38,3.667,7.249,4.87,11.079,2.658c0.929-0.535,1.711-1.227,2.339-2.018c0.64,0.832,1.45,1.554,2.416,2.112c3.835,2.213,8.709,1.006,11.086-2.671C27.132,28.396,23.463,29.282,20.569,27.611z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Book.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Book.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Book();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Book = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Book.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Book\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.754,4.626c-0.233-0.161-0.536-0.198-0.802-0.097L12.16,9.409c-0.557,0.213-1.253,0.316-1.968,0.316c-0.997,0.002-2.029-0.202-2.747-0.48C7.188,9.148,6.972,9.04,6.821,8.943c0.056-0.024,0.12-0.05,0.193-0.075L18.648,4.43l1.733,0.654V3.172c0-0.284-0.14-0.554-0.374-0.714c-0.233-0.161-0.538-0.198-0.802-0.097L6.414,7.241c-0.395,0.142-0.732,0.312-1.02,0.564C5.111,8.049,4.868,8.45,4.872,8.896c0,0.012,0.004,0.031,0.004,0.031v17.186c0,0.008-0.003,0.015-0.003,0.021c0,0.006,0.003,0.01,0.003,0.016v0.017h0.002c0.028,0.601,0.371,0.983,0.699,1.255c1.034,0.803,2.769,1.252,4.614,1.274c0.874,0,1.761-0.116,2.583-0.427l12.796-4.881c0.337-0.128,0.558-0.448,0.558-0.809V5.341C26.128,5.057,25.988,4.787,25.754,4.626zM5.672,11.736c0.035,0.086,0.064,0.176,0.069,0.273l0.004,0.054c0.016,0.264,0.13,0.406,0.363,0.611c0.783,0.626,2.382,1.08,4.083,1.093c0.669,0,1.326-0.083,1.931-0.264v1.791c-0.647,0.143-1.301,0.206-1.942,0.206c-1.674-0.026-3.266-0.353-4.509-1.053V11.736zM10.181,24.588c-1.674-0.028-3.266-0.354-4.508-1.055v-2.712c0.035,0.086,0.065,0.176,0.07,0.275l0.002,0.053c0.018,0.267,0.13,0.408,0.364,0.613c0.783,0.625,2.381,1.079,4.083,1.091c0.67,0,1.327-0.082,1.932-0.262v1.789C11.476,24.525,10.821,24.588,10.181,24.588z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Bookmark.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Bookmark.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Bookmark();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Bookmark = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Bookmark.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Bookmark\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M17.396,1.841L6.076,25.986l7.341-4.566l1.186,8.564l11.32-24.146L17.396,1.841zM19.131,9.234c-0.562-0.264-0.805-0.933-0.541-1.495c0.265-0.562,0.934-0.805,1.496-0.541s0.805,0.934,0.541,1.496S19.694,9.498,19.131,9.234z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Books.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Books.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Books();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Books = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Books.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Books\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M26.679,7.858c-0.176-0.138-0.404-0.17-0.606-0.083l-9.66,4.183c-0.42,0.183-0.946,0.271-1.486,0.271c-0.753,0.002-1.532-0.173-2.075-0.412c-0.194-0.083-0.356-0.176-0.471-0.259c0.042-0.021,0.09-0.042,0.146-0.064l8.786-3.804l1.31,0.561V6.612c0-0.244-0.106-0.475-0.283-0.612c-0.176-0.138-0.406-0.17-0.605-0.083l-9.66,4.183c-0.298,0.121-0.554,0.268-0.771,0.483c-0.213,0.208-0.397,0.552-0.394,0.934c0,0.01,0.003,0.027,0.003,0.027v14.73c0,0.006-0.002,0.012-0.002,0.019c0,0.005,0.002,0.007,0.002,0.012v0.015h0.002c0.021,0.515,0.28,0.843,0.528,1.075c0.781,0.688,2.091,1.073,3.484,1.093c0.66,0,1.33-0.1,1.951-0.366l9.662-4.184c0.255-0.109,0.422-0.383,0.422-0.692V8.471C26.961,8.227,26.855,7.996,26.679,7.858zM20.553,5.058c-0.017-0.221-0.108-0.429-0.271-0.556c-0.176-0.138-0.404-0.17-0.606-0.083l-9.66,4.183C9.596,8.784,9.069,8.873,8.53,8.873C7.777,8.874,6.998,8.699,6.455,8.46C6.262,8.378,6.099,8.285,5.984,8.202C6.026,8.181,6.075,8.16,6.13,8.138l8.787-3.804l1.309,0.561V3.256c0-0.244-0.106-0.475-0.283-0.612c-0.176-0.138-0.407-0.17-0.606-0.083l-9.66,4.183C5.379,6.864,5.124,7.011,4.907,7.227C4.693,7.435,4.51,7.779,4.513,8.161c0,0.011,0.003,0.027,0.003,0.027v14.73c0,0.006-0.001,0.013-0.001,0.019c0,0.005,0.001,0.007,0.001,0.012v0.016h0.002c0.021,0.515,0.28,0.843,0.528,1.075c0.781,0.688,2.091,1.072,3.485,1.092c0.376,0,0.754-0.045,1.126-0.122V11.544c-0.01-0.7,0.27-1.372,0.762-1.856c0.319-0.315,0.708-0.564,1.19-0.756L20.553,5.058z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Bubble.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Bubble.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Bubble();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Bubble = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Bubble.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Bubble\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,5.333c-7.732,0-14,4.701-14,10.5c0,1.982,0.741,3.833,2.016,5.414L2,25.667l5.613-1.441c2.339,1.317,5.237,2.107,8.387,2.107c7.732,0,14-4.701,14-10.5C30,10.034,23.732,5.333,16,5.333z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Bug.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Bug.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Bug();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Bug = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Bug.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Bug\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.589,10.903l-5.828,1.612c-0.534-1.419-1.338-2.649-2.311-3.628l3.082-5.44c0.271-0.48,0.104-1.092-0.38-1.365c-0.479-0.271-1.09-0.102-1.36,0.377l-2.924,5.162c-0.604-0.383-1.24-0.689-1.9-0.896c-0.416-1.437-1.652-2.411-3.058-2.562c-0.001-0.004-0.002-0.008-0.003-0.012c-0.061-0.242-0.093-0.46-0.098-0.65c-0.005-0.189,0.012-0.351,0.046-0.479c0.037-0.13,0.079-0.235,0.125-0.317c0.146-0.26,0.34-0.43,0.577-0.509c0.023,0.281,0.142,0.482,0.352,0.601c0.155,0.088,0.336,0.115,0.546,0.086c0.211-0.031,0.376-0.152,0.496-0.363c0.105-0.186,0.127-0.389,0.064-0.607c-0.064-0.219-0.203-0.388-0.414-0.507c-0.154-0.087-0.314-0.131-0.482-0.129c-0.167,0.001-0.327,0.034-0.481,0.097c-0.153,0.063-0.296,0.16-0.429,0.289c-0.132,0.129-0.241,0.271-0.33,0.426c-0.132,0.234-0.216,0.496-0.25,0.783c-0.033,0.286-0.037,0.565-0.009,0.84c0.017,0.16,0.061,0.301,0.094,0.449c-0.375-0.021-0.758,0.002-1.14,0.108c-0.482,0.133-0.913,0.36-1.28,0.653c-0.052-0.172-0.098-0.344-0.18-0.518c-0.116-0.249-0.263-0.486-0.438-0.716c-0.178-0.229-0.384-0.41-0.618-0.543C9.904,3.059,9.737,2.994,9.557,2.951c-0.18-0.043-0.352-0.052-0.516-0.027s-0.318,0.08-0.463,0.164C8.432,3.172,8.318,3.293,8.23,3.445C8.111,3.656,8.08,3.873,8.136,4.092c0.058,0.221,0.181,0.384,0.367,0.49c0.21,0.119,0.415,0.138,0.611,0.056C9.31,4.556,9.451,4.439,9.539,4.283c0.119-0.21,0.118-0.443-0.007-0.695c0.244-0.055,0.497-0.008,0.757,0.141c0.081,0.045,0.171,0.115,0.27,0.208c0.097,0.092,0.193,0.222,0.286,0.388c0.094,0.166,0.179,0.368,0.251,0.608c0.013,0.044,0.023,0.098,0.035,0.146c-0.911,0.828-1.357,2.088-1.098,3.357c-0.582,0.584-1.072,1.27-1.457,2.035l-5.16-2.926c-0.48-0.271-1.092-0.102-1.364,0.377C1.781,8.404,1.95,9.016,2.43,9.289l5.441,3.082c-0.331,1.34-0.387,2.807-0.117,4.297l-5.828,1.613c-0.534,0.147-0.846,0.699-0.698,1.231c0.147,0.53,0.697,0.843,1.231,0.694l5.879-1.627c0.503,1.057,1.363,2.28,2.371,3.443l-3.194,5.639c-0.272,0.481-0.104,1.092,0.378,1.363c0.239,0.137,0.512,0.162,0.758,0.094c0.248-0.068,0.469-0.229,0.604-0.471l2.895-5.109c2.7,2.594,5.684,4.123,5.778,1.053c1.598,2.56,3.451-0.338,4.502-3.976l5.203,2.947c0.24,0.138,0.514,0.162,0.762,0.094c0.246-0.067,0.467-0.229,0.603-0.471c0.272-0.479,0.104-1.091-0.377-1.362l-5.701-3.229c0.291-1.505,0.422-2.983,0.319-4.138l5.886-1.627c0.53-0.147,0.847-0.697,0.696-1.229C29.673,11.068,29.121,10.756,28.589,10.903z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Calendar.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Calendar.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Calendar();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Calendar = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Calendar.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Calendar\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M11.758,15.318c0.312-0.3,0.408-0.492,0.408-0.492h0.024c0,0-0.012,0.264-0.012,0.528v5.469h-1.871v1.031h4.87v-1.031H13.33v-7.436h-1.055l-2.027,1.967l0.719,0.744L11.758,15.318zM16.163,21.207c0,0.205,0.024,0.42,0.06,0.647h5.457v-1.031h-4.197c0.023-1.931,4.065-2.362,4.065-5.146c0-1.463-1.114-2.436-2.674-2.436c-1.907,0-2.675,1.607-2.675,1.607l0.875,0.587c0,0,0.6-1.08,1.716-1.08c0.887,0,1.522,0.563,1.522,1.403C20.312,17.754,16.163,18.186,16.163,21.207zM12,3.604h-2v3.335h2V3.604zM23,4.77v3.17h-4V4.77h-6v3.168H9.002V4.77H6.583v21.669h18.833V4.77H23zM24.417,25.438H7.584V10.522h16.833V25.438zM22,3.604h-2v3.335h2V3.604z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Cart.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Cart.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Cart();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Cart = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Cart.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Cart\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M29.02,11.754L8.416,9.473L7.16,4.716C7.071,4.389,6.772,4.158,6.433,4.158H3.341C3.114,3.866,2.775,3.667,2.377,3.667c-0.686,0-1.242,0.556-1.242,1.242c0,0.686,0.556,1.242,1.242,1.242c0.399,0,0.738-0.201,0.965-0.493h2.512l5.23,19.8c-0.548,0.589-0.891,1.373-0.891,2.242c0,1.821,1.473,3.293,3.293,3.293c1.82,0,3.294-1.472,3.297-3.293c0-0.257-0.036-0.504-0.093-0.743h5.533c-0.056,0.239-0.092,0.486-0.092,0.743c0,1.821,1.475,3.293,3.295,3.293s3.295-1.472,3.295-3.293c0-1.82-1.473-3.295-3.295-3.297c-0.951,0.001-1.801,0.409-2.402,1.053h-7.136c-0.601-0.644-1.451-1.052-2.402-1.053c-0.379,0-0.738,0.078-1.077,0.196l-0.181-0.685H26.81c1.157-0.027,2.138-0.83,2.391-1.959l1.574-7.799c0.028-0.145,0.041-0.282,0.039-0.414C30.823,12.733,30.051,11.86,29.02,11.754zM25.428,27.994c-0.163,0-0.295-0.132-0.297-0.295c0.002-0.165,0.134-0.297,0.297-0.297s0.295,0.132,0.297,0.297C25.723,27.862,25.591,27.994,25.428,27.994zM27.208,20.499l0.948-0.948l-0.318,1.578L27.208,20.499zM12.755,11.463l1.036,1.036l-1.292,1.292l-1.292-1.292l1.087-1.087L12.755,11.463zM17.253,11.961l0.538,0.538l-1.292,1.292l-1.292-1.292l0.688-0.688L17.253,11.961zM9.631,14.075l0.868-0.868l1.292,1.292l-1.292,1.292l-0.564-0.564L9.631,14.075zM9.335,12.956l-0.328-1.24L9.792,12.5L9.335,12.956zM21.791,16.499l-1.292,1.292l-1.292-1.292l1.292-1.292L21.791,16.499zM21.207,14.5l1.292-1.292l1.292,1.292l-1.292,1.292L21.207,14.5zM18.5,15.791l-1.293-1.292l1.292-1.292l1.292,1.292L18.5,15.791zM17.791,16.499L16.5,17.791l-1.292-1.292l1.292-1.292L17.791,16.499zM14.499,15.791l-1.292-1.292l1.292-1.292l1.292,1.292L14.499,15.791zM13.791,16.499l-1.292,1.291l-1.292-1.291l1.292-1.292L13.791,16.499zM10.499,17.207l1.292,1.292l-0.785,0.784l-0.54-2.044L10.499,17.207zM11.302,20.404l1.197-1.197l1.292,1.292L12.5,21.791l-1.131-1.13L11.302,20.404zM13.208,18.499l1.291-1.292l1.292,1.292L14.5,19.791L13.208,18.499zM16.5,19.207l1.292,1.292L16.5,21.79l-1.292-1.291L16.5,19.207zM17.208,18.499l1.292-1.292l1.291,1.292L18.5,19.79L17.208,18.499zM20.499,19.207l1.292,1.292L20.5,21.79l-1.292-1.292L20.499,19.207zM21.207,18.499l1.292-1.292l1.292,1.292l-1.292,1.292L21.207,18.499zM23.207,16.499l1.292-1.292l1.292,1.292l-1.292,1.292L23.207,16.499zM25.207,14.499l1.292-1.292L27.79,14.5l-1.291,1.292L25.207,14.499zM24.499,13.792l-1.156-1.156l2.082,0.23L24.499,13.792zM21.791,12.5l-1.292,1.292L19.207,12.5l0.29-0.29l2.253,0.25L21.791,12.5zM14.5,11.791l-0.152-0.152l0.273,0.03L14.5,11.791zM10.5,11.792l-0.65-0.65l1.171,0.129L10.5,11.792zM14.5,21.207l1.205,1.205h-2.409L14.5,21.207zM18.499,21.207l1.206,1.206h-2.412L18.499,21.207zM22.499,21.207l1.208,1.207l-2.414-0.001L22.499,21.207zM23.207,20.499l1.292-1.292l1.292,1.292l-1.292,1.292L23.207,20.499zM25.207,18.499l1.292-1.291l1.291,1.291l-1.291,1.292L25.207,18.499zM28.499,17.791l-1.291-1.292l1.291-1.291l0.444,0.444l-0.429,2.124L28.499,17.791zM29.001,13.289l-0.502,0.502l-0.658-0.658l1.016,0.112C28.911,13.253,28.956,13.271,29.001,13.289zM13.487,27.994c-0.161,0-0.295-0.132-0.295-0.295c0-0.165,0.134-0.297,0.295-0.297c0.163,0,0.296,0.132,0.296,0.297C13.783,27.862,13.651,27.994,13.487,27.994zM26.81,22.414h-1.517l1.207-1.207l0.93,0.93C27.243,22.306,27.007,22.428,26.81,22.414z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Ccw.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Ccw.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Ccw();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Ccw = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Ccw.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Ccw\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.249,15.499c-0.009,4.832-3.918,8.741-8.75,8.75c-2.515,0-4.768-1.064-6.365-2.763l2.068-1.442l-7.901-3.703l0.744,8.694l2.193-1.529c2.244,2.594,5.562,4.242,9.26,4.242c6.767,0,12.249-5.482,12.249-12.249H24.249zM15.499,6.75c2.516,0,4.769,1.065,6.367,2.764l-2.068,1.443l7.901,3.701l-0.746-8.693l-2.192,1.529c-2.245-2.594-5.562-4.245-9.262-4.245C8.734,3.25,3.25,8.734,3.249,15.499H6.75C6.758,10.668,10.668,6.758,15.499,6.75z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Chat.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Chat.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Chat();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Chat = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Chat.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Chat\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.985,5.972c-7.563,0-13.695,4.077-13.695,9.106c0,2.877,2.013,5.44,5.147,7.108c-0.446,1.479-1.336,3.117-3.056,4.566c0,0,4.015-0.266,6.851-3.143c0.163,0.04,0.332,0.07,0.497,0.107c-0.155-0.462-0.246-0.943-0.246-1.443c0-3.393,3.776-6.05,8.599-6.05c3.464,0,6.379,1.376,7.751,3.406c1.168-1.34,1.847-2.892,1.847-4.552C29.68,10.049,23.548,5.972,15.985,5.972zM27.68,22.274c0-2.79-3.401-5.053-7.599-5.053c-4.196,0-7.599,2.263-7.599,5.053c0,2.791,3.403,5.053,7.599,5.053c0.929,0,1.814-0.116,2.637-0.319c1.573,1.597,3.801,1.744,3.801,1.744c-0.954-0.804-1.447-1.713-1.695-2.534C26.562,25.293,27.68,23.871,27.68,22.274z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Check.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Check.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Check();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Check = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Check.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Check\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M2.379,14.729 5.208,11.899 12.958,19.648 25.877,6.733 28.707,9.561 12.958,25.308z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Chrome.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Chrome.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Chrome();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Chrome = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Chrome.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Chrome\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.318,7.677c0.071-0.029,0.148-0.046,0.229-0.046h11.949c-2.533-3.915-6.938-6.506-11.949-6.506c-5.017,0-9.428,2.598-11.959,6.522l4.291,7.431C8.018,11.041,11.274,7.796,15.318,7.677zM28.196,8.84h-8.579c2.165,1.357,3.605,3.763,3.605,6.506c0,1.321-0.334,2.564-0.921,3.649c-0.012,0.071-0.035,0.142-0.073,0.209l-5.973,10.347c7.526-0.368,13.514-6.587,13.514-14.205C29.77,13.002,29.201,10.791,28.196,8.84zM15.547,23.022c-2.761,0-5.181-1.458-6.533-3.646c-0.058-0.046-0.109-0.103-0.149-0.171L2.89,8.855c-1,1.946-1.565,4.153-1.565,6.492c0,7.624,5.999,13.846,13.534,14.205l4.287-7.425C18.073,22.698,16.848,23.022,15.547,23.022zM9.08,15.347c0,1.788,0.723,3.401,1.894,4.573c1.172,1.172,2.785,1.895,4.573,1.895c1.788,0,3.401-0.723,4.573-1.895s1.895-2.785,1.895-4.573c0-1.788-0.723-3.4-1.895-4.573c-1.172-1.171-2.785-1.894-4.573-1.894c-1.788,0-3.401,0.723-4.573,1.894C9.803,11.946,9.081,13.559,9.08,15.347z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Clip.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Clip.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Clip();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Clip = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Clip.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Clip\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M23.898,6.135c-1.571-1.125-3.758-0.764-4.884,0.808l-8.832,12.331c-0.804,1.122-0.546,2.684,0.577,3.488c1.123,0.803,2.684,0.545,3.488-0.578l6.236-8.706l-0.813-0.583l-6.235,8.707h0c-0.483,0.672-1.42,0.828-2.092,0.347c-0.673-0.481-0.827-1.419-0.345-2.093h0l8.831-12.33l0.001-0.001l-0.002-0.001c0.803-1.119,2.369-1.378,3.489-0.576c1.12,0.803,1.379,2.369,0.577,3.489v-0.001l-9.68,13.516l0.001,0.001c-1.124,1.569-3.316,1.931-4.885,0.808c-1.569-1.125-1.93-3.315-0.807-4.885l7.035-9.822l-0.813-0.582l-7.035,9.822c-1.447,2.02-0.982,4.83,1.039,6.277c2.021,1.448,4.831,0.982,6.278-1.037l9.68-13.516C25.83,9.447,25.47,7.261,23.898,6.135z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Clock.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Clock.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Clock();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Clock = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Clock.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Clock\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.5,2.374C8.251,2.375,2.376,8.251,2.374,15.5C2.376,22.748,8.251,28.623,15.5,28.627c7.249-0.004,13.124-5.879,13.125-13.127C28.624,8.251,22.749,2.375,15.5,2.374zM15.5,25.623C9.909,25.615,5.385,21.09,5.375,15.5C5.385,9.909,9.909,5.384,15.5,5.374c5.59,0.01,10.115,4.535,10.124,10.125C25.615,21.09,21.091,25.615,15.5,25.623zM8.625,15.5c-0.001-0.552-0.448-0.999-1.001-1c-0.553,0-1,0.448-1,1c0,0.553,0.449,1,1,1C8.176,16.5,8.624,16.053,8.625,15.5zM8.179,18.572c-0.478,0.277-0.642,0.889-0.365,1.367c0.275,0.479,0.889,0.641,1.365,0.365c0.479-0.275,0.643-0.887,0.367-1.367C9.27,18.461,8.658,18.297,8.179,18.572zM9.18,10.696c-0.479-0.276-1.09-0.112-1.366,0.366s-0.111,1.09,0.365,1.366c0.479,0.276,1.09,0.113,1.367-0.366C9.821,11.584,9.657,10.973,9.18,10.696zM22.822,12.428c0.478-0.275,0.643-0.888,0.366-1.366c-0.275-0.478-0.89-0.642-1.366-0.366c-0.479,0.278-0.642,0.89-0.366,1.367C21.732,12.54,22.344,12.705,22.822,12.428zM12.062,21.455c-0.478-0.275-1.089-0.111-1.366,0.367c-0.275,0.479-0.111,1.09,0.366,1.365c0.478,0.277,1.091,0.111,1.365-0.365C12.704,22.344,12.54,21.732,12.062,21.455zM12.062,9.545c0.479-0.276,0.642-0.888,0.366-1.366c-0.276-0.478-0.888-0.642-1.366-0.366s-0.642,0.888-0.366,1.366C10.973,9.658,11.584,9.822,12.062,9.545zM22.823,18.572c-0.48-0.275-1.092-0.111-1.367,0.365c-0.275,0.479-0.112,1.092,0.367,1.367c0.477,0.275,1.089,0.113,1.365-0.365C23.464,19.461,23.3,18.848,22.823,18.572zM19.938,7.813c-0.477-0.276-1.091-0.111-1.365,0.366c-0.275,0.48-0.111,1.091,0.366,1.367s1.089,0.112,1.366-0.366C20.581,8.702,20.418,8.089,19.938,7.813zM23.378,14.5c-0.554,0.002-1.001,0.45-1.001,1c0.001,0.552,0.448,1,1.001,1c0.551,0,1-0.447,1-1C24.378,14.949,23.929,14.5,23.378,14.5zM15.501,6.624c-0.552,0-1,0.448-1,1l-0.466,7.343l-3.004,1.96c-0.478,0.277-0.642,0.889-0.365,1.365c0.275,0.479,0.889,0.643,1.365,0.367l3.305-1.676C15.39,16.99,15.444,17,15.501,17c0.828,0,1.5-0.671,1.5-1.5l-0.5-7.876C16.501,7.072,16.053,6.624,15.501,6.624zM15.501,22.377c-0.552,0-1,0.447-1,1s0.448,1,1,1s1-0.447,1-1S16.053,22.377,15.501,22.377zM18.939,21.455c-0.479,0.277-0.643,0.889-0.366,1.367c0.275,0.477,0.888,0.643,1.366,0.365c0.478-0.275,0.642-0.889,0.366-1.365C20.028,21.344,19.417,21.18,18.939,21.455z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Cloud.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Cloud.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Cloud();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Cloud = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Cloud.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Cloud\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.345,13.904c0.019-0.195,0.03-0.392,0.03-0.591c0-3.452-2.798-6.25-6.25-6.25c-2.679,0-4.958,1.689-5.847,4.059c-0.589-0.646-1.429-1.059-2.372-1.059c-1.778,0-3.219,1.441-3.219,3.219c0,0.21,0.023,0.415,0.062,0.613c-2.372,0.391-4.187,2.436-4.187,4.918c0,2.762,2.239,5,5,5h15.875c2.762,0,5-2.238,5-5C28.438,16.362,26.672,14.332,24.345,13.904z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Cloud2.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Cloud2.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Cloud2();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Cloud2 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Cloud2.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Cloud2\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M7.562,24.812c-3.313,0-6-2.687-6-6l0,0c0.002-2.659,1.734-4.899,4.127-5.684l0,0c0.083-2.26,1.937-4.064,4.216-4.066l0,0c0.73,0,1.415,0.19,2.01,0.517l0,0c1.266-2.105,3.57-3.516,6.208-3.517l0,0c3.947,0.002,7.157,3.155,7.248,7.079l0,0c2.362,0.804,4.062,3.034,4.064,5.671l0,0c0,3.313-2.687,6-6,6l0,0H7.562L7.562,24.812zM24.163,14.887c-0.511-0.095-0.864-0.562-0.815-1.079l0,0c0.017-0.171,0.027-0.336,0.027-0.497l0,0c-0.007-2.899-2.352-5.245-5.251-5.249l0,0c-2.249-0.002-4.162,1.418-4.911,3.41l0,0c-0.122,0.323-0.406,0.564-0.748,0.63l0,0c-0.34,0.066-0.694-0.052-0.927-0.309l0,0c-0.416-0.453-0.986-0.731-1.633-0.731l0,0c-1.225,0.002-2.216,0.993-2.22,2.218l0,0c0,0.136,0.017,0.276,0.045,0.424l0,0c0.049,0.266-0.008,0.54-0.163,0.762l0,0c-0.155,0.223-0.392,0.371-0.657,0.414l0,0c-1.9,0.313-3.352,1.949-3.35,3.931l0,0c0.004,2.209,1.792,3.995,4.001,4.001l0,0h15.874c2.209-0.006,3.994-1.792,3.999-4.001l0,0C27.438,16.854,26.024,15.231,24.163,14.887L24.163,14.887\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/CloudDown.js\":\n/*!*************************************!*\\\n !*** ./src/shape/icon/CloudDown.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.CloudDown();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.CloudDown = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.CloudDown.prototype */\n{\n\n NAME: \"draw2d.shape.icon.CloudDown\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.345,13.904c0.019-0.195,0.03-0.392,0.03-0.591c0-3.452-2.798-6.25-6.25-6.25c-2.679,0-4.958,1.689-5.847,4.059c-0.589-0.646-1.429-1.059-2.372-1.059c-1.778,0-3.219,1.441-3.219,3.219c0,0.21,0.023,0.415,0.062,0.613c-2.372,0.391-4.187,2.436-4.187,4.918c0,2.762,2.239,5,5,5h3.404l-0.707-0.707c-0.377-0.377-0.585-0.879-0.585-1.413c0-0.533,0.208-1.035,0.585-1.412l0.556-0.557c0.4-0.399,0.937-0.628,1.471-0.628c0.027,0,0.054,0,0.08,0.002v-0.472c0-1.104,0.898-2.002,2-2.002h3.266c1.103,0,2,0.898,2,2.002v0.472c0.027-0.002,0.054-0.002,0.081-0.002c0.533,0,1.07,0.229,1.47,0.63l0.557,0.552c0.78,0.781,0.78,2.05,0,2.828l-0.706,0.707h2.403c2.762,0,5-2.238,5-5C28.438,16.362,26.672,14.332,24.345,13.904z M21.033,20.986l-0.556-0.555c-0.39-0.389-0.964-0.45-1.276-0.137c-0.312,0.312-0.568,0.118-0.568-0.432v-1.238c0-0.55-0.451-1-1-1h-3.265c-0.55,0-1,0.45-1,1v1.238c0,0.55-0.256,0.744-0.569,0.432c-0.312-0.313-0.887-0.252-1.276,0.137l-0.556,0.555c-0.39,0.389-0.39,1.024-0.001,1.413l4.328,4.331c0.194,0.194,0.451,0.291,0.707,0.291s0.512-0.097,0.707-0.291l4.327-4.331C21.424,22.011,21.423,21.375,21.033,20.986z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/CloudUp.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/CloudUp.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.CloudUp();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.CloudUp = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.CloudUp.prototype */\n{\n\n NAME: \"draw2d.shape.icon.CloudUp\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.345,13.904c0.019-0.195,0.03-0.392,0.03-0.591c0-3.452-2.798-6.25-6.25-6.25c-2.679,0-4.958,1.689-5.847,4.059c-0.589-0.646-1.429-1.059-2.372-1.059c-1.778,0-3.219,1.441-3.219,3.219c0,0.21,0.023,0.415,0.062,0.613c-2.372,0.391-4.187,2.436-4.187,4.918c0,2.762,2.239,5,5,5h2.312c-0.126-0.266-0.2-0.556-0.2-0.859c0-0.535,0.208-1.04,0.587-1.415l4.325-4.329c0.375-0.377,0.877-0.585,1.413-0.585c0.54,0,1.042,0.21,1.417,0.587l4.323,4.329c0.377,0.373,0.585,0.878,0.585,1.413c0,0.304-0.073,0.594-0.2,0.859h1.312c2.762,0,5-2.238,5-5C28.438,16.362,26.672,14.332,24.345,13.904z M16.706,17.916c-0.193-0.195-0.45-0.291-0.706-0.291s-0.512,0.096-0.707,0.291l-4.327,4.33c-0.39,0.389-0.389,1.025,0.001,1.414l0.556,0.555c0.39,0.389,0.964,0.449,1.276,0.137s0.568-0.119,0.568,0.432v1.238c0,0.549,0.451,1,1,1h3.265c0.551,0,1-0.451,1-1v-1.238c0-0.551,0.256-0.744,0.569-0.432c0.312,0.312,0.887,0.252,1.276-0.137l0.556-0.555c0.39-0.389,0.39-1.025,0.001-1.414L16.706,17.916z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Cloudy.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Cloudy.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Cloudy();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Cloudy = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Cloudy.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Cloudy\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M14.378,6.781c0.41,0.988,1.938,0.346,1.524-0.648C15.708,5.667,15.515,5.2,15.32,4.734c-0.289-0.695-0.875-3.233-2.042-2.747c-1.03,0.433-0.128,1.846,0.142,2.494C13.739,5.248,14.059,6.015,14.378,6.781M20.8,7.223c1.094,0.453,1.538-1.551,1.813-2.216c0.281-0.677,1.478-2.565,0.357-3.029c-1.092-0.453-1.537,1.548-1.813,2.216C20.876,4.872,19.68,6.757,20.8,7.223M18.137,6.692c1.183,0,0.829-2.019,0.829-2.742c0-0.732,0.383-2.935-0.829-2.935c-1.183,0-0.828,2.019-0.828,2.742C17.309,4.49,16.926,6.692,18.137,6.692M23.058,8.729c0.852,0.85,2.142-0.972,2.659-1.49c0.512-0.513,2.187-1.687,1.352-2.524c-0.834-0.836-2.013,0.843-2.522,1.353C24.028,6.585,22.198,7.874,23.058,8.729M24.565,10.986c0.448,1.091,2.183-0.01,2.849-0.286c0.676-0.28,2.858-0.771,2.394-1.89c-0.455-1.091-2.181,0.008-2.849,0.285C26.281,9.377,24.102,9.866,24.565,10.986M12.036,8.742c0.752,0.75,1.932-0.415,1.17-1.173c-0.253-0.347-0.646-0.645-0.949-0.946c-0.541-0.539-2.162-2.799-3.068-1.889c-0.79,0.791,0.586,1.755,1.083,2.25C10.859,7.57,11.447,8.156,12.036,8.742M29.365,17.397c-0.768-0.317-1.534-0.635-2.302-0.952c-0.646-0.268-2.07-1.169-2.495-0.135c-0.481,1.168,2.054,1.747,2.751,2.035c0.455,0.188,0.911,0.377,1.367,0.565C29.7,19.331,30.379,17.816,29.365,17.397M29.942,12.817c-0.83,0-1.66,0-2.49,0c-0.701,0-2.357-0.288-2.355,0.83c0,1.262,2.567,0.827,3.319,0.827c0.493,0,0.986,0,1.479-0.001C30.99,14.473,31.043,12.815,29.942,12.817M24.234,18.568c-0.673-0.673-1.773,0.189-1.281,1.007c-0.295-0.264-0.614-0.499-0.961-0.69c3.894-2.866,3.328-9.006-1.021-11.107c-2.024-0.978-4.481-0.828-6.368,0.394c-0.871,0.564-1.603,1.336-2.119,2.236c-0.262,0.456-0.468,0.943-0.612,1.449c-0.074,0.258-0.131,0.521-0.172,0.786c-0.083,0.534-0.109,0.553-0.553,0.871c-0.182-0.957-1.64-0.675-2.326-0.674c-0.815,0.001-1.963-0.217-2.752,0.046c-0.867,0.289-0.652,1.615,0.263,1.613c0.324,0.052,0.701-0.001,1.028-0.001c0.904-0.001,1.809-0.002,2.713-0.003c-0.308,0.352-0.496,0.969-0.94,0.77c-0.467-0.209-0.978-0.319-1.49-0.319c-0.951,0-1.877,0.375-2.561,1.036c-0.681,0.658-1.088,1.569-1.123,2.516c-0.944,0.31-1.791,0.891-2.421,1.658c-2.756,3.354-0.265,8.554,4.058,8.554v-0.002c3.597,0,7.194,0,10.792,0c1.341,0,2.843,0.167,4.168-0.113c3.652-0.772,5.361-5.21,3.133-8.229c0.548,0.547,1.096,1.094,1.644,1.641c0.183,0.183,0.364,0.424,0.575,0.574c0.552,0.552,1.524,0.066,1.403-0.713c-0.097-0.622-1.042-1.267-1.448-1.673C25.319,19.652,24.776,19.11,24.234,18.568M18.137,8.787c4.559,0.009,6.576,5.979,2.912,8.734c-0.637-3.505-4.161-5.824-7.629-5.03C13.943,10.367,15.852,8.792,18.137,8.787M22.895,24.08c-0.633,3.346-4.149,2.879-6.68,2.879c-3.017,0-6.033,0-9.049,0c-0.767,0-1.62,0.084-2.373-0.095c-2.274-0.538-3.416-3.242-2.172-5.235c0.678-1.087,1.568-1.19,2.626-1.67c0.604-0.273,0.456-0.807,0.456-1.331c0.002-0.597,0.284-1.169,0.756-1.533c0.787-0.608,1.943-0.497,2.611,0.234c1.098,1.205,1.96-1.346,2.507-1.893c2.025-2.025,5.475-1.708,7.068,0.684c0.344,0.516,0.581,1.102,0.693,1.712c0.097,0.529-0.115,1.341,0.188,1.796c0.291,0.47,0.943,0.463,1.397,0.68c0.508,0.23,0.963,0.591,1.304,1.034C22.834,22.125,23.064,23.107,22.895,24.08M6.906,9.917c0.881,0.364,1.763,0.727,2.644,1.091c0.353,0.146,0.707,0.292,1.06,0.437c0.997,0.412,1.637-1.119,0.642-1.526C10.47,9.441,9.456,9.177,8.609,8.828c-0.354-0.146-0.707-0.292-1.06-0.437C6.554,7.98,5.912,9.505,6.906,9.917\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Code.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Code.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Code();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Code = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Code.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Code\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M8.982,7.107L0.322,15.77l8.661,8.662l3.15-3.15L6.621,15.77l5.511-5.511L8.982,7.107zM21.657,7.107l-3.148,3.151l5.511,5.511l-5.511,5.511l3.148,3.15l8.662-8.662L21.657,7.107z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/CodeTalk.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/CodeTalk.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.CodeTalk();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.CodeTalk = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.CodeTalk.prototype */\n{\n\n NAME: \"draw2d.shape.icon.CodeTalk\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,4.938c-7.732,0-14,4.701-14,10.5c0,1.981,0.741,3.833,2.016,5.414L2,25.272l5.613-1.44c2.339,1.316,5.237,2.106,8.387,2.106c7.732,0,14-4.701,14-10.5S23.732,4.938,16,4.938zM13.704,19.47l-2.338,2.336l-6.43-6.431l6.429-6.432l2.339,2.341l-4.091,4.091L13.704,19.47zM20.775,21.803l-2.337-2.339l4.092-4.09l-4.092-4.092l2.337-2.339l6.43,6.426L20.775,21.803z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/CommandLine.js\":\n/*!***************************************!*\\\n !*** ./src/shape/icon/CommandLine.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.CommandLine();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.CommandLine = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.CommandLine.prototype */\n{\n\n NAME: \"draw2d.shape.icon.CommandLine\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M2.021,9.748L2.021,9.748V9.746V9.748zM2.022,9.746l5.771,5.773l-5.772,5.771l2.122,2.123l7.894-7.895L4.143,7.623L2.022,9.746zM12.248,23.269h14.419V20.27H12.248V23.269zM16.583,17.019h10.084V14.02H16.583V17.019zM12.248,7.769v3.001h14.419V7.769H12.248z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Connect.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Connect.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Connect();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Connect = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Connect.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Connect\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.06,13.719c-0.944-5.172-5.461-9.094-10.903-9.094v4c3.917,0.006,7.085,3.176,7.094,7.094c-0.009,3.917-3.177,7.085-7.094,7.093v4.002c5.442-0.004,9.959-3.926,10.903-9.096h4.69v-3.999H25.06zM20.375,15.719c0-3.435-2.784-6.219-6.219-6.219c-2.733,0-5.05,1.766-5.884,4.218H1.438v4.001h6.834c0.833,2.452,3.15,4.219,5.884,4.219C17.591,21.938,20.375,19.153,20.375,15.719z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Contract.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Contract.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Contract();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Contract = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Contract.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Contract\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.083,18.895l-8.428-2.259l2.258,8.428l1.838-1.837l7.053,7.053l2.476-2.476l-7.053-7.053L25.083,18.895zM5.542,11.731l8.428,2.258l-2.258-8.428L9.874,7.398L3.196,0.72L0.72,3.196l6.678,6.678L5.542,11.731zM7.589,20.935l-6.87,6.869l2.476,2.476l6.869-6.869l1.858,1.857l2.258-8.428l-8.428,2.258L7.589,20.935zM23.412,10.064l6.867-6.87l-2.476-2.476l-6.868,6.869l-1.856-1.856l-2.258,8.428l8.428-2.259L23.412,10.064z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Crop.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Crop.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Crop();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Crop = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Crop.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Crop\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.303,21.707V8.275l4.48-4.421l-2.021-2.048l-4.126,4.07H8.761V2.083H5.882v3.793H1.8v2.877h4.083v15.832h15.542v4.609h2.878v-4.609H29.2v-2.878H24.303zM19.72,8.753L8.761,19.565V8.753H19.72zM10.688,21.706l10.735-10.591l0.001,10.592L10.688,21.706z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Cross.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Cross.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Cross();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Cross = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Cross.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Cross\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.778,21.419 19.276,15.917 24.777,10.415 21.949,7.585 16.447,13.087 10.945,7.585 8.117,10.415 13.618,15.917 8.116,21.419 10.946,24.248 16.447,18.746 21.948,24.248z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Cube.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Cube.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Cube();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Cube = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Cube.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Cube\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.5,3.029l-10.8,6.235L4.7,21.735L15.5,27.971l10.8-6.235V9.265L15.5,3.029zM24.988,10.599L16,15.789v10.378c0,0.275-0.225,0.5-0.5,0.5s-0.5-0.225-0.5-0.5V15.786l-8.987-5.188c-0.239-0.138-0.321-0.444-0.183-0.683c0.138-0.238,0.444-0.321,0.683-0.183l8.988,5.189l8.988-5.189c0.238-0.138,0.545-0.055,0.684,0.184C25.309,10.155,25.227,10.461,24.988,10.599z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Customer.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Customer.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Customer();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Customer = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Customer.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Customer\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.523,23.813c-0.518-0.51-6.795-2.938-7.934-3.396c-1.132-0.451-1.584-1.697-1.584-1.697s-0.51,0.282-0.51-0.51c0-0.793,0.51,0.51,1.021-2.548c0,0,1.414-0.397,1.133-3.68l-0.338,0.001c0,0,0.85-3.511,0-4.699c-0.854-1.188-1.188-1.981-3.062-2.548c-1.869-0.567-1.188-0.454-2.547-0.396c-1.359,0.057-2.492,0.793-2.492,1.188c0,0-0.849,0.057-1.188,0.397c-0.34,0.34-0.906,1.924-0.906,2.32s0.283,3.059,0.566,3.624l-0.337,0.112c-0.283,3.283,1.132,3.681,1.132,3.681c0.509,3.058,1.019,1.755,1.019,2.548c0,0.792-0.51,0.51-0.51,0.51s-0.452,1.246-1.584,1.697c-1.132,0.453-7.416,2.887-7.927,3.396c-0.511,0.521-0.453,2.896-0.453,2.896h12.036l0.878-3.459l-0.781-0.781l1.344-1.344l1.344,1.344l-0.781,0.781l0.879,3.459h12.035C28.977,26.709,29.039,24.332,28.523,23.813z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Db.js\":\n/*!******************************!*\\\n !*** ./src/shape/icon/Db.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Db();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Db = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Db.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Db\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.499,23.438c-3.846,0-7.708-0.987-9.534-3.117c-0.054,0.236-0.09,0.48-0.09,0.737v3.877c0,3.435,4.988,4.998,9.625,4.998s9.625-1.563,9.625-4.998v-3.877c0-0.258-0.036-0.501-0.09-0.737C23.209,22.451,19.347,23.438,15.499,23.438zM15.499,15.943c-3.846,0-7.708-0.987-9.533-3.117c-0.054,0.236-0.091,0.479-0.091,0.736v3.877c0,3.435,4.988,4.998,9.625,4.998s9.625-1.563,9.625-4.998v-3.877c0-0.257-0.036-0.501-0.09-0.737C23.209,14.956,19.347,15.943,15.499,15.943zM15.5,1.066c-4.637,0-9.625,1.565-9.625,5.001v3.876c0,3.435,4.988,4.998,9.625,4.998s9.625-1.563,9.625-4.998V6.067C25.125,2.632,20.137,1.066,15.5,1.066zM15.5,9.066c-4.211,0-7.625-1.343-7.625-3c0-1.656,3.414-3,7.625-3s7.625,1.344,7.625,3C23.125,7.724,19.711,9.066,15.5,9.066z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Detour.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Detour.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Detour();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Detour = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Detour.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Detour\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M29.342,15.5l-7.556-4.363v2.614H18.75c-1.441-0.004-2.423,1.002-2.875,1.784c-0.735,1.222-1.056,2.561-1.441,3.522c-0.135,0.361-0.278,0.655-0.376,0.817c-1.626,0-0.998,0-2.768,0c-0.213-0.398-0.571-1.557-0.923-2.692c-0.237-0.676-0.5-1.381-1.013-2.071C8.878,14.43,7.89,13.726,6.75,13.75H2.812v3.499c0,0,0.358,0,1.031,0h2.741c0.008,0.013,0.018,0.028,0.029,0.046c0.291,0.401,0.634,1.663,1.031,2.888c0.218,0.623,0.455,1.262,0.92,1.897c0.417,0.614,1.319,1.293,2.383,1.293H11c2.25,0,1.249,0,3.374,0c0.696,0.01,1.371-0.286,1.809-0.657c1.439-1.338,1.608-2.886,2.13-4.127c0.218-0.608,0.453-1.115,0.605-1.314c0.006-0.01,0.012-0.018,0.018-0.025h2.85v2.614L29.342,15.5zM10.173,14.539c0.568,0.76,0.874,1.559,1.137,2.311c0.04,0.128,0.082,0.264,0.125,0.399h2.58c0.246-0.697,0.553-1.479,1.005-2.228c0.252-0.438,0.621-0.887,1.08-1.272H9.43C9.735,14.003,9.99,14.277,10.173,14.539z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Diagram.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Diagram.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Diagram();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Diagram = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Diagram.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Diagram\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super((0, _extend2.default)({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M6.812,17.202l7.396-3.665v-2.164h-0.834c-0.414,0-0.808-0.084-1.167-0.237v1.159l-7.396,3.667v2.912h2V17.202zM26.561,18.875v-2.913l-7.396-3.666v-1.158c-0.358,0.152-0.753,0.236-1.166,0.236h-0.832l-0.001,2.164l7.396,3.666v1.672H26.561zM16.688,18.875v-7.501h-2v7.501H16.688zM27.875,19.875H23.25c-1.104,0-2,0.896-2,2V26.5c0,1.104,0.896,2,2,2h4.625c1.104,0,2-0.896,2-2v-4.625C29.875,20.771,28.979,19.875,27.875,19.875zM8.125,19.875H3.5c-1.104,0-2,0.896-2,2V26.5c0,1.104,0.896,2,2,2h4.625c1.104,0,2-0.896,2-2v-4.625C10.125,20.771,9.229,19.875,8.125,19.875zM13.375,10.375H18c1.104,0,2-0.896,2-2V3.75c0-1.104-0.896-2-2-2h-4.625c-1.104,0-2,0.896-2,2v4.625C11.375,9.479,12.271,10.375,13.375,10.375zM18,19.875h-4.625c-1.104,0-2,0.896-2,2V26.5c0,1.104,0.896,2,2,2H18c1.104,0,2-0.896,2-2v-4.625C20,20.771,19.104,19.875,18,19.875z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Disconnect.js\":\n/*!**************************************!*\\\n !*** ./src/shape/icon/Disconnect.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Disconnect();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Disconnect = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Disconnect.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Disconnect\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M9.219,9.5c-2.733,0-5.05,1.766-5.884,4.218H1.438v4.001h1.897c0.833,2.452,3.15,4.219,5.884,4.219c3.435,0,6.219-2.784,6.219-6.219S12.653,9.5,9.219,9.5zM27.685,13.719c-0.944-5.172-5.461-9.094-10.903-9.094v4c3.917,0.006,7.085,3.176,7.094,7.094c-0.009,3.917-3.177,7.085-7.094,7.093v4.002c5.442-0.004,9.959-3.926,10.903-9.096h2.065v-3.999H27.685z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/DockBottom.js\":\n/*!**************************************!*\\\n !*** ./src/shape/icon/DockBottom.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.DockBottom();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.DockBottom = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.DockBottom.prototype */\n{\n\n NAME: \"draw2d.shape.icon.DockBottom\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M3.083,7.333v16.334h24.833V7.333H3.083zM24.915,16.833H6.083v-6.501h18.833L24.915,16.833L24.915,16.833z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/DockLeft.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/DockLeft.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.DockLeft();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.DockLeft = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.DockLeft.prototype */\n{\n\n NAME: \"draw2d.shape.icon.DockLeft\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M3.084,7.333v16.334h24.832V7.333H3.084z M11.667,10.332h13.251v10.336H11.667V10.332z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/DockRight.js\":\n/*!*************************************!*\\\n !*** ./src/shape/icon/DockRight.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.DockRight();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.DockRight = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.DockRight.prototype */\n{\n\n NAME: \"draw2d.shape.icon.DockRight\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M3.083,7.333v16.334h24.833V7.333H3.083z M19.333,20.668H6.083V10.332h13.25V20.668z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/DockTop.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/DockTop.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.DockTop();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.DockTop = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.DockTop.prototype */\n{\n\n NAME: \"draw2d.shape.icon.DockTop\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M27.916,23.667V7.333H3.083v16.334H27.916zM24.915,20.668H6.083v-6.501h18.833L24.915,20.668L24.915,20.668z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Download.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Download.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Download();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Download = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Download.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Download\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM16,28.792c-1.549,0-2.806-1.256-2.806-2.806s1.256-2.806,2.806-2.806c1.55,0,2.806,1.256,2.806,2.806S17.55,28.792,16,28.792zM16,21.087l-7.858-6.562h3.469V5.747h8.779v8.778h3.468L16,21.087z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Dry.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Dry.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Dry();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Dry = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Dry.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Dry\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M14.784,26.991c0,1.238-1.329,1.696-1.835,1.696c-0.504,0-1.536-0.413-1.65-1.812c0-0.354-0.288-0.642-0.644-0.642c-0.354,0-0.641,0.287-0.641,0.642c0.045,1.056,0.756,3.052,2.935,3.052c2.432,0,3.166-1.882,3.166-3.144v-8.176l-1.328-0.024C14.787,18.584,14.784,25.889,14.784,26.991zM15.584,9.804c-6.807,0-11.084,4.859-11.587,8.326c0.636-0.913,1.694-1.51,2.89-1.51c1.197,0,2.22,0.582,2.855,1.495c0.638-0.904,1.69-1.495,2.88-1.495c1.2,0,2.26,0.6,2.896,1.517c0.635-0.917,1.83-1.517,3.03-1.517c1.19,0,2.241,0.591,2.879,1.495c0.636-0.913,1.659-1.495,2.855-1.495c1.197,0,2.254,0.597,2.89,1.51C26.669,14.663,22.393,9.804,15.584,9.804zM14.733,7.125v2.081h1.323V7.125c0-0.365-0.296-0.661-0.661-0.661C15.029,6.464,14.733,6.76,14.733,7.125zM7.562,6.015c0.54,0.312,1.229,0.128,1.54-0.412c0.109-0.189,0.157-0.398,0.15-0.602L9.251,3.09L7.59,4.047c-0.178,0.095-0.333,0.24-0.441,0.428C6.837,5.015,7.022,5.703,7.562,6.015zM5.572,11.717c0.109-0.19,0.158-0.398,0.151-0.602L5.721,9.203l-1.66,0.957c-0.178,0.096-0.333,0.241-0.441,0.429c-0.311,0.539-0.127,1.229,0.413,1.539C4.571,12.44,5.26,12.256,5.572,11.717zM10.523,9.355c0.539,0.312,1.229,0.126,1.541-0.412c0.109-0.189,0.156-0.398,0.15-0.603L12.214,6.43l-1.662,0.956c-0.177,0.097-0.332,0.241-0.441,0.43C9.799,8.354,9.984,9.044,10.523,9.355zM15.251,3.998c0.539,0.312,1.229,0.126,1.54-0.412c0.11-0.19,0.157-0.398,0.15-0.603L16.94,1.072l-1.661,0.956c-0.178,0.097-0.332,0.242-0.441,0.43C14.526,2.998,14.711,3.687,15.251,3.998zM19.348,8.914c0.539,0.312,1.228,0.128,1.541-0.412c0.109-0.189,0.156-0.398,0.149-0.602h-0.001V5.988l-1.661,0.957c-0.178,0.096-0.332,0.241-0.441,0.429C18.623,7.914,18.809,8.603,19.348,8.914zM23.633,5.196c0.54,0.312,1.23,0.126,1.542-0.413c0.109-0.189,0.156-0.398,0.149-0.602h-0.001V2.27l-1.662,0.957c-0.177,0.096-0.331,0.24-0.44,0.43C22.909,4.195,23.094,4.885,23.633,5.196zM27.528,8.51l-1.659,0.956c-0.18,0.097-0.334,0.242-0.443,0.43c-0.312,0.539-0.127,1.229,0.413,1.54c0.539,0.312,1.229,0.127,1.541-0.412c0.109-0.19,0.158-0.398,0.151-0.603L27.528,8.51z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Employee.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Employee.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Employee();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Employee = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Employee.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Employee\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.523,23.813c-0.518-0.51-6.795-2.938-7.934-3.396c-1.132-0.451-1.584-1.697-1.584-1.697s-0.51,0.282-0.51-0.51c0-0.793,0.51,0.51,1.021-2.548c0,0,1.414-0.397,1.133-3.68l-0.338,0.001c0,0,0.85-3.511,0-4.699c-0.854-1.188-1.188-1.981-3.062-2.548c-1.869-0.567-1.188-0.454-2.547-0.396c-1.359,0.057-2.492,0.793-2.492,1.188c0,0-0.849,0.057-1.188,0.397c-0.34,0.34-0.906,1.924-0.906,2.32s0.283,3.059,0.566,3.624l-0.337,0.112c-0.283,3.283,1.132,3.681,1.132,3.681c0.509,3.058,1.019,1.755,1.019,2.548c0,0.792-0.51,0.51-0.51,0.51s-0.452,1.246-1.584,1.697c-1.132,0.453-7.416,2.887-7.927,3.396c-0.511,0.521-0.453,2.896-0.453,2.896h26.954C28.977,26.709,29.039,24.332,28.523,23.813zM22.188,26.062h-4.562v-1.25h4.562V26.062z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/End.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/End.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.End();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.End = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.End.prototype */\n{\n\n NAME: \"draw2d.shape.icon.End\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M21.167,5.5,21.167,13.681,6.684,5.318,6.684,25.682,21.167,17.318,21.167,25.5,25.5,25.5,25.5,5.5z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Ethernet.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Ethernet.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Ethernet();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Ethernet = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Ethernet.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Ethernet\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M22.5,8.5v3.168l3.832,3.832L22.5,19.332V22.5l7-7L22.5,8.5zM8.5,22.5v-3.168L4.667,15.5L8.5,11.668V8.5l-7,7L8.5,22.5zM15.5,14.101c-0.928,0-1.68,0.751-1.68,1.68c0,0.927,0.752,1.681,1.68,1.681c0.927,0,1.68-0.754,1.68-1.681C17.18,14.852,16.427,14.101,15.5,14.101zM10.46,14.101c-0.928,0-1.68,0.751-1.68,1.68c0,0.927,0.752,1.681,1.68,1.681s1.68-0.754,1.68-1.681C12.14,14.852,11.388,14.101,10.46,14.101zM20.541,14.101c-0.928,0-1.682,0.751-1.682,1.68c0,0.927,0.754,1.681,1.682,1.681s1.68-0.754,1.68-1.681C22.221,14.852,21.469,14.101,20.541,14.101z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Exchange.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Exchange.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Exchange();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Exchange = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Exchange.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Exchange\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M21.786,12.876l7.556-4.363l-7.556-4.363v2.598H2.813v3.5h18.973V12.876zM10.368,18.124l-7.556,4.362l7.556,4.362V24.25h18.974v-3.501H10.368V18.124z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Expand.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Expand.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Expand();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Expand = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Expand.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Expand\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.545,23.328,17.918,15.623,25.534,8.007,27.391,9.864,29.649,1.436,21.222,3.694,23.058,5.53,15.455,13.134,7.942,5.543,9.809,3.696,1.393,1.394,3.608,9.833,5.456,8.005,12.98,15.608,5.465,23.123,3.609,21.268,1.351,29.695,9.779,27.438,7.941,25.6,15.443,18.098,23.057,25.791,21.19,27.638,29.606,29.939,27.393,21.5z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Export.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Export.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Export();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Export = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Export.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Export\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.086,20.904c-1.805,3.113-5.163,5.212-9.023,5.219c-5.766-0.01-10.427-4.672-10.438-10.435C4.636,9.922,9.297,5.261,15.063,5.25c3.859,0.007,7.216,2.105,9.022,5.218l3.962,2.284l0.143,0.082C26.879,6.784,21.504,2.25,15.063,2.248C7.64,2.25,1.625,8.265,1.624,15.688c0.002,7.42,6.017,13.435,13.439,13.437c6.442-0.002,11.819-4.538,13.127-10.589l-0.141,0.081L24.086,20.904zM28.4,15.688l-7.15-4.129v2.297H10.275v3.661H21.25v2.297L28.4,15.688z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Fave.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Fave.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Fave();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Fave = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Fave.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Fave\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.132,7.971c-2.203-2.205-5.916-2.098-8.25,0.235L15.5,8.588l-0.382-0.382c-2.334-2.333-6.047-2.44-8.25-0.235c-2.204,2.203-2.098,5.916,0.235,8.249l8.396,8.396l8.396-8.396C26.229,13.887,26.336,10.174,24.132,7.971z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Feed.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Feed.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Feed();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Feed = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Feed.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Feed\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M4.135,16.762c3.078,0,5.972,1.205,8.146,3.391c2.179,2.187,3.377,5.101,3.377,8.202h4.745c0-9.008-7.299-16.335-16.269-16.335V16.762zM4.141,8.354c10.973,0,19.898,8.975,19.898,20.006h4.743c0-13.646-11.054-24.749-24.642-24.749V8.354zM10.701,25.045c0,1.815-1.471,3.287-3.285,3.287s-3.285-1.472-3.285-3.287c0-1.813,1.471-3.285,3.285-3.285S10.701,23.231,10.701,25.045z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Ff.js\":\n/*!******************************!*\\\n !*** ./src/shape/icon/Ff.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Ff();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Ff = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Ff.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Ff\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.5,15.5,15.2,9.552,15.2,15.153,5.5,9.552,5.5,21.447,15.2,15.847,15.2,21.447z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Firefox.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Firefox.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Firefox();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Firefox = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Firefox.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Firefox\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.4,22.469c0.479-0.964,0.851-1.991,1.095-3.066c0.953-3.661,0.666-6.854,0.666-6.854l-0.327,2.104c0,0-0.469-3.896-1.044-5.353c-0.881-2.231-1.273-2.214-1.274-2.21c0.542,1.379,0.494,2.169,0.483,2.288c-0.01-0.016-0.019-0.032-0.027-0.047c-0.131-0.324-0.797-1.819-2.225-2.878c-2.502-2.481-5.943-4.014-9.745-4.015c-4.056,0-7.705,1.745-10.238,4.525C5.444,6.5,5.183,5.938,5.159,5.317c0,0-0.002,0.002-0.006,0.005c0-0.011-0.003-0.021-0.003-0.031c0,0-1.61,1.247-1.436,4.612c-0.299,0.574-0.56,1.172-0.777,1.791c-0.375,0.817-0.75,2.004-1.059,3.746c0,0,0.133-0.422,0.399-0.988c-0.064,0.482-0.103,0.971-0.116,1.467c-0.09,0.845-0.118,1.865-0.039,3.088c0,0,0.032-0.406,0.136-1.021c0.834,6.854,6.667,12.165,13.743,12.165l0,0c1.86,0,3.636-0.37,5.256-1.036C24.938,27.771,27.116,25.196,28.4,22.469zM16.002,3.356c2.446,0,4.73,0.68,6.68,1.86c-2.274-0.528-3.433-0.261-3.423-0.248c0.013,0.015,3.384,0.589,3.981,1.411c0,0-1.431,0-2.856,0.41c-0.065,0.019,5.242,0.663,6.327,5.966c0,0-0.582-1.213-1.301-1.42c0.473,1.439,0.351,4.17-0.1,5.528c-0.058,0.174-0.118-0.755-1.004-1.155c0.284,2.037-0.018,5.268-1.432,6.158c-0.109,0.07,0.887-3.189,0.201-1.93c-4.093,6.276-8.959,2.539-10.934,1.208c1.585,0.388,3.267,0.108,4.242-0.559c0.982-0.672,1.564-1.162,2.087-1.047c0.522,0.117,0.87-0.407,0.464-0.872c-0.405-0.466-1.392-1.105-2.725-0.757c-0.94,0.247-2.107,1.287-3.886,0.233c-1.518-0.899-1.507-1.63-1.507-2.095c0-0.366,0.257-0.88,0.734-1.028c0.58,0.062,1.044,0.214,1.537,0.466c0.005-0.135,0.006-0.315-0.001-0.519c0.039-0.077,0.015-0.311-0.047-0.596c-0.036-0.287-0.097-0.582-0.19-0.851c0.01-0.002,0.017-0.007,0.021-0.021c0.076-0.344,2.147-1.544,2.299-1.659c0.153-0.114,0.55-0.378,0.506-1.183c-0.015-0.265-0.058-0.294-2.232-0.286c-0.917,0.003-1.425-0.894-1.589-1.245c0.222-1.231,0.863-2.11,1.919-2.704c0.02-0.011,0.015-0.021-0.008-0.027c0.219-0.127-2.524-0.006-3.76,1.604C9.674,8.045,9.219,7.95,8.71,7.95c-0.638,0-1.139,0.07-1.603,0.187c-0.05,0.013-0.122,0.011-0.208-0.001C6.769,8.04,6.575,7.88,6.365,7.672c0.161-0.18,0.324-0.356,0.495-0.526C9.201,4.804,12.43,3.357,16.002,3.356z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Flag.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Flag.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Flag();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Flag = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Flag.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Flag\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M26.04,9.508c0.138-0.533,0.15-1.407,0.028-1.943l-0.404-1.771c-0.122-0.536-0.665-1.052-1.207-1.146l-3.723-0.643c-0.542-0.094-1.429-0.091-1.97,0.007l-4.033,0.726c-0.542,0.098-1.429,0.108-1.973,0.023L8.812,4.146C8.817,4.165,8.826,4.182,8.83,4.201l2.701,12.831l1.236,0.214c0.542,0.094,1.428,0.09,1.97-0.007l4.032-0.727c0.541-0.097,1.429-0.107,1.973-0.022l4.329,0.675c0.544,0.085,0.906-0.288,0.807-0.829l-0.485-2.625c-0.1-0.541-0.069-1.419,0.068-1.952L26.04,9.508zM6.667,3.636C6.126,3.75,5.78,4.279,5.894,4.819l5.763,27.378H13.7L7.852,4.409C7.736,3.867,7.207,3.521,6.667,3.636z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Flickr.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Flickr.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Flickr();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Flickr = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Flickr.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Flickr\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M21.77,8.895c-2.379,0-4.479,1.174-5.77,2.969c-1.289-1.795-3.39-2.969-5.77-2.969c-3.924,0-7.105,3.181-7.105,7.105c0,3.924,3.181,7.105,7.105,7.105c2.379,0,4.48-1.175,5.77-2.97c1.29,1.795,3.391,2.97,5.77,2.97c3.925,0,7.105-3.182,7.105-7.105C28.875,12.075,25.694,8.895,21.77,8.895zM21.769,21.822c-3.211,0-5.821-2.61-5.821-5.821c0-3.213,2.61-5.824,5.821-5.824c3.213,0,5.824,2.611,5.824,5.824C27.593,19.212,24.981,21.822,21.769,21.822z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Folder.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Folder.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Folder();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Folder = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Folder.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Folder\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.625,26.75h-26.5V8.375h1.124c1.751,0,0.748-3.125,3-3.125c3.215,0,1.912,0,5.126,0c2.251,0,1.251,3.125,3.001,3.125h14.25V26.75z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Font.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Font.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Font();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Font = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Font.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Font\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M22.255,19.327l-1.017,0.131c-0.609,0.081-1.067,0.208-1.375,0.382c-0.521,0.293-0.779,0.76-0.779,1.398c0,0.484,0.178,0.867,0.532,1.146c0.354,0.28,0.774,0.421,1.262,0.421c0.593,0,1.164-0.138,1.72-0.412c0.938-0.453,1.4-1.188,1.4-2.229v-1.354c-0.205,0.131-0.469,0.229-0.792,0.328C22.883,19.229,22.564,19.29,22.255,19.327zM8.036,18.273h4.309l-2.113-6.063L8.036,18.273zM28.167,7.75H3.168c-0.552,0-1,0.448-1,1v16.583c0,0.553,0.448,1,1,1h24.999c0.554,0,1-0.447,1-1V8.75C29.167,8.198,28.721,7.75,28.167,7.75zM14.305,23.896l-1.433-4.109H7.488L6,23.896H4.094L9.262,10.17h2.099l4.981,13.727H14.305L14.305,23.896zM26.792,23.943c-0.263,0.074-0.461,0.121-0.599,0.141c-0.137,0.02-0.323,0.027-0.562,0.027c-0.579,0-0.999-0.204-1.261-0.615c-0.138-0.219-0.231-0.525-0.29-0.926c-0.344,0.449-0.834,0.839-1.477,1.169c-0.646,0.329-1.354,0.493-2.121,0.493c-0.928,0-1.688-0.28-2.273-0.844c-0.589-0.562-0.884-1.271-0.884-2.113c0-0.928,0.29-1.646,0.868-2.155c0.578-0.511,1.34-0.824,2.279-0.942l2.682-0.336c0.388-0.05,0.646-0.211,0.775-0.484c0.063-0.146,0.104-0.354,0.104-0.646c0-0.575-0.203-0.993-0.604-1.252c-0.408-0.26-0.99-0.389-1.748-0.389c-0.877,0-1.5,0.238-1.865,0.713c-0.205,0.263-0.34,0.654-0.399,1.174H17.85c0.031-1.237,0.438-2.097,1.199-2.582c0.77-0.484,1.659-0.726,2.674-0.726c1.176,0,2.131,0.225,2.864,0.673c0.729,0.448,1.093,1.146,1.093,2.093v5.766c0,0.176,0.035,0.313,0.106,0.422c0.071,0.104,0.223,0.156,0.452,0.156c0.076,0,0.16-0.005,0.254-0.015c0.093-0.011,0.191-0.021,0.299-0.041L26.792,23.943L26.792,23.943z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Fork.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Fork.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Fork();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Fork = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Fork.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Fork\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M13.741,10.249h8.045v2.627l7.556-4.363l-7.556-4.363v2.598H9.826C11.369,7.612,12.616,8.922,13.741,10.249zM21.786,20.654c-0.618-0.195-1.407-0.703-2.291-1.587c-1.79-1.756-3.712-4.675-5.731-7.227c-2.049-2.486-4.159-4.972-7.451-5.091h-3.5v3.5h3.5c0.656-0.027,1.683,0.486,2.879,1.683c1.788,1.753,3.712,4.674,5.731,7.226c1.921,2.331,3.907,4.639,6.863,5.016v2.702l7.556-4.362l-7.556-4.362V20.654z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/ForkAlt.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/ForkAlt.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.ForkAlt();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.ForkAlt = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.ForkAlt.prototype */\n{\n\n NAME: \"draw2d.shape.icon.ForkAlt\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M21.786,12.873l7.556-4.361l-7.556-4.362v2.701c-2.929,0.374-4.905,2.64-6.809,4.952c0.545,0.703,1.08,1.418,1.604,2.127c0.192,0.26,0.383,0.514,0.573,0.77c0.802-1.043,1.584-1.999,2.341-2.74c0.884-0.885,1.673-1.393,2.291-1.588V12.873zM17.661,17.006c-1.893-2.371-3.815-5.354-6.009-7.537c-1.461-1.428-3.155-2.664-5.34-2.693h-3.5v3.5h3.5c0.971-0.119,2.845,1.333,4.712,3.771c1.895,2.371,3.815,5.354,6.011,7.537c1.326,1.297,2.847,2.426,4.751,2.645v2.646l7.556-4.363l-7.556-4.362v2.535C20.746,20.346,19.205,19.022,17.661,17.006z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/FullCube.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/FullCube.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.FullCube();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.FullCube = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.FullCube.prototype */\n{\n\n NAME: \"draw2d.shape.icon.FullCube\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.5,3.029l-10.8,6.235L4.7,21.735L15.5,27.971l10.8-6.235V9.265L15.5,3.029zM15.5,7.029l6.327,3.652L15.5,14.334l-6.326-3.652L15.5,7.029zM24.988,10.599L16,15.789v10.378c0,0.275-0.225,0.5-0.5,0.5s-0.5-0.225-0.5-0.5V15.786l-8.987-5.188c-0.239-0.138-0.321-0.444-0.183-0.683c0.138-0.238,0.444-0.321,0.683-0.183l8.988,5.189l8.988-5.189c0.238-0.138,0.545-0.055,0.684,0.184C25.309,10.155,25.227,10.461,24.988,10.599z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Future.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Future.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Future();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Future = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Future.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Future\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M17.001,15.5l-0.5-7.876c0-0.552-0.448-1-1-1c-0.552,0-1,0.448-1,1l-0.466,7.343l-3.004,1.96c-0.478,0.277-0.642,0.89-0.365,1.365c0.275,0.479,0.889,0.644,1.365,0.367l3.305-1.677C15.39,16.99,15.444,17,15.501,17C16.329,17,17.001,16.329,17.001,15.5zM18.939,21.455c-0.479,0.277-0.644,0.889-0.366,1.367c0.274,0.477,0.888,0.643,1.366,0.365c0.478-0.275,0.642-0.89,0.365-1.365C20.027,21.344,19.417,21.18,18.939,21.455zM19.938,7.813c-0.477-0.276-1.09-0.111-1.364,0.366c-0.275,0.48-0.111,1.091,0.366,1.367c0.477,0.276,1.088,0.112,1.365-0.366C20.581,8.702,20.418,8.089,19.938,7.813zM21.823,20.305c0.477,0.274,1.089,0.112,1.364-0.365c0.276-0.479,0.112-1.092-0.364-1.367c-0.48-0.275-1.093-0.111-1.367,0.365C21.182,19.416,21.344,20.029,21.823,20.305zM22.822,12.428c0.478-0.275,0.643-0.888,0.365-1.366c-0.274-0.478-0.89-0.642-1.365-0.366c-0.479,0.278-0.643,0.89-0.366,1.367S22.344,12.705,22.822,12.428zM24.378,15.5c0-0.551-0.448-1-1-1c-0.554,0.002-1.001,0.45-1.001,1c0.001,0.552,0.448,1,1.001,1C23.93,16.5,24.378,16.053,24.378,15.5zM9.546,12.062c0.275-0.478,0.111-1.089-0.366-1.366c-0.479-0.276-1.09-0.112-1.366,0.366s-0.111,1.09,0.365,1.366C8.658,12.704,9.269,12.541,9.546,12.062zM6.624,15.5c0,0.553,0.449,1,1,1c0.552,0,1-0.447,1.001-1c-0.001-0.552-0.448-0.999-1.001-1C7.071,14.5,6.624,14.948,6.624,15.5zM9.179,20.305c0.479-0.275,0.643-0.888,0.367-1.367c-0.276-0.477-0.888-0.641-1.367-0.365c-0.478,0.277-0.642,0.889-0.365,1.367C8.089,20.418,8.703,20.58,9.179,20.305zM12.062,9.545c0.479-0.276,0.642-0.888,0.366-1.366c-0.276-0.478-0.888-0.642-1.366-0.366s-0.642,0.888-0.366,1.366C10.973,9.658,11.584,9.822,12.062,9.545zM14.501,23.377c0,0.553,0.448,1,1,1c0.552,0,1-0.447,1-1s-0.448-1-1-1C14.949,22.377,14.501,22.824,14.501,23.377zM10.696,21.822c-0.275,0.479-0.111,1.09,0.366,1.365c0.478,0.276,1.091,0.11,1.365-0.365c0.277-0.479,0.113-1.09-0.365-1.367C11.584,21.18,10.973,21.344,10.696,21.822zM28.674,14.087l-3.27-1.186c0.291,1.105,0.41,2.274,0.309,3.478c-0.492,5.639-5.449,9.809-11.091,9.333c-5.639-0.495-9.809-5.45-9.333-11.09c0.494-5.641,5.449-9.812,11.089-9.335c2.428,0.212,4.567,1.266,6.194,2.833l-1.637,1.377l7.031,2.548l-1.309-7.364l-1.771,1.492c-2.133-2.151-4.996-3.597-8.25-3.877C9.346,1.67,2.926,7.072,2.297,14.364c-0.625,7.291,4.777,13.71,12.066,14.339c7.293,0.625,13.713-4.776,14.342-12.066C28.779,15.771,28.762,14.919,28.674,14.087z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/GRaphael.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/GRaphael.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.GRaphael();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.GRaphael = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.GRaphael.prototype */\n{\n\n NAME: \"draw2d.shape.icon.GRaphael\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.833,15.709c0-1.477-0.574-2.862-1.617-3.904l-7.002-7.001l-0.003,0.002c-1.027-1.03-2.445-1.62-3.9-1.62c-1.455,0-2.871,0.59-3.9,1.621l-0.002-0.002l-7,7C4.376,12.836,3.79,14.25,3.79,15.709s0.586,2.873,1.619,3.902l6.312,6.312c0.253,0.285,0.519,0.556,0.8,0.8c1.049,0.989,2.463,1.534,3.908,1.51c1.417-0.021,2.783-0.604,3.785-1.604l6.812-6.812c0.021-0.021,0.035-0.029,0.062-0.062l0.143-0.146c0.271-0.271,0.484-0.562,0.725-0.86l-0.012-0.002C28.516,17.85,28.833,16.805,28.833,15.709zM18.77,25.17c-1.121,1.119-2.917,1.336-4.271,0.514l0.002-0.002c-0.213-0.145-0.414-0.303-0.61-0.471c-0.016-0.016-7.04-7.041-7.04-7.041c-1.34-1.34-1.342-3.584,0-4.92l7-6.998c1.121-1.121,2.908-1.338,4.259-0.512v0.002c0.213,0.141,0.414,0.299,0.604,0.467c0.021,0.016,7.053,7.043,7.053,7.043c0.396,0.388,0.655,0.852,0.818,1.348l-2.607,0.006c-0.537-3.754-3.769-6.641-7.667-6.641c-4.277,0-7.744,3.468-7.745,7.746c0.001,4.277,3.468,7.744,7.745,7.744c3.917,0,7.156-2.91,7.668-6.688l2.638-0.021c-0.16,0.521-0.441,1.02-0.849,1.412L18.77,25.17zM16.312,16.789c0.002,0,0.002,0,0.004,0l5.476-0.02c-0.5,2.562-2.76,4.518-5.48,4.521c-3.084-0.004-5.578-2.5-5.584-5.582c0.006-3.084,2.5-5.58,5.584-5.584c2.708,0.004,4.959,1.929,5.472,4.484l-5.476,0.018c-0.596,0.002-1.078,0.488-1.076,1.084C15.233,16.308,15.715,16.789,16.312,16.789z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Gear.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Gear.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Gear();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Gear = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Gear.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Gear\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M26.974,16.514l3.765-1.991c-0.074-0.738-0.217-1.454-0.396-2.157l-4.182-0.579c-0.362-0.872-0.84-1.681-1.402-2.423l1.594-3.921c-0.524-0.511-1.09-0.977-1.686-1.406l-3.551,2.229c-0.833-0.438-1.73-0.77-2.672-0.984l-1.283-3.976c-0.364-0.027-0.728-0.056-1.099-0.056s-0.734,0.028-1.099,0.056l-1.271,3.941c-0.967,0.207-1.884,0.543-2.738,0.986L7.458,4.037C6.863,4.466,6.297,4.932,5.773,5.443l1.55,3.812c-0.604,0.775-1.11,1.629-1.49,2.55l-4.05,0.56c-0.178,0.703-0.322,1.418-0.395,2.157l3.635,1.923c0.041,1.013,0.209,1.994,0.506,2.918l-2.742,3.032c0.319,0.661,0.674,1.303,1.085,1.905l4.037-0.867c0.662,0.72,1.416,1.351,2.248,1.873l-0.153,4.131c0.663,0.299,1.352,0.549,2.062,0.749l2.554-3.283C15.073,26.961,15.532,27,16,27c0.507,0,1.003-0.046,1.491-0.113l2.567,3.301c0.711-0.2,1.399-0.45,2.062-0.749l-0.156-4.205c0.793-0.513,1.512-1.127,2.146-1.821l4.142,0.889c0.411-0.602,0.766-1.243,1.085-1.905l-2.831-3.131C26.778,18.391,26.93,17.467,26.974,16.514zM20.717,21.297l-1.785,1.162l-1.098-1.687c-0.571,0.22-1.186,0.353-1.834,0.353c-2.831,0-5.125-2.295-5.125-5.125c0-2.831,2.294-5.125,5.125-5.125c2.83,0,5.125,2.294,5.125,5.125c0,1.414-0.573,2.693-1.499,3.621L20.717,21.297z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Gear2.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Gear2.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Gear2();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Gear2 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Gear2.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Gear2\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M17.047,27.945c-0.34,0.032-0.688,0.054-1.046,0.054l0,0c-0.32,0-0.631-0.017-0.934-0.043l0,0l-2.626,3.375l-0.646-0.183c-0.758-0.213-1.494-0.48-2.202-0.8l0,0L8.979,30.07l0.158-4.24c-0.558-0.39-1.079-0.825-1.561-1.302l0,0L3.424,25.42l-0.379-0.557c-0.445-0.654-0.824-1.339-1.16-2.032l0,0l-0.292-0.605l2.819-3.12c-0.176-0.661-0.293-1.343-0.353-2.038l0,0l-3.736-1.975l0.068-0.669c0.08-0.801,0.235-1.567,0.42-2.303l0,0l0.165-0.653l4.167-0.577c0.297-0.627,0.647-1.221,1.041-1.78l0,0l-1.59-3.914l0.48-0.47c0.564-0.55,1.168-1.048,1.798-1.503l0,0l0.546-0.394l3.597,2.259c0.606-0.279,1.24-0.509,1.897-0.685l0,0l1.304-4.046l0.672-0.051c0.362-0.027,0.751-0.058,1.174-0.058l0,0c0.422,0,0.81,0.031,1.172,0.058l0,0l0.672,0.051l1.318,4.088c0.632,0.176,1.244,0.401,1.831,0.674l0,0l3.647-2.291l0.548,0.394c0.63,0.455,1.235,0.954,1.798,1.501l0,0l0.482,0.47l-1.639,4.031c0.357,0.519,0.679,1.068,0.954,1.646l0,0l4.297,0.595l0.167,0.653c0.188,0.735,0.342,1.501,0.42,2.303l0,0l0.068,0.669l-3.866,2.044c-0.058,0.634-0.161,1.258-0.315,1.866l0,0l2.913,3.218l-0.293,0.608c-0.335,0.695-0.712,1.382-1.159,2.034l0,0l-0.379,0.555l-4.255-0.912c-0.451,0.451-0.939,0.866-1.461,1.241l0,0l0.162,4.323l-0.615,0.278c-0.709,0.319-1.444,0.587-2.202,0.8l0,0l-0.648,0.183L17.047,27.945L17.047,27.945zM20.424,29.028c0.227-0.076,0.45-0.157,0.671-0.244l0,0l-0.152-4.083l0.479-0.307c0.717-0.466,1.37-1.024,1.95-1.658l0,0l0.386-0.423l4.026,0.862c0.121-0.202,0.238-0.409,0.351-0.62l0,0l-2.754-3.045l0.171-0.544c0.243-0.783,0.381-1.623,0.422-2.5l0,0l0.025-0.571l3.658-1.933c-0.038-0.234-0.082-0.467-0.132-0.7l0,0l-4.07-0.563l-0.219-0.527c-0.327-0.787-0.76-1.524-1.277-2.204l0,0l-0.342-0.453l1.548-3.808c-0.179-0.157-0.363-0.31-0.552-0.458l0,0l-3.455,2.169L20.649,7.15c-0.754-0.397-1.569-0.698-2.429-0.894l0,0l-0.556-0.127l-1.248-3.87c-0.121-0.006-0.239-0.009-0.354-0.009l0,0c-0.117,0-0.235,0.003-0.357,0.009l0,0l-1.239,3.845l-0.564,0.12c-0.875,0.188-1.709,0.494-2.486,0.896l0,0l-0.508,0.264L7.509,5.249c-0.188,0.148-0.372,0.301-0.55,0.458l0,0l1.507,3.708L8.112,9.869c-0.552,0.709-1.011,1.485-1.355,2.319l0,0l-0.218,0.529l-3.939,0.545c-0.05,0.233-0.094,0.466-0.131,0.7l0,0l3.531,1.867l0.022,0.575c0.037,0.929,0.192,1.82,0.459,2.653l0,0l0.175,0.548l-2.667,2.95c0.112,0.212,0.229,0.419,0.351,0.621l0,0l3.916-0.843l0.39,0.423c0.601,0.657,1.287,1.229,2.043,1.703l0,0l0.488,0.305l-0.149,4.02c0.221,0.087,0.445,0.168,0.672,0.244l0,0l2.479-3.188l0.566,0.07c0.427,0.054,0.843,0.089,1.257,0.089l0,0c0.445,0,0.894-0.039,1.353-0.104l0,0l0.571-0.08L20.424,29.028L20.424,29.028zM21.554,20.75l0.546,0.839l-3.463,2.253l-1.229-1.891l0,0c-0.447,0.109-0.917,0.173-1.406,0.173l0,0c-3.384,0-6.126-2.743-6.126-6.123l0,0c0-3.384,2.742-6.126,6.126-6.126l0,0c3.38,0,6.123,2.742,6.123,6.126l0,0c0,1.389-0.467,2.676-1.25,3.704l0,0L21.554,20.75M19.224,21.073l0.108-0.069l-0.987-1.519l0.572-0.572c0.748-0.75,1.207-1.773,1.207-2.912l0,0c-0.004-2.278-1.848-4.122-4.123-4.126l0,0c-2.28,0.004-4.122,1.846-4.126,4.126l0,0c0.004,2.275,1.848,4.119,4.126,4.123l0,0c0.509,0,0.999-0.104,1.473-0.286l0,0l0.756-0.29L19.224,21.073L19.224,21.073z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/GitHub.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/GitHub.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.GitHub();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.GitHub = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.GitHub.prototype */\n{\n\n NAME: \"draw2d.shape.icon.GitHub\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.436,15.099c-1.201-0.202-2.451-0.335-3.466-0.371l-0.179-0.006c0.041-0.09,0.072-0.151,0.082-0.16c0.022-0.018,0.04-0.094,0.042-0.168c0-0.041,0.018-0.174,0.046-0.35c0.275,0.01,0.64,0.018,1.038,0.021c1.537,0.012,3.145,0.136,4.248,0.331c0.657,0.116,0.874,0.112,0.389-0.006c-0.491-0.119-1.947-0.294-3.107-0.37c-0.779-0.053-1.896-0.073-2.554-0.062c0.019-0.114,0.041-0.241,0.064-0.371c0.093-0.503,0.124-1.009,0.126-2.016c0.002-1.562-0.082-1.992-0.591-3.025c-0.207-0.422-0.441-0.78-0.724-1.104c0.247-0.729,0.241-1.858-0.015-2.848c-0.211-0.812-0.285-0.864-1.021-0.708C22.19,4.019,21.69,4.2,21.049,4.523c-0.303,0.153-0.721,0.391-1.024,0.578c-0.79-0.278-1.607-0.462-2.479-0.561c-0.884-0.1-3.051-0.044-3.82,0.098c-0.752,0.139-1.429,0.309-2.042,0.511c-0.306-0.189-0.75-0.444-1.067-0.604C9.973,4.221,9.473,4.041,8.847,3.908c-0.734-0.157-0.81-0.104-1.02,0.708c-0.26,1.003-0.262,2.151-0.005,2.878C7.852,7.577,7.87,7.636,7.877,7.682c-1.042,1.312-1.382,2.78-1.156,4.829c0.059,0.534,0.15,1.024,0.277,1.473c-0.665-0.004-1.611,0.02-2.294,0.064c-1.162,0.077-2.618,0.25-3.109,0.369c-0.484,0.118-0.269,0.122,0.389,0.007c1.103-0.194,2.712-0.32,4.248-0.331c0.29-0.001,0.561-0.007,0.794-0.013c0.07,0.237,0.15,0.463,0.241,0.678L7.26,14.759c-1.015,0.035-2.264,0.168-3.465,0.37c-0.901,0.151-2.231,0.453-2.386,0.54c-0.163,0.091-0.03,0.071,0.668-0.106c1.273-0.322,2.928-0.569,4.978-0.741l0.229-0.02c0.44,1.022,1.118,1.802,2.076,2.41c0.586,0.373,1.525,0.756,1.998,0.816c0.13,0.016,0.508,0.094,0.84,0.172c0.333,0.078,0.984,0.195,1.446,0.262h0.011c-0.009,0.006-0.017,0.01-0.025,0.016c-0.56,0.291-0.924,0.744-1.169,1.457c-0.11,0.033-0.247,0.078-0.395,0.129c-0.529,0.18-0.735,0.217-1.271,0.221c-0.556,0.004-0.688-0.02-1.02-0.176c-0.483-0.225-0.933-0.639-1.233-1.133c-0.501-0.826-1.367-1.41-2.089-1.41c-0.617,0-0.734,0.25-0.288,0.615c0.672,0.549,1.174,1.109,1.38,1.537c0.116,0.24,0.294,0.611,0.397,0.824c0.109,0.227,0.342,0.535,0.564,0.748c0.522,0.498,1.026,0.736,1.778,0.848c0.504,0.074,0.628,0.074,1.223-0.002c0.287-0.035,0.529-0.076,0.746-0.127c0,0.244,0,0.525,0,0.855c0,1.766-0.021,2.334-0.091,2.5c-0.132,0.316-0.428,0.641-0.716,0.787c-0.287,0.146-0.376,0.307-0.255,0.455c0.067,0.08,0.196,0.094,0.629,0.066c0.822-0.051,1.403-0.355,1.699-0.891c0.095-0.172,0.117-0.518,0.147-2.318c0.032-1.953,0.046-2.141,0.173-2.42c0.077-0.166,0.188-0.346,0.25-0.395c0.104-0.086,0.111,0.084,0.111,2.42c-0.001,2.578-0.027,2.889-0.285,3.385c-0.058,0.113-0.168,0.26-0.245,0.33c-0.135,0.123-0.192,0.438-0.098,0.533c0.155,0.154,0.932-0.088,1.356-0.422c0.722-0.572,0.808-1.045,0.814-4.461l0.003-2.004l0.219,0.021l0.219,0.02l0.036,2.621c0.041,2.951,0.047,2.994,0.549,3.564c0.285,0.322,0.572,0.5,1.039,0.639c0.625,0.188,0.813-0.102,0.393-0.605c-0.457-0.547-0.479-0.756-0.454-3.994c0.017-2.076,0.017-2.076,0.151-1.955c0.282,0.256,0.336,0.676,0.336,2.623c0,2.418,0.069,2.648,0.923,3.07c0.399,0.195,0.511,0.219,1.022,0.221c0.544,0.002,0.577-0.006,0.597-0.148c0.017-0.115-0.05-0.193-0.304-0.348c-0.333-0.205-0.564-0.467-0.709-0.797c-0.055-0.127-0.092-0.959-0.117-2.672c-0.036-2.393-0.044-2.502-0.193-2.877c-0.201-0.504-0.508-0.902-0.897-1.166c-0.101-0.066-0.202-0.121-0.333-0.162c0.161-0.016,0.317-0.033,0.468-0.055c1.572-0.209,2.403-0.383,3.07-0.641c1.411-0.543,2.365-1.445,2.882-2.724c0.046-0.114,0.092-0.222,0.131-0.309l0.398,0.033c2.051,0.173,3.706,0.42,4.979,0.743c0.698,0.177,0.831,0.198,0.668,0.105C30.666,15.551,29.336,15.25,28.436,15.099zM22.422,15.068c-0.233,0.512-0.883,1.17-1.408,1.428c-0.518,0.256-1.33,0.451-2.25,0.544c-0.629,0.064-4.137,0.083-4.716,0.026c-1.917-0.188-2.991-0.557-3.783-1.296c-0.75-0.702-1.1-1.655-1.039-2.828c0.039-0.734,0.216-1.195,0.679-1.755c0.421-0.51,0.864-0.825,1.386-0.985c0.437-0.134,1.778-0.146,3.581-0.03c0.797,0.051,1.456,0.051,2.252,0c1.886-0.119,3.145-0.106,3.61,0.038c0.731,0.226,1.397,0.834,1.797,1.644c0.18,0.362,0.215,0.516,0.241,1.075C22.808,13.699,22.675,14.517,22.422,15.068zM12.912,11.762c-1.073-0.188-1.686,1.649-0.863,2.587c0.391,0.445,0.738,0.518,1.172,0.248c0.402-0.251,0.62-0.72,0.62-1.328C13.841,12.458,13.472,11.862,12.912,11.762zM19.425,11.872c-1.073-0.188-1.687,1.647-0.864,2.586c0.392,0.445,0.738,0.519,1.173,0.247c0.401-0.25,0.62-0.72,0.62-1.328C20.354,12.569,19.985,11.971,19.425,11.872zM16.539,15.484c-0.023,0.074-0.135,0.184-0.248,0.243c-0.286,0.147-0.492,0.096-0.794-0.179c-0.187-0.169-0.272-0.258-0.329-0.081c-0.053,0.164,0.28,0.493,0.537,0.594c0.236,0.094,0.405,0.097,0.661-0.01c0.254-0.106,0.476-0.391,0.476-0.576C16.842,15.303,16.595,15.311,16.539,15.484zM16.222,14.909c0.163-0.144,0.2-0.44,0.044-0.597s-0.473-0.133-0.597,0.043c-0.144,0.206-0.067,0.363,0.036,0.53C15.865,15.009,16.08,15.034,16.222,14.909z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/GitHubAlt.js\":\n/*!*************************************!*\\\n !*** ./src/shape/icon/GitHubAlt.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.GitHubAlt();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.GitHubAlt = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.GitHubAlt.prototype */\n{\n\n NAME: \"draw2d.shape.icon.GitHubAlt\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M23.356,17.485c-0.004,0.007-0.007,0.013-0.01,0.021l0.162,0.005c0.107,0.004,0.218,0.01,0.33,0.016c-0.046-0.004-0.09-0.009-0.136-0.013L23.356,17.485zM15.5,1.249C7.629,1.25,1.25,7.629,1.249,15.5C1.25,23.371,7.629,29.75,15.5,29.751c7.871-0.001,14.25-6.38,14.251-14.251C29.75,7.629,23.371,1.25,15.5,1.249zM3.771,17.093c0.849-0.092,1.833-0.148,2.791-0.156c0.262,0,0.507-0.006,0.717-0.012c0.063,0.213,0.136,0.419,0.219,0.613H7.492c-0.918,0.031-2.047,0.152-3.134,0.335c-0.138,0.023-0.288,0.051-0.441,0.08C3.857,17.67,3.81,17.383,3.771,17.093zM12.196,22.224c-0.1,0.028-0.224,0.07-0.357,0.117c-0.479,0.169-0.665,0.206-1.15,0.206c-0.502,0.015-0.621-0.019-0.921-0.17C9.33,22.171,8.923,21.8,8.651,21.353c-0.453-0.746-1.236-1.275-1.889-1.275c-0.559,0-0.664,0.227-0.261,0.557c0.608,0.496,1.062,0.998,1.248,1.385c0.105,0.215,0.266,0.546,0.358,0.744c0.099,0.206,0.311,0.474,0.511,0.676c0.472,0.441,0.928,0.659,1.608,0.772c0.455,0.06,0.567,0.06,1.105-0.004c0.26-0.03,0.479-0.067,0.675-0.118v0.771c0,1.049-0.008,1.628-0.031,1.945c-1.852-0.576-3.507-1.595-4.848-2.934c-1.576-1.578-2.706-3.592-3.195-5.848c0.952-0.176,2.073-0.32,3.373-0.43l0.208-0.018c0.398,0.925,1.011,1.631,1.876,2.179c0.53,0.337,1.38,0.685,1.808,0.733c0.118,0.02,0.46,0.09,0.76,0.16c0.302,0.066,0.89,0.172,1.309,0.236h0.009c-0.007,0.018-0.014,0.02-0.022,0.02C12.747,21.169,12.418,21.579,12.196,22.224zM13.732,27.207c-0.168-0.025-0.335-0.056-0.5-0.087c0.024-0.286,0.038-0.785,0.054-1.723c0.028-1.767,0.041-1.94,0.156-2.189c0.069-0.15,0.17-0.32,0.226-0.357c0.095-0.078,0.101,0.076,0.101,2.188C13.769,26.143,13.763,26.786,13.732,27.207zM15.5,27.339c-0.148,0-0.296-0.006-0.443-0.012c0.086-0.562,0.104-1.428,0.106-2.871l0.003-1.82l0.197,0.019l0.199,0.02l0.032,2.365c0.017,1.21,0.027,1.878,0.075,2.296C15.613,27.335,15.558,27.339,15.5,27.339zM17.006,27.24c-0.039-0.485-0.037-1.243-0.027-2.553c0.019-1.866,0.019-1.866,0.131-1.769c0.246,0.246,0.305,0.623,0.305,2.373c0,0.928,0.011,1.497,0.082,1.876C17.334,27.196,17.17,27.22,17.006,27.24zM27.089,17.927c-0.155-0.029-0.307-0.057-0.446-0.08c-0.96-0.162-1.953-0.275-2.804-0.32c1.25,0.108,2.327,0.248,3.246,0.418c-0.479,2.289-1.618,4.33-3.214,5.928c-1.402,1.4-3.15,2.448-5.106,3.008c-0.034-0.335-0.058-1.048-0.066-2.212c-0.03-2.167-0.039-2.263-0.17-2.602c-0.181-0.458-0.47-0.811-0.811-1.055c-0.094-0.057-0.181-0.103-0.301-0.14c0.145-0.02,0.282-0.021,0.427-0.057c1.418-0.188,2.168-0.357,2.772-0.584c1.263-0.492,2.129-1.301,2.606-2.468c0.044-0.103,0.088-0.2,0.123-0.279l0.011,0.001c0.032-0.07,0.057-0.118,0.064-0.125c0.02-0.017,0.036-0.085,0.038-0.151c0-0.037,0.017-0.157,0.041-0.317c0.249,0.01,0.58,0.018,0.938,0.02c0.959,0.008,1.945,0.064,2.794,0.156C27.194,17.356,27.148,17.644,27.089,17.927zM25.823,16.87c-0.697-0.049-1.715-0.064-2.311-0.057c0.02-0.103,0.037-0.218,0.059-0.336c0.083-0.454,0.111-0.912,0.113-1.823c0.002-1.413-0.074-1.801-0.534-2.735c-0.188-0.381-0.399-0.705-0.655-0.998c0.225-0.659,0.207-1.68-0.02-2.575c-0.19-0.734-0.258-0.781-0.924-0.64c-0.563,0.12-1.016,0.283-1.598,0.576c-0.274,0.138-0.652,0.354-0.923,0.522c-0.715-0.251-1.451-0.419-2.242-0.508c-0.799-0.092-2.759-0.04-3.454,0.089c-0.681,0.126-1.293,0.28-1.848,0.462c-0.276-0.171-0.678-0.4-0.964-0.547C9.944,8.008,9.491,7.846,8.925,7.727c-0.664-0.144-0.732-0.095-0.922,0.64c-0.235,0.907-0.237,1.945-0.004,2.603c0.026,0.075,0.043,0.129,0.05,0.17c-0.942,1.187-1.25,2.515-1.046,4.367c0.053,0.482,0.136,0.926,0.251,1.333c-0.602-0.004-1.457,0.018-2.074,0.057c-0.454,0.031-0.957,0.076-1.418,0.129c-0.063-0.5-0.101-1.008-0.101-1.524c0-3.273,1.323-6.225,3.468-8.372c2.146-2.144,5.099-3.467,8.371-3.467c3.273,0,6.226,1.323,8.371,3.467c2.145,2.147,3.468,5.099,3.468,8.372c0,0.508-0.036,1.008-0.098,1.499C26.78,16.946,26.276,16.899,25.823,16.87z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Glasses.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Glasses.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Glasses();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Glasses = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Glasses.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Glasses\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M14.075,9.531c0,0-2.705-1.438-5.158-1.438c-2.453,0-4.862,0.593-4.862,0.593L3.971,9.869c0,0,0.19,0.19,0.528,0.53c0.338,0.336,0.486,3.741,1.838,5.094c1.353,1.354,4.82,1.396,5.963,0.676c1.14-0.718,2.241-3.466,2.241-4.693c0-0.38,0-0.676,0-0.676c0.274-0.275,1.615-0.303,1.917,0c0,0,0,0.296,0,0.676c0,1.227,1.101,3.975,2.241,4.693c1.144,0.72,4.611,0.678,5.963-0.676c1.355-1.353,1.501-4.757,1.839-5.094c0.338-0.34,0.528-0.53,0.528-0.53l-0.084-1.183c0,0-2.408-0.593-4.862-0.593c-2.453,0-5.158,1.438-5.158,1.438C16.319,9.292,14.737,9.32,14.075,9.531z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Globe.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Globe.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Globe();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Globe = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Globe.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Globe\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM19.158,23.269c-0.079,0.064-0.183,0.13-0.105,0.207c0.078,0.078-0.09,0.131-0.09,0.17s0.104,0.246,0.052,0.336c-0.052,0.092-0.091,0.223-0.13,0.301c-0.039,0.077-0.131,0.155-0.104,0.272c0.025,0.116-0.104,0.077-0.104,0.194c0,0.116,0.116,0.065,0.09,0.208c-0.025,0.144-0.09,0.183-0.09,0.285c0,0.104,0.064,0.247,0.064,0.286s-0.064,0.17-0.155,0.272c-0.092,0.104-0.155,0.17-0.144,0.233c0.014,0.065,0.104,0.144,0.091,0.184c-0.013,0.037-0.129,0.168-0.116,0.259c0.014,0.09,0.129,0.053,0.155,0.116c0.026,0.065-0.155,0.118-0.078,0.183c0.078,0.064,0.183,0.051,0.156,0.208c-0.019,0.112,0.064,0.163,0.126,0.198c-0.891,0.221-1.818,0.352-2.777,0.352C9.639,27.533,4.466,22.36,4.466,16c0-2.073,0.557-4.015,1.518-5.697c0.079-0.042,0.137-0.069,0.171-0.062c0.065,0.013,0.079,0.104,0.183,0.13c0.104,0.026,0.195-0.078,0.26-0.117c0.064-0.039,0.116-0.195,0.051-0.182c-0.065,0.013-0.234,0-0.234,0s0.183-0.104,0.183-0.169s0.025-0.169,0.129-0.208C6.83,9.655,6.83,9.681,6.765,9.837C6.7,9.993,6.896,9.928,6.973,9.863s0.13-0.013,0.272-0.104c0.143-0.091,0.143-0.143,0.221-0.143c0.078,0,0.221,0.143,0.299,0.091c0.077-0.052,0.299,0.065,0.429,0.065c0.129,0,0.545,0.169,0.624,0.169c0.078,0,0.312,0.09,0.325,0.259c0.013,0.169,0.09,0.156,0.168,0.156s0.26,0.065,0.26,0.13c0,0.065-0.052,0.325,0.078,0.39c0.129,0.064,0.247,0.169,0.299,0.143c0.052-0.026,0-0.233-0.064-0.26c-0.065-0.026-0.027-0.117-0.052-0.169c-0.026-0.051,0.078-0.051,0.117,0.039c0.039,0.091,0.143,0.26,0.208,0.26c0.064,0,0.208,0.156,0.168,0.247c-0.039,0.091,0.039,0.221,0.156,0.221c0.116,0,0.26,0.182,0.312,0.195c0.052,0.013,0.117,0.078,0.117,0.117c0,0.04,0.065,0.26,0.065,0.351c0,0.09-0.04,0.454-0.053,0.597s0.104,0.39,0.234,0.52c0.129,0.13,0.246,0.377,0.324,0.429c0.079,0.052,0.13,0.195,0.247,0.182c0.117-0.013,0.195,0.078,0.299,0.26c0.104,0.182,0.208,0.48,0.286,0.506c0.078,0.026,0.208,0.117,0.142,0.182c-0.064,0.064-0.168,0.208-0.051,0.208c0.117,0,0.156-0.065,0.247,0.053c0.09,0.116,0.208,0.181,0.194,0.26c-0.013,0.077,0.104,0.103,0.156,0.116c0.052,0.013,0.169,0.247,0.286,0.143c0.117-0.104-0.155-0.259-0.234-0.326c-0.078-0.064,0-0.207-0.182-0.35c-0.182-0.143-0.156-0.247-0.286-0.351c-0.13-0.104-0.233-0.195-0.104-0.286c0.13-0.091,0.143,0.091,0.195,0.208c0.052,0.116,0.324,0.351,0.441,0.454c0.117,0.104,0.326,0.468,0.39,0.468s0.247,0.208,0.247,0.208s0.103,0.168,0.064,0.22c-0.039,0.052,0.053,0.247,0.144,0.299c0.09,0.052,0.455,0.22,0.507,0.247c0.052,0.027,0.155,0.221,0.299,0.221c0.142,0,0.247,0.014,0.286,0.053c0.039,0.038,0.155,0.194,0.234,0.104c0.078-0.092,0.09-0.131,0.208-0.131c0.117,0,0.168,0.091,0.233,0.156c0.065,0.065,0.247,0.235,0.338,0.222c0.091-0.013,0.208,0.104,0.273,0.064s0.169,0.025,0.22,0.052c0.054,0.026,0.234,0.118,0.222,0.272c-0.013,0.157,0.103,0.195,0.182,0.234c0.078,0.039,0.182,0.13,0.248,0.195c0.064,0.063,0.206,0.077,0.246,0.116c0.039,0.039,0.065,0.117,0.182,0.052c0.116-0.064,0.092-0.181,0.092-0.181s0.129-0.026,0.194,0.026c0.064,0.05,0.104,0.22,0.144,0.246c0.038,0.026,0.115,0.221,0.063,0.362c-0.051,0.145-0.038,0.286-0.091,0.286c-0.052,0-0.116,0.17-0.195,0.209c-0.076,0.039-0.285,0.221-0.272,0.286c0.013,0.063,0.131,0.258,0.104,0.35c-0.025,0.091-0.194,0.195-0.154,0.338c0.038,0.144,0.312,0.183,0.323,0.312c0.014,0.131,0.209,0.417,0.235,0.546c0.025,0.13,0.246,0.272,0.246,0.453c0,0.184,0.312,0.3,0.377,0.312c0.063,0.013,0.182,0.131,0.272,0.17s0.169,0.116,0.233,0.221s0.053,0.261,0.053,0.299c0,0.039-0.039,0.44-0.078,0.674C19.145,23.021,19.235,23.203,19.158,23.269zM10.766,11.188c0.039,0.013,0.117,0.091,0.156,0.091c0.04,0,0.234,0.156,0.286,0.208c0.053,0.052,0.053,0.195-0.013,0.208s-0.104-0.143-0.117-0.208c-0.013-0.065-0.143-0.065-0.208-0.104C10.805,11.344,10.66,11.152,10.766,11.188zM27.51,16.41c-0.144,0.182-0.13,0.272-0.195,0.286c-0.064,0.013,0.065,0.065,0.09,0.194c0.022,0.112-0.065,0.224,0.063,0.327c-0.486,4.619-3.71,8.434-8.016,9.787c-0.007-0.011-0.019-0.025-0.021-0.034c-0.027-0.078-0.027-0.233,0.064-0.285c0.091-0.053,0.312-0.233,0.363-0.272c0.052-0.04,0.13-0.221,0.091-0.247c-0.038-0.026-0.232,0-0.26-0.039c-0.026-0.039-0.026-0.092,0.104-0.182c0.13-0.091,0.195-0.222,0.247-0.26c0.052-0.039,0.155-0.117,0.195-0.209c0.038-0.09-0.041-0.039-0.118-0.039s-0.117-0.142-0.117-0.207s0.195,0.026,0.339,0.052c0.143,0.024,0.077-0.065,0.064-0.142c-0.013-0.078,0.026-0.209,0.105-0.17c0.076,0.039,0.479-0.013,0.531-0.026c0.052-0.013,0.194-0.246,0.246-0.312c0.053-0.065,0.064-0.129,0-0.168c-0.065-0.04-0.143-0.184-0.168-0.221c-0.026-0.041-0.039-0.274-0.013-0.34c0.025-0.063,0,0.377,0.181,0.43c0.183,0.052,0.286,0.078,0.455-0.078c0.169-0.155,0.298-0.26,0.312-0.363c0.013-0.104,0.052-0.209,0.117-0.246c0.065-0.039,0.104,0.103,0.182-0.065c0.078-0.17,0.156-0.157,0.234-0.299c0.077-0.144-0.13-0.325,0.024-0.43c0.157-0.103,0.43-0.233,0.43-0.233s0.078-0.039,0.234-0.078c0.155-0.038,0.324-0.014,0.376-0.09c0.052-0.079,0.104-0.247,0.182-0.338c0.079-0.092,0.169-0.234,0.13-0.299c-0.039-0.065,0.104-0.352,0.091-0.429c-0.013-0.078-0.13-0.261,0.065-0.416s0.402-0.391,0.416-0.454c0.012-0.065,0.169-0.338,0.154-0.469c-0.012-0.129-0.154-0.285-0.245-0.325c-0.092-0.037-0.286-0.05-0.364-0.154s-0.299-0.208-0.377-0.182c-0.077,0.026-0.208,0.051-0.312-0.015c-0.104-0.063-0.272-0.143-0.337-0.194c-0.066-0.051-0.234-0.09-0.312-0.09s-0.065-0.053-0.182,0.103c-0.117,0.157,0,0.209-0.208,0.182c-0.209-0.024,0.025-0.038,0.144-0.194c0.115-0.155-0.014-0.247-0.144-0.207c-0.13,0.039-0.039,0.117-0.247,0.156c-0.207,0.038-0.207-0.092-0.077-0.117c0.13-0.026,0.363-0.143,0.363-0.194c0-0.053-0.026-0.196-0.13-0.196s-0.078-0.129-0.233-0.297c-0.156-0.17-0.351-0.274-0.508-0.249c-0.154,0.026-0.272,0.065-0.35-0.076c-0.078-0.144-0.169-0.17-0.222-0.247c-0.051-0.078-0.182,0-0.221-0.039s-0.039-0.039-0.039-0.039s-0.169,0.039-0.077-0.078c0.09-0.117,0.129-0.338,0.09-0.325c-0.038,0.013-0.104,0.196-0.168,0.183c-0.064-0.013-0.014-0.04-0.144-0.117c-0.13-0.078-0.337-0.013-0.337,0.052c0,0.065-0.065,0.117-0.065,0.117s-0.039-0.038-0.078-0.117c-0.039-0.078-0.221-0.091-0.312-0.013c-0.09,0.078-0.142-0.196-0.207-0.196s-0.194,0.065-0.26,0.184c-0.064,0.116-0.038,0.285-0.092,0.272c-0.05-0.013-0.063-0.233-0.05-0.312c0.012-0.079,0.155-0.208,0.05-0.234c-0.103-0.026-0.259,0.13-0.323,0.143c-0.065,0.013-0.195,0.104-0.273,0.209c-0.077,0.103-0.116,0.168-0.195,0.207c-0.077,0.039-0.193,0-0.167-0.039c0.025-0.039-0.222-0.181-0.261-0.13c-0.04,0.052-0.155,0.091-0.272,0.144c-0.117,0.052-0.222-0.065-0.247-0.117s-0.079-0.064-0.091-0.234c-0.013-0.168,0.027-0.351,0.065-0.454c0.038-0.104-0.195-0.312-0.286-0.3c-0.091,0.015-0.182,0.105-0.272,0.091c-0.092-0.012-0.052-0.038-0.195-0.038c-0.143,0-0.026-0.025,0-0.143c0.025-0.116-0.052-0.273,0.092-0.377c0.142-0.104,0.091-0.351,0-0.363c-0.092-0.014-0.261,0.039-0.377,0.026c-0.116-0.014-0.208,0.091-0.169,0.207c0.039,0.117-0.065,0.195-0.104,0.183c-0.039-0.013-0.09-0.078-0.234,0.026c-0.142,0.103-0.194,0.064-0.337-0.052c-0.143-0.118-0.299-0.234-0.325-0.416c-0.026-0.182-0.04-0.364,0.013-0.468c0.051-0.104,0.051-0.285-0.026-0.312c-0.078-0.025,0.09-0.155,0.181-0.181c0.092-0.026,0.234-0.143,0.26-0.195c0.026-0.052,0.156-0.04,0.298-0.04c0.143,0,0.169,0,0.312,0.078c0.143,0.078,0.169-0.039,0.169-0.078c0-0.039,0.052-0.117,0.208-0.104c0.156,0.013,0.376-0.052,0.416-0.013s0.116,0.195,0.194,0.143c0.079-0.051,0.104-0.143,0.131,0.014c0.025,0.155,0.09,0.39,0.208,0.429c0.116,0.039,0.052,0.194,0.168,0.207c0.115,0.013,0.17-0.246,0.131-0.337c-0.04-0.09-0.118-0.363-0.183-0.428c-0.064-0.065-0.064-0.234,0.064-0.286c0.13-0.052,0.442-0.312,0.532-0.389c0.092-0.079,0.338-0.144,0.261-0.248c-0.078-0.104-0.104-0.168-0.104-0.247s0.078-0.052,0.117,0s0.194-0.078,0.155-0.143c-0.038-0.064-0.026-0.155,0.065-0.143c0.091,0.013,0.116-0.065,0.078-0.117c-0.039-0.052,0.091-0.117,0.182-0.091c0.092,0.026,0.325-0.013,0.364-0.065c0.038-0.052-0.078-0.104-0.078-0.208c0-0.104,0.155-0.195,0.247-0.208c0.091-0.013,0.207,0,0.221-0.039c0.012-0.039,0.143-0.143,0.155-0.052c0.014,0.091,0,0.247,0.104,0.247c0.104,0,0.232-0.117,0.272-0.129c0.038-0.013,0.286-0.065,0.338-0.078c0.052-0.013,0.363-0.039,0.325-0.13c-0.039-0.09-0.078-0.181-0.118-0.22c-0.039-0.039-0.077,0.013-0.13,0.078c-0.051,0.065-0.143,0.065-0.168,0.013c-0.026-0.051,0.012-0.207-0.078-0.156c-0.092,0.052-0.104,0.104-0.157,0.078c-0.052-0.026-0.103-0.117-0.103-0.117s0.129-0.064,0.038-0.182c-0.09-0.117-0.221-0.091-0.35-0.025c-0.13,0.064-0.118,0.051-0.273,0.09s-0.234,0.078-0.234,0.078s0.209-0.129,0.299-0.208c0.091-0.078,0.209-0.117,0.286-0.195c0.078-0.078,0.285,0.039,0.285,0.039s0.105-0.104,0.105-0.039s-0.027,0.234,0.051,0.234c0.079,0,0.299-0.104,0.21-0.131c-0.093-0.026,0.129,0,0.219-0.065c0.092-0.065,0.194-0.065,0.247-0.09c0.052-0.026,0.092-0.143,0.182-0.143c0.092,0,0.13,0.117,0,0.195s-0.143,0.273-0.208,0.325c-0.064,0.052-0.026,0.117,0.078,0.104c0.104-0.013,0.194,0.013,0.286-0.013s0.143,0.026,0.168,0.065c0.026,0.039,0.104-0.039,0.104-0.039s0.169-0.039,0.221,0.026c0.053,0.064,0.092-0.039,0.053-0.104c-0.039-0.064-0.092-0.129-0.13-0.208c-0.039-0.078-0.091-0.104-0.194-0.078c-0.104,0.026-0.13-0.026-0.195-0.064c-0.065-0.04-0.118,0.052-0.065-0.04c0.053-0.09,0.078-0.117,0.117-0.195c0.039-0.078,0.209-0.221,0.039-0.259c-0.169-0.04-0.222-0.065-0.247-0.143c-0.026-0.078-0.221-0.221-0.272-0.221c-0.053,0-0.233,0-0.247-0.065c-0.013-0.065-0.143-0.208-0.208-0.273c-0.064-0.065-0.312-0.351-0.351-0.377c-0.039-0.026-0.091-0.013-0.208,0.143c-0.116,0.157-0.22,0.183-0.312,0.144c-0.091-0.039-0.104-0.026-0.193-0.13c-0.093-0.104,0.09-0.117,0.051-0.182c-0.04-0.064-0.247-0.091-0.377-0.104c-0.13-0.013-0.221-0.156-0.416-0.169c-0.194-0.013-0.428,0.026-0.493,0.026c-0.064,0-0.064,0.091-0.09,0.234c-0.027,0.143,0.09,0.182-0.027,0.208c-0.116,0.026-0.169,0.039-0.052,0.091c0.117,0.052,0.273,0.26,0.273,0.26s0,0.117-0.092,0.182c-0.09,0.065-0.182,0.13-0.233,0.053c-0.053-0.079-0.195-0.065-0.155,0.013c0.038,0.078,0.116,0.117,0.116,0.195c0,0.077,0.117,0.272,0.039,0.337c-0.078,0.065-0.168,0.014-0.233,0.026s-0.131-0.104-0.078-0.13c0.051-0.026-0.014-0.221-0.014-0.221s-0.155,0.221-0.143,0.104c0.014-0.117-0.064-0.13-0.064-0.221c0-0.091-0.079-0.13-0.194-0.104c-0.118,0.026-0.26-0.04-0.482-0.079c-0.22-0.039-0.311-0.064-0.493-0.156c-0.182-0.091-0.247-0.026-0.338-0.013c-0.091,0.013-0.052-0.182-0.169-0.207c-0.116-0.027-0.181,0.025-0.207-0.144c-0.026-0.168,0.039-0.208,0.324-0.39c0.286-0.182,0.247-0.26,0.468-0.286c0.22-0.026,0.325,0.026,0.325-0.039s0.052-0.325,0.052-0.195S16.95,9.109,16.832,9.2c-0.116,0.091-0.052,0.104,0.04,0.104c0.091,0,0.259-0.091,0.259-0.091s0.208-0.091,0.26-0.013c0.053,0.078,0.053,0.156,0.144,0.156s0.285-0.104,0.116-0.195c-0.168-0.091-0.272-0.078-0.376-0.182s-0.078-0.065-0.195-0.039c-0.116,0.026-0.116-0.039-0.156-0.039s-0.104,0.026-0.13-0.026c-0.025-0.052,0.014-0.065,0.145-0.065c0.129,0,0.285,0.039,0.285,0.039s0.155-0.052,0.194-0.065c0.039-0.013,0.247-0.039,0.208-0.155c-0.04-0.117-0.169-0.117-0.208-0.156s0.078-0.09,0.143-0.117c0.065-0.026,0.247,0,0.247,0s0.117,0.013,0.117-0.039S17.897,8.2,17.976,8.239s0,0.156,0.117,0.13c0.116-0.026,0.143,0,0.207,0.039c0.065,0.039-0.013,0.195-0.077,0.221c-0.065,0.025-0.169,0.077-0.026,0.09c0.144,0.014,0.246,0.014,0.246,0.014s0.092-0.091,0.131-0.169c0.038-0.078,0.104-0.026,0.155,0c0.052,0.025,0.247,0.065,0.065,0.117c-0.183,0.052-0.221,0.117-0.26,0.182c-0.038,0.065-0.053,0.104-0.221,0.065c-0.17-0.039-0.26-0.026-0.299,0.039c-0.039,0.064-0.013,0.273,0.053,0.247c0.063-0.026,0.129-0.026,0.207-0.052c0.078-0.026,0.39,0.026,0.467,0.013c0.078-0.013,0.209,0.13,0.248,0.104c0.039-0.026,0.117,0.052,0.194,0.104c0.078,0.052,0.052-0.117,0.194-0.013c0.144,0.104,0.065,0.104,0.144,0.104c0.076,0,0.246,0.013,0.246,0.013s0.014-0.129,0.144-0.104c0.13,0.026,0.245,0.169,0.232,0.064c-0.012-0.103,0.013-0.181-0.09-0.259c-0.104-0.078-0.272-0.13-0.299-0.169c-0.026-0.039-0.052-0.091-0.013-0.117c0.039-0.025,0.221,0.013,0.324,0.079c0.104,0.065,0.195,0.13,0.273,0.078c0.077-0.052,0.17-0.078,0.208-0.117c0.038-0.04,0.13-0.156,0.13-0.156s-0.391-0.051-0.441-0.117c-0.053-0.065-0.235-0.156-0.287-0.156s-0.194,0.091-0.246-0.039s-0.052-0.286-0.105-0.299c-0.05-0.013-0.597-0.091-0.674-0.13c-0.078-0.039-0.39-0.13-0.507-0.195s-0.286-0.156-0.389-0.156c-0.104,0-0.533,0.052-0.611,0.039c-0.078-0.013-0.312,0.026-0.403,0.039c-0.091,0.013,0.117,0.182-0.077,0.221c-0.195,0.039-0.169,0.065-0.13-0.13c0.038-0.195-0.131-0.247-0.299-0.169c-0.169,0.078-0.442,0.13-0.377,0.221c0.065,0.091-0.012,0.157,0.117,0.247c0.13,0.091,0.183,0.117,0.35,0.104c0.17-0.013,0.339,0.025,0.339,0.025s0,0.157-0.064,0.182c-0.065,0.026-0.169,0.026-0.196,0.104c-0.025,0.078-0.155,0.117-0.155,0.078s0.065-0.169-0.026-0.234c-0.09-0.065-0.117-0.078-0.221-0.013c-0.104,0.065-0.116,0.091-0.169-0.013C16.053,8.291,15.897,8.2,15.897,8.2s-0.104-0.129-0.182-0.194c-0.077-0.065-0.22-0.052-0.234,0.013c-0.013,0.064,0.026,0.129,0.078,0.247c0.052,0.117,0.104,0.337,0.013,0.351c-0.091,0.013-0.104,0.026-0.195,0.052c-0.091,0.026-0.13-0.039-0.13-0.143s-0.04-0.195-0.013-0.234c0.026-0.039-0.104,0.027-0.234,0c-0.13-0.025-0.233,0.052-0.104,0.092c0.13,0.039,0.157,0.194,0.039,0.233c-0.117,0.039-0.559,0-0.702,0s-0.35,0.039-0.39-0.039c-0.039-0.078,0.118-0.129,0.208-0.129c0.091,0,0.363,0.012,0.467-0.13c0.104-0.143-0.13-0.169-0.233-0.169c-0.104,0-0.183-0.039-0.299-0.155c-0.118-0.117,0.078-0.195,0.052-0.247c-0.026-0.052-0.156-0.014-0.272-0.014c-0.117,0-0.299-0.09-0.299,0.014c0,0.104,0.143,0.402,0.052,0.337c-0.091-0.064-0.078-0.156-0.143-0.234c-0.065-0.078-0.168-0.065-0.299-0.052c-0.129,0.013-0.35,0.052-0.415,0.039c-0.064-0.013-0.013-0.013-0.156-0.078c-0.142-0.065-0.208-0.052-0.312-0.117C12.091,7.576,12.182,7.551,12,7.538c-0.181-0.013-0.168,0.09-0.35,0.065c-0.182-0.026-0.234,0.013-0.416,0c-0.182-0.013-0.272-0.026-0.299,0.065c-0.025,0.091-0.078,0.247-0.156,0.247c-0.077,0-0.169,0.091,0.078,0.104c0.247,0.013,0.105,0.129,0.325,0.117c0.221-0.013,0.416-0.013,0.468-0.117c0.052-0.104,0.091-0.104,0.117-0.065c0.025,0.039,0.22,0.272,0.22,0.272s0.131,0.104,0.183,0.13c0.051,0.026-0.052,0.143-0.156,0.078c-0.104-0.065-0.299-0.051-0.377-0.116c-0.078-0.065-0.429-0.065-0.52-0.052c-0.09,0.013-0.247-0.039-0.299-0.039c-0.051,0-0.221,0.13-0.221,0.13S10.532,8.252,10.494,8.2c-0.039-0.052-0.104,0.052-0.156,0.065c-0.052,0.013-0.208-0.104-0.364-0.052C9.818,8.265,9.87,8.317,9.649,8.304s-0.272-0.052-0.35-0.039C9.22,8.278,9.22,8.278,9.22,8.278S9.233,8.33,9.143,8.382C9.052,8.434,8.986,8.499,8.921,8.421C8.857,8.343,8.818,8.343,8.779,8.33c-0.04-0.013-0.118-0.078-0.286-0.04C8.324,8.33,8.064,8.239,8.013,8.239c-0.04,0-0.313-0.015-0.491-0.033c2.109-2.292,5.124-3.74,8.478-3.74c2.128,0,4.117,0.589,5.83,1.598c-0.117,0.072-0.319,0.06-0.388,0.023c-0.078-0.043-0.158-0.078-0.475-0.061c-0.317,0.018-0.665,0.122-0.595,0.226c0.072,0.104-0.142,0.165-0.197,0.113c-0.055-0.052-0.309,0.06-0.293,0.165c0.016,0.104-0.039,0.225-0.175,0.199c-0.134-0.027-0.229,0.06-0.237,0.146c-0.007,0.087-0.309,0.147-0.332,0.147c-0.024,0-0.412-0.008-0.27,0.095c0.097,0.069,0.15,0.027,0.27,0.052c0.119,0.026,0.214,0.217,0.277,0.243c0.062,0.026,0.15,0,0.189-0.052c0.04-0.052,0.095-0.234,0.095-0.234s0,0.173,0.097,0.208c0.095,0.035,0.331-0.026,0.395-0.017c0.064,0.008,0.437,0.061,0.538,0.112c0.104,0.052,0.356,0.087,0.428,0.199c0.071,0.113,0.08,0.503,0.119,0.546c0.04,0.043,0.174-0.139,0.205-0.182c0.031-0.044,0.198-0.018,0.254,0.042c0.056,0.061,0.182,0.208,0.175,0.269C21.9,8.365,21.877,8.459,21.83,8.425c-0.048-0.034-0.127-0.025-0.096-0.095c0.032-0.069,0.048-0.217-0.015-0.217c-0.064,0-0.119,0-0.119,0s-0.12-0.035-0.199,0.095s-0.015,0.26,0.04,0.26s0.184,0,0.184,0.034c0,0.035-0.136,0.139-0.128,0.2c0.009,0.061,0.11,0.268,0.144,0.312c0.031,0.043,0.197,0.086,0.244,0.096c0.049,0.008-0.111,0.017-0.07,0.077c0.04,0.061,0.102,0.208,0.189,0.243c0.087,0.035,0.333,0.19,0.363,0.26c0.032,0.069,0.222-0.052,0.262-0.061c0.04-0.008,0.032,0.182,0.143,0.191c0.11,0.008,0.15-0.018,0.245-0.096s0.072-0.182,0.079-0.26c0.009-0.078,0-0.138,0.104-0.113c0.104,0.026,0.158-0.018,0.15-0.104c-0.008-0.087-0.095-0.191,0.07-0.217c0.167-0.026,0.254-0.138,0.357-0.138c0.103,0,0.389,0.043,0.419,0c0.032-0.043,0.167-0.243,0.254-0.251c0.067-0.007,0.224-0.021,0.385-0.042c1.582,1.885,2.561,4.284,2.673,6.905c-0.118,0.159-0.012,0.305,0.021,0.408c0.001,0.03,0.005,0.058,0.005,0.088c0,0.136-0.016,0.269-0.021,0.404C27.512,16.406,27.512,16.408,27.51,16.41zM17.794,12.084c-0.064,0.013-0.169-0.052-0.169-0.143s-0.091,0.169-0.04,0.247c0.053,0.078-0.104,0.169-0.155,0.169s-0.091-0.116-0.078-0.233c0.014-0.117-0.077-0.221-0.221-0.208c-0.143,0.014-0.208,0.13-0.259,0.169c-0.053,0.039-0.053,0.259-0.04,0.312s0.013,0.235-0.116,0.221c-0.118-0.013-0.092-0.233-0.079-0.312c0.014-0.078-0.039-0.273,0.014-0.376c0.053-0.104,0.207-0.143,0.312-0.156s0.324,0.065,0.363,0.052c0.04-0.014,0.222-0.014,0.312,0C17.729,11.837,17.858,12.071,17.794,12.084zM18.027,12.123c0.04,0.026,0.311-0.039,0.364,0.026c0.051,0.065-0.054,0.078-0.183,0.13c-0.129,0.052-0.169,0.039-0.221,0.104s-0.221,0.09-0.299,0.168c-0.078,0.079-0.217,0.125-0.246,0.065c-0.04-0.078,0.013-0.039,0.025-0.078c0.013-0.039,0.245-0.129,0.245-0.129S17.988,12.097,18.027,12.123zM16.988,11.668c-0.038,0.013-0.182-0.026-0.3-0.026c-0.116,0-0.091-0.078-0.143-0.064c-0.051,0.013-0.168,0.039-0.247,0.078c-0.078,0.039-0.208,0.03-0.208-0.04c0-0.104,0.052-0.078,0.221-0.143c0.169-0.065,0.352-0.247,0.429-0.169c0.078,0.078,0.221,0.169,0.312,0.182C17.144,11.5,17.026,11.655,16.988,11.668zM15.659,7.637c-0.079,0.026-0.347,0.139-0.321,0.199c0.01,0.023,0.078,0.069,0.19,0.052c0.113-0.018,0.276-0.035,0.355-0.043c0.078-0.009,0.095-0.139,0.009-0.147C15.805,7.689,15.736,7.611,15.659,7.637zM14.698,7.741c-0.061,0.026-0.243-0.043-0.338,0.018c-0.061,0.038-0.026,0.164,0.07,0.172c0.095,0.009,0.259-0.06,0.276-0.008c0.018,0.052,0.078,0.286,0.234,0.208c0.156-0.078,0.147-0.147,0.19-0.156c0.043-0.009-0.008-0.199-0.078-0.243C14.983,7.689,14.758,7.715,14.698,7.741zM14.385,7.005c0.017,0.044-0.008,0.078,0.113,0.095c0.121,0.018,0.173,0.035,0.243,0.035c0.069,0,0.042-0.113-0.018-0.19c-0.061-0.078-0.043-0.069-0.199-0.113c-0.156-0.043-0.312-0.043-0.416-0.035c-0.104,0.009-0.217-0.017-0.243,0.104c-0.013,0.062,0.07,0.112,0.174,0.112S14.368,6.962,14.385,7.005zM14.611,7.481c0.043,0.095,0.043,0.051,0.165,0.061C14.896,7.551,14.991,7.421,15,7.378c0.009-0.044-0.061-0.13-0.225-0.113c-0.165,0.017-0.667-0.026-0.736,0.034c-0.066,0.058,0,0.233-0.026,0.251c-0.026,0.017,0.009,0.095,0.077,0.078c0.069-0.017,0.104-0.182,0.157-0.182C14.299,7.447,14.568,7.386,14.611,7.481zM12.982,7.126c0.052,0.043,0.183,0.008,0.173-0.035c-0.008-0.043,0.053-0.217-0.051-0.225C13,6.858,12.854,6.962,12.697,7.014c-0.101,0.033-0.078,0.13-0.009,0.13S12.931,7.083,12.982,7.126zM13.72,7.282c-0.087,0.043-0.114,0.069-0.191,0.052c-0.078-0.017-0.078-0.156-0.217-0.13c-0.138,0.026-0.164,0.104-0.207,0.139s-0.139,0.061-0.173,0.043c-0.034-0.017-0.234-0.129-0.234-0.129s-0.416-0.018-0.433-0.07c-0.017-0.052-0.086-0.138-0.277-0.121s-0.52,0.13-0.572,0.13c-0.052,0,0.062,0.104-0.009,0.104c-0.069,0-0.155-0.008-0.181,0.069c-0.018,0.053,0.078,0.052,0.189,0.052c0.112,0,0.295,0,0.347-0.026c0.052-0.026,0.312-0.087,0.303-0.009c-0.009,0.079,0.104,0.199,0.164,0.182c0.061-0.017,0.183-0.13,0.243-0.086c0.061,0.043,0.07,0.146,0.13,0.173c0.061,0.025,0.226,0.025,0.304,0c0.077-0.027,0.294-0.027,0.389-0.009c0.095,0.018,0.373,0.069,0.399,0.018c0.026-0.053,0.104-0.061,0.112-0.113s0.051-0.216,0.051-0.216S13.806,7.239,13.72,7.282zM18.105,16.239c-0.119,0.021-0.091,0.252,0.052,0.21C18.3,16.407,18.223,16.217,18.105,16.239zM19.235,15.929c-0.104-0.026-0.221,0-0.299,0.013c-0.078,0.013-0.299,0.208-0.299,0.208s0.143,0.026,0.233,0.026c0.092,0,0.144,0.051,0.221,0.09c0.078,0.04,0.221-0.052,0.272-0.052c0.053,0,0.118,0.156,0.131-0.013C19.508,16.032,19.339,15.955,19.235,15.929zM15.616,7.507c-0.043-0.104-0.259-0.139-0.304-0.035C15.274,7.563,15.659,7.611,15.616,7.507zM18.093,15.292c0.143-0.026,0.064-0.144-0.053-0.13C17.922,15.175,17.949,15.318,18.093,15.292zM19.82,16.095c-0.119,0.022-0.092,0.253,0.051,0.211C20.015,16.264,19.937,16.074,19.82,16.095zM18.247,15.708c-0.09,0.013-0.285-0.09-0.389-0.182c-0.104-0.091-0.299-0.091-0.377-0.091c-0.077,0-0.39,0.091-0.39,0.091c-0.013,0.13,0.117,0.091,0.273,0.091s0.429-0.026,0.479,0.039c0.053,0.064,0.286,0.168,0.352,0.221c0.064,0.052,0.272,0.065,0.285,0.013S18.338,15.695,18.247,15.708zM16.698,7.412c-0.13-0.009-0.295-0.009-0.399,0c-0.104,0.008-0.182-0.069-0.26-0.113c-0.077-0.043-0.251-0.182-0.354-0.199c-0.104-0.017-0.086-0.017-0.303-0.069c-0.11-0.027-0.294-0.061-0.294-0.086c0-0.026-0.052,0.121,0.043,0.165c0.095,0.043,0.251,0.121,0.363,0.164c0.114,0.043,0.329,0.052,0.399,0.139c0.069,0.086,0.303,0.156,0.303,0.156l0.277,0.026c0,0,0.191-0.043,0.39-0.026c0.199,0.017,0.493,0.043,0.659,0.035c0.163-0.008,0.189-0.061,0.208-0.095c0.016-0.035-0.304-0.104-0.383-0.095C17.271,7.42,16.827,7.42,16.698,7.412zM17.182,9.404c-0.034,0.039,0.157,0.095,0.191,0.043C17.407,9.396,17.271,9.309,17.182,9.404zM17.764,9.585c0.086-0.035,0.043-0.139-0.079-0.104C17.547,9.521,17.676,9.62,17.764,9.585z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/GlobeAlt.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/GlobeAlt.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.GlobeAlt();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.GlobeAlt = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.GlobeAlt.prototype */\n{\n\n NAME: \"draw2d.shape.icon.GlobeAlt\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM27.436,17.39c0.001,0.002,0.004,0.002,0.005,0.004c-0.022,0.187-0.054,0.37-0.085,0.554c-0.015-0.012-0.034-0.025-0.047-0.036c-0.103-0.09-0.254-0.128-0.318-0.115c-0.157,0.032,0.229,0.305,0.267,0.342c0.009,0.009,0.031,0.03,0.062,0.058c-1.029,5.312-5.709,9.338-11.319,9.338c-4.123,0-7.736-2.18-9.776-5.441c0.123-0.016,0.24-0.016,0.28-0.076c0.051-0.077,0.102-0.241,0.178-0.331c0.077-0.089,0.165-0.229,0.127-0.292c-0.039-0.064,0.101-0.344,0.088-0.419c-0.013-0.076-0.127-0.256,0.064-0.407s0.394-0.382,0.407-0.444c0.012-0.063,0.166-0.331,0.152-0.458c-0.012-0.127-0.152-0.28-0.24-0.318c-0.09-0.037-0.28-0.05-0.356-0.151c-0.077-0.103-0.292-0.203-0.368-0.178c-0.076,0.025-0.204,0.05-0.305-0.015c-0.102-0.062-0.267-0.139-0.33-0.189c-0.065-0.05-0.229-0.088-0.305-0.088c-0.077,0-0.065-0.052-0.178,0.101c-0.114,0.153,0,0.204-0.204,0.177c-0.204-0.023,0.025-0.036,0.141-0.189c0.113-0.152-0.013-0.242-0.141-0.203c-0.126,0.038-0.038,0.115-0.241,0.153c-0.203,0.036-0.203-0.09-0.076-0.115s0.355-0.139,0.355-0.19c0-0.051-0.025-0.191-0.127-0.191s-0.077-0.126-0.229-0.291c-0.092-0.101-0.196-0.164-0.299-0.204c-0.09-0.579-0.15-1.167-0.15-1.771c0-2.844,1.039-5.446,2.751-7.458c0.024-0.02,0.048-0.034,0.069-0.036c0.084-0.009,0.31-0.025,0.51-0.059c0.202-0.034,0.418-0.161,0.489-0.153c0.069,0.008,0.241,0.008,0.186-0.042C8.417,8.2,8.339,8.082,8.223,8.082S8.215,7.896,8.246,7.896c0.03,0,0.186,0.025,0.178,0.11C8.417,8.091,8.471,8.2,8.625,8.167c0.156-0.034,0.132-0.162,0.102-0.195C8.695,7.938,8.672,7.853,8.642,7.794c-0.031-0.06-0.023-0.136,0.14-0.153C8.944,7.625,9.168,7.708,9.16,7.573s0-0.28,0.046-0.356C9.253,7.142,9.354,7.09,9.299,7.065C9.246,7.04,9.176,7.099,9.121,6.972c-0.054-0.127,0.047-0.22,0.108-0.271c0.02-0.015,0.067-0.06,0.124-0.112C11.234,5.257,13.524,4.466,16,4.466c3.213,0,6.122,1.323,8.214,3.45c-0.008,0.022-0.01,0.052-0.031,0.056c-0.077,0.013-0.166,0.063-0.179-0.051c-0.013-0.114-0.013-0.331-0.102-0.203c-0.089,0.127-0.127,0.127-0.127,0.191c0,0.063,0.076,0.127,0.051,0.241C23.8,8.264,23.8,8.341,23.84,8.341c0.036,0,0.126-0.115,0.239-0.141c0.116-0.025,0.319-0.088,0.332,0.026c0.013,0.115,0.139,0.152,0.013,0.203c-0.128,0.051-0.267,0.026-0.293-0.051c-0.025-0.077-0.114-0.077-0.203-0.013c-0.088,0.063-0.279,0.292-0.279,0.292s-0.306,0.139-0.343,0.114c-0.04-0.025,0.101-0.165,0.203-0.228c0.102-0.064,0.178-0.204,0.14-0.242c-0.038-0.038-0.088-0.279-0.063-0.343c0.025-0.063,0.139-0.152,0.013-0.216c-0.127-0.063-0.217-0.14-0.318-0.178s-0.216,0.152-0.305,0.204c-0.089,0.051-0.076,0.114-0.191,0.127c-0.114,0.013-0.189,0.165,0,0.254c0.191,0.089,0.255,0.152,0.204,0.204c-0.051,0.051-0.267-0.025-0.267-0.025s-0.165-0.076-0.268-0.076c-0.101,0-0.229-0.063-0.33-0.076c-0.102-0.013-0.306-0.013-0.355,0.038c-0.051,0.051-0.179,0.203-0.28,0.152c-0.101-0.051-0.101-0.102-0.241-0.051c-0.14,0.051-0.279-0.038-0.355,0.038c-0.077,0.076-0.013,0.076-0.255,0c-0.241-0.076-0.189,0.051-0.419,0.089s-0.368-0.038-0.432,0.038c-0.064,0.077-0.153,0.217-0.19,0.127c-0.038-0.088,0.126-0.241,0.062-0.292c-0.062-0.051-0.33-0.025-0.367,0.013c-0.039,0.038-0.014,0.178,0.011,0.229c0.026,0.05,0.064,0.254-0.011,0.216c-0.077-0.038-0.064-0.166-0.141-0.152c-0.076,0.013-0.165,0.051-0.203,0.077c-0.038,0.025-0.191,0.025-0.229,0.076c-0.037,0.051,0.014,0.191-0.051,0.203c-0.063,0.013-0.114,0.064-0.254-0.025c-0.14-0.089-0.14-0.038-0.178-0.012c-0.038,0.025-0.216,0.127-0.229,0.012c-0.013-0.114,0.025-0.152-0.089-0.229c-0.115-0.076-0.026-0.076,0.127-0.025c0.152,0.05,0.343,0.075,0.622-0.013c0.28-0.089,0.395-0.127,0.28-0.178c-0.115-0.05-0.229-0.101-0.406-0.127c-0.179-0.025-0.42-0.025-0.7-0.127c-0.279-0.102-0.343-0.14-0.457-0.165c-0.115-0.026-0.813-0.14-1.132-0.089c-0.317,0.051-1.193,0.28-1.245,0.318s-0.128,0.19-0.292,0.318c-0.165,0.127-0.47,0.419-0.712,0.47c-0.241,0.051-0.521,0.254-0.521,0.305c0,0.051,0.101,0.242,0.076,0.28c-0.025,0.038,0.05,0.229,0.191,0.28c0.139,0.05,0.381,0.038,0.393-0.039c0.014-0.076,0.204-0.241,0.217-0.127c0.013,0.115,0.14,0.292,0.114,0.368c-0.025,0.077,0,0.153,0.09,0.14c0.088-0.012,0.559-0.114,0.559-0.114s0.153-0.064,0.127-0.166c-0.026-0.101,0.166-0.241,0.203-0.279c0.038-0.038,0.178-0.191,0.014-0.241c-0.167-0.051-0.293-0.064-0.115-0.216s0.292,0,0.521-0.229c0.229-0.229-0.051-0.292,0.191-0.305c0.241-0.013,0.496-0.025,0.444,0.051c-0.05,0.076-0.342,0.242-0.508,0.318c-0.166,0.077-0.14,0.216-0.076,0.292c0.063,0.076,0.09,0.254,0.204,0.229c0.113-0.025,0.254-0.114,0.38-0.101c0.128,0.012,0.383-0.013,0.42-0.013c0.039,0,0.216,0.178,0.114,0.203c-0.101,0.025-0.229,0.013-0.445,0.025c-0.215,0.013-0.456,0.013-0.456,0.051c0,0.039,0.292,0.127,0.19,0.191c-0.102,0.063-0.203-0.013-0.331-0.026c-0.127-0.012-0.203,0.166-0.241,0.267c-0.039,0.102,0.063,0.28-0.127,0.216c-0.191-0.063-0.331-0.063-0.381-0.038c-0.051,0.025-0.203,0.076-0.331,0.114c-0.126,0.038-0.076-0.063-0.242-0.063c-0.164,0-0.164,0-0.164,0l-0.103,0.013c0,0-0.101-0.063-0.114-0.165c-0.013-0.102,0.05-0.216-0.013-0.241c-0.064-0.026-0.292,0.012-0.33,0.088c-0.038,0.076-0.077,0.216-0.026,0.28c0.052,0.063,0.204,0.19,0.064,0.152c-0.14-0.038-0.317-0.051-0.419,0.026c-0.101,0.076-0.279,0.241-0.279,0.241s-0.318,0.025-0.318,0.102c0,0.077,0,0.178-0.114,0.191c-0.115,0.013-0.268,0.05-0.42,0.076c-0.153,0.025-0.139,0.088-0.317,0.102s-0.204,0.089-0.038,0.114c0.165,0.025,0.418,0.127,0.431,0.241c0.014,0.114-0.013,0.242-0.076,0.356c-0.043,0.079-0.305,0.026-0.458,0.026c-0.152,0-0.456-0.051-0.584,0c-0.127,0.051-0.102,0.305-0.064,0.419c0.039,0.114-0.012,0.178-0.063,0.216c-0.051,0.038-0.065,0.152,0,0.204c0.063,0.051,0.114,0.165,0.166,0.178c0.051,0.013,0.215-0.038,0.279,0.025c0.064,0.064,0.127,0.216,0.165,0.178c0.039-0.038,0.089-0.203,0.153-0.166c0.064,0.039,0.216-0.012,0.331-0.025s0.177-0.14,0.292-0.204c0.114-0.063,0.05-0.063,0.013-0.14c-0.038-0.076,0.114-0.165,0.204-0.254c0.088-0.089,0.253-0.013,0.292-0.115c0.038-0.102,0.051-0.279,0.151-0.267c0.103,0.013,0.243,0.076,0.331,0.076c0.089,0,0.279-0.14,0.332-0.165c0.05-0.025,0.241-0.013,0.267,0.102c0.025,0.114,0.241,0.254,0.292,0.279c0.051,0.025,0.381,0.127,0.433,0.165c0.05,0.038,0.126,0.153,0.152,0.254c0.025,0.102,0.114,0.102,0.128,0.013c0.012-0.089-0.065-0.254,0.025-0.242c0.088,0.013,0.191-0.026,0.191-0.026s-0.243-0.165-0.331-0.203c-0.088-0.038-0.255-0.114-0.331-0.241c-0.076-0.127-0.267-0.153-0.254-0.279c0.013-0.127,0.191-0.051,0.292,0.051c0.102,0.102,0.356,0.241,0.445,0.33c0.088,0.089,0.229,0.127,0.267,0.242c0.039,0.114,0.152,0.241,0.19,0.292c0.038,0.051,0.165,0.331,0.204,0.394c0.038,0.063,0.165-0.012,0.229-0.063c0.063-0.051,0.179-0.076,0.191-0.178c0.013-0.102-0.153-0.178-0.203-0.216c-0.051-0.038,0.127-0.076,0.191-0.127c0.063-0.05,0.177-0.14,0.228-0.063c0.051,0.077,0.026,0.381,0.051,0.432c0.025,0.051,0.279,0.127,0.331,0.191c0.05,0.063,0.267,0.089,0.304,0.051c0.039-0.038,0.242,0.026,0.294,0.038c0.049,0.013,0.202-0.025,0.304-0.05c0.103-0.025,0.204-0.102,0.191,0.063c-0.013,0.165-0.051,0.419-0.179,0.546c-0.127,0.127-0.076,0.191-0.202,0.191c-0.06,0-0.113,0-0.156,0.021c-0.041-0.065-0.098-0.117-0.175-0.097c-0.152,0.038-0.344,0.038-0.47,0.19c-0.128,0.153-0.178,0.165-0.204,0.114c-0.025-0.051,0.369-0.267,0.317-0.331c-0.05-0.063-0.355-0.038-0.521-0.038c-0.166,0-0.305-0.102-0.433-0.127c-0.126-0.025-0.292,0.127-0.418,0.254c-0.128,0.127-0.216,0.038-0.331,0.038c-0.115,0-0.331-0.165-0.331-0.165s-0.216-0.089-0.305-0.089c-0.088,0-0.267-0.165-0.318-0.165c-0.05,0-0.19-0.115-0.088-0.166c0.101-0.05,0.202,0.051,0.101-0.229c-0.101-0.279-0.33-0.216-0.419-0.178c-0.088,0.039-0.724,0.025-0.775,0.025c-0.051,0-0.419,0.127-0.533,0.178c-0.116,0.051-0.318,0.115-0.369,0.14c-0.051,0.025-0.318-0.051-0.433,0.013c-0.151,0.084-0.291,0.216-0.33,0.216c-0.038,0-0.153,0.089-0.229,0.28c-0.077,0.19,0.013,0.355-0.128,0.419c-0.139,0.063-0.394,0.204-0.495,0.305c-0.102,0.101-0.229,0.458-0.355,0.623c-0.127,0.165,0,0.317,0.025,0.419c0.025,0.101,0.114,0.292-0.025,0.471c-0.14,0.178-0.127,0.266-0.191,0.279c-0.063,0.013,0.063,0.063,0.088,0.19c0.025,0.128-0.114,0.255,0.128,0.369c0.241,0.113,0.355,0.217,0.418,0.367c0.064,0.153,0.382,0.407,0.382,0.407s0.229,0.205,0.344,0.293c0.114,0.089,0.152,0.038,0.177-0.05c0.025-0.09,0.178-0.104,0.355-0.104c0.178,0,0.305,0.04,0.483,0.014c0.178-0.025,0.356-0.141,0.42-0.166c0.063-0.025,0.279-0.164,0.443-0.063c0.166,0.103,0.141,0.241,0.23,0.332c0.088,0.088,0.24,0.037,0.355-0.051c0.114-0.09,0.064-0.052,0.203,0.025c0.14,0.075,0.204,0.151,0.077,0.267c-0.128,0.113-0.051,0.293-0.128,0.47c-0.076,0.178-0.063,0.203,0.077,0.278c0.14,0.076,0.394,0.548,0.47,0.638c0.077,0.088-0.025,0.342,0.064,0.495c0.089,0.151,0.178,0.254,0.077,0.331c-0.103,0.075-0.28,0.216-0.292,0.47s0.051,0.431,0.102,0.521s0.177,0.331,0.241,0.419c0.064,0.089,0.14,0.305,0.152,0.445c0.013,0.14-0.024,0.306,0.039,0.381c0.064,0.076,0.102,0.191,0.216,0.292c0.115,0.103,0.152,0.318,0.152,0.318s0.039,0.089,0.051,0.229c0.012,0.14,0.025,0.228,0.152,0.292c0.126,0.063,0.215,0.076,0.28,0.013c0.063-0.063,0.381-0.077,0.546-0.063c0.165,0.013,0.355-0.075,0.521-0.19s0.407-0.419,0.496-0.508c0.089-0.09,0.292-0.255,0.268-0.356c-0.025-0.101-0.077-0.203,0.024-0.254c0.102-0.052,0.344-0.152,0.356-0.229c0.013-0.077-0.09-0.395-0.115-0.457c-0.024-0.064,0.064-0.18,0.165-0.306c0.103-0.128,0.421-0.216,0.471-0.267c0.051-0.053,0.191-0.267,0.217-0.433c0.024-0.167-0.051-0.369,0-0.457c0.05-0.09,0.013-0.165-0.103-0.268c-0.114-0.102-0.089-0.407-0.127-0.457c-0.037-0.051-0.013-0.319,0.063-0.345c0.076-0.023,0.242-0.279,0.344-0.393c0.102-0.114,0.394-0.47,0.534-0.496c0.139-0.025,0.355-0.229,0.368-0.343c0.013-0.115,0.38-0.547,0.394-0.635c0.013-0.09,0.166-0.42,0.102-0.497c-0.062-0.076-0.559,0.115-0.622,0.141c-0.064,0.025-0.241,0.127-0.446,0.113c-0.202-0.013-0.114-0.177-0.127-0.254c-0.012-0.076-0.228-0.368-0.279-0.381c-0.051-0.012-0.203-0.166-0.267-0.317c-0.063-0.153-0.152-0.343-0.254-0.458c-0.102-0.114-0.165-0.38-0.268-0.559c-0.101-0.178-0.189-0.407-0.279-0.572c-0.021-0.041-0.045-0.079-0.067-0.117c0.118-0.029,0.289-0.082,0.31-0.009c0.024,0.088,0.165,0.279,0.19,0.419s0.165,0.089,0.178,0.216c0.014,0.128,0.14,0.433,0.19,0.47c0.052,0.038,0.28,0.242,0.318,0.318c0.038,0.076,0.089,0.178,0.127,0.369c0.038,0.19,0.076,0.444,0.179,0.482c0.102,0.038,0.444-0.064,0.508-0.102s0.482-0.242,0.635-0.255c0.153-0.012,0.179-0.115,0.368-0.152c0.191-0.038,0.331-0.177,0.458-0.28c0.127-0.101,0.28-0.355,0.33-0.444c0.052-0.088,0.179-0.152,0.115-0.253c-0.063-0.103-0.331-0.254-0.433-0.268c-0.102-0.012-0.089-0.178-0.152-0.178s-0.051,0.088-0.178,0.153c-0.127,0.063-0.255,0.19-0.344,0.165s0.026-0.089-0.113-0.203s-0.192-0.14-0.192-0.228c0-0.089-0.278-0.255-0.304-0.382c-0.026-0.127,0.19-0.305,0.254-0.19c0.063,0.114,0.115,0.292,0.279,0.368c0.165,0.076,0.318,0.204,0.395,0.229c0.076,0.025,0.267-0.14,0.33-0.114c0.063,0.024,0.191,0.253,0.306,0.292c0.113,0.038,0.495,0.051,0.559,0.051s0.33,0.013,0.381-0.063c0.051-0.076,0.089-0.076,0.153-0.076c0.062,0,0.177,0.229,0.267,0.254c0.089,0.025,0.254,0.013,0.241,0.179c-0.012,0.164,0.076,0.305,0.165,0.317c0.09,0.012,0.293-0.191,0.293-0.191s0,0.318-0.012,0.433c-0.014,0.113,0.139,0.534,0.139,0.534s0.19,0.393,0.241,0.482s0.267,0.355,0.267,0.47c0,0.115,0.025,0.293,0.103,0.293c0.076,0,0.152-0.203,0.24-0.331c0.091-0.126,0.116-0.305,0.153-0.432c0.038-0.127,0.038-0.356,0.038-0.444c0-0.09,0.075-0.166,0.255-0.242c0.178-0.076,0.304-0.292,0.456-0.407c0.153-0.115,0.141-0.305,0.446-0.305c0.305,0,0.278,0,0.355-0.077c0.076-0.076,0.151-0.127,0.19,0.013c0.038,0.14,0.254,0.343,0.292,0.394c0.038,0.052,0.114,0.191,0.103,0.344c-0.013,0.152,0.012,0.33,0.075,0.33s0.191-0.216,0.191-0.216s0.279-0.189,0.267,0.013c-0.014,0.203,0.025,0.419,0.025,0.545c0,0.053,0.042,0.135,0.088,0.21c-0.005,0.059-0.004,0.119-0.009,0.178C27.388,17.153,27.387,17.327,27.436,17.39zM20.382,12.064c0.076,0.05,0.102,0.127,0.152,0.203c0.052,0.076,0.14,0.05,0.203,0.114c0.063,0.064-0.178,0.14-0.075,0.216c0.101,0.077,0.151,0.381,0.165,0.458c0.013,0.076-0.279,0.114-0.369,0.102c-0.089-0.013-0.354-0.102-0.445-0.127c-0.089-0.026-0.139-0.343-0.025-0.331c0.116,0.013,0.141-0.025,0.267-0.139c0.128-0.115-0.189-0.166-0.278-0.191c-0.089-0.025-0.268-0.305-0.331-0.394c-0.062-0.089-0.014-0.228,0.141-0.331c0.076-0.051,0.279,0.063,0.381,0c0.101-0.063,0.203-0.14,0.241-0.165c0.039-0.025,0.293,0.038,0.33,0.114c0.039,0.076,0.191,0.191,0.141,0.229c-0.052,0.038-0.281,0.076-0.356,0c-0.075-0.077-0.255,0.012-0.268,0.152C20.242,12.115,20.307,12.013,20.382,12.064zM16.875,12.28c-0.077-0.025,0.025-0.178,0.102-0.229c0.075-0.051,0.164-0.178,0.241-0.305c0.076-0.127,0.178-0.14,0.241-0.127c0.063,0.013,0.203,0.241,0.241,0.318c0.038,0.076,0.165-0.026,0.217-0.051c0.05-0.025,0.127-0.102,0.14-0.165s0.127-0.102,0.254-0.102s0.013,0.102-0.076,0.127c-0.09,0.025-0.038,0.077,0.113,0.127c0.153,0.051,0.293,0.191,0.459,0.279c0.165,0.089,0.19,0.267,0.088,0.292c-0.101,0.025-0.406,0.051-0.521,0.038c-0.114-0.013-0.254-0.127-0.419-0.153c-0.165-0.025-0.369-0.013-0.433,0.077s-0.292,0.05-0.395,0.05c-0.102,0-0.228,0.127-0.253,0.077C16.875,12.534,16.951,12.306,16.875,12.28zM17.307,9.458c0.063-0.178,0.419,0.038,0.355,0.127C17.599,9.675,17.264,9.579,17.307,9.458zM17.802,18.584c0.063,0.102-0.14,0.431-0.254,0.407c-0.113-0.027-0.076-0.318-0.038-0.382C17.548,18.545,17.769,18.529,17.802,18.584zM13.189,12.674c0.025-0.051-0.039-0.153-0.127-0.013C13.032,12.71,13.164,12.725,13.189,12.674zM20.813,8.035c0.141,0.076,0.339,0.107,0.433,0.013c0.076-0.076,0.013-0.204-0.05-0.216c-0.064-0.013-0.104-0.115,0.062-0.203c0.165-0.089,0.343-0.204,0.534-0.229c0.19-0.025,0.622-0.038,0.774,0c0.152,0.039,0.382-0.166,0.445-0.254s-0.203-0.152-0.279-0.051c-0.077,0.102-0.444,0.076-0.521,0.051c-0.076-0.025-0.686,0.102-0.812,0.102c-0.128,0-0.179,0.152-0.356,0.229c-0.179,0.076-0.42,0.191-0.509,0.229c-0.088,0.038-0.177,0.19-0.101,0.216C20.509,7.947,20.674,7.959,20.813,8.035zM14.142,12.674c0.064-0.089-0.051-0.217-0.114-0.217c-0.12,0-0.178,0.191-0.103,0.254C14.002,12.776,14.078,12.763,14.142,12.674zM14.714,13.017c0.064,0.025,0.114,0.102,0.165,0.114c0.052,0.013,0.217,0,0.167-0.127s-0.167-0.127-0.204-0.127c-0.038,0-0.203-0.038-0.267,0C14.528,12.905,14.65,12.992,14.714,13.017zM11.308,10.958c0.101,0.013,0.217-0.063,0.305-0.101c0.088-0.038,0.216-0.114,0.216-0.229c0-0.114-0.025-0.216-0.077-0.267c-0.051-0.051-0.14-0.064-0.216-0.051c-0.115,0.02-0.127,0.14-0.203,0.14c-0.076,0-0.165,0.025-0.14,0.114s0.077,0.152,0,0.19C11.117,10.793,11.205,10.946,11.308,10.958zM11.931,10.412c0.127,0.051,0.394,0.102,0.292,0.153c-0.102,0.051-0.28,0.19-0.305,0.267s0.216,0.153,0.216,0.153s-0.077,0.089-0.013,0.114c0.063,0.025,0.102-0.089,0.203-0.089c0.101,0,0.304,0.063,0.406,0.063c0.103,0,0.267-0.14,0.254-0.229c-0.013-0.089-0.14-0.229-0.254-0.28c-0.113-0.051-0.241-0.28-0.317-0.331c-0.076-0.051,0.076-0.178-0.013-0.267c-0.09-0.089-0.153-0.076-0.255-0.14c-0.102-0.063-0.191,0.013-0.254,0.089c-0.063,0.076-0.14-0.013-0.217,0.012c-0.102,0.035-0.063,0.166-0.012,0.229C11.714,10.221,11.804,10.361,11.931,10.412zM24.729,17.198c-0.083,0.037-0.153,0.47,0,0.521c0.152,0.052,0.241-0.202,0.191-0.267C24.868,17.39,24.843,17.147,24.729,17.198zM20.114,20.464c-0.159-0.045-0.177,0.166-0.304,0.306c-0.128,0.141-0.267,0.254-0.317,0.241c-0.052-0.013-0.331,0.089-0.242,0.279c0.089,0.191,0.076,0.382-0.013,0.472c-0.089,0.088,0.076,0.342,0.052,0.482c-0.026,0.139,0.037,0.229,0.215,0.229s0.242-0.064,0.318-0.229c0.076-0.166,0.088-0.331,0.164-0.47c0.077-0.141,0.141-0.434,0.179-0.51c0.038-0.075,0.114-0.316,0.102-0.457C20.254,20.669,20.204,20.489,20.114,20.464zM10.391,8.802c-0.069-0.06-0.229-0.102-0.306-0.11c-0.076-0.008-0.152,0.06-0.321,0.06c-0.168,0-0.279,0.067-0.347,0C9.349,8.684,9.068,8.65,9.042,8.692C9.008,8.749,8.941,8.751,9.008,8.87c0.069,0.118,0.12,0.186,0.179,0.178s0.262-0.017,0.288,0.051C9.5,9.167,9.569,9.226,9.712,9.184c0.145-0.042,0.263-0.068,0.296-0.119c0.033-0.051,0.263-0.059,0.263-0.059S10.458,8.861,10.391,8.802z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/GlobeAlt2.js\":\n/*!*************************************!*\\\n !*** ./src/shape/icon/GlobeAlt2.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.GlobeAlt2();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.GlobeAlt2 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.GlobeAlt2.prototype */\n{\n\n NAME: \"draw2d.shape.icon.GlobeAlt2\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM8.251,7.48c0.122,0.055,0.255,0.104,0.28,0.137C8.57,7.668,8.621,7.823,8.557,7.861C8.492,7.9,8.39,7.887,8.376,7.771c-0.013-0.115-0.026-0.128-0.18-0.18c-0.022-0.007-0.035-0.01-0.051-0.015C8.18,7.544,8.216,7.512,8.251,7.48zM7.733,7.974c0.031,0.087,0.113,0.125,0,0.17C7.673,8.168,7.611,8.172,7.559,8.165C7.617,8.102,7.672,8.035,7.733,7.974zM16,27.533C9.639,27.533,4.466,22.36,4.466,16c0-0.085,0.011-0.168,0.013-0.254c0.004-0.003,0.008-0.006,0.012-0.009c0.129-0.102,0.283-0.359,0.334-0.45c0.052-0.089,0.181-0.154,0.116-0.256c-0.059-0.096-0.292-0.23-0.407-0.261c0.01-0.099,0.032-0.195,0.045-0.294c0.063,0.077,0.137,0.17,0.208,0.194c0.115,0.038,0.501,0.052,0.566,0.052c0.063,0,0.334,0.014,0.386-0.064c0.051-0.077,0.09-0.077,0.154-0.077c0.064,0,0.18,0.231,0.271,0.257c0.089,0.026,0.257,0.013,0.244,0.181c-0.012,0.166,0.077,0.309,0.167,0.321c0.09,0.013,0.296-0.194,0.296-0.194s0,0.322-0.012,0.438C6.846,15.698,7,16.124,7,16.124s0.193,0.397,0.244,0.488c0.052,0.09,0.27,0.36,0.27,0.476c0,0.117,0.026,0.297,0.104,0.297s0.155-0.206,0.244-0.335c0.091-0.128,0.117-0.31,0.155-0.438c0.039-0.129,0.039-0.36,0.039-0.45c0-0.091,0.076-0.168,0.257-0.245c0.181-0.077,0.309-0.296,0.463-0.412c0.155-0.116,0.142-0.309,0.452-0.309c0.308,0,0.282,0,0.36-0.078c0.077-0.077,0.154-0.128,0.192,0.013c0.039,0.142,0.257,0.347,0.296,0.399c0.039,0.052,0.116,0.193,0.104,0.348c-0.013,0.153,0.012,0.334,0.077,0.334c0.064,0,0.193-0.219,0.193-0.219s0.283-0.192,0.27,0.014c-0.014,0.205,0.025,0.425,0.025,0.552c0,0.13,0.232,0.438,0.232,0.362c0-0.079,0.103-0.296,0.103-0.413c0-0.114,0.064-0.063,0.231,0.051c0.167,0.116,0.283,0.349,0.283,0.349s0.168,0.154,0.193,0.219c0.026,0.064,0.206-0.025,0.244-0.104c0.039-0.076,0.065-0.115,0.167-0.141c0.104-0.026,0.231-0.026,0.271-0.168c0.039-0.142,0.154-0.308,0-0.502c-0.154-0.193-0.232-0.321-0.347-0.412c-0.117-0.09-0.206-0.322-0.206-0.322s0.244-0.218,0.321-0.296c0.079-0.077,0.193-0.025,0.207,0.064c0.013,0.091-0.115,0.168-0.141,0.361c-0.026,0.192,0.154,0.257,0.206,0.192c0.051-0.065,0.18-0.219,0.18-0.257c0-0.039-0.089-0.026-0.102-0.167c-0.013-0.142,0.166-0.245,0.23-0.207c0.066,0.039,0.477-0.051,0.67-0.154s0.308-0.322,0.425-0.412c0.116-0.089,0.515-0.386,0.489-0.527c-0.026-0.142,0.012-0.334-0.09-0.515c-0.103-0.18-0.232-0.295-0.283-0.373c-0.051-0.077,0.219-0.09,0.347-0.206c0.129-0.116,0-0.219-0.064-0.206c-0.064,0.013-0.232,0.052-0.296,0.039c-0.064-0.013-0.103-0.077-0.206-0.155c-0.102-0.077,0.026-0.192,0.091-0.179c0.064,0.013,0.23-0.129,0.308-0.193c0.077-0.064,0.193-0.115,0.154-0.051c-0.038,0.064-0.128,0.296-0.026,0.309c0.104,0.013,0.348-0.193,0.388-0.18c0.038,0.013,0.102,0.18,0.064,0.257c-0.039,0.077-0.039,0.206,0.013,0.193c0.051-0.013,0.154-0.129,0.18-0.09c0.027,0.039,0.154,0.116,0.09,0.257c-0.063,0.142-0.193,0.193-0.039,0.284c0.154,0.089,0.206,0.012,0.322-0.052c0.115-0.064,0.193-0.347,0.128-0.438c-0.064-0.09-0.218-0.27-0.218-0.334c0-0.064,0.257-0.064,0.257-0.167s0.09-0.18,0.18-0.219c0.091-0.039,0.206-0.206,0.244-0.154c0.039,0.052,0.271,0.116,0.334,0.039c0.064-0.077,0.4-0.36,0.605-0.515c0.206-0.154,0.283-0.334,0.336-0.515c0.051-0.18,0.128-0.296,0.102-0.437v0c0.077,0.18,0.09,0.309,0.077,0.45c-0.013,0.142,0,0.438,0.026,0.476c0.025,0.039,0.129,0.128,0.192,0.103c0.064-0.025-0.025-0.283-0.025-0.334c0-0.052,0.09-0.129,0.142-0.142c0.052-0.013,0-0.231-0.065-0.322c-0.063-0.09-0.154-0.142-0.102-0.154c0.051-0.013,0.115-0.116,0.077-0.142c-0.039-0.025-0.014-0.116-0.103-0.09c-0.065,0.019-0.241-0.015-0.235,0.095c-0.037-0.11-0.116-0.183-0.216-0.172c-0.116,0.013-0.181,0.077-0.296,0.077s-0.025-0.18-0.077-0.18c-0.051,0-0.168,0.167-0.231,0.077c-0.064-0.09,0.18-0.206,0.373-0.27c0.192-0.064,0.514-0.438,0.644-0.451c0.128-0.013,0.45,0.026,0.733,0.013c0.283-0.013,0.373-0.129,0.463-0.064s0.283,0.142,0.399,0.129c0.116-0.014,0.064,0,0.244-0.129c0.18-0.129,0.348-0.193,0.438-0.296c0.09-0.103,0.335-0.18,0.348-0.077c0.014,0.103-0.026,0.206,0.077,0.206s0.258-0.103,0.386-0.154c0.129-0.051,0.231-0.116,0.231-0.116s-0.527,0.36-0.655,0.438c-0.129,0.077-0.438,0.129-0.567,0.283c-0.128,0.155-0.205,0.206-0.192,0.374c0.014,0.167,0.231,0.386,0.128,0.54c-0.103,0.154-0.141,0.373-0.141,0.373s0.154-0.219,0.373-0.36s0.348-0.334,0.425-0.412s0.309-0.091,0.309-0.181s0.064-0.206,0.104-0.309c0.038-0.103-0.077-0.078,0-0.206c0.076-0.129,0.064-0.232,0.45-0.232s0.257,0.026,0.566,0.013c0.309-0.013,0.424-0.167,0.72-0.245c0.296-0.077,0.527-0.128,0.618-0.089c0.09,0.038,0.232,0.012,0.141-0.078c-0.089-0.09-0.295-0.219-0.193-0.245c0.104-0.026,0.207-0.039,0.246-0.142c0.039-0.103-0.142-0.283-0.039-0.386c0.104-0.103-0.077-0.231-0.207-0.257c-0.128-0.025-0.63,0.026-0.731-0.025c-0.104-0.052-0.271-0.116-0.322-0.078c-0.052,0.039-0.168,0.245-0.168,0.245s-0.09,0.025-0.168-0.09c-0.076-0.116-0.5-0.103-0.629-0.103s-0.271,0.025-0.413,0.039c-0.141,0.013-0.219,0.052-0.322-0.039c-0.102-0.09-0.243-0.129-0.296-0.167c-0.051-0.039-0.334-0.039-0.553-0.012c-0.218,0.025-0.438,0.025-0.438,0.025s-0.104-0.039-0.257-0.129c-0.154-0.09-0.309-0.154-0.361-0.154c-0.051,0-0.449,0.064-0.539,0c-0.091-0.064-0.181-0.103-0.245-0.103s-0.115-0.103-0.038-0.103s0.437-0.103,0.437-0.103s-0.103-0.142-0.231-0.142c-0.128,0-0.359-0.064-0.424-0.064s-0.014,0.064-0.142,0.039c-0.13-0.026-0.258-0.078-0.335-0.026c-0.076,0.051-0.258,0.128-0.064,0.18c0.193,0.052,0.373,0,0.425,0.078c0.052,0.077,0,0.115,0,0.167s-0.103,0.193-0.167,0.219c-0.064,0.025-0.143-0.039-0.27,0.025c-0.129,0.064-0.451,0.013-0.49,0.052c-0.038,0.039-0.115-0.103-0.18-0.077c-0.064,0.025-0.232,0.193-0.322,0.18c-0.089-0.013-0.206-0.103-0.206-0.206s-0.038-0.232-0.077-0.258c-0.038-0.025-0.322-0.039-0.425-0.025c-0.103,0.013-0.424,0.038-0.477,0.09c-0.052,0.052-0.193,0.09-0.283,0.09s-0.167-0.09-0.36-0.116c-0.192-0.026-0.617-0.039-0.669-0.026s-0.218-0.025-0.155-0.077c0.065-0.051,0.257-0.219,0.143-0.295c-0.117-0.078-0.375-0.078-0.489-0.09c-0.117-0.013-0.232-0.039-0.413-0.013c-0.181,0.026-0.219,0.116-0.296,0.039c-0.077-0.077,0.193,0.039-0.077-0.077c-0.27-0.116-0.399-0.103-0.477-0.064c-0.077,0.039,0.013,0.025-0.192,0.103c-0.206,0.078-0.322,0.116-0.374,0.129c-0.051,0.012-0.372-0.065-0.411-0.091c-0.038-0.025-0.181,0.013-0.309,0.064S9.895,7.025,9.767,7C9.638,6.973,9.432,6.973,9.303,7.025C9.174,7.076,9.084,7.076,8.956,7.166c-0.13,0.09-0.373,0.142-0.373,0.142S8.522,7.305,8.448,7.301C10.474,5.541,13.111,4.466,16,4.466c6.361,0,11.534,5.173,11.534,11.534S22.36,27.533,16,27.533zM14.888,19.92c0,0,0.207-0.026,0.207-0.117c0-0.089-0.207-0.205-0.282-0.102c-0.078,0.102-0.219,0.205-0.207,0.296C14.625,20.138,14.888,19.92,14.888,19.92zM14.875,17.023c-0.181,0.233-0.167,0.182-0.296,0.128c-0.128-0.05-0.334,0.116-0.296,0.182c0.039,0.064,0.322-0.014,0.386,0.102c0.065,0.116,0.065,0.129,0.193,0.104c0.128-0.026,0.257-0.205,0.219-0.295C15.043,17.151,14.875,17.023,14.875,17.023zM14.837,18.245c-0.051,0-0.412,0.064-0.451,0.079c-0.039,0.013-0.27-0.025-0.27-0.025c-0.09,0.089-0.026,0.179,0.116,0.166s0.438-0.052,0.502-0.052C14.799,18.413,14.888,18.245,14.837,18.245zM14.284,14.668c-0.19,0.03-0.308,0.438-0.155,0.425C14.284,15.081,14.451,14.643,14.284,14.668zM14.734,16.959c-0.052-0.064-0.181-0.271-0.323-0.219c-0.042,0.017-0.153,0.245-0.012,0.245C14.541,16.985,14.786,17.023,14.734,16.959zM14.85,16.805c0.232-0.013,0.167-0.245-0.013-0.257C14.786,16.544,14.618,16.818,14.85,16.805zM17.591,18.928c-0.193-0.039-0.244-0.102-0.45-0.205c-0.207-0.103-0.67-0.103-0.682-0.039c-0.014,0.064,0,0-0.155-0.05c-0.153-0.054-0.271,0-0.309-0.091c-0.038-0.091-0.128-0.117-0.244-0.002c-0.097,0.097-0.142,0.104,0.078,0.143c0.218,0.039,0.283,0.039,0.192,0.141c-0.09,0.104-0.154,0.233-0.077,0.244c0.077,0.015,0.309-0.05,0.334,0c0.026,0.054-0.051,0.064,0.207,0.105c0.258,0.037,0.309,0.128,0.359,0.178c0.051,0.052,0.206,0.22,0.104,0.22c-0.104,0-0.219,0.128-0.142,0.143c0.077,0.013,0.309-0.039,0.321,0c0.014,0.037,0.143,0.283,0.271,0.271c0.129-0.013,0.206-0.244,0.27-0.31c0.065-0.064,0.322-0.104,0.349,0.012c0.026,0.116,0.104,0.233,0.257,0.311c0.154,0.076,0.335,0.154,0.348,0.089c0.013-0.064-0.077-0.309-0.181-0.346c-0.103-0.041-0.282-0.259-0.282-0.348c0-0.091-0.155-0.117-0.232-0.182C17.849,19.147,17.784,18.967,17.591,18.928zM8.042,17.023c-0.084,0.037-0.155,0.476,0,0.527c0.154,0.052,0.244-0.205,0.193-0.271C8.183,17.218,8.158,16.973,8.042,17.023zM15.429,18.117c-0.118-0.05-0.335,0.424-0.181,0.463C15.403,18.62,15.518,18.156,15.429,18.117zM15.687,13.703c0.077,0,0.18-0.051,0.18-0.193c0-0.142,0.18,0,0.27-0.013s0.141-0.103,0.18-0.206c0.005-0.013,0.008-0.021,0.009-0.027c-0.003,0.024-0.001,0.093,0.095,0.117c0.154,0.038,0.205-0.064,0.205-0.103s0.283-0.103,0.336-0.142c0.051-0.038,0.258-0.103,0.27-0.154c0.013-0.051,0-0.348,0.064-0.373c0.064-0.026,0.154-0.026,0.052-0.206c-0.104-0.181-0.104-0.348-0.232-0.271c-0.095,0.057-0.038,0.284-0.115,0.438s-0.142,0.296-0.193,0.296s-0.321,0.103-0.399,0.18c-0.076,0.077-0.45-0.064-0.501,0c-0.052,0.064-0.154,0.141-0.219,0.193c-0.065,0.051-0.245,0.013-0.207,0.167C15.518,13.562,15.609,13.703,15.687,13.703zM17.449,12.056c0.18-0.013,0.348-0.064,0.348-0.064s0.271,0.013,0.232-0.116c-0.04-0.128-0.322-0.141-0.375-0.128c-0.051,0.013-0.142-0.142-0.244-0.116c-0.096,0.023-0.128,0.155-0.128,0.193c0,0.039-0.36,0.115-0.245,0.219C17.153,12.146,17.27,12.069,17.449,12.056zM13.91,19.058c0.104,0.064,0.296-0.219,0.349-0.13c0.051,0.091-0.013,0.13,0.076,0.246c0.091,0.114,0.258,0.102,0.258,0.102s-0.013-0.309-0.155-0.387c-0.142-0.077-0.232-0.166-0.064-0.141c0.167,0.026,0.257-0.039,0.219-0.114c-0.039-0.078-0.283-0.039-0.361-0.026s-0.193-0.052-0.193-0.052c-0.077,0.024-0.063,0.089-0.09,0.219C13.923,18.902,13.807,18.992,13.91,19.058zM20.924,21.618c-0.231-0.052-0.077,0.039,0,0.154c0.077,0.116,0.232,0.176,0.258,0.05C21.193,21.759,21.155,21.67,20.924,21.618zM21.915,24.744c-0.077,0.064,0,0.091-0.219,0.22c-0.22,0.13-0.49,0.271-0.541,0.386c-0.052,0.116,0.051,0.181,0.258,0.192c0.206,0.013,0.154,0.053,0.296-0.103s0.271-0.244,0.438-0.373c0.168-0.128,0.168-0.322,0.168-0.322s-0.181-0.178-0.193-0.141C22.1,24.665,21.992,24.681,21.915,24.744zM18.504,21.618c0.014-0.116-0.219-0.116-0.334-0.207c-0.116-0.089-0.128-0.359-0.193-0.515c-0.064-0.153-0.192-0.257-0.322-0.397c-0.128-0.143-0.192-0.465-0.23-0.438c-0.039,0.025-0.154,0.399-0.064,0.515c0.09,0.116-0.039,0.348-0.103,0.503c-0.065,0.153-0.22-0.026-0.349-0.104c-0.129-0.078-0.308-0.128-0.398-0.219c-0.09-0.091,0.155-0.335,0.091-0.426c-0.065-0.09-0.412-0.013-0.45-0.013c-0.039,0-0.116-0.128-0.194-0.128c-0.077,0-0.064,0.258-0.064,0.258s-0.078-0.091-0.193-0.207c-0.117-0.115,0.012,0.077-0.103,0.193c-0.117,0.117-0.079,0.078-0.129,0.206c-0.051,0.129-0.167,0.077-0.283-0.052c-0.116-0.128-0.179-0.037-0.258,0c-0.077,0.039-0.141,0.259-0.18,0.309c-0.039,0.052-0.309,0.117-0.374,0.182c-0.064,0.062-0.09,0.27-0.09,0.322c0,0.05-0.271,0.023-0.361,0.089c-0.09,0.064-0.23,0.025-0.321,0.025c-0.09,0-0.399,0.244-0.502,0.308c-0.103,0.066-0.103,0.298-0.051,0.362c0.051,0.063,0.154,0.219,0.09,0.244c-0.064,0.026-0.104,0.206,0.051,0.359c0.154,0.155,0.103,0.194,0.115,0.271c0.014,0.077,0.078,0.104,0.181,0.232c0.102,0.128-0.181,0.231-0.219,0.31c-0.039,0.076,0.091,0.192,0.167,0.257c0.077,0.063,0.271,0.026,0.386-0.013c0.117-0.039,0.245-0.143,0.321-0.155c0.079-0.013,0.438-0.026,0.438-0.026s0.129-0.192,0.219-0.296c0.089-0.102,0.372-0.013,0.372-0.013s0.117-0.076,0.426-0.141c0.309-0.065,0.179,0.064,0.296,0.104c0.115,0.037,0.27,0.062,0.359,0.128c0.09,0.064,0,0.218-0.012,0.283c-0.014,0.064,0.219,0.038,0.23-0.026c0.014-0.064,0.077-0.128,0.207-0.205c0.128-0.078,0.025,0.114,0.076,0.231c0.052,0.116,0.129-0.157,0.129-0.026c0,0.039,0.039,0.078,0.051,0.116c0.014,0.039,0.181,0.052,0.181,0.18c0,0.13,0,0.207,0.039,0.231c0.038,0.026,0.244,0,0.335,0.155c0.089,0.154,0.154,0.013,0.205-0.052c0.052-0.064,0.231,0.026,0.283,0.078c0.052,0.05,0.193-0.104,0.387-0.155c0.192-0.051,0.167-0.039,0.219-0.115c0.051-0.078,0.09-0.283,0.205-0.438c0.115-0.153,0.271-0.424,0.271-0.631c0-0.206-0.014-0.682-0.155-0.899C18.761,21.953,18.492,21.733,18.504,21.618zM18.029,24.77c-0.065-0.013-0.207-0.062-0.207-0.062c-0.142,0.141,0.142,0.141,0.104,0.283c-0.039,0.141,0.193,0.089,0.257,0.064c0.063-0.027,0.22-0.323,0.193-0.399C18.351,24.577,18.093,24.783,18.029,24.77zM22.803,24.178c-0.052,0-0.077,0.064-0.192,0c-0.117-0.063-0.091-0.037-0.168-0.167c-0.077-0.127-0.091-0.296-0.219-0.23c-0.051,0.025,0,0.168,0.051,0.218c0.053,0.052,0.077,0.231,0.064,0.283c-0.012,0.052-0.231,0.116-0.129,0.18c0.104,0.064,0.297,0,0.271,0.078c-0.025,0.077-0.129,0.179-0.013,0.205c0.115,0.025,0.154-0.089,0.207-0.178c0.051-0.093,0.089-0.169,0.179-0.221C22.944,24.294,22.854,24.178,22.803,24.178zM22.815,21.18c0.168,0.064,0.464-0.231,0.347-0.27C23.047,20.871,22.815,21.18,22.815,21.18zM13.923,19.906c-0.029,0.115,0.193,0.167,0.206,0.039C14.141,19.816,13.949,19.803,13.923,19.906zM14.27,16.47c-0.064,0.065-0.257,0.193-0.283,0.31c-0.025,0.115,0.309-0.182,0.399-0.296c0.091-0.117,0.27-0.052,0.308-0.117c0.04-0.063,0.04-0.063,0.04-0.063s-0.142-0.025-0.257-0.063c-0.117-0.039-0.258,0.102-0.193-0.104c0.064-0.206,0.257-0.167,0.219-0.322c-0.039-0.154-0.168-0.193-0.207-0.193c-0.09,0,0.013,0.141-0.116,0.231c-0.128,0.09-0.271,0.128-0.193,0.283C14.064,16.29,14.334,16.405,14.27,16.47zM13.254,19.751c0.013-0.076-0.142-0.192-0.206-0.192c-0.065,0-0.386-0.077-0.386-0.077c-0.058,0.023-0.135,0.045-0.158,0.077c-0.007-0.011-0.022-0.024-0.049-0.039c-0.142-0.075-0.309,0-0.361-0.102c-0.05-0.104-0.127-0.104-0.179-0.039c-0.094,0.117,0.025,0.206,0.063,0.231c0.038,0.024,0.181,0.052,0.309,0.039c0.08-0.008,0.181-0.027,0.21-0.059c0.004,0.014,0.016,0.027,0.035,0.044c0.103,0.092,0.167,0.13,0.321,0.116C13.009,19.74,13.241,19.829,13.254,19.751zM12.881,18.992c0.065,0,0.193,0,0.283,0.026c0.09,0.025,0.386,0.05,0.373-0.064c-0.013-0.115-0.038-0.297,0.089-0.411c0.13-0.117,0.257-0.18,0.193-0.348c-0.063-0.167-0.193-0.271-0.103-0.349c0.09-0.076,0.192-0.102,0.192-0.166c0-0.065-0.217,0.18-0.244-0.246c-0.005-0.091-0.206,0.025-0.219,0.116c-0.012,0.091,0.142,0.167-0.103,0.167c-0.245,0-0.257,0.194-0.309,0.232c-0.052,0.039-0.103,0.051-0.207,0.076c-0.102,0.026-0.127,0.13-0.153,0.194c-0.025,0.063-0.206-0.116-0.257-0.064c-0.051,0.052-0.013,0.296,0.077,0.501C12.585,18.863,12.816,18.992,12.881,18.992zM11.979,18.928c0.065-0.077,0.038-0.192-0.063-0.18c-0.103,0.013-0.193-0.168-0.36-0.283c-0.168-0.114-0.296-0.194-0.451-0.36c-0.154-0.167-0.347-0.271-0.45-0.359c-0.104-0.091-0.257-0.13-0.322-0.116c-0.159,0.032,0.231,0.309,0.271,0.346c0.039,0.041,0.387,0.335,0.387,0.478s0.231,0.476,0.296,0.527c0.064,0.052,0.385,0.244,0.437,0.348c0.052,0.103,0.167,0.13,0.167-0.013C11.89,19.174,11.916,19.006,11.979,18.928zM11.002,17.474c0.064,0.232,0.193,0.464,0.244,0.555c0.052,0.089,0.271,0.217,0.348,0.281c0.077,0.064,0.192-0.024,0.143-0.102c-0.052-0.078-0.155-0.192-0.167-0.283c-0.013-0.091-0.078-0.233-0.181-0.387c-0.102-0.153-0.192-0.192-0.257-0.295c-0.064-0.104-0.296-0.297-0.296-0.297c-0.102,0.013-0.102,0.205-0.051,0.271C10.834,17.28,10.938,17.243,11.002,17.474z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Hail.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Hail.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Hail();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Hail = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Hail.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Hail\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.372,6.912c-0.093-3.925-3.302-7.078-7.248-7.08c-2.638,0.002-4.942,1.412-6.208,3.518c-0.595-0.327-1.28-0.518-2.01-0.518C7.627,2.834,5.773,4.639,5.69,6.898c-2.393,0.786-4.125,3.025-4.127,5.686c0,3.312,2.687,6,6,6v-0.002h15.875c3.312,0,6-2.688,6-6C29.434,9.944,27.732,7.715,25.372,6.912zM23.436,16.584H7.562c-2.209-0.006-3.997-1.793-4.001-4c-0.002-1.983,1.45-3.619,3.35-3.933c0.265-0.043,0.502-0.19,0.657-0.414C7.723,8.015,7.78,7.74,7.731,7.475C7.703,7.326,7.686,7.187,7.686,7.051c0.004-1.225,0.995-2.217,2.22-2.219c0.647,0,1.217,0.278,1.633,0.731c0.233,0.257,0.587,0.375,0.927,0.31c0.342-0.066,0.626-0.308,0.748-0.631c0.749-1.992,2.662-3.412,4.911-3.41c2.898,0.004,5.244,2.351,5.251,5.25c0,0.16-0.009,0.325-0.026,0.496c-0.05,0.518,0.305,0.984,0.814,1.079c1.859,0.345,3.273,1.966,3.271,3.923C27.43,14.791,25.645,16.578,23.436,16.584zM11.503,23.709c-0.784-0.002-1.418-0.636-1.418-1.416c0-0.785,0.634-1.416,1.418-1.418c0.78,0.002,1.413,0.633,1.416,1.418C12.917,23.073,12.284,23.707,11.503,23.709zM19.002,23.709c-0.783-0.002-1.418-0.636-1.418-1.416c0-0.785,0.635-1.416,1.418-1.418c0.779,0.002,1.414,0.633,1.414,1.418C20.417,23.073,19.784,23.707,19.002,23.709zM7.503,28.771c-0.783-0.002-1.417-0.637-1.417-1.418s0.634-1.414,1.417-1.416c0.78,0.002,1.415,0.635,1.415,1.416C8.917,28.135,8.284,28.77,7.503,28.771zM15.001,28.771c-0.782-0.002-1.417-0.637-1.417-1.418s0.634-1.414,1.417-1.416c0.78,0.002,1.413,0.635,1.415,1.416C16.415,28.135,15.784,28.77,15.001,28.771zM22.5,28.771c-0.782-0.002-1.416-0.634-1.416-1.416c0-0.785,0.634-1.418,1.416-1.42c0.781,0.002,1.414,0.635,1.418,1.42C23.915,28.138,23.282,28.77,22.5,28.771z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Hammer.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Hammer.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Hammer();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Hammer = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Hammer.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Hammer\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M7.831,29.354c0.685,0.353,1.62,1.178,2.344,0.876c0.475-0.195,0.753-1.301,1.048-1.883c2.221-4.376,4.635-9.353,6.392-13.611c0-0.19,0.101-0.337-0.049-0.595c0.983-1.6,1.65-3.358,2.724-5.138c0.34-0.566,0.686-1.351,1.163-1.577l0.881-0.368c1.12-0.288,1.938-0.278,2.719,0.473c0.396,0.383,0.578,1.015,0.961,1.395c0.259,0.26,1.246,0.899,1.613,0.8c0.285-0.077,0.52-0.364,0.72-0.728l0.696-1.286c0.195-0.366,0.306-0.718,0.215-0.999c-0.117-0.362-1.192-0.84-1.552-0.915c-0.528-0.113-1.154,0.081-1.692-0.041c-1.057-0.243-1.513-0.922-1.883-2.02c-2.608-1.533-6.119-2.53-10.207-1.244c-1.109,0.349-2.172,0.614-2.901,1.323c-0.146,0.412,0.143,0.494,0.446,0.489c-0.237,0.216-0.62,0.341-0.399,0.848c2.495-1.146,7.34-1.542,7.669,0.804c0.072,0.522-0.395,1.241-0.682,1.835c-0.905,1.874-2.011,3.394-2.813,5.091c-0.298,0.017-0.366,0.18-0.525,0.287c-2.604,3.8-5.451,8.541-7.9,12.794c-0.326,0.566-1.098,1.402-1.002,1.906C5.961,28.641,7.146,29,7.831,29.354z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/HammerAndScrewDriver.js\":\n/*!************************************************!*\\\n !*** ./src/shape/icon/HammerAndScrewDriver.js ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.HammerAndScrewDriver();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.HammerAndScrewDriver = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.HammerAndScrewDriver.prototype */\n{\n\n NAME: \"draw2d.shape.icon.HammerAndScrewDriver\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.537,9.859c-0.473-0.259-1.127-0.252-1.609-0.523c-0.943-0.534-1.186-1.316-1.226-2.475c-2.059-2.215-5.138-4.176-9.424-4.114c-1.162,0.017-2.256-0.035-3.158,0.435c-0.258,0.354-0.004,0.516,0.288,0.599c-0.29,0.138-0.692,0.147-0.626,0.697c2.72-0.383,7.475,0.624,7.116,2.966c-0.08,0.521-0.735,1.076-1.179,1.563c-1.263,1.382-2.599,2.45-3.761,3.667l0.336,0.336c0.742-0.521,1.446-0.785,2.104-0.785c0.707,0,1.121,0.297,1.276,0.433c0.575-0.618,1.166-1.244,1.839-1.853c0.488-0.444,1.047-1.099,1.566-1.178l0.949-0.101c1.156,0.047,1.937,0.29,2.471,1.232c0.27,0.481,0.262,1.139,0.521,1.613c0.175,0.324,0.937,1.218,1.316,1.228c0.294,0.009,0.603-0.199,0.899-0.49l1.033-1.034c0.291-0.294,0.501-0.6,0.492-0.896C29.754,10.801,28.861,10.035,28.537,9.859zM13.021,15.353l-0.741-0.741c-3.139,2.643-6.52,5.738-9.531,8.589c-0.473,0.443-1.452,1.021-1.506,1.539c-0.083,0.781,0.95,1.465,1.506,2c0.556,0.533,1.212,1.602,1.994,1.51c0.509-0.043,1.095-1.029,1.544-1.502c2.255-2.374,4.664-4.976,6.883-7.509c-0.312-0.371-0.498-0.596-0.498-0.596C12.535,18.451,11.779,17.272,13.021,15.353zM20.64,15.643c-0.366-0.318-1.466,0.143-1.777-0.122c-0.311-0.266,0.171-1.259-0.061-1.455c-0.482-0.406-0.77-0.646-0.77-0.646s-0.862-0.829-2.812,0.928L7.44,6.569C7.045,6.173,7.203,4.746,7.203,4.746L3.517,2.646L2.623,3.541l2.1,3.686c0,0,1.428-0.158,1.824,0.237l7.792,7.793c-1.548,1.831-0.895,2.752-0.895,2.752s0.238,0.288,0.646,0.771c0.196,0.23,1.188-0.249,1.455,0.061c0.264,0.312-0.196,1.41,0.12,1.777c2.666,3.064,6.926,7.736,8.125,7.736c0.892,0,2.021-0.724,2.948-1.64c0.925-0.917,1.639-2.055,1.639-2.947C28.377,22.567,23.704,18.309,20.64,15.643z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/HangUp.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/HangUp.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.HangUp();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.HangUp = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.HangUp.prototype */\n{\n\n NAME: \"draw2d.shape.icon.HangUp\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.563,10.494c-7.35-7.349-19.265-7.348-26.612,0.001c-1.796,1.796-0.247,6.84-0.247,6.84c0.135,0.443,0.616,0.72,1.067,0.614l6.898-1.604c0.451-0.105,0.82-0.57,0.82-1.033l0.001-3.685c0-0.463,0.379-0.842,0.842-0.842h8.285c0.464,0,0.843,0.379,0.843,0.842l-0.001,3.471c0.001,0.462,0.375,0.907,0.83,0.986l7.635,1.316c0.456,0.08,0.873-0.232,0.926-0.692C29.851,16.708,30.359,12.29,28.563,10.494zM17.264,14.072h-3.501v4.39h-2.625l4.363,7.556l4.363-7.556h-2.6V14.072z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Help.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Help.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Help();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Help = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Help.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Help\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M4.834,4.834L4.833,4.833c-5.889,5.892-5.89,15.443,0.001,21.334s15.44,5.888,21.33-0.002c5.891-5.891,5.893-15.44,0.002-21.33C20.275-1.056,10.725-1.056,4.834,4.834zM25.459,5.542c0.833,0.836,1.523,1.757,2.104,2.726l-4.08,4.08c-0.418-1.062-1.053-2.06-1.912-2.918c-0.859-0.859-1.857-1.494-2.92-1.913l4.08-4.08C23.7,4.018,24.622,4.709,25.459,5.542zM10.139,20.862c-2.958-2.968-2.959-7.758-0.001-10.725c2.966-2.957,7.756-2.957,10.725,0c2.954,2.965,2.955,7.757-0.001,10.724C17.896,23.819,13.104,23.817,10.139,20.862zM5.542,25.459c-0.833-0.837-1.524-1.759-2.105-2.728l4.081-4.081c0.418,1.063,1.055,2.06,1.914,2.919c0.858,0.859,1.855,1.494,2.917,1.913l-4.081,4.081C7.299,26.982,6.379,26.292,5.542,25.459zM8.268,3.435l4.082,4.082C11.288,7.935,10.29,8.571,9.43,9.43c-0.858,0.859-1.494,1.855-1.912,2.918L3.436,8.267c0.58-0.969,1.271-1.89,2.105-2.727C6.377,4.707,7.299,4.016,8.268,3.435zM22.732,27.563l-4.082-4.082c1.062-0.418,2.061-1.053,2.919-1.912c0.859-0.859,1.495-1.857,1.913-2.92l4.082,4.082c-0.58,0.969-1.271,1.891-2.105,2.728C24.623,26.292,23.701,26.983,22.732,27.563z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/History.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/History.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.History();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.History = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.History.prototype */\n{\n\n NAME: \"draw2d.shape.icon.History\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M10.666,18.292c0.275,0.479,0.889,0.644,1.365,0.367l3.305-1.677C15.39,16.99,15.444,17,15.501,17c0.828,0,1.5-0.671,1.5-1.5l-0.5-7.876c0-0.552-0.448-1-1-1c-0.552,0-1,0.448-1,1l-0.466,7.343l-3.004,1.96C10.553,17.204,10.389,17.816,10.666,18.292zM12.062,9.545c0.479-0.276,0.642-0.888,0.366-1.366c-0.276-0.478-0.888-0.642-1.366-0.366s-0.642,0.888-0.366,1.366C10.973,9.658,11.584,9.822,12.062,9.545zM8.179,18.572c-0.478,0.277-0.642,0.889-0.365,1.367c0.275,0.479,0.889,0.641,1.365,0.365c0.479-0.275,0.643-0.888,0.367-1.367C9.27,18.461,8.658,18.297,8.179,18.572zM9.18,10.696c-0.479-0.276-1.09-0.112-1.366,0.366s-0.111,1.09,0.365,1.366c0.479,0.276,1.09,0.113,1.367-0.366C9.821,11.584,9.657,10.973,9.18,10.696zM6.624,15.5c0,0.553,0.449,1,1,1c0.552,0,1-0.447,1.001-1c-0.001-0.552-0.448-0.999-1.001-1C7.071,14.5,6.624,14.948,6.624,15.5zM14.501,23.377c0,0.553,0.448,1,1,1c0.552,0,1-0.447,1-1s-0.448-1-1-1C14.949,22.377,14.501,22.824,14.501,23.377zM10.696,21.822c-0.275,0.479-0.111,1.09,0.366,1.365c0.478,0.276,1.091,0.11,1.365-0.365c0.277-0.479,0.113-1.09-0.365-1.367C11.584,21.18,10.973,21.344,10.696,21.822zM21.822,10.696c-0.479,0.278-0.643,0.89-0.366,1.367s0.888,0.642,1.366,0.365c0.478-0.275,0.643-0.888,0.365-1.366C22.913,10.584,22.298,10.42,21.822,10.696zM21.456,18.938c-0.274,0.479-0.112,1.092,0.367,1.367c0.477,0.274,1.089,0.112,1.364-0.365c0.276-0.479,0.112-1.092-0.364-1.367C22.343,18.297,21.73,18.461,21.456,18.938zM24.378,15.5c0-0.551-0.448-1-1-1c-0.554,0.002-1.001,0.45-1.001,1c0.001,0.552,0.448,1,1.001,1C23.93,16.5,24.378,16.053,24.378,15.5zM18.573,22.822c0.274,0.477,0.888,0.643,1.366,0.365c0.478-0.275,0.642-0.89,0.365-1.365c-0.277-0.479-0.888-0.643-1.365-0.367C18.46,21.732,18.296,22.344,18.573,22.822zM18.939,9.546c0.477,0.276,1.088,0.112,1.365-0.366c0.276-0.478,0.113-1.091-0.367-1.367c-0.477-0.276-1.09-0.111-1.364,0.366C18.298,8.659,18.462,9.27,18.939,9.546zM28.703,14.364C28.074,7.072,21.654,1.67,14.364,2.295c-3.254,0.281-6.118,1.726-8.25,3.877L4.341,4.681l-1.309,7.364l7.031-2.548L8.427,8.12c1.627-1.567,3.767-2.621,6.194-2.833c5.64-0.477,10.595,3.694,11.089,9.335c0.477,5.64-3.693,10.595-9.333,11.09c-5.643,0.476-10.599-3.694-11.092-9.333c-0.102-1.204,0.019-2.373,0.31-3.478l-3.27,1.186c-0.089,0.832-0.106,1.684-0.031,2.55c0.629,7.29,7.048,12.691,14.341,12.066C23.926,28.074,29.328,21.655,28.703,14.364z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Home.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Home.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Home();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Home = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Home.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Home\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M27.812,16l-3.062-3.062V5.625h-2.625v4.688L16,4.188L4.188,16L7,15.933v11.942h17.875V16H27.812zM16,26.167h-5.833v-7H16V26.167zM21.667,23.167h-3.833v-4.042h3.833V23.167z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/IMac.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/IMac.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.IMac();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.IMac = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.IMac.prototype */\n{\n\n NAME: \"draw2d.shape.icon.IMac\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.936,2.099H2.046c-0.506,0-0.919,0.414-0.919,0.92v21.097c0,0.506,0.413,0.919,0.919,0.919h17.062v-0.003h9.828c0.506,0,0.92-0.413,0.92-0.921V3.019C29.854,2.513,29.439,2.099,28.936,2.099zM28.562,20.062c0,0.412-0.338,0.75-0.75,0.75H3.062c-0.413,0-0.75-0.338-0.75-0.75v-16c0-0.413,0.337-0.75,0.75-0.75h24.75c0.412,0,0.75,0.337,0.75,0.75V20.062zM20.518,28.4c-0.033-0.035-0.062-0.055-0.068-0.062l-0.01-0.004l-0.008-0.004c0,0-0.046-0.021-0.119-0.062c-0.108-0.056-0.283-0.144-0.445-0.237c-0.162-0.097-0.32-0.199-0.393-0.271c-0.008-0.014-0.035-0.079-0.058-0.17c-0.083-0.32-0.161-0.95-0.22-1.539h-7.5c-0.023,0.23-0.048,0.467-0.076,0.691c-0.035,0.272-0.073,0.524-0.113,0.716c-0.02,0.096-0.039,0.175-0.059,0.23c-0.009,0.025-0.018,0.05-0.024,0.062c-0.003,0.006-0.005,0.01-0.007,0.013c-0.094,0.096-0.34,0.246-0.553,0.36c-0.107,0.062-0.209,0.11-0.283,0.146c-0.074,0.037-0.119,0.062-0.119,0.062l-0.007,0.004l-0.008,0.004c-0.01,0.009-0.038,0.022-0.07,0.062c-0.031,0.037-0.067,0.103-0.067,0.185c0.002,0.002-0.004,0.037-0.006,0.088c0,0.043,0.007,0.118,0.068,0.185c0.061,0.062,0.143,0.08,0.217,0.08h9.716c0.073,0,0.153-0.021,0.215-0.08c0.062-0.063,0.068-0.142,0.068-0.185c-0.001-0.051-0.008-0.086-0.007-0.088C20.583,28.503,20.548,28.439,20.518,28.4z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Icon.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Icon.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.SetFigure\n */\n_packages2.default.shape.icon.Icon = _packages2.default.SetFigure.extend(\n/** @lends draw2d.shape.icon.Icon.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Icon\",\n\n /**\n *\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({\n width: 50,\n height: 50,\n color: \"#333333\",\n bgColor: null\n }, attr), setter, getter);\n this.keepAspectRatio = false;\n },\n\n /**\n * \n * propagate all attributes like color, stroke,... to the shape element\n **/\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = attributes || {};\n\n if (this.svgNodes !== null) {\n this.svgNodes.attr({ fill: this.color.rgba(), stroke: \"none\" });\n }\n\n this._super(attributes);\n },\n\n applyTransformation: function applyTransformation() {\n var trans = [];\n\n if (this.rotationAngle !== 0) {\n trans.push(\"R\" + this.rotationAngle);\n }\n\n if (this.getRotationAngle() === 90 || this.getRotationAngle() === 270) {\n var ratio = this.getHeight() / this.getWidth();\n trans.push(\"T\" + -this.offsetY + \",\" + -this.offsetX);\n trans.push(\"S\" + ratio + \",\" + 1 / ratio + \",0,0\");\n } else {\n trans.push(\"T\" + -this.offsetX + \",\" + -this.offsetY);\n }\n if (this.isResizeable() === true) {\n trans.push(\"T\" + this.getAbsoluteX() + \",\" + this.getAbsoluteY() + \"S\" + this.scaleX + \",\" + this.scaleY + \",\" + this.getAbsoluteX() + \",\" + this.getAbsoluteY());\n } else {\n trans.push(\"T\" + this.getAbsoluteX() + \",\" + this.getAbsoluteY());\n }\n\n this.svgNodes.transform(trans.join(\" \"));\n\n return this;\n },\n\n /**\n * @private\n */\n createShapeElement: function createShapeElement() {\n var shape = this._super();\n\n var bb = this.svgNodes.getBBox();\n\n this.offsetX = bb.x;\n this.offsetY = bb.y;\n\n return shape;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Icons.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Icons.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Icons();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Icons = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Icons.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Icons\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M4.083,14H14V4.083H4.083V14zM17,4.083V14h9.917V4.083H17zM17,26.917h9.917v-9.918H17V26.917zM4.083,26.917H14v-9.918H4.083V26.917z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Ie.js\":\n/*!******************************!*\\\n !*** ./src/shape/icon/Ie.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Ie();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Ie = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Ie.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Ie\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M27.998,2.266c-2.12-1.91-6.925,0.382-9.575,1.93c-0.76-0.12-1.557-0.185-2.388-0.185c-3.349,0-6.052,0.985-8.106,2.843c-2.336,2.139-3.631,4.94-3.631,8.177c0,0.028,0.001,0.056,0.001,0.084c3.287-5.15,8.342-7.79,9.682-8.487c0.212-0.099,0.338,0.155,0.141,0.253c-0.015,0.042-0.015,0,0,0c-2.254,1.35-6.434,5.259-9.146,10.886l-0.003-0.007c-1.717,3.547-3.167,8.529-0.267,10.358c2.197,1.382,6.13-0.248,9.295-2.318c0.764,0.108,1.567,0.165,2.415,0.165c5.84,0,9.937-3.223,11.399-7.924l-8.022-0.014c-0.337,1.661-1.464,2.548-3.223,2.548c-2.21,0-3.729-1.211-3.828-4.012l15.228-0.014c0.028-0.578-0.042-0.985-0.042-1.436c0-5.251-3.143-9.355-8.255-10.663c2.081-1.294,5.974-3.209,7.848-1.681c1.407,1.14,0.633,3.533,0.295,4.518c-0.056,0.254,0.24,0.296,0.296,0.057C28.814,5.573,29.026,3.194,27.998,2.266zM13.272,25.676c-2.469,1.475-5.873,2.539-7.539,1.289c-1.243-0.935-0.696-3.468,0.398-5.938c0.664,0.992,1.495,1.886,2.473,2.63C9.926,24.651,11.479,25.324,13.272,25.676zM12.714,13.046c0.042-2.435,1.787-3.49,3.617-3.49c1.928,0,3.49,1.112,3.49,3.49H12.714z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Ie9.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Ie9.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Ie9();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Ie9 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Ie9.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Ie9\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M27.751,17.887c0.054-0.434,0.081-0.876,0.081-1.324c0-1.744-0.413-3.393-1.146-4.854c1.133-2.885,1.155-5.369-0.201-6.777c-1.756-1.822-5.391-1.406-9.433,0.721c-0.069-0.001-0.138-0.003-0.206-0.003c-6.069,0-10.988,4.888-10.988,10.917c0,0.183,0.005,0.354,0.014,0.529c-2.688,4.071-3.491,7.967-1.688,9.838c1.557,1.613,4.691,1.344,8.2-0.392c1.363,0.604,2.873,0.938,4.462,0.938c4.793,0,8.867-3.049,10.369-7.299H21.26c-0.814,1.483-2.438,2.504-4.307,2.504c-2.688,0-4.867-2.104-4.867-4.688c0-0.036,0.002-0.071,0.003-0.106h15.662V17.887zM26.337,6.099c0.903,0.937,0.806,2.684-0.087,4.818c-1.27-2.083-3.221-3.71-5.546-4.576C23.244,5.217,25.324,5.047,26.337,6.099zM16.917,10.372c2.522,0,4.585,1.991,4.748,4.509h-9.496C12.333,12.363,14.396,10.372,16.917,10.372zM5.687,26.501c-1.103-1.146-0.712-3.502,0.799-6.298c0.907,2.546,2.736,4.658,5.09,5.938C8.92,27.368,6.733,27.587,5.687,26.501z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Import.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Import.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Import();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Import = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Import.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Import\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.067,2.25c-5.979,0-11.035,3.91-12.778,9.309h3.213c1.602-3.705,5.271-6.301,9.565-6.309c5.764,0.01,10.428,4.674,10.437,10.437c-0.009,5.764-4.673,10.428-10.437,10.438c-4.294-0.007-7.964-2.605-9.566-6.311H2.289c1.744,5.399,6.799,9.31,12.779,9.312c7.419-0.002,13.437-6.016,13.438-13.438C28.504,8.265,22.486,2.252,15.067,2.25zM10.918,19.813l7.15-4.126l-7.15-4.129v2.297H-0.057v3.661h10.975V19.813z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/InkScape.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/InkScape.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.InkScape();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.InkScape = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.InkScape.prototype */\n{\n\n NAME: \"draw2d.shape.icon.InkScape\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M20.402,17.626c0.84-0.772,2.468-0.381,5.979-1.853c1.716-0.72,1.572-1.265,1.566-1.928c-0.001-0.014,0-0.027,0-0.041h-0.005c-0.012-0.667-0.291-1.332-0.846-1.845L17.049,2.684c-0.566-0.522-1.304-0.782-2.042-0.782V1.898c-0.738,0-1.475,0.261-2.04,0.783l-10.05,9.276c-0.554,0.512-0.832,1.176-0.843,1.844H2.07c0,0,0.003,0.011,0.004,0.011c0,0.012-0.004,0.024-0.004,0.034h0.017c0.193,0.676,5.164,1.536,5.718,2.049c0.838,0.774-3.211,1.339-2.374,2.114c0.838,0.773,5.062,1.496,5.898,2.271c0.838,0.771-1.711,1.596-0.874,2.366c0.837,0.773,3.651-0.191,3.142,1.822c1.13,1.045,3.49,0.547,5.071-0.498c0.837-0.771-1.607-0.703-0.77-1.477c0.836-0.774,2.949-0.777,4.73-2.627C21.913,18.838,19.566,18.398,20.402,17.626zM10.973,16.868l-0.42-0.504c1.497,0.358,3.162,0.827,4.498,0.837l0.058,0.554C13.964,17.646,11.544,17.137,10.973,16.868zM18.161,8.58l-1.396-0.74L14.53,9.594l-1.067-3.192l-1.177,2.545L8.998,9.25l0.036-1.352c0-0.324,1.895-2.596,3.05-3.136l2.112-1.401c0.312-0.186,0.53-0.261,0.727-0.257c0.327,0.011,0.593,0.239,1.112,0.55l4.748,3.25c0.357,0.215,0.619,0.522,0.626,0.898l-2.813-1.254L18.161,8.58zM26.434,19.594c-0.313-0.07-1.688-0.691-2.035,0.165c0.968,0.981,2.645,2.181,3.316,1.482C28.391,20.543,27.102,19.745,26.434,19.594zM4.663,21.566c-0.315,0.074-1.842,0.115-1.719,1.021c1.351,0.451,3.438,0.792,3.684-0.113C6.873,21.566,5.33,21.414,4.663,21.566zM17.877,26.396c-0.232,0.209-1.53,0.953-0.929,1.681c1.413-0.236,3.403-0.914,3.12-1.812C19.786,25.369,18.37,25.953,17.877,26.396z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Ipad.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Ipad.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Ipad();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Ipad = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Ipad.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Ipad\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.221,1.417H6.11c-0.865,0-1.566,0.702-1.566,1.566v25.313c0,0.865,0.701,1.565,1.566,1.565h19.111c0.865,0,1.565-0.7,1.565-1.565V2.984C26.787,2.119,26.087,1.417,25.221,1.417zM15.666,29.299c-0.346,0-0.626-0.279-0.626-0.625s0.281-0.627,0.626-0.627c0.346,0,0.627,0.281,0.627,0.627S16.012,29.299,15.666,29.299zM24.376,26.855c0,0.174-0.142,0.312-0.313,0.312H7.27c-0.173,0-0.313-0.142-0.313-0.312V4.3c0-0.173,0.14-0.313,0.313-0.313h16.792c0.172,0,0.312,0.14,0.312,0.313L24.376,26.855L24.376,26.855z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Iphone.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Iphone.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Iphone();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Iphone = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Iphone.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Iphone\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M20.755,1H10.62C9.484,1,8.562,1.921,8.562,3.058v24.385c0,1.136,0.921,2.058,2.058,2.058h10.135c1.136,0,2.058-0.922,2.058-2.058V3.058C22.812,1.921,21.891,1,20.755,1zM14.659,3.264h2.057c0.101,0,0.183,0.081,0.183,0.18c0,0.1-0.082,0.18-0.183,0.18h-2.057c-0.1,0-0.181-0.081-0.181-0.18C14.478,3.344,14.559,3.264,14.659,3.264zM13.225,3.058c0.199,0,0.359,0.162,0.359,0.36c0,0.198-0.161,0.36-0.359,0.36c-0.2,0-0.36-0.161-0.36-0.36S13.025,3.058,13.225,3.058zM15.688,28.473c-0.796,0-1.44-0.646-1.44-1.438c0-0.799,0.645-1.439,1.44-1.439s1.44,0.646,1.44,1.439S16.483,28.473,15.688,28.473zM22.041,24.355c0,0.17-0.139,0.309-0.309,0.309H9.642c-0.17,0-0.308-0.139-0.308-0.309V6.042c0-0.17,0.138-0.309,0.308-0.309h12.09c0.17,0,0.309,0.138,0.309,0.309V24.355z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/JQuery.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/JQuery.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.JQuery();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.JQuery = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.JQuery.prototype */\n{\n\n NAME: \"draw2d.shape.icon.JQuery\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M10.322,23.041C4.579,18.723,2.777,11.07,5.494,4.583c-0.254,0.291-0.502,0.59-0.739,0.904c-5.177,6.887-4.008,16.505,2.613,21.482c6.62,4.979,16.184,3.432,21.362-3.455c0.237-0.314,0.454-0.635,0.663-0.959C23.915,26.963,16.064,27.357,10.322,23.041zM13.662,18.598c4.765,3.582,11.604,2.564,15.567-2.198c-3.609,2.641-9.09,2.475-13.361-0.736S9.916,7.231,11.451,3.03C7.976,8.161,8.897,15.015,13.662,18.598zM18.642,11.976c3.254,2.447,8.146,1.438,10.967-2.242c-2.604,1.921-6.341,1.955-9.157-0.164c-2.819-2.118-3.826-5.718-2.701-8.754C14.998,4.549,15.387,9.528,18.642,11.976z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Jigsaw.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Jigsaw.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Jigsaw();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Jigsaw = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Jigsaw.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Jigsaw\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M3.739,13.619c0,0,3.516-4.669,5.592-3.642c2.077,1.027-0.414,2.795,1.598,3.719c2.011,0.924,5.048-0.229,4.376-2.899c-0.672-2.67-1.866-0.776-2.798-2.208c-0.934-1.432,4.586-4.59,4.586-4.59s3.361,6.651,4.316,4.911c1.157-2.105,3.193-4.265,5.305-1.025c0,0,1.814,2.412,0.246,3.434s-2.917,0.443-3.506,1.553c-0.586,1.112,3.784,4.093,3.784,4.093s-2.987,4.81-4.926,3.548c-1.939-1.262,0.356-3.364-2.599-3.989c-1.288-0.23-3.438,0.538-3.818,2.34c-0.13,2.709,1.604,2.016,2.797,3.475c1.191,1.457-4.484,4.522-4.484,4.522s-1.584-3.923-3.811-4.657c-2.227-0.735-0.893,2.135-2.917,2.531c-2.024,0.396-4.816-2.399-3.46-4.789c1.358-2.391,3.275-0.044,3.441-1.951C7.629,16.087,3.739,13.619,3.739,13.619z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Key.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Key.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Key();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Key = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Key.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Key\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M18.386,16.009l0.009-0.006l-0.58-0.912c1.654-2.226,1.876-5.319,0.3-7.8c-2.043-3.213-6.303-4.161-9.516-2.118c-3.212,2.042-4.163,6.302-2.12,9.517c1.528,2.402,4.3,3.537,6.944,3.102l0.424,0.669l0.206,0.045l0.779-0.447l-0.305,1.377l2.483,0.552l-0.296,1.325l1.903,0.424l-0.68,3.06l1.406,0.313l-0.424,1.906l4.135,0.918l0.758-3.392L18.386,16.009z M10.996,8.944c-0.685,0.436-1.593,0.233-2.029-0.452C8.532,7.807,8.733,6.898,9.418,6.463s1.594-0.233,2.028,0.452C11.883,7.6,11.68,8.509,10.996,8.944z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Lab.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Lab.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Lab();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Lab = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Lab.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Lab\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M22.121,24.438l-3.362-7.847c-0.329-0.769-0.599-2.081-0.599-2.917s0.513-1.521,1.14-1.521s1.141-0.513,1.141-1.14s-0.685-1.14-1.521-1.14h-6.84c-0.836,0-1.52,0.513-1.52,1.14s0.513,1.14,1.14,1.14s1.14,0.685,1.14,1.521s-0.269,2.148-0.599,2.917l-3.362,7.847C8.55,25.206,8.28,26.177,8.28,26.595s0.342,1.103,0.76,1.521s1.444,0.76,2.28,0.76h8.359c0.836,0,1.862-0.342,2.28-0.76s0.76-1.103,0.76-1.521S22.45,25.206,22.121,24.438zM16.582,7.625c0,0.599,0.484,1.083,1.083,1.083s1.083-0.484,1.083-1.083s-0.484-1.084-1.083-1.084S16.582,7.026,16.582,7.625zM13.667,7.792c0.276,0,0.5-0.224,0.5-0.5s-0.224-0.5-0.5-0.5s-0.5,0.224-0.5,0.5S13.391,7.792,13.667,7.792zM15.584,5.292c0.874,0,1.583-0.709,1.583-1.583c0-0.875-0.709-1.584-1.583-1.584C14.709,2.125,14,2.834,14,3.709C14,4.583,14.709,5.292,15.584,5.292z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Lamp.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Lamp.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Lamp();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Lamp = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Lamp.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Lamp\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.5,2.833c-3.866,0-7,3.134-7,7c0,3.859,3.945,4.937,4.223,9.499h5.553c0.278-4.562,4.224-5.639,4.224-9.499C22.5,5.968,19.366,2.833,15.5,2.833zM15.5,28.166c1.894,0,2.483-1.027,2.667-1.666h-5.334C13.017,27.139,13.606,28.166,15.5,28.166zM12.75,25.498h5.5v-5.164h-5.5V25.498z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Lamp_alt.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Lamp_alt.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Lamp_alt();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Lamp_alt = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Lamp_alt.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Lamp_alt\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M12.75,25.498h5.5v-5.164h-5.5V25.498zM15.5,28.166c1.894,0,2.483-1.027,2.667-1.666h-5.334C13.017,27.139,13.606,28.166,15.5,28.166zM15.5,2.833c-3.866,0-7,3.134-7,7c0,3.859,3.945,4.937,4.223,9.499h1.271c-0.009-0.025-0.024-0.049-0.029-0.078L11.965,8.256c-0.043-0.245,0.099-0.485,0.335-0.563c0.237-0.078,0.494,0.026,0.605,0.25l0.553,1.106l0.553-1.106c0.084-0.17,0.257-0.277,0.446-0.277c0.189,0,0.362,0.107,0.446,0.277l0.553,1.106l0.553-1.106c0.084-0.17,0.257-0.277,0.448-0.277c0.189,0,0.36,0.107,0.446,0.277l0.554,1.106l0.553-1.106c0.111-0.224,0.368-0.329,0.604-0.25s0.377,0.318,0.333,0.563l-1.999,10.998c-0.005,0.029-0.02,0.053-0.029,0.078h1.356c0.278-4.562,4.224-5.639,4.224-9.499C22.5,5.968,19.366,2.833,15.5,2.833zM17.458,10.666c-0.191,0-0.364-0.107-0.446-0.275l-0.554-1.106l-0.553,1.106c-0.086,0.168-0.257,0.275-0.446,0.275c-0.191,0-0.364-0.107-0.449-0.275l-0.553-1.106l-0.553,1.106c-0.084,0.168-0.257,0.275-0.446,0.275c-0.012,0-0.025,0-0.037-0.001l1.454,8.001h1.167l1.454-8.001C17.482,10.666,17.47,10.666,17.458,10.666z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Landing.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Landing.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Landing();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Landing = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Landing.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Landing\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M23.322,19.491c0,0,1.903,0.342,0.299-1.869c-1.353-1.866-5.261-3.104-5.261-3.104l-4.213-8.229l-2.47-0.394l0.973,5.449L9.241,10.11L8.772,7.273L7.008,6.302c0,0-0.496,2.742-0.149,5.271C6.859,11.573,13.965,17.999,23.322,19.491zM3.251,23.106v1.998h24.498v-1.998H3.251zM14,17.94c0,0.414,0.336,0.75,0.75,0.75s0.75-0.336,0.75-0.75s-0.336-0.75-0.75-0.75S14,17.526,14,17.94z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Landscape1.js\":\n/*!**************************************!*\\\n !*** ./src/shape/icon/Landscape1.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Landscape1();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Landscape1 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Landscape1.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Landscape1\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M19.883,5.71H2.746c-0.163,0-0.319,0.071-0.435,0.188c-0.118,0.117-0.18,0.272-0.18,0.435v18.364c0,0.164,0.063,0.318,0.18,0.436c0.123,0.117,0.287,0.18,0.435,0.18h25.75c0.164,0,0.324-0.066,0.438-0.18c0.118-0.114,0.182-0.273,0.182-0.436V14.551c-0.002-0.102-0.01-0.188-0.021-0.271c-0.186-1.543-1.543-3.424-3.236-5.168C24.039,7.31,21.869,5.753,19.883,5.71zM26.914,12.314c-0.008-0.005-0.019-0.007-0.029-0.01c-1.092-0.293-2.33-0.355-3.199-0.355c-0.162,0-0.312,0.002-0.445,0.004c-0.037-0.604-0.129-1.604-0.356-2.625c-0.11-0.461-0.246-0.94-0.433-1.42c0.857,0.541,1.748,1.264,2.535,2.068C25.74,10.718,26.41,11.551,26.914,12.314zM3.365,6.947h16.517c0.058,0,0.12,0,0.183,0.004c0.694,0.105,1.307,1.221,1.616,2.646c0.335,1.484,0.354,2.997,0.354,3l0.007,0.656l0.651-0.051c0,0,0.398-0.027,0.99-0.025c0.809,0,1.977,0.062,2.871,0.312c0.939,0.275,1.352,0.635,1.326,1.051h0.002v9.542H3.365V6.951V6.947z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Landscape2.js\":\n/*!**************************************!*\\\n !*** ./src/shape/icon/Landscape2.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Landscape2();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Landscape2 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Landscape2.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Landscape2\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M19.883,5.71H2.746c-0.163,0-0.319,0.071-0.435,0.188c-0.118,0.117-0.18,0.272-0.18,0.435v18.364c0,0.164,0.063,0.318,0.18,0.436c0.123,0.117,0.287,0.18,0.435,0.18h25.75c0.164,0,0.324-0.066,0.438-0.18c0.118-0.114,0.182-0.273,0.182-0.436V14.551c-0.002-0.102-0.01-0.188-0.021-0.271c-0.186-1.543-1.543-3.424-3.236-5.168C24.039,7.31,21.869,5.753,19.883,5.71zM3.365,6.947h16.517c0.058,0,0.12,0,0.183,0.004c0.694,0.105,1.307,1.221,1.616,2.646c0.335,1.484,0.354,2.997,0.354,3l0.007,0.656l0.651-0.051c0,0,0.398-0.027,0.99-0.025c0.809,0,1.977,0.062,2.871,0.312c0.939,0.275,1.352,0.635,1.326,1.051h0.002v9.542H3.365V6.951V6.947z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/LineChart.js\":\n/*!*************************************!*\\\n !*** ./src/shape/icon/LineChart.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.LineChart();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.LineChart = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.LineChart.prototype */\n{\n\n NAME: \"draw2d.shape.icon.LineChart\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M3.625,25.062c-0.539-0.115-0.885-0.646-0.77-1.187l0,0L6.51,6.584l2.267,9.259l1.923-5.188l3.581,3.741l3.883-13.103l2.934,11.734l1.96-1.509l5.271,11.74c0.226,0.504,0,1.095-0.505,1.321l0,0c-0.505,0.227-1.096,0-1.322-0.504l0,0l-4.23-9.428l-2.374,1.826l-1.896-7.596l-2.783,9.393l-3.754-3.924L8.386,22.66l-1.731-7.083l-1.843,8.711c-0.101,0.472-0.515,0.794-0.979,0.794l0,0C3.765,25.083,3.695,25.076,3.625,25.062L3.625,25.062z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Link.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Link.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Link();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Link = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Link.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Link\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16.45,18.085l-2.47,2.471c0.054,1.023-0.297,2.062-1.078,2.846c-1.465,1.459-3.837,1.459-5.302-0.002c-1.461-1.465-1.46-3.836-0.001-5.301c0.783-0.781,1.824-1.131,2.847-1.078l2.469-2.469c-2.463-1.057-5.425-0.586-7.438,1.426c-2.634,2.637-2.636,6.907,0,9.545c2.638,2.637,6.909,2.635,9.545,0l0.001,0.002C17.033,23.511,17.506,20.548,16.45,18.085zM14.552,12.915l2.467-2.469c-0.053-1.023,0.297-2.062,1.078-2.848C19.564,6.139,21.934,6.137,23.4,7.6c1.462,1.465,1.462,3.837,0,5.301c-0.783,0.783-1.822,1.132-2.846,1.079l-2.469,2.468c2.463,1.057,5.424,0.584,7.438-1.424c2.634-2.639,2.633-6.91,0-9.546c-2.639-2.636-6.91-2.637-9.545-0.001C13.967,7.489,13.495,10.451,14.552,12.915zM18.152,10.727l-7.424,7.426c-0.585,0.584-0.587,1.535,0,2.121c0.585,0.584,1.536,0.584,2.121-0.002l7.425-7.424c0.584-0.586,0.584-1.535,0-2.121C19.687,10.141,18.736,10.142,18.152,10.727z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/LinkedIn.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/LinkedIn.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.LinkedIn();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.LinkedIn = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.LinkedIn.prototype */\n{\n\n NAME: \"draw2d.shape.icon.LinkedIn\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M27.25,3.125h-22c-1.104,0-2,0.896-2,2v22c0,1.104,0.896,2,2,2h22c1.104,0,2-0.896,2-2v-22C29.25,4.021,28.354,3.125,27.25,3.125zM11.219,26.781h-4v-14h4V26.781zM9.219,11.281c-1.383,0-2.5-1.119-2.5-2.5s1.117-2.5,2.5-2.5s2.5,1.119,2.5,2.5S10.602,11.281,9.219,11.281zM25.219,26.781h-4v-8.5c0-0.4-0.403-1.055-0.687-1.213c-0.375-0.211-1.261-0.229-1.665-0.034l-1.648,0.793v8.954h-4v-14h4v0.614c1.583-0.723,3.78-0.652,5.27,0.184c1.582,0.886,2.73,2.864,2.73,4.702V26.781z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Linux.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Linux.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Linux();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Linux = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Linux.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Linux\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M11.791,25.229c1.027-0.104,1.162-1.191,0.68-1.666c-0.398-0.392-2.598-2.022-3.171-2.664C9.033,20.6,8.673,20.454,8.52,20.12c-0.352-0.771-0.598-1.869-0.151-2.658c0.081-0.144,0.133-0.078,0.071,0.22c-0.351,1.684,0.746,3.059,0.986,2.354c0.167-0.487,0.013-1.358,0.102-2.051c0.158-1.226,1.273-3.577,1.763-3.712c-0.755-1.398,0.886-2.494,0.866-3.723c-0.014-0.798,0.701,0.982,1.419,1.359c0.802,0.422,1.684-0.794,2.936-1.41c0.354-0.176,0.809-0.376,0.776-0.524c-0.146-0.718-1.644,0.886-2.979,0.939c-0.61,0.024-0.837-0.12-1.072-0.347c-0.712-0.689,0.073-0.115,1.132-0.307c0.471-0.085,0.629-0.163,1.128-0.365c0.5-0.201,1.069-0.5,1.636-0.654c0.395-0.106,0.361-0.402,0.208-0.491c-0.088-0.051-0.219-0.046-0.321,0.133c-0.244,0.419-1.383,0.661-1.74,0.771c-0.457,0.14-0.962,0.271-1.634,0.243c-1.021-0.042-0.782-0.509-1.513-0.928c-0.213-0.122-0.156-0.444,0.129-0.729c0.148-0.148,0.557-0.232,0.76-0.572c0.028-0.047,0.289-0.32,0.494-0.461c0.07-0.049,0.076-1.295-0.562-1.32c-0.543-0.021-0.697,0.398-0.675,0.818c0.022,0.419,0.245,0.765,0.393,0.764c0.285-0.004,0.019,0.311-0.138,0.361c-0.237,0.078-0.562-0.934-0.525-1.418c0.039-0.506,0.303-1.4,0.942-1.383c0.576,0.016,0.993,0.737,0.973,1.983c-0.003,0.211,0.935-0.101,1.247,0.229c0.224,0.236-0.767-2.207,1.438-2.375c0.582,0.111,1.14,0.305,1.371,1.641c-0.086,0.139,0.146,1.07-0.215,1.182c-0.438,0.135-0.707-0.02-0.453-0.438c0.172-0.418,0.004-1.483-0.882-1.42c-0.887,0.064-0.769,1.637-0.526,1.668c0.243,0.031,0.854,0.465,1.282,0.549c1.401,0.271,0.371,1.075,0.555,2.048c0.205,1.099,0.929,0.809,1.578,3.717c0.137,0.177,0.676,0.345,1.199,2.579c0.473,2.011-0.195,3.473,0.938,3.353c0.256-0.026,0.629-0.1,0.792-0.668c0.425-1.489-0.213-3.263-0.855-4.46c-0.375-0.698-0.729-1.174-0.916-1.337c0.738,0.436,1.683,1.829,1.898,2.862c0.286,1.358,0.49,1.934,0.059,3.37c0.25,0.125,0.871,0.39,0.871,0.685c-0.647-0.53-2.629-0.625-2.68,0.646c-0.338,0.008-0.594,0.034-0.811,0.293c-0.797,0.944-0.059,2.842-0.139,3.859c-0.07,0.896-0.318,1.783-0.46,2.683c-0.474-0.019-0.428-0.364-0.274-0.852c0.135-0.431,0.351-0.968,0.365-1.484c0.012-0.467-0.039-0.759-0.156-0.831c-0.118-0.072-0.303,0.074-0.559,0.485c-0.543,0.875-1.722,1.261-2.821,1.397c-1.099,0.138-2.123,0.028-2.664-0.578c-0.186-0.207-0.492,0.058-0.529,0.111c-0.049,0.074,0.18,0.219,0.352,0.533c0.251,0.461,0.49,1.159-0.105,1.479C12.83,26.314,12.316,26.221,11.791,25.229L11.791,25.229zM11.398,25.188c0.395,0.621,1.783,3.232-0.652,3.571c-0.814,0.114-2.125-0.474-3.396-0.784c-1.142-0.279-2.301-0.444-2.949-0.627c-0.391-0.108-0.554-0.25-0.588-0.414c-0.091-0.434,0.474-1.041,0.503-1.555c0.028-0.514-0.188-0.779-0.364-1.199c-0.177-0.42-0.224-0.734-0.081-0.914c0.109-0.141,0.334-0.199,0.698-0.164c0.462,0.047,1.02-0.049,1.319-0.23c0.505-0.309,0.742-0.939,0.516-1.699c0,0.744-0.244,1.025-0.855,1.366c-0.577,0.319-1.467,0.062-1.875,0.416c-0.492,0.427,0.175,1.528,0.12,2.338c-0.042,0.622-0.69,1.322-0.401,1.946c0.291,0.627,1.648,0.695,3.064,0.99c2.012,0.422,3.184,1.153,4.113,1.188c1.356,0.05,1.564-1.342,3.693-1.36c0.621-0.033,1.229-0.052,1.835-0.06c0.688-0.009,1.375-0.003,2.079,0.014c1.417,0.034,0.931,0.773,1.851,1.246c0.774,0.397,2.17,0.241,2.504-0.077c0.451-0.431,1.662-1.467,2.592-1.935c1.156-0.583,3.876-1.588,1.902-2.812c-0.461-0.285-1.547-0.588-1.639-2.676c-0.412,0.366-0.365,2.312,0.784,2.697c1.283,0.431,2.085,1.152-0.301,1.969c-1.58,0.54-1.849,0.706-3.099,1.747c-1.267,1.054-3.145,0.636-2.815-1.582c0.171-1.155,0.269-2.11-0.019-3.114c-0.142-0.49-0.211-1.119-0.114-1.562c0.187-0.858,0.651-1.117,1.106-0.293c0.285,0.519,0.385,1.122,1.408,1.171c1.607,0.077,1.926-1.553,2.439-1.627c0.343-0.05,0.686-1.02,0.425-2.589c-0.28-1.681-1.269-4.332-2.536-5.677c-1.053-1.118-1.717-2.098-2.135-3.497c-0.352-1.175-0.547-2.318-0.475-3.412c0.094-1.417-0.691-3.389-1.943-4.316c-0.782-0.581-2.011-0.893-3.122-0.88c-0.623,0.007-1.21,0.099-1.661,0.343c-1.855,1.008-2.113,2.445-2.086,4.088c0.025,1.543,0.078,3.303,0.254,4.977c-0.208,0.77-1.288,2.227-1.979,3.114C8.59,14.233,8.121,16.01,7.52,17.561c-0.321,0.828-0.862,1.2-0.908,2.265C6.6,20.122,6.61,20.891,6.894,20.672C7.98,19.829,9.343,21.95,11.398,25.188L11.398,25.188zM17.044,2.953c-0.06,0.176-0.3,0.321-0.146,0.443c0.152,0.123,0.24-0.171,0.549-0.281c0.08-0.028,0.449,0.012,0.519-0.164c0.03-0.077-0.19-0.164-0.321-0.291c-0.133-0.125-0.262-0.236-0.386-0.229C16.938,2.451,17.096,2.798,17.044,2.953L17.044,2.953zM18.934,9.35c0.115-0.121,0.174,0.207,0.483,0.402c0.244,0.154,0.481,0.04,0.545,0.354c0.044,0.225-0.097,0.467-0.284,0.436C19.35,10.486,18.596,9.705,18.934,9.35L18.934,9.35zM13.832,7.375c-0.508-0.037-0.543,0.33-0.375,0.324C13.629,7.693,13.523,7.408,13.832,7.375L13.832,7.375zM12.96,6.436c0.06-0.013,0.146,0.09,0.119,0.233c-0.037,0.199-0.021,0.324,0.117,0.325c0.022,0,0.048-0.005,0.056-0.057c0.066-0.396-0.14-0.688-0.225-0.711C12.834,6.178,12.857,6.458,12.96,6.436L12.96,6.436zM16.663,6.268c0.129,0.039,0.253,0.262,0.28,0.504c0.002,0.021,0.168-0.035,0.17-0.088c0.011-0.389-0.321-0.571-0.408-0.562C16.506,6.139,16.562,6.238,16.663,6.268L16.663,6.268zM14.765,7.423c0.463-0.214,0.625,0.118,0.465,0.171C15.066,7.648,15.065,7.345,14.765,7.423L14.765,7.423zM9.178,15.304c-0.219-0.026,0.063-0.19,0.184-0.397c0.131-0.227,0.105-0.511,0.244-0.469s0.061,0.2-0.033,0.461C9.491,15.121,9.258,15.313,9.178,15.304L9.178,15.304z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/List.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/List.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.List();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.List = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.List.prototype */\n{\n\n NAME: \"draw2d.shape.icon.List\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M4.082,4.083v2.999h22.835V4.083H4.082zM4.082,20.306h22.835v-2.999H4.082V20.306zM4.082,13.694h22.835v-2.999H4.082V13.694zM4.082,26.917h22.835v-2.999H4.082V26.917z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Location.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Location.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Location();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Location = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Location.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Location\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,3.5c-4.142,0-7.5,3.358-7.5,7.5c0,4.143,7.5,18.121,7.5,18.121S23.5,15.143,23.5,11C23.5,6.858,20.143,3.5,16,3.5z M16,14.584c-1.979,0-3.584-1.604-3.584-3.584S14.021,7.416,16,7.416S19.584,9.021,19.584,11S17.979,14.584,16,14.584z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Lock.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Lock.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Lock();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Lock = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Lock.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Lock\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M22.335,12.833V9.999h-0.001C22.333,6.501,19.498,3.666,16,3.666S9.666,6.502,9.666,10h0v2.833H7.375V25h17.25V12.833H22.335zM11.667,10C11.667,10,11.667,10,11.667,10c0-2.39,1.944-4.334,4.333-4.334c2.391,0,4.335,1.944,4.335,4.333c0,0,0,0,0,0v2.834h-8.668V10z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Locked.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Locked.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Locked();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Locked = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Locked.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Locked\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M26.711,14.085L16.914,4.29c-0.778-0.778-2.051-0.778-2.829,0L4.29,14.086c-0.778,0.778-0.778,2.05,0,2.829l9.796,9.796c0.778,0.777,2.051,0.777,2.829,0l9.797-9.797C27.488,16.136,27.488,14.863,26.711,14.085zM8.218,16.424c-0.4-0.153-0.687-0.533-0.687-0.987s0.287-0.834,0.687-0.987V16.424zM8.969,16.424v-1.974c0.4,0.152,0.687,0.533,0.687,0.987S9.369,16.272,8.969,16.424zM13.5,19.188l1.203-3.609c-0.689-0.306-1.172-0.994-1.172-1.797c0-1.087,0.881-1.969,1.969-1.969c1.087,0,1.969,0.881,1.969,1.969c0,0.803-0.482,1.491-1.172,1.797l1.203,3.609H13.5zM22.03,16.549c-0.399-0.152-0.687-0.533-0.687-0.986s0.287-0.834,0.687-0.987V16.549zM22.781,16.549v-1.973c0.4,0.152,0.688,0.533,0.688,0.987S23.182,16.397,22.781,16.549z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Magic.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Magic.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Magic();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Magic = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Magic.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Magic\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M23.043,4.649l-0.404-2.312l-1.59,1.727l-2.323-0.33l1.151,2.045l-1.032,2.108l2.302-0.463l1.686,1.633l0.271-2.332l2.074-1.099L23.043,4.649zM26.217,18.198l-0.182-1.25l-0.882,0.905l-1.245-0.214l0.588,1.118l-0.588,1.118l1.245-0.214l0.882,0.905l0.182-1.25l1.133-0.56L26.217,18.198zM4.92,7.672L5.868,7.3l0.844,0.569L6.65,6.853l0.802-0.627L6.467,5.97L6.118,5.013L5.571,5.872L4.553,5.908l0.647,0.786L4.92,7.672zM10.439,10.505l1.021-1.096l1.481,0.219l-0.727-1.31l0.667-1.341l-1.47,0.287l-1.069-1.048L10.16,7.703L8.832,8.396l1.358,0.632L10.439,10.505zM17.234,12.721c-0.588-0.368-1.172-0.618-1.692-0.729c-0.492-0.089-1.039-0.149-1.425,0.374L2.562,30.788h6.68l9.669-15.416c0.303-0.576,0.012-1.041-0.283-1.447C18.303,13.508,17.822,13.09,17.234,12.721zM13.613,21.936c-0.254-0.396-0.74-0.857-1.373-1.254c-0.632-0.396-1.258-0.634-1.726-0.69l4.421-7.052c0.064-0.013,0.262-0.021,0.543,0.066c0.346,0.092,0.785,0.285,1.225,0.562c0.504,0.313,0.908,0.677,1.133,0.97c0.113,0.145,0.178,0.271,0.195,0.335c0.002,0.006,0.004,0.011,0.004,0.015L13.613,21.936z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Magnet.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Magnet.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Magnet();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Magnet = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Magnet.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Magnet\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M20.812,19.5h5.002v-6.867c-0.028-1.706-0.61-3.807-2.172-5.841c-1.539-2.014-4.315-3.72-7.939-3.687C12.076,3.073,9.3,4.779,7.762,6.792C6.2,8.826,5.617,10.928,5.588,12.634V19.5h5v-6.866c-0.027-0.377,0.303-1.789,1.099-2.748c0.819-0.979,1.848-1.747,4.014-1.778c2.165,0.032,3.195,0.799,4.013,1.778c0.798,0.959,1.126,2.372,1.099,2.748V19.5L20.812,19.5zM25.814,25.579c0,0,0-2.354,0-5.079h-5.002c0,2.727,0,5.08,0,5.08l5.004-0.001H25.814zM5.588,25.58h5c0,0,0-2.354,0-5.08h-5C5.588,23.227,5.588,25.58,5.588,25.58z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Mail.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Mail.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Mail();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Mail = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Mail.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Mail\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.516,7.167H3.482l12.517,7.108L28.516,7.167zM16.74,17.303C16.51,17.434,16.255,17.5,16,17.5s-0.51-0.066-0.741-0.197L2.5,10.06v14.773h27V10.06L16.74,17.303z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Man.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Man.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Man();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Man = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Man.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Man\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M21.021,16.349c-0.611-1.104-1.359-1.998-2.109-2.623c-0.875,0.641-1.941,1.031-3.103,1.031c-1.164,0-2.231-0.391-3.105-1.031c-0.75,0.625-1.498,1.519-2.111,2.623c-1.422,2.563-1.578,5.192-0.35,5.874c0.55,0.307,1.127,0.078,1.723-0.496c-0.105,0.582-0.166,1.213-0.166,1.873c0,2.932,1.139,5.307,2.543,5.307c0.846,0,1.265-0.865,1.466-2.189c0.201,1.324,0.62,2.189,1.463,2.189c1.406,0,2.545-2.375,2.545-5.307c0-0.66-0.061-1.291-0.168-1.873c0.598,0.574,1.174,0.803,1.725,0.496C22.602,21.541,22.443,18.912,21.021,16.349zM15.808,13.757c2.362,0,4.278-1.916,4.278-4.279s-1.916-4.279-4.278-4.279c-2.363,0-4.28,1.916-4.28,4.279S13.445,13.757,15.808,13.757z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Merge.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Merge.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Merge();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Merge = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Merge.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Merge\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M29.342,15.5l-7.556-4.363v2.613h-1.411c-0.788-0.01-1.331-0.241-2.019-0.743c-1.021-0.745-2.094-2.181-3.551-3.568C13.367,8.06,11.291,6.73,8.5,6.749H2.812v3.5H8.5c2.231,0.012,3.441,1.185,5.07,2.934c0.697,0.753,1.428,1.58,2.324,2.323c-1.396,1.165-2.412,2.516-3.484,3.501c-1.183,1.081-2.202,1.723-3.912,1.741H2.813v3.5h5.716c3.752,0.001,6.035-2.319,7.619-4.066c0.817-0.895,1.537-1.691,2.209-2.191c0.686-0.502,1.23-0.732,2.017-0.742h1.412v2.614L29.342,15.5z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Mic.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Mic.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Mic();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Mic = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Mic.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Mic\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.5,21.125c2.682,0,4.875-2.25,4.875-5V5.875c0-2.75-2.193-5-4.875-5s-4.875,2.25-4.875,5v10.25C10.625,18.875,12.818,21.125,15.5,21.125zM21.376,11v5.125c0,3.308-2.636,6-5.876,6s-5.875-2.691-5.875-6V11H6.626v5.125c0,4.443,3.194,8.132,7.372,8.861v2.139h-3.372v3h9.749v-3h-3.376v-2.139c4.181-0.727,7.375-4.418,7.375-8.861V11H21.376z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/MicMute.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/MicMute.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.MicMute();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.MicMute = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.MicMute.prototype */\n{\n\n NAME: \"draw2d.shape.icon.MicMute\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M10.121,18.529c-0.317-0.736-0.496-1.549-0.496-2.404V11H6.626v5.125c0,1.693,0.466,3.275,1.272,4.627L10.121,18.529zM20.375,8.276V5.875c0-2.75-2.193-5-4.875-5s-4.875,2.25-4.875,5v10.25c0,0.568,0.113,1.105,0.285,1.615L20.375,8.276zM21.376,12.931v3.195c0,3.308-2.636,6-5.876,6c-0.958,0-1.861-0.24-2.661-0.657l-2.179,2.179c0.995,0.659,2.123,1.128,3.338,1.34v2.139h-3.372v3h9.749v-3h-3.376v-2.139c4.181-0.727,7.375-4.418,7.375-8.861V11h-1.068L21.376,12.931zM20.375,16.125v-2.194l-6.788,6.788c0.588,0.26,1.234,0.405,1.913,0.405C18.182,21.125,20.375,18.875,20.375,16.125zM25.542,4.522L4.855,25.209l1.415,1.416L26.956,5.937L25.542,4.522z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Minus.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Minus.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Minus();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Minus = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Minus.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Minus\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.979,12.896,5.979,12.896,5.979,19.562,25.979,19.562z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/NewWindow.js\":\n/*!*************************************!*\\\n !*** ./src/shape/icon/NewWindow.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.NewWindow();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.NewWindow = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.NewWindow.prototype */\n{\n\n NAME: \"draw2d.shape.icon.NewWindow\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M5.896,5.333V21.25h23.417V5.333H5.896zM26.312,18.25H8.896V8.334h17.417V18.25L26.312,18.25zM4.896,9.542H1.687v15.917h23.417V22.25H4.896V9.542z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/No.js\":\n/*!******************************!*\\\n !*** ./src/shape/icon/No.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.No();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.No = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.No.prototype */\n{\n\n NAME: \"draw2d.shape.icon.No\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,2.939C9.006,2.942,3.338,8.61,3.335,15.605C3.335,22.6,9.005,28.268,16,28.27c6.994-0.002,12.662-5.67,12.664-12.664C28.663,8.61,22.995,2.939,16,2.939zM25.663,15.605c-0.003,1.943-0.583,3.748-1.569,5.264L10.736,7.513c1.515-0.988,3.32-1.569,5.265-1.573C21.337,5.951,25.654,10.269,25.663,15.605zM6.335,15.605c0.004-1.943,0.584-3.75,1.573-5.266l13.355,13.357c-1.516,0.986-3.32,1.566-5.264,1.569C10.664,25.26,6.346,20.941,6.335,15.605z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/NoMagnet.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/NoMagnet.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.NoMagnet();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.NoMagnet = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.NoMagnet.prototype */\n{\n\n NAME: \"draw2d.shape.icon.NoMagnet\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M10.59,17.857v-5.225c-0.027-0.376,0.303-1.789,1.099-2.748c0.819-0.979,1.849-1.748,4.014-1.778c1.704,0.026,2.699,0.508,3.447,1.189l3.539-3.539c-1.616-1.526-4.01-2.679-6.986-2.652C12.077,3.073,9.3,4.779,7.762,6.793C6.2,8.826,5.617,10.928,5.59,12.634V19.5h3.357L10.59,17.857zM5.59,20.5v2.357L7.947,20.5H5.59zM20.812,13.29v6.21h5.002v-6.866c-0.021-1.064-0.252-2.283-0.803-3.542L20.812,13.29zM25.339,4.522L4.652,25.209l1.415,1.416L26.753,5.937L25.339,4.522zM20.812,25.58h5.002c0,0,0-2.354,0-5.08h-5.002C20.812,23.227,20.812,25.58,20.812,25.58zM10.59,25.58c0,0,0-0.827,0-2.064L8.525,25.58H10.59z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/NodeJs.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/NodeJs.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.NodeJs();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.NodeJs = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.NodeJs.prototype */\n{\n\n NAME: \"draw2d.shape.icon.NodeJs\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M4.783,4.458L2.59,3.196C2.553,3.174,2.511,3.163,2.469,3.161H2.447C2.405,3.163,2.363,3.174,2.326,3.196L0.133,4.458C0.051,4.505,0,4.593,0,4.688l0.005,3.398c0,0.047,0.024,0.092,0.066,0.114c0.041,0.024,0.091,0.024,0.132,0l1.303-0.746c0.083-0.049,0.132-0.136,0.132-0.229V5.637c0-0.095,0.05-0.183,0.132-0.229l0.555-0.32c0.041-0.023,0.086-0.035,0.132-0.035c0.045,0,0.092,0.012,0.132,0.035l0.555,0.32c0.082,0.047,0.133,0.135,0.133,0.229v1.588c0,0.094,0.051,0.182,0.132,0.229l1.303,0.746c0.041,0.024,0.092,0.024,0.132,0c0.041-0.022,0.066-0.067,0.066-0.114l0.004-3.398C4.915,4.593,4.865,4.505,4.783,4.458zM17.93,0.745l-1.305-0.729c-0.042-0.023-0.091-0.022-0.132,0.001c-0.041,0.024-0.065,0.067-0.065,0.114v3.365c0,0.033-0.018,0.064-0.046,0.081s-0.064,0.017-0.093,0l-0.549-0.316c-0.082-0.047-0.183-0.047-0.265,0l-2.193,1.266c-0.082,0.047-0.133,0.135-0.133,0.229V7.29c0,0.095,0.051,0.182,0.132,0.229l2.194,1.267c0.082,0.048,0.183,0.048,0.265,0l2.194-1.267c0.082-0.048,0.133-0.135,0.133-0.229V0.977C18.066,0.88,18.014,0.792,17.93,0.745zM16.421,6.458c0,0.023-0.013,0.045-0.033,0.057l-0.753,0.435c-0.021,0.012-0.045,0.012-0.066,0l-0.753-0.435c-0.021-0.012-0.033-0.034-0.033-0.057v-0.87c0-0.023,0.013-0.045,0.033-0.058l0.753-0.435c0.021-0.012,0.045-0.012,0.066,0l0.753,0.435c0.021,0.012,0.033,0.034,0.033,0.058V6.458zM24.473,4.493l-2.18-1.266c-0.082-0.047-0.183-0.048-0.265,0l-2.193,1.266c-0.082,0.047-0.132,0.135-0.132,0.229v2.532c0,0.096,0.051,0.184,0.133,0.23l2.18,1.242c0.08,0.045,0.179,0.046,0.26,0.001l1.318-0.732c0.042-0.023,0.067-0.067,0.068-0.115c0-0.048-0.025-0.092-0.066-0.116l-2.207-1.266c-0.041-0.023-0.066-0.067-0.066-0.115V5.59c0-0.047,0.025-0.091,0.065-0.115l0.688-0.396c0.041-0.024,0.091-0.024,0.132,0l0.688,0.396c0.041,0.023,0.066,0.067,0.066,0.115v0.625c0,0.047,0.025,0.091,0.066,0.114c0.041,0.024,0.092,0.024,0.132,0l1.314-0.764c0.081-0.047,0.132-0.135,0.132-0.229V4.722C24.605,4.628,24.555,4.541,24.473,4.493zM11.363,4.48L9.169,3.214c-0.082-0.047-0.183-0.047-0.265,0L6.711,4.48C6.629,4.527,6.579,4.615,6.579,4.709v2.534c0,0.095,0.051,0.182,0.133,0.229l2.193,1.267c0.082,0.048,0.183,0.048,0.265,0l2.193-1.267c0.082-0.048,0.132-0.135,0.132-0.229V4.709C11.495,4.615,11.445,4.527,11.363,4.48zM31.019,4.382L28.95,3.187c-0.13-0.074-0.304-0.074-0.435,0l-2.068,1.195c-0.135,0.077-0.218,0.222-0.218,0.377v2.386c0,0.156,0.083,0.301,0.218,0.378l0.542,0.312c0.263,0.13,0.356,0.13,0.477,0.13c0.389,0,0.612-0.236,0.612-0.646V4.962c0-0.033-0.027-0.06-0.06-0.06h-0.263c-0.033,0-0.061,0.026-0.061,0.06v2.356c0,0.182-0.188,0.363-0.495,0.209l-0.566-0.326c-0.021-0.012-0.033-0.033-0.033-0.057V4.759c0-0.023,0.013-0.045,0.033-0.057l2.067-1.193c0.019-0.011,0.044-0.011,0.063,0l2.067,1.193c0.02,0.012,0.032,0.034,0.032,0.057v2.386c0,0.023-0.013,0.046-0.032,0.057l-2.068,1.193c-0.018,0.012-0.045,0.012-0.063,0l-0.53-0.314c-0.017-0.01-0.036-0.013-0.052-0.004c-0.146,0.083-0.175,0.094-0.312,0.143c-0.034,0.012-0.084,0.031,0.019,0.09l0.691,0.408c0.065,0.038,0.141,0.059,0.217,0.059s0.151-0.021,0.218-0.059l2.068-1.194c0.134-0.078,0.217-0.222,0.217-0.378V4.759C31.235,4.604,31.152,4.459,31.019,4.382zM29.371,6.768c-0.548,0-0.668-0.138-0.708-0.41c-0.005-0.029-0.029-0.051-0.06-0.051h-0.268c-0.033,0-0.06,0.026-0.06,0.06c0,0.349,0.189,0.765,1.095,0.765c0.655,0,1.031-0.259,1.031-0.709c0-0.447-0.302-0.566-0.938-0.65c-0.643-0.085-0.708-0.128-0.708-0.279c0-0.125,0.056-0.29,0.531-0.29c0.425,0,0.581,0.091,0.646,0.378c0.006,0.027,0.03,0.047,0.059,0.047h0.269c0.017,0,0.032-0.007,0.044-0.019c0.011-0.013,0.017-0.029,0.016-0.046c-0.042-0.493-0.37-0.723-1.032-0.723c-0.59,0-0.941,0.249-0.941,0.666c0,0.453,0.35,0.578,0.916,0.634c0.677,0.066,0.729,0.166,0.729,0.298C29.992,6.669,29.807,6.768,29.371,6.768zM22.128,5.446l-0.42,0.243c-0.016,0.009-0.025,0.026-0.025,0.044v0.486c0,0.019,0.01,0.035,0.025,0.044l0.42,0.243c0.016,0.009,0.035,0.009,0.052,0l0.421-0.243c0.016-0.009,0.025-0.025,0.025-0.044V5.733c0-0.018-0.01-0.035-0.025-0.044L22.18,5.446C22.163,5.438,22.144,5.438,22.128,5.446z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Notebook.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Notebook.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Notebook();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Notebook = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Notebook.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Notebook\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.875,1.375H8c-1.033,0-1.874,0.787-1.979,1.792h1.604c1.102,0,2,0.898,2,2c0,1.102-0.898,2-2,2H6v0.999h1.625c1.104,0,2.002,0.898,2.002,2.002c0,1.104-0.898,2.001-2.002,2.001H6v0.997h1.625c1.102,0,2,0.898,2,2c0,1.104-0.898,2.004-2,2.004H6v0.994h1.625c1.102,0,2,0.898,2,2.002s-0.898,2.002-2,2.002H6v0.997h1.624c1.104,0,2.002,0.897,2.002,2.001c0,1.104-0.898,2.002-2.002,2.002H6.004C6.027,28.252,6.91,29.125,8,29.125h16.875c1.104,0,2-0.896,2-2V3.375C26.875,2.271,25.979,1.375,24.875,1.375zM25.25,8.375c0,0.552-0.447,1-1,1H14c-0.553,0-1-0.448-1-1V4c0-0.552,0.447-1,1-1h10.25c0.553,0,1,0.448,1,1V8.375zM8.625,25.166c0-0.554-0.449-1.001-1-1.001h-3.25c-0.552,0-1,0.447-1,1.001c0,0.552,0.449,1,1,1h3.25C8.176,26.166,8.625,25.718,8.625,25.166zM4.375,6.166h3.251c0.551,0,0.999-0.448,0.999-0.999c0-0.555-0.448-1-0.999-1H4.375c-0.553,0-1,0.445-1,1C3.374,5.718,3.822,6.166,4.375,6.166zM4.375,11.167h3.25c0.553,0,1-0.448,1-1s-0.448-1-1-1h-3.25c-0.553,0-1,0.448-1,1S3.822,11.167,4.375,11.167zM4.375,16.167h3.25c0.551,0,1-0.448,1-1.001s-0.448-0.999-1-0.999h-3.25c-0.553,0-1.001,0.446-1.001,0.999S3.822,16.167,4.375,16.167zM3.375,20.165c0,0.553,0.446,1.002,1,1.002h3.25c0.551,0,1-0.449,1-1.002c0-0.552-0.448-1-1-1h-3.25C3.821,19.165,3.375,19.613,3.375,20.165z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Noview.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Noview.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Noview();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Noview = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Noview.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Noview\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M11.478,17.568c-0.172-0.494-0.285-1.017-0.285-1.568c0-2.65,2.158-4.807,4.807-4.807c0.552,0,1.074,0.113,1.568,0.285l2.283-2.283C18.541,8.647,17.227,8.286,16,8.286C8.454,8.286,2.5,16,2.5,16s2.167,2.791,5.53,5.017L11.478,17.568zM23.518,11.185l-3.056,3.056c0.217,0.546,0.345,1.138,0.345,1.76c0,2.648-2.158,4.807-4.807,4.807c-0.622,0-1.213-0.128-1.76-0.345l-2.469,2.47c1.327,0.479,2.745,0.783,4.229,0.783c5.771,0,13.5-7.715,13.5-7.715S26.859,13.374,23.518,11.185zM25.542,4.917L4.855,25.604L6.27,27.02L26.956,6.332L25.542,4.917z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Opera.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Opera.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Opera();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Opera = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Opera.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Opera\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.954,2.046c-7.489,0-12.872,5.432-12.872,13.581c0,7.25,5.234,13.835,12.873,13.835c7.712,0,12.974-6.583,12.974-13.835C28.929,7.413,23.375,2.046,15.954,2.046zM15.952,26.548L15.952,26.548c-2.289,0-3.49-1.611-4.121-3.796c-0.284-1.037-0.458-2.185-0.563-3.341c-0.114-1.374-0.129-2.773-0.129-4.028c0-0.993,0.018-1.979,0.074-2.926c0.124-1.728,0.386-3.431,0.89-4.833c0.694-1.718,1.871-2.822,3.849-2.822c2.5,0,3.763,1.782,4.385,4.322c0.429,1.894,0.56,4.124,0.56,6.274c0,2.299-0.103,5.153-0.763,7.442C19.473,24.979,18.242,26.548,15.952,26.548z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Package.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Package.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Package();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Package = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Package.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Package\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M17.078,22.004l-1.758-4.129l-2.007,4.752l-7.519-3.289l0.174,3.905l9.437,4.374l10.909-5.365l-0.149-4.989L17.078,22.004zM29.454,6.619L18.521,3.383l-3.006,2.671l-3.091-2.359L1.546,8.199l3.795,3.048l-3.433,5.302l10.879,4.757l2.53-5.998l2.257,5.308l11.393-5.942l-3.105-4.709L29.454,6.619zM15.277,14.579l-9.059-3.83l9.275-4.101l9.608,3.255L15.277,14.579z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Page.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Page.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Page();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Page = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Page.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Page\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M23.024,5.673c-1.744-1.694-3.625-3.051-5.168-3.236c-0.084-0.012-0.171-0.019-0.263-0.021H7.438c-0.162,0-0.322,0.063-0.436,0.18C6.889,2.71,6.822,2.87,6.822,3.033v25.75c0,0.162,0.063,0.317,0.18,0.435c0.117,0.116,0.271,0.179,0.436,0.179h18.364c0.162,0,0.317-0.062,0.434-0.179c0.117-0.117,0.182-0.272,0.182-0.435V11.648C26.382,9.659,24.824,7.49,23.024,5.673zM25.184,28.164H8.052V3.646h9.542v0.002c0.416-0.025,0.775,0.386,1.05,1.326c0.25,0.895,0.313,2.062,0.312,2.871c0.002,0.593-0.027,0.991-0.027,0.991l-0.049,0.652l0.656,0.007c0.003,0,1.516,0.018,3,0.355c1.426,0.308,2.541,0.922,2.645,1.617c0.004,0.062,0.005,0.124,0.004,0.182V28.164z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Page2.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Page2.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Page2();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Page2 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Page2.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Page2\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M23.024,5.673c-1.744-1.694-3.625-3.051-5.168-3.236c-0.084-0.012-0.171-0.019-0.263-0.021H7.438c-0.162,0-0.322,0.063-0.436,0.18C6.889,2.71,6.822,2.87,6.822,3.033v25.75c0,0.162,0.063,0.317,0.18,0.435c0.117,0.116,0.271,0.179,0.436,0.179h18.364c0.162,0,0.317-0.062,0.434-0.179c0.117-0.117,0.182-0.272,0.182-0.435V11.648C26.382,9.659,24.824,7.49,23.024,5.673zM22.157,6.545c0.805,0.786,1.529,1.676,2.069,2.534c-0.468-0.185-0.959-0.322-1.42-0.431c-1.015-0.228-2.008-0.32-2.625-0.357c0.003-0.133,0.004-0.283,0.004-0.446c0-0.869-0.055-2.108-0.356-3.2c-0.003-0.01-0.005-0.02-0.009-0.03C20.584,5.119,21.416,5.788,22.157,6.545zM25.184,28.164H8.052V3.646h9.542v0.002c0.416-0.025,0.775,0.386,1.05,1.326c0.25,0.895,0.313,2.062,0.312,2.871c0.002,0.593-0.027,0.991-0.027,0.991l-0.049,0.652l0.656,0.007c0.003,0,1.516,0.018,3,0.355c1.426,0.308,2.541,0.922,2.645,1.617c0.004,0.062,0.005,0.124,0.004,0.182V28.164z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Pallete.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Pallete.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Pallete();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Pallete = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Pallete.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Pallete\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.653,7.25c-3.417,0-8.577,0.983-8.577,3.282c0,1.91,2.704,3.229,1.691,3.889c-1.02,0.666-2.684-1.848-4.048-1.848c-1.653,0-2.815,1.434-2.815,2.926c0,4.558,6.326,8.25,13.749,8.25c7.424,0,13.443-3.692,13.443-8.25C29.096,10.944,23.077,7.25,15.653,7.25zM10.308,13.521c0-0.645,0.887-1.166,1.98-1.166c1.093,0,1.979,0.521,1.979,1.166c0,0.644-0.886,1.166-1.979,1.166C11.195,14.687,10.308,14.164,10.308,13.521zM14.289,22.299c-1.058,0-1.914-0.68-1.914-1.518s0.856-1.518,1.914-1.518c1.057,0,1.914,0.68,1.914,1.518S15.346,22.299,14.289,22.299zM19.611,21.771c-1.057,0-1.913-0.681-1.913-1.519c0-0.84,0.856-1.521,1.913-1.521c1.059,0,1.914,0.681,1.914,1.521C21.525,21.092,20.67,21.771,19.611,21.771zM20.075,10.66c0-0.838,0.856-1.518,1.914-1.518s1.913,0.68,1.913,1.518c0,0.839-0.855,1.518-1.913,1.518C20.934,12.178,20.075,11.499,20.075,10.66zM24.275,19.482c-1.057,0-1.914-0.681-1.914-1.519s0.857-1.518,1.914-1.518c1.059,0,1.914,0.68,1.914,1.518S25.334,19.482,24.275,19.482zM25.286,15.475c-1.058,0-1.914-0.68-1.914-1.519c0-0.838,0.856-1.518,1.914-1.518c1.057,0,1.913,0.68,1.913,1.518C27.199,14.795,26.343,15.475,25.286,15.475z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Palm.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Palm.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Palm();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Palm = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Palm.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Palm\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M14.296,27.885v-2.013c0,0-0.402-1.408-1.073-2.013c-0.671-0.604-1.274-1.274-1.409-1.61c0,0-0.268,0.135-0.737-0.335s-1.812-2.616-1.812-2.616l-0.671-0.872c0,0-0.47-0.671-1.275-1.342c-0.805-0.672-0.938-0.067-1.476-0.738s0.604-1.275,1.006-1.409c0.403-0.134,1.946,0.134,2.684,0.872c0.738,0.738,0.738,0.738,0.738,0.738l1.073,1.141l0.537,0.201l0.671-1.073l-0.269-2.281c0,0-0.604-2.55-0.737-4.764c-0.135-2.214-0.47-5.703,1.006-5.837s1.007,2.55,1.073,3.489c0.067,0.938,0.806,5.232,1.208,5.568c0.402,0.335,0.671,0.066,0.671,0.066l0.402-7.514c0,0-0.479-2.438,1.073-2.549c0.939-0.067,0.872,1.543,0.872,2.147c0,0.604,0.269,7.514,0.269,7.514l0.537,0.135c0,0,0.402-2.214,0.604-3.153s0.604-2.416,0.537-3.087c-0.067-0.671-0.135-2.348,1.006-2.348s0.872,1.812,0.939,2.415s-0.134,3.153-0.134,3.757c0,0.604-0.738,3.623-0.537,3.824s2.08-2.817,2.349-3.958c0.268-1.141,0.201-3.02,1.408-2.885c1.208,0.134,0.47,2.817,0.402,3.086c-0.066,0.269-0.671,2.349-0.872,2.952s-0.805,1.476-1.006,2.013s0.402,2.349,0,4.629c-0.402,2.281-1.61,5.166-1.61,5.166l0.604,2.08c0,0-1.744,0.671-3.824,0.805C16.443,28.221,14.296,27.885,14.296,27.885z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Paper.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Paper.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Paper();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Paper = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Paper.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Paper\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.916,8.009L15.953,1.888c-0.251-0.119-0.548-0.115-0.798,0.008c-0.25,0.125-0.433,0.357-0.491,0.629c-0.002,0.01-1.04,4.83-2.578,9.636c-0.526,1.646-1.114,3.274-1.728,4.704l1.665,0.786c2-4.643,3.584-11.052,4.181-13.614l11.264,5.316c-0.346,1.513-1.233,5.223-2.42,8.927c-0.767,2.399-1.665,4.797-2.585,6.532c-0.889,1.79-1.958,2.669-2.197,2.552c-1.419,0.03-2.418-1.262-3.09-2.918c-0.32-0.803-0.53-1.63-0.657-2.246c-0.127-0.618-0.166-1.006-0.168-1.006c-0.034-0.317-0.232-0.597-0.52-0.731l-12.962-6.12c-0.301-0.142-0.654-0.11-0.925,0.081c-0.27,0.193-0.416,0.518-0.38,0.847c0.008,0.045,0.195,1.848,0.947,3.736c0.521,1.321,1.406,2.818,2.845,3.575l12.956,6.131l0.006-0.013c0.562,0.295,1.201,0.487,1.947,0.496c1.797-0.117,2.777-1.668,3.818-3.525c3-5.69,5.32-16.602,5.338-16.642C29.512,8.615,29.302,8.19,28.916,8.009z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Parent.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Parent.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Parent();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Parent = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Parent.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Parent\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M14.423,12.17c-0.875,0.641-1.941,1.031-3.102,1.031c-1.164,0-2.231-0.391-3.104-1.031c-0.75,0.625-1.498,1.519-2.111,2.623c-1.422,2.563-1.578,5.192-0.35,5.874c0.549,0.312,1.127,0.078,1.723-0.496c-0.105,0.582-0.166,1.213-0.166,1.873c0,2.938,1.139,5.312,2.543,5.312c0.846,0,1.265-0.865,1.466-2.188c0.2,1.314,0.62,2.188,1.461,2.188c1.396,0,2.545-2.375,2.545-5.312c0-0.66-0.062-1.291-0.168-1.873c0.6,0.574,1.176,0.812,1.726,0.496c1.227-0.682,1.068-3.311-0.354-5.874C15.921,13.689,15.173,12.795,14.423,12.17zM11.32,12.201c2.361,0,4.277-1.916,4.277-4.279s-1.916-4.279-4.277-4.279c-2.363,0-4.28,1.916-4.28,4.279S8.957,12.201,11.32,12.201zM21.987,17.671c1.508,0,2.732-1.225,2.732-2.735c0-1.51-1.225-2.735-2.732-2.735c-1.511,0-2.736,1.225-2.736,2.735C19.251,16.446,20.477,17.671,21.987,17.671zM25.318,19.327c-0.391-0.705-0.869-1.277-1.349-1.677c-0.56,0.41-1.24,0.659-1.982,0.659c-0.744,0-1.426-0.25-1.983-0.659c-0.479,0.399-0.958,0.972-1.35,1.677c-0.909,1.638-1.009,3.318-0.224,3.754c0.351,0.2,0.721,0.05,1.101-0.317c-0.067,0.372-0.105,0.775-0.105,1.197c0,1.878,0.728,3.396,1.625,3.396c0.54,0,0.808-0.553,0.937-1.398c0.128,0.841,0.396,1.398,0.934,1.398c0.893,0,1.627-1.518,1.627-3.396c0-0.422-0.04-0.825-0.107-1.197c0.383,0.367,0.752,0.52,1.104,0.317C26.328,22.646,26.227,20.965,25.318,19.327z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Pc.js\":\n/*!******************************!*\\\n !*** ./src/shape/icon/Pc.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Pc();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Pc = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Pc.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Pc\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M29.249,3.14h-9.188l-0.459,0.459v18.225l0.33,2.389H19.57v0.245h-0.307v-0.306h-0.611v0.244h-0.311v-0.367h-0.486v0.307h-1.104l-2.022-0.367v-0.92h0.858l0.302-1.47h2.728c0.188,0,0.339-0.152,0.339-0.339V7.828c0-0.187-0.149-0.338-0.339-0.338H1.591c-0.187,0-0.339,0.152-0.339,0.338V21.24c0,0.187,0.152,0.339,0.339,0.339h3.016l0.199,1.47h1.409l-3.4,3.4L2.11,27.951c0,0,2.941,1.102,6.678,1.102c3.737,0,9.679-0.857,10.476-0.857s4.84,0,4.84,0v-1.225l-0.137-1.068h1.744c-0.2,0.106-0.322,0.244-0.322,0.396v0.979c0,0.341,0.604,0.613,1.352,0.613c0.742,0,1.348-0.272,1.348-0.613v-0.979c0-0.339-0.604-0.611-1.348-0.611c-0.188,0-0.364,0.019-0.525,0.049v-0.17h-2.29l-0.055-0.432h5.382L29.249,3.14L29.249,3.14zM2.478,20.17V8.714h15.07V20.17H2.478z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Pen.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Pen.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Pen();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Pen = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Pen.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Pen\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M13.587,12.074c-0.049-0.074-0.11-0.147-0.188-0.202c-0.333-0.243-0.803-0.169-1.047,0.166c-0.244,0.336-0.167,0.805,0.167,1.048c0.303,0.22,0.708,0.167,0.966-0.091l-7.086,9.768l-2.203,7.997l6.917-4.577L26.865,4.468l-4.716-3.42l-1.52,2.096c-0.087-0.349-0.281-0.676-0.596-0.907c-0.73-0.529-1.751-0.369-2.28,0.363C14.721,6.782,16.402,7.896,13.587,12.074zM10.118,25.148L6.56,27.503l1.133-4.117L10.118,25.148zM14.309,11.861c2.183-3.225,1.975-4.099,3.843-6.962c0.309,0.212,0.664,0.287,1.012,0.269L14.309,11.861z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Pensil.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Pensil.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Pensil();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Pensil = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Pensil.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Pensil\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.31,2.872l-3.384-2.127c-0.854-0.536-1.979-0.278-2.517,0.576l-1.334,2.123l6.474,4.066l1.335-2.122C26.42,4.533,26.164,3.407,25.31,2.872zM6.555,21.786l6.474,4.066L23.581,9.054l-6.477-4.067L6.555,21.786zM5.566,26.952l-0.143,3.819l3.379-1.787l3.14-1.658l-6.246-3.925L5.566,26.952z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/People.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/People.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.People();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.People = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.People.prototype */\n{\n\n NAME: \"draw2d.shape.icon.People\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M21.066,20.667c1.227-0.682,1.068-3.311-0.354-5.874c-0.611-1.104-1.359-1.998-2.109-2.623c-0.875,0.641-1.941,1.031-3.102,1.031c-1.164,0-2.231-0.391-3.104-1.031c-0.75,0.625-1.498,1.519-2.111,2.623c-1.422,2.563-1.578,5.192-0.35,5.874c0.549,0.312,1.127,0.078,1.723-0.496c-0.105,0.582-0.166,1.213-0.166,1.873c0,2.938,1.139,5.312,2.543,5.312c0.846,0,1.265-0.865,1.466-2.188c0.2,1.314,0.62,2.188,1.461,2.188c1.396,0,2.545-2.375,2.545-5.312c0-0.66-0.062-1.291-0.168-1.873C19.939,20.745,20.516,20.983,21.066,20.667zM15.5,12.201c2.361,0,4.277-1.916,4.277-4.279S17.861,3.644,15.5,3.644c-2.363,0-4.28,1.916-4.28,4.279S13.137,12.201,15.5,12.201zM24.094,14.914c1.938,0,3.512-1.573,3.512-3.513c0-1.939-1.573-3.513-3.512-3.513c-1.94,0-3.513,1.573-3.513,3.513C20.581,13.341,22.153,14.914,24.094,14.914zM28.374,17.043c-0.502-0.907-1.116-1.641-1.732-2.154c-0.718,0.526-1.594,0.846-2.546,0.846c-0.756,0-1.459-0.207-2.076-0.55c0.496,1.093,0.803,2.2,0.861,3.19c0.093,1.516-0.381,2.641-1.329,3.165c-0.204,0.117-0.426,0.183-0.653,0.224c-0.056,0.392-0.095,0.801-0.095,1.231c0,2.412,0.935,4.361,2.088,4.361c0.694,0,1.039-0.71,1.204-1.796c0.163,1.079,0.508,1.796,1.199,1.796c1.146,0,2.09-1.95,2.09-4.361c0-0.542-0.052-1.06-0.139-1.538c0.492,0.472,0.966,0.667,1.418,0.407C29.671,21.305,29.541,19.146,28.374,17.043zM6.906,14.914c1.939,0,3.512-1.573,3.512-3.513c0-1.939-1.573-3.513-3.512-3.513c-1.94,0-3.514,1.573-3.514,3.513C3.392,13.341,4.966,14.914,6.906,14.914zM9.441,21.536c-1.593-0.885-1.739-3.524-0.457-6.354c-0.619,0.346-1.322,0.553-2.078,0.553c-0.956,0-1.832-0.321-2.549-0.846c-0.616,0.513-1.229,1.247-1.733,2.154c-1.167,2.104-1.295,4.262-0.287,4.821c0.451,0.257,0.925,0.064,1.414-0.407c-0.086,0.479-0.136,0.996-0.136,1.538c0,2.412,0.935,4.361,2.088,4.361c0.694,0,1.039-0.71,1.204-1.796c0.165,1.079,0.509,1.796,1.201,1.796c1.146,0,2.089-1.95,2.089-4.361c0-0.432-0.04-0.841-0.097-1.233C9.874,21.721,9.651,21.656,9.441,21.536z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Phone.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Phone.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Phone();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Phone = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Phone.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Phone\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M22.065,18.53c-0.467-0.29-1.167-0.21-1.556,0.179l-3.093,3.092c-0.389,0.389-1.025,0.389-1.414,0L9.05,14.848c-0.389-0.389-0.389-1.025,0-1.414l2.913-2.912c0.389-0.389,0.447-1.075,0.131-1.524L6.792,1.485C6.476,1.036,5.863,0.948,5.433,1.29c0,0-4.134,3.281-4.134,6.295c0,12.335,10,22.334,22.334,22.334c3.015,0,5.948-5.533,5.948-5.533c0.258-0.486,0.087-1.122-0.38-1.412L22.065,18.53z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Photo.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Photo.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Photo();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Photo = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Photo.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Photo\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.25,10.25H20.5v-1.5h-9.375v1.5h-3.75c-1.104,0-2,0.896-2,2v10.375c0,1.104,0.896,2,2,2H24.25c1.104,0,2-0.896,2-2V12.25C26.25,11.146,25.354,10.25,24.25,10.25zM15.812,23.499c-3.342,0-6.06-2.719-6.06-6.061c0-3.342,2.718-6.062,6.06-6.062s6.062,2.72,6.062,6.062C21.874,20.78,19.153,23.499,15.812,23.499zM15.812,13.375c-2.244,0-4.062,1.819-4.062,4.062c0,2.244,1.819,4.062,4.062,4.062c2.244,0,4.062-1.818,4.062-4.062C19.875,15.194,18.057,13.375,15.812,13.375z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Picker.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Picker.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Picker();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Picker = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Picker.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Picker\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M22.221,10.853c-0.111-0.414-0.261-0.412,0.221-1.539l1.66-3.519c0.021-0.051,0.2-0.412,0.192-0.946c0.015-0.529-0.313-1.289-1.119-1.642c-1.172-0.555-1.17-0.557-2.344-1.107c-0.784-0.396-1.581-0.171-1.979,0.179c-0.42,0.333-0.584,0.7-0.609,0.75L16.58,6.545c-0.564,1.084-0.655,0.97-1.048,1.147c-0.469,0.129-1.244,0.558-1.785,1.815c-1.108,2.346-1.108,2.346-1.108,2.346l-0.276,0.586l1.17,0.553l-3.599,7.623c-0.38,0.828-0.166,1.436-0.166,2.032c0.01,0.627-0.077,1.509-0.876,3.21l-0.276,0.586l3.517,1.661l0.276-0.585c0.808-1.699,1.431-2.326,1.922-2.717c0.46-0.381,1.066-0.6,1.465-1.42l3.599-7.618l1.172,0.554l0.279-0.589c0,0,0,0,1.105-2.345C22.578,12.166,22.419,11.301,22.221,10.853zM14.623,22.83c-0.156,0.353-0.413,0.439-1.091,0.955c-0.577,0.448-1.264,1.172-2.009,2.6l-1.191-0.562c0.628-1.48,0.75-2.474,0.73-3.203c-0.031-0.851-0.128-1.104,0.045-1.449l3.599-7.621l3.517,1.662L14.623,22.83z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Picture.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Picture.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Picture();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Picture = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Picture.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Picture\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M2.5,4.833v22.334h27V4.833H2.5zM25.25,25.25H6.75V6.75h18.5V25.25zM11.25,14c1.426,0,2.583-1.157,2.583-2.583c0-1.427-1.157-2.583-2.583-2.583c-1.427,0-2.583,1.157-2.583,2.583C8.667,12.843,9.823,14,11.25,14zM24.251,16.25l-4.917-4.917l-6.917,6.917L10.5,16.333l-2.752,2.752v5.165h16.503V16.25z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/PieChart.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/PieChart.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.PieChart();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.PieChart = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.PieChart.prototype */\n{\n\n NAME: \"draw2d.shape.icon.PieChart\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.583,15.917l1.648-10.779C16.692,5.056,16.145,5,15.583,5C9.554,5,4.666,9.888,4.666,15.917c0,6.029,4.888,10.917,10.917,10.917S26.5,21.946,26.5,15.917c0-0.256-0.021-0.507-0.038-0.759L15.583,15.917zM19.437,3.127l-1.648,10.779l10.879-0.759C28.313,8.026,24.436,3.886,19.437,3.127z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Plane.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Plane.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Plane();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Plane = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Plane.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Plane\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M19.671,8.11l-2.777,2.777l-3.837-0.861c0.362-0.505,0.916-1.683,0.464-2.135c-0.518-0.517-1.979,0.278-2.305,0.604l-0.913,0.913L7.614,8.804l-2.021,2.021l2.232,1.061l-0.082,0.082l1.701,1.701l0.688-0.687l3.164,1.504L9.571,18.21H6.413l-1.137,1.138l3.6,0.948l1.83,1.83l0.947,3.598l1.137-1.137V21.43l3.725-3.725l1.504,3.164l-0.687,0.687l1.702,1.701l0.081-0.081l1.062,2.231l2.02-2.02l-0.604-2.689l0.912-0.912c0.326-0.326,1.121-1.789,0.604-2.306c-0.452-0.452-1.63,0.101-2.135,0.464l-0.861-3.838l2.777-2.777c0.947-0.947,3.599-4.862,2.62-5.839C24.533,4.512,20.618,7.163,19.671,8.11z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Plugin.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Plugin.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Plugin();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Plugin = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Plugin.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Plugin\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M26.33,15.836l-3.893-1.545l3.136-7.9c0.28-0.705-0.064-1.505-0.771-1.785c-0.707-0.28-1.506,0.065-1.785,0.771l-3.136,7.9l-4.88-1.937l3.135-7.9c0.281-0.706-0.064-1.506-0.77-1.786c-0.706-0.279-1.506,0.065-1.785,0.771l-3.136,7.9L8.554,8.781l-1.614,4.066l2.15,0.854l-2.537,6.391c-0.61,1.54,0.143,3.283,1.683,3.895l1.626,0.646L8.985,26.84c-0.407,1.025,0.095,2.188,1.122,2.596l0.93,0.369c1.026,0.408,2.188-0.095,2.596-1.121l0.877-2.207l1.858,0.737c1.54,0.611,3.284-0.142,3.896-1.682l2.535-6.391l1.918,0.761L26.33,15.836z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Plus.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Plus.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Plus();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Plus = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Plus.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Plus\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.979,12.896 19.312,12.896 19.312,6.229 12.647,6.229 12.647,12.896 5.979,12.896 5.979,19.562 12.647,19.562 12.647,26.229 19.312,26.229 19.312,19.562 25.979,19.562z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Power.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Power.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Power();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Power = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Power.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Power\",\n\n /**\n * Creates a new icon element which are not assigned to any canvas.\n *\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.542,8.354c-1.47-1.766-2.896-2.617-3.025-2.695c-0.954-0.565-2.181-0.241-2.739,0.724c-0.556,0.961-0.24,2.194,0.705,2.763c0,0,0.001,0,0.002,0.001c0.001,0,0.002,0.001,0.003,0.002c0.001,0,0.003,0.001,0.004,0.001c0.102,0.062,1.124,0.729,2.08,1.925c1.003,1.261,1.933,3.017,1.937,5.438c-0.001,2.519-1.005,4.783-2.64,6.438c-1.637,1.652-3.877,2.668-6.368,2.669c-2.491-0.001-4.731-1.017-6.369-2.669c-1.635-1.654-2.639-3.919-2.64-6.438c0.005-2.499,0.995-4.292,2.035-5.558c0.517-0.625,1.043-1.098,1.425-1.401c0.191-0.152,0.346-0.263,0.445-0.329c0.049-0.034,0.085-0.058,0.104-0.069c0.005-0.004,0.009-0.006,0.012-0.008s0.004-0.002,0.004-0.002l0,0c0.946-0.567,1.262-1.802,0.705-2.763c-0.559-0.965-1.785-1.288-2.739-0.724c-0.128,0.079-1.555,0.93-3.024,2.696c-1.462,1.751-2.974,4.511-2.97,8.157C2.49,23.775,8.315,29.664,15.5,29.667c7.186-0.003,13.01-5.892,13.012-13.155C28.516,12.864,27.005,10.105,25.542,8.354zM15.5,17.523c1.105,0,2.002-0.907,2.002-2.023h-0.001V3.357c0-1.118-0.896-2.024-2.001-2.024s-2.002,0.906-2.002,2.024V15.5C13.498,16.616,14.395,17.523,15.5,17.523z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Ppt.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Ppt.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Ppt();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Ppt = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Ppt.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Ppt\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16.604,1.914c0-0.575-0.466-1.041-1.041-1.041s-1.041,0.466-1.041,1.041v1.04h2.082V1.914zM16.604,22.717h-2.082v3.207c0,0.574-4.225,4.031-4.225,4.031l2.468-0.003l2.807-2.673l3.013,2.693l2.272-0.039l-4.254-4.011V22.717L16.604,22.717zM28.566,7.113c0.86,0,1.56-0.698,1.56-1.56c0-0.861-0.698-1.56-1.56-1.56H2.561c-0.861,0-1.56,0.699-1.56,1.56c0,0.862,0.699,1.56,1.56,1.56h1.583v12.505l-0.932-0.022c-0.861,0-1.213,0.467-1.213,1.04c0,0.576,0.352,1.041,1.213,1.041h24.597c0.86,0,1.299-0.465,1.299-1.041c0-1.094-1.299-1.04-1.299-1.04l-0.804,0.109V7.113H28.566zM11.435,17.516c-3.771,0-4.194-4.191-4.194-4.191c0-4.096,4.162-4.161,4.162-4.161v4.161h4.193C15.596,17.516,11.435,17.516,11.435,17.516zM18.716,13.388h-1.071v-1.073h1.071V13.388zM18.716,10.267h-1.071V9.194h1.071V10.267zM23.314,13.388H20.26c-0.296,0-0.535-0.24-0.535-0.536c0-0.297,0.239-0.537,0.535-0.537h3.057c0.297,0,0.535,0.24,0.535,0.537C23.852,13.147,23.611,13.388,23.314,13.388zM23.314,10.267H20.26c-0.296,0-0.535-0.239-0.535-0.535c0-0.297,0.239-0.537,0.535-0.537h3.057c0.297,0,0.535,0.24,0.535,0.537C23.852,10.027,23.611,10.267,23.314,10.267z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Printer.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Printer.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Printer();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Printer = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Printer.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Printer\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.569,12.125h-2.12c-0.207-1.34-1.247-2.759-2.444-3.967c-1.277-1.24-2.654-2.234-3.784-2.37c-0.062-0.008-0.124-0.014-0.198-0.015H8.594c-0.119,0-0.235,0.047-0.319,0.132c-0.083,0.083-0.132,0.2-0.132,0.32v5.9H6.069c-1.104,0-2,0.896-2,2V23h4.074v2.079c0,0.118,0.046,0.23,0.132,0.318c0.086,0.085,0.199,0.131,0.319,0.131h13.445c0.118,0,0.232-0.046,0.318-0.131s0.138-0.199,0.138-0.318V23h4.074v-8.875C26.569,13.021,25.674,12.125,24.569,12.125zM21.589,24.626H9.043V21.5h12.546V24.626zM21.589,13.921c0-0.03,0-0.063-0.003-0.096c-0.015-0.068-0.062-0.135-0.124-0.2H9.043v-6.95h6.987v0.001c0.305-0.019,0.567,0.282,0.769,0.971c0.183,0.655,0.229,1.509,0.229,2.102c0.001,0.433-0.019,0.725-0.019,0.725l-0.037,0.478l0.48,0.005c0.002,0,1.109,0.014,2.196,0.26c1.044,0.226,1.86,0.675,1.938,1.184c0.003,0.045,0.003,0.091,0.003,0.133V13.921z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Quote.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Quote.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Quote();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Quote = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Quote.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Quote\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M14.505,5.873c-3.937,2.52-5.904,5.556-5.904,9.108c0,1.104,0.192,1.656,0.576,1.656l0.396-0.107c0.312-0.12,0.563-0.18,0.756-0.18c1.128,0,2.07,0.411,2.826,1.229c0.756,0.82,1.134,1.832,1.134,3.037c0,1.157-0.408,2.14-1.224,2.947c-0.816,0.807-1.801,1.211-2.952,1.211c-1.608,0-2.935-0.661-3.979-1.984c-1.044-1.321-1.565-2.98-1.565-4.977c0-2.259,0.443-4.327,1.332-6.203c0.888-1.875,2.243-3.57,4.067-5.085c1.824-1.514,2.988-2.272,3.492-2.272c0.336,0,0.612,0.162,0.828,0.486c0.216,0.324,0.324,0.606,0.324,0.846L14.505,5.873zM27.465,5.873c-3.937,2.52-5.904,5.556-5.904,9.108c0,1.104,0.192,1.656,0.576,1.656l0.396-0.107c0.312-0.12,0.563-0.18,0.756-0.18c1.104,0,2.04,0.411,2.808,1.229c0.769,0.82,1.152,1.832,1.152,3.037c0,1.157-0.408,2.14-1.224,2.947c-0.816,0.807-1.801,1.211-2.952,1.211c-1.608,0-2.935-0.661-3.979-1.984c-1.044-1.321-1.565-2.98-1.565-4.977c0-2.284,0.449-4.369,1.35-6.256c0.9-1.887,2.256-3.577,4.068-5.067c1.812-1.49,2.97-2.236,3.474-2.236c0.336,0,0.612,0.162,0.828,0.486c0.216,0.324,0.324,0.606,0.324,0.846L27.465,5.873z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Rain.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Rain.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Rain();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Rain = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Rain.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Rain\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.371,7.306c-0.092-3.924-3.301-7.077-7.248-7.079c-2.638,0.001-4.942,1.412-6.208,3.517c-0.595-0.327-1.28-0.517-2.01-0.517C7.626,3.229,5.772,5.033,5.689,7.293c-2.393,0.786-4.125,3.025-4.127,5.686c0,3.312,2.687,6,6,6v-0.002h15.874c3.312,0,6-2.688,6-6C29.434,10.34,27.732,8.11,25.371,7.306zM23.436,16.979H7.561c-2.209-0.006-3.997-1.792-4.001-4.001c-0.002-1.982,1.45-3.618,3.35-3.931c0.265-0.043,0.502-0.191,0.657-0.414C7.722,8.41,7.779,8.136,7.73,7.87C7.702,7.722,7.685,7.582,7.685,7.446C7.689,6.221,8.68,5.23,9.905,5.228c0.647,0,1.217,0.278,1.633,0.731c0.233,0.257,0.587,0.375,0.927,0.309c0.342-0.066,0.626-0.307,0.748-0.63c0.749-1.992,2.662-3.412,4.911-3.41c2.899,0.004,5.244,2.35,5.251,5.249c0,0.161-0.009,0.326-0.027,0.497c-0.049,0.517,0.305,0.984,0.815,1.079c1.86,0.344,3.274,1.966,3.271,3.923C27.43,15.186,25.645,16.973,23.436,16.979zM9.029,26.682c0-1.115,0.021-5.425,0.021-5.432c0.002-0.409-0.247-0.779-0.628-0.932c-0.38-0.152-0.815-0.059-1.099,0.24c-0.006,0.008-1.037,1.098-2.081,2.342c-0.523,0.627-1.048,1.287-1.463,1.896c-0.399,0.648-0.753,1.066-0.811,1.885C2.971,28.355,4.324,29.711,6,29.714C7.672,29.71,9.029,28.354,9.029,26.682zM4.971,26.727c0.091-0.349,1.081-1.719,1.993-2.764c0.025-0.029,0.051-0.061,0.076-0.089c-0.005,1.124-0.01,2.294-0.01,2.808c0,0.567-0.461,1.028-1.029,1.03C5.447,27.71,4.997,27.273,4.971,26.727zM16.425,26.682c0-1.115,0.021-5.424,0.021-5.43c0.002-0.41-0.247-0.779-0.628-0.934c-0.381-0.152-0.814-0.058-1.1,0.242c-0.006,0.008-1.035,1.094-2.08,2.342c-0.522,0.623-1.047,1.285-1.463,1.894c-0.399,0.649-0.753,1.068-0.809,1.888c0,1.672,1.354,3.028,3.029,3.028C15.068,29.711,16.425,28.354,16.425,26.682zM12.365,26.729c0.092-0.349,1.081-1.72,1.993-2.765c0.025-0.03,0.05-0.06,0.075-0.089c-0.005,1.123-0.011,2.294-0.011,2.807c-0.002,0.568-0.461,1.027-1.028,1.029C12.84,27.709,12.392,27.273,12.365,26.729zM23.271,20.317c-0.38-0.153-0.816-0.06-1.099,0.24c-0.009,0.008-1.037,1.097-2.08,2.342c-0.523,0.625-1.049,1.285-1.462,1.896c-0.402,0.649-0.754,1.067-0.812,1.886c0,1.672,1.354,3.029,3.03,3.029c1.673,0,3.027-1.357,3.027-3.029c0-1.115,0.022-5.425,0.022-5.431C23.9,20.84,23.651,20.47,23.271,20.317zM21.879,26.681c-0.004,0.568-0.463,1.027-1.031,1.029c-0.553-0.002-1.002-0.438-1.028-0.982c0.092-0.349,1.081-1.72,1.993-2.765c0.025-0.028,0.05-0.059,0.074-0.088C21.883,24.998,21.879,26.167,21.879,26.681z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Raphael.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Raphael.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Raphael();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Raphael = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Raphael.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Raphael\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M27.777,18.941c0.584-0.881,0.896-1.914,0.896-2.998c0-1.457-0.567-2.826-1.598-3.854l-6.91-6.911l-0.003,0.002c-0.985-0.988-2.35-1.6-3.851-1.6c-1.502,0-2.864,0.612-3.85,1.6H12.46l-6.911,6.911c-1.031,1.029-1.598,2.398-1.598,3.854c0,1.457,0.567,2.826,1.598,3.854l6.231,6.229c0.25,0.281,0.512,0.544,0.789,0.785c1.016,0.961,2.338,1.49,3.743,1.49c1.456,0,2.825-0.565,3.854-1.598l6.723-6.725c0.021-0.019,0.034-0.032,0.051-0.051l0.14-0.138c0.26-0.26,0.487-0.54,0.688-0.838c0.004-0.008,0.01-0.015,0.014-0.021L27.777,18.941zM26.658,15.946c0,0.678-0.197,1.326-0.561,1.879c-0.222,0.298-0.447,0.559-0.684,0.784L25.4,18.625c-1.105,1.052-2.354,1.35-3.414,1.35c-0.584,0-1.109-0.09-1.523-0.195c-2.422-0.608-5.056-2.692-6.261-5.732c0.649,0.274,1.362,0.426,2.11,0.426c2.811,0,5.129-2.141,5.415-4.877l3.924,3.925C26.301,14.167,26.658,15.029,26.658,15.946zM16.312,5.6c1.89,0,3.426,1.538,3.426,3.427c0,1.89-1.536,3.427-3.426,3.427c-1.889,0-3.426-1.537-3.426-3.427C12.886,7.138,14.423,5.6,16.312,5.6zM6.974,18.375c-0.649-0.648-1.007-1.512-1.007-2.429c0-0.917,0.357-1.78,1.007-2.428l2.655-2.656c-0.693,2.359-0.991,4.842-0.831,7.221c0.057,0.854,0.175,1.677,0.345,2.46L6.974,18.375zM11.514,11.592c0.583,4.562,4.195,9.066,8.455,10.143c0.693,0.179,1.375,0.265,2.033,0.265c0.01,0,0.02,0,0.027,0l-3.289,3.289c-0.648,0.646-1.512,1.006-2.428,1.006c-0.638,0-1.248-0.177-1.779-0.5l0.001-0.002c-0.209-0.142-0.408-0.295-0.603-0.461c-0.015-0.019-0.031-0.026-0.046-0.043l-0.665-0.664c-1.367-1.567-2.227-3.903-2.412-6.671C10.669,15.856,10.921,13.673,11.514,11.592\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/ReflectH.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/ReflectH.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.ReflectH();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.ReflectH = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.ReflectH.prototype */\n{\n\n NAME: \"draw2d.shape.icon.ReflectH\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.57,20.273h0.854v-1.705H15.57V20.273zM15.57,23.686h0.854V21.98H15.57V23.686zM15.57,27.096h0.854v-1.705H15.57V27.096zM15.57,29.689h0.854V28.8H15.57V29.689zM15.57,16.865h0.854V15.16H15.57V16.865zM15.57,3.225h0.854V1.52H15.57V3.225zM15.57,6.635h0.854V4.93H15.57V6.635zM15.57,10.045h0.854V8.34H15.57V10.045zM15.57,13.455h0.854V11.75H15.57V13.455zM18.41,3.327V25.46h12.015L18.41,3.327zM19.264,6.68l9.729,17.93h-9.729V6.68zM13.535,25.46V3.327L1.521,25.46H13.535z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/ReflectV.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/ReflectV.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.ReflectV();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.ReflectV = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.ReflectV.prototype */\n{\n\n NAME: \"draw2d.shape.icon.ReflectV\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M20.643,16.008v-0.854h-1.705v0.854H20.643zM24.053,16.008v-0.854h-1.705v0.854H24.053zM27.463,16.008v-0.854h-1.705v0.854H27.463zM30.059,16.008v-0.854h-0.891v0.854H30.059zM17.232,16.008v-0.854h-1.709v0.854H17.232zM3.593,16.008v-0.854H1.888v0.854H3.593zM7.003,16.008v-0.854H5.298v0.854H7.003zM10.414,16.008v-0.854H8.709v0.854H10.414zM13.824,16.008v-0.854h-1.705v0.854H13.824zM3.694,13.167h22.134V1.152L3.694,13.167zM7.048,12.314l17.929-9.729v9.729H7.048zM25.828,18.042H3.694l22.134,12.015V18.042z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Refresh.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Refresh.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Refresh();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Refresh = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Refresh.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Refresh\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.083,15.5c-0.009,4.739-3.844,8.574-8.583,8.583c-4.741-0.009-8.577-3.844-8.585-8.583c0.008-4.741,3.844-8.577,8.585-8.585c1.913,0,3.665,0.629,5.09,1.686l-1.782,1.783l8.429,2.256l-2.26-8.427l-1.89,1.89c-2.072-1.677-4.717-2.688-7.587-2.688C8.826,3.418,3.418,8.826,3.416,15.5C3.418,22.175,8.826,27.583,15.5,27.583S27.583,22.175,27.583,15.5H24.083z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Resize2.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Resize2.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Resize2();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Resize2 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Resize2.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Resize2\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M1.999,2.332v26.499H28.5V2.332H1.999zM26.499,26.832H4V12.5h8.167V4.332h14.332V26.832zM15.631,17.649l5.468,5.469l-1.208,1.206l5.482,1.469l-1.47-5.481l-1.195,1.195l-5.467-5.466l1.209-1.208l-5.482-1.469l1.468,5.48L15.631,17.649z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Rotate.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Rotate.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Rotate();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Rotate = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Rotate.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Rotate\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.5,5.27c1.914,0,3.666,0.629,5.089,1.686l-1.781,1.783l8.428,2.256l-2.26-8.427l-1.889,1.89C21.016,2.781,18.371,1.77,15.5,1.77C8.827,1.773,3.418,7.181,3.417,13.855c0.001,4.063,2.012,7.647,5.084,9.838v-4.887c-0.993-1.4-1.583-3.105-1.585-4.952C6.923,9.114,10.759,5.278,15.5,5.27zM9.5,29.23h12V12.355h-12V29.23z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Ruler.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Ruler.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Ruler();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Ruler = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Ruler.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Ruler\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M6.63,21.796l-5.122,5.121h25.743V1.175L6.63,21.796zM18.702,10.48c0.186-0.183,0.48-0.183,0.664,0l1.16,1.159c0.184,0.183,0.186,0.48,0.002,0.663c-0.092,0.091-0.213,0.137-0.332,0.137c-0.121,0-0.24-0.046-0.33-0.137l-1.164-1.159C18.519,10.96,18.519,10.664,18.702,10.48zM17.101,12.084c0.184-0.183,0.48-0.183,0.662,0l2.156,2.154c0.184,0.183,0.184,0.48,0.002,0.661c-0.092,0.092-0.213,0.139-0.334,0.139s-0.24-0.046-0.33-0.137l-2.156-2.154C16.917,12.564,16.917,12.267,17.101,12.084zM15.497,13.685c0.184-0.183,0.48-0.183,0.664,0l1.16,1.161c0.184,0.183,0.182,0.48-0.002,0.663c-0.092,0.092-0.211,0.138-0.33,0.138c-0.121,0-0.24-0.046-0.332-0.138l-1.16-1.16C15.314,14.166,15.314,13.868,15.497,13.685zM13.896,15.288c0.184-0.183,0.48-0.181,0.664,0.002l1.158,1.159c0.183,0.184,0.183,0.48,0,0.663c-0.092,0.092-0.212,0.138-0.332,0.138c-0.119,0-0.24-0.046-0.332-0.138l-1.158-1.161C13.713,15.767,13.713,15.471,13.896,15.288zM12.293,16.892c0.183-0.184,0.479-0.184,0.663,0l2.154,2.153c0.184,0.184,0.184,0.481,0,0.665c-0.092,0.092-0.211,0.138-0.33,0.138c-0.121,0-0.242-0.046-0.334-0.138l-2.153-2.155C12.11,17.371,12.11,17.075,12.293,16.892zM10.302,24.515c-0.091,0.093-0.212,0.139-0.332,0.139c-0.119,0-0.238-0.045-0.33-0.137l-2.154-2.153c-0.184-0.183-0.184-0.479,0-0.663s0.479-0.184,0.662,0l2.154,2.153C10.485,24.036,10.485,24.332,10.302,24.515zM10.912,21.918c-0.093,0.093-0.214,0.139-0.333,0.139c-0.12,0-0.24-0.045-0.33-0.137l-1.162-1.161c-0.184-0.183-0.184-0.479,0-0.66c0.184-0.185,0.48-0.187,0.664-0.003l1.161,1.162C11.095,21.438,11.095,21.735,10.912,21.918zM12.513,20.316c-0.092,0.092-0.211,0.138-0.332,0.138c-0.119,0-0.239-0.046-0.331-0.138l-1.159-1.16c-0.184-0.184-0.184-0.48,0-0.664s0.48-0.182,0.663,0.002l1.159,1.161C12.696,19.838,12.696,20.135,12.513,20.316zM22.25,21.917h-8.67l8.67-8.67V21.917zM22.13,10.7c-0.09,0.092-0.211,0.138-0.33,0.138c-0.121,0-0.242-0.046-0.334-0.138l-1.16-1.159c-0.184-0.183-0.184-0.479,0-0.663c0.182-0.183,0.479-0.183,0.662,0l1.16,1.159C22.312,10.221,22.313,10.517,22.13,10.7zM24.726,10.092c-0.092,0.092-0.213,0.137-0.332,0.137s-0.24-0.045-0.33-0.137l-2.154-2.154c-0.184-0.183-0.184-0.481,0-0.664s0.482-0.181,0.664,0.002l2.154,2.154C24.911,9.613,24.909,9.91,24.726,10.092z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Run.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Run.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Run();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Run = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Run.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Run\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M17.41,20.395l-0.778-2.723c0.228-0.2,0.442-0.414,0.644-0.643l2.721,0.778c0.287-0.418,0.534-0.862,0.755-1.323l-2.025-1.96c0.097-0.288,0.181-0.581,0.241-0.883l2.729-0.684c0.02-0.252,0.039-0.505,0.039-0.763s-0.02-0.51-0.039-0.762l-2.729-0.684c-0.061-0.302-0.145-0.595-0.241-0.883l2.026-1.96c-0.222-0.46-0.469-0.905-0.756-1.323l-2.721,0.777c-0.201-0.228-0.416-0.442-0.644-0.643l0.778-2.722c-0.418-0.286-0.863-0.534-1.324-0.755l-1.96,2.026c-0.287-0.097-0.581-0.18-0.883-0.241l-0.683-2.73c-0.253-0.019-0.505-0.039-0.763-0.039s-0.51,0.02-0.762,0.039l-0.684,2.73c-0.302,0.061-0.595,0.144-0.883,0.241l-1.96-2.026C7.048,3.463,6.604,3.71,6.186,3.997l0.778,2.722C6.736,6.919,6.521,7.134,6.321,7.361L3.599,6.583C3.312,7.001,3.065,7.446,2.844,7.907l2.026,1.96c-0.096,0.288-0.18,0.581-0.241,0.883l-2.73,0.684c-0.019,0.252-0.039,0.505-0.039,0.762s0.02,0.51,0.039,0.763l2.73,0.684c0.061,0.302,0.145,0.595,0.241,0.883l-2.026,1.96c0.221,0.46,0.468,0.905,0.755,1.323l2.722-0.778c0.2,0.229,0.415,0.442,0.643,0.643l-0.778,2.723c0.418,0.286,0.863,0.533,1.323,0.755l1.96-2.026c0.288,0.097,0.581,0.181,0.883,0.241l0.684,2.729c0.252,0.02,0.505,0.039,0.763,0.039s0.51-0.02,0.763-0.039l0.683-2.729c0.302-0.061,0.596-0.145,0.883-0.241l1.96,2.026C16.547,20.928,16.992,20.681,17.41,20.395zM11.798,15.594c-1.877,0-3.399-1.522-3.399-3.399s1.522-3.398,3.399-3.398s3.398,1.521,3.398,3.398S13.675,15.594,11.798,15.594zM27.29,22.699c0.019-0.547-0.06-1.104-0.23-1.654l1.244-1.773c-0.188-0.35-0.4-0.682-0.641-0.984l-2.122,0.445c-0.428-0.364-0.915-0.648-1.436-0.851l-0.611-2.079c-0.386-0.068-0.777-0.105-1.173-0.106l-0.974,1.936c-0.279,0.054-0.558,0.128-0.832,0.233c-0.257,0.098-0.497,0.22-0.727,0.353L17.782,17.4c-0.297,0.262-0.568,0.545-0.813,0.852l0.907,1.968c-0.259,0.495-0.437,1.028-0.519,1.585l-1.891,1.06c0.019,0.388,0.076,0.776,0.164,1.165l2.104,0.519c0.231,0.524,0.541,0.993,0.916,1.393l-0.352,2.138c0.32,0.23,0.66,0.428,1.013,0.6l1.715-1.32c0.536,0.141,1.097,0.195,1.662,0.15l1.452,1.607c0.2-0.057,0.399-0.118,0.596-0.193c0.175-0.066,0.34-0.144,0.505-0.223l0.037-2.165c0.455-0.339,0.843-0.747,1.152-1.206l2.161-0.134c0.152-0.359,0.279-0.732,0.368-1.115L27.29,22.699zM23.127,24.706c-1.201,0.458-2.545-0.144-3.004-1.345s0.143-2.546,1.344-3.005c1.201-0.458,2.547,0.144,3.006,1.345C24.931,22.902,24.328,24.247,23.127,24.706z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Rw.js\":\n/*!******************************!*\\\n !*** ./src/shape/icon/Rw.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Rw();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Rw = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Rw.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Rw\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M5.5,15.499,15.8,21.447,15.8,15.846,25.5,21.447,25.5,9.552,15.8,15.152,15.8,9.552z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Safari.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Safari.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Safari();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Safari = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Safari.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Safari\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16.154,5.135c-0.504,0-1,0.031-1.488,0.089l-0.036-0.18c-0.021-0.104-0.06-0.198-0.112-0.283c0.381-0.308,0.625-0.778,0.625-1.306c0-0.927-0.751-1.678-1.678-1.678s-1.678,0.751-1.678,1.678c0,0.745,0.485,1.376,1.157,1.595c-0.021,0.105-0.021,0.216,0,0.328l0.033,0.167C7.645,6.95,3.712,11.804,3.712,17.578c0,6.871,5.571,12.441,12.442,12.441c6.871,0,12.441-5.57,12.441-12.441C28.596,10.706,23.025,5.135,16.154,5.135zM16.369,8.1c4.455,0,8.183,3.116,9.123,7.287l-0.576,0.234c-0.148-0.681-0.755-1.191-1.48-1.191c-0.837,0-1.516,0.679-1.516,1.516c0,0.075,0.008,0.148,0.018,0.221l-2.771-0.028c-0.054-0.115-0.114-0.226-0.182-0.333l3.399-5.11l0.055-0.083l-4.766,4.059c-0.352-0.157-0.74-0.248-1.148-0.256l0.086-0.018l-1.177-2.585c0.64-0.177,1.111-0.763,1.111-1.459c0-0.837-0.678-1.515-1.516-1.515c-0.075,0-0.147,0.007-0.219,0.018l0.058-0.634C15.357,8.141,15.858,8.1,16.369,8.1zM12.146,3.455c0-0.727,0.591-1.318,1.318-1.318c0.727,0,1.318,0.591,1.318,1.318c0,0.425-0.203,0.802-0.516,1.043c-0.183-0.123-0.413-0.176-0.647-0.13c-0.226,0.045-0.413,0.174-0.535,0.349C12.542,4.553,12.146,4.049,12.146,3.455zM7.017,17.452c0-4.443,3.098-8.163,7.252-9.116l0.297,0.573c-0.61,0.196-1.051,0.768-1.051,1.442c0,0.837,0.678,1.516,1.515,1.516c0.068,0,0.135-0.006,0.2-0.015l-0.058,2.845l0.052-0.011c-0.442,0.204-0.824,0.513-1.116,0.895l0.093-0.147l-1.574-0.603l1.172,1.239l0.026-0.042c-0.19,0.371-0.306,0.788-0.324,1.229l-0.003-0.016l-2.623,1.209c-0.199-0.604-0.767-1.041-1.438-1.041c-0.837,0-1.516,0.678-1.516,1.516c0,0.064,0.005,0.128,0.013,0.191l-0.783-0.076C7.063,18.524,7.017,17.994,7.017,17.452zM16.369,26.805c-4.429,0-8.138-3.078-9.106-7.211l0.691-0.353c0.146,0.686,0.753,1.2,1.482,1.2c0.837,0,1.515-0.679,1.515-1.516c0-0.105-0.011-0.207-0.031-0.307l2.858,0.03c0.045,0.095,0.096,0.187,0.15,0.276l-3.45,5.277l0.227-0.195l4.529-3.92c0.336,0.153,0.705,0.248,1.094,0.266l-0.019,0.004l1.226,2.627c-0.655,0.166-1.142,0.76-1.142,1.468c0,0.837,0.678,1.515,1.516,1.515c0.076,0,0.151-0.007,0.225-0.018l0.004,0.688C17.566,26.746,16.975,26.805,16.369,26.805zM18.662,26.521l-0.389-0.6c0.661-0.164,1.152-0.759,1.152-1.47c0-0.837-0.68-1.516-1.516-1.516c-0.066,0-0.13,0.005-0.193,0.014v-2.86l-0.025,0.004c0.409-0.185,0.77-0.459,1.055-0.798l1.516,0.659l-1.104-1.304c0.158-0.335,0.256-0.704,0.278-1.095l2.552-1.164c0.19,0.618,0.766,1.068,1.447,1.068c0.838,0,1.516-0.679,1.516-1.516c0-0.069-0.006-0.137-0.016-0.204l0.65,0.12c0.089,0.517,0.136,1.049,0.136,1.591C25.722,21.826,22.719,25.499,18.662,26.521z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/ScrewDriver.js\":\n/*!***************************************!*\\\n !*** ./src/shape/icon/ScrewDriver.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.ScrewDriver();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.ScrewDriver = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.ScrewDriver.prototype */\n{\n\n NAME: \"draw2d.shape.icon.ScrewDriver\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M19.387,14.373c2.119-2.619,5.322-6.77,5.149-7.75c-0.128-0.729-0.882-1.547-1.763-2.171c-0.883-0.625-1.916-1.044-2.645-0.915c-0.98,0.173-3.786,4.603-5.521,7.49c-0.208,0.344,0.328,1.177,0.156,1.468c-0.172,0.292-1.052,0.042-1.18,0.261c-0.263,0.451-0.417,0.722-0.417,0.722s-0.553,0.823,1.163,2.163l-5.233,7.473c-0.267,0.381-1.456,0.459-1.456,0.459l-1.184,3.312l0.859,0.602l2.708-2.246c0,0-0.334-1.143-0.068-1.523l5.242-7.489c1.719,1,2.377,0.336,2.377,0.336s0.201-0.238,0.536-0.639c0.161-0.194-0.374-0.936-0.159-1.197C18.169,14.467,19.133,14.685,19.387,14.373z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Search.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Search.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Search();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Search = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Search.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Search\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M29.772,26.433l-7.126-7.126c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127L29.772,26.433zM7.203,13.885c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486c-0.007,3.58-2.905,6.476-6.484,6.484C10.106,20.361,7.209,17.465,7.203,13.885z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Sencha.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Sencha.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Sencha();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Sencha = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Sencha.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Sencha\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M18.265,22.734c1.365,0.662,2.309,2.062,2.309,3.682c0,1.566-0.881,2.928-2.176,3.615l1.922-0.98c3.16-1.58,5.332-4.846,5.332-8.617c0-3.719-2.109-6.945-5.195-8.547l-6.272-3.144c-1.366-0.662-2.308-2.062-2.308-3.682c0-1.567,0.881-2.928,2.175-3.614L12.13,2.428c-3.161,1.578-5.332,4.843-5.332,8.616c0,3.718,2.108,6.944,5.195,8.546L18.265,22.734z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Settings.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Settings.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Settings();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Settings = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Settings.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Settings\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16.015,12.03c-2.156,0-3.903,1.747-3.903,3.903c0,2.155,1.747,3.903,3.903,3.903c0.494,0,0.962-0.102,1.397-0.27l0.836,1.285l1.359-0.885l-0.831-1.276c0.705-0.706,1.142-1.681,1.142-2.757C19.918,13.777,18.171,12.03,16.015,12.03zM16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM26.174,20.809c-0.241,0.504-0.513,0.99-0.826,1.45L22.19,21.58c-0.481,0.526-1.029,0.994-1.634,1.385l0.119,3.202c-0.507,0.23-1.028,0.421-1.569,0.57l-1.955-2.514c-0.372,0.051-0.75,0.086-1.136,0.086c-0.356,0-0.706-0.029-1.051-0.074l-1.945,2.5c-0.541-0.151-1.065-0.342-1.57-0.569l0.117-3.146c-0.634-0.398-1.208-0.88-1.712-1.427L6.78,22.251c-0.313-0.456-0.583-0.944-0.826-1.448l2.088-2.309c-0.226-0.703-0.354-1.451-0.385-2.223l-2.768-1.464c0.055-0.563,0.165-1.107,0.301-1.643l3.084-0.427c0.29-0.702,0.675-1.352,1.135-1.942L8.227,7.894c0.399-0.389,0.83-0.744,1.283-1.07l2.663,1.672c0.65-0.337,1.349-0.593,2.085-0.75l0.968-3.001c0.278-0.021,0.555-0.042,0.837-0.042c0.282,0,0.56,0.022,0.837,0.042l0.976,3.028c0.72,0.163,1.401,0.416,2.036,0.75l2.704-1.697c0.455,0.326,0.887,0.681,1.285,1.07l-1.216,2.986c0.428,0.564,0.793,1.181,1.068,1.845l3.185,0.441c0.135,0.535,0.247,1.081,0.302,1.643l-2.867,1.516c-0.034,0.726-0.15,1.43-0.355,2.1L26.174,20.809z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/SettingsAlt.js\":\n/*!***************************************!*\\\n !*** ./src/shape/icon/SettingsAlt.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.SettingsAlt();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.SettingsAlt = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.SettingsAlt.prototype */\n{\n\n NAME: \"draw2d.shape.icon.SettingsAlt\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM24.386,14.968c-1.451,1.669-3.706,2.221-5.685,1.586l-7.188,8.266c-0.766,0.88-2.099,0.97-2.979,0.205s-0.973-2.099-0.208-2.979l7.198-8.275c-0.893-1.865-0.657-4.164,0.787-5.824c1.367-1.575,3.453-2.151,5.348-1.674l-2.754,3.212l0.901,2.621l2.722,0.529l2.761-3.22C26.037,11.229,25.762,13.387,24.386,14.968z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Shuffle.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Shuffle.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Shuffle();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Shuffle = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Shuffle.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Shuffle\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M21.786,20.654c-0.618-0.195-1.407-0.703-2.291-1.587c-0.757-0.742-1.539-1.698-2.34-2.741c-0.191,0.256-0.382,0.51-0.574,0.77c-0.524,0.709-1.059,1.424-1.604,2.127c1.904,2.31,3.88,4.578,6.809,4.952v2.701l7.556-4.362l-7.556-4.362V20.654zM9.192,11.933c0.756,0.741,1.538,1.697,2.339,2.739c0.195-0.262,0.39-0.521,0.587-0.788c0.52-0.703,1.051-1.412,1.592-2.11c-2.032-2.463-4.133-4.907-7.396-5.025h-3.5v3.5h3.5C6.969,10.223,7.996,10.735,9.192,11.933zM21.786,10.341v2.535l7.556-4.363l-7.556-4.363v2.647c-1.904,0.219-3.425,1.348-4.751,2.644c-2.196,2.183-4.116,5.167-6.011,7.538c-1.867,2.438-3.741,3.888-4.712,3.771h-3.5v3.5h3.5c2.185-0.029,3.879-1.266,5.34-2.693c2.194-2.184,4.116-5.167,6.009-7.538C19.205,12.003,20.746,10.679,21.786,10.341z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Skull.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Skull.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Skull();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Skull = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Skull.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Skull\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.947,11.14c0-5.174-3.979-9.406-10.613-9.406c-6.633,0-10.282,4.232-10.282,9.406c0,5.174,1.459,4.511,1.459,7.43c0,1.095-1.061,0.564-1.061,2.919c0,2.587,3.615,2.223,4.677,3.283c1.061,1.062,0.961,3.019,0.961,3.019s0.199,0.796,0.564,0.563c0,0,0.232,0.564,0.498,0.232c0,0,0.265,0.563,0.531,0.1c0,0,0.265,0.631,0.696,0.166c0,0,0.431,0.63,0.929,0.133c0,0,0.564,0.53,1.194,0.133c0.63,0.397,1.194-0.133,1.194-0.133c0.497,0.497,0.929-0.133,0.929-0.133c0.432,0.465,0.695-0.166,0.695-0.166c0.268,0.464,0.531-0.1,0.531-0.1c0.266,0.332,0.498-0.232,0.498-0.232c0.365,0.232,0.564-0.563,0.564-0.563s-0.1-1.957,0.961-3.019c1.062-1.061,4.676-0.696,4.676-3.283c0-2.354-1.061-1.824-1.061-2.919C24.488,15.651,25.947,16.314,25.947,11.14zM10.333,20.992c-1.783,0.285-2.59-0.215-2.785-1.492c-0.508-3.328,2.555-3.866,4.079-3.683c0.731,0.088,1.99,0.862,1.99,1.825C13.617,20.229,11.992,20.727,10.333,20.992zM16.461,25.303c-0.331,0-0.862-0.431-0.895-1.227c-0.033,0.796-0.63,1.227-0.961,1.227c-0.332,0-0.83-0.331-0.863-1.127c-0.033-0.796,1.028-4.013,1.792-4.013c0.762,0,1.824,3.217,1.791,4.013S16.794,25.303,16.461,25.303zM23.361,19.5c-0.195,1.277-1.004,1.777-2.787,1.492c-1.658-0.266-3.283-0.763-3.283-3.35c0-0.963,1.258-1.737,1.99-1.825C20.805,15.634,23.869,16.172,23.361,19.5z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Skype.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Skype.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Skype();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Skype = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Skype.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Skype\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.777,18.438c0.209-0.948,0.318-1.934,0.318-2.944c0-7.578-6.144-13.722-13.724-13.722c-0.799,0-1.584,0.069-2.346,0.2C11.801,1.199,10.35,0.75,8.793,0.75c-4.395,0-7.958,3.562-7.958,7.958c0,1.47,0.399,2.845,1.094,4.024c-0.183,0.893-0.277,1.814-0.277,2.76c0,7.58,6.144,13.723,13.722,13.723c0.859,0,1.699-0.078,2.515-0.23c1.119,0.604,2.399,0.945,3.762,0.945c4.395,0,7.957-3.562,7.957-7.959C29.605,20.701,29.309,19.502,28.777,18.438zM22.412,22.051c-0.635,0.898-1.573,1.609-2.789,2.115c-1.203,0.5-2.646,0.754-4.287,0.754c-1.971,0-3.624-0.346-4.914-1.031C9.5,23.391,8.74,22.717,8.163,21.885c-0.583-0.842-0.879-1.676-0.879-2.479c0-0.503,0.192-0.939,0.573-1.296c0.375-0.354,0.857-0.532,1.432-0.532c0.471,0,0.878,0.141,1.209,0.422c0.315,0.269,0.586,0.662,0.805,1.174c0.242,0.558,0.508,1.027,0.788,1.397c0.269,0.355,0.656,0.656,1.151,0.89c0.497,0.235,1.168,0.354,1.992,0.354c1.135,0,2.064-0.241,2.764-0.721c0.684-0.465,1.016-1.025,1.016-1.711c0-0.543-0.173-0.969-0.529-1.303c-0.373-0.348-0.865-0.621-1.465-0.807c-0.623-0.195-1.47-0.404-2.518-0.623c-1.424-0.306-2.634-0.668-3.596-1.076c-0.984-0.419-1.777-1-2.357-1.727c-0.59-0.736-0.889-1.662-0.889-2.75c0-1.036,0.314-1.971,0.933-2.776c0.613-0.8,1.51-1.423,2.663-1.849c1.139-0.422,2.494-0.635,4.027-0.635c1.225,0,2.303,0.141,3.201,0.421c0.904,0.282,1.668,0.662,2.267,1.13c0.604,0.472,1.054,0.977,1.335,1.5c0.284,0.529,0.43,1.057,0.43,1.565c0,0.49-0.189,0.937-0.563,1.324c-0.375,0.391-0.851,0.589-1.408,0.589c-0.509,0-0.905-0.124-1.183-0.369c-0.258-0.227-0.523-0.58-0.819-1.09c-0.342-0.65-0.756-1.162-1.229-1.523c-0.463-0.351-1.232-0.529-2.292-0.529c-0.984,0-1.784,0.197-2.379,0.588c-0.572,0.375-0.85,0.805-0.85,1.314c0,0.312,0.09,0.574,0.273,0.799c0.195,0.238,0.471,0.447,0.818,0.621c0.36,0.182,0.732,0.326,1.104,0.429c0.382,0.106,1.021,0.263,1.899,0.466c1.11,0.238,2.131,0.506,3.034,0.793c0.913,0.293,1.703,0.654,2.348,1.072c0.656,0.429,1.178,0.979,1.547,1.635c0.369,0.658,0.558,1.471,0.558,2.416C23.371,20.119,23.049,21.148,22.412,22.051z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/SlideShare.js\":\n/*!**************************************!*\\\n !*** ./src/shape/icon/SlideShare.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.SlideShare();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.SlideShare = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.SlideShare.prototype */\n{\n\n NAME: \"draw2d.shape.icon.SlideShare\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.952,12.795c-0.956,1.062-5.073,2.409-5.604,2.409h-4.513c-0.749,0-1.877,0.147-2.408,0.484c0.061,0.054,0.122,0.108,0.181,0.163c0.408,0.379,1.362,0.913,2.206,0.913c0.397,0,0.723-0.115,1-0.354c1.178-1.007,1.79-1.125,2.145-1.125c0.421,0,0.783,0.193,0.996,0.531c0.4,0.626,0.106,1.445-0.194,2.087c-0.718,1.524-3.058,3.171-5.595,3.171c-0.002,0-0.002,0-0.004,0c-0.354,0-0.701-0.033-1.033-0.099v3.251c0,0.742,1.033,2.533,4.167,2.533s3.955-3.701,3.955-4.338v-4.512c2.23-1.169,4.512-1.805,5.604-3.895C30.882,12.05,29.907,11.733,28.952,12.795zM21.942,17.521c0.796-1.699-0.053-1.699-1.54-0.425s-3.665,0.105-4.408-0.585c-0.743-0.689-1.486-1.22-2.814-1.167c-1.328,0.053-4.46-0.161-6.267-0.585c-1.805-0.425-4.895-3-5.15-2.335c-0.266,0.69,0.211,1.168,1.168,2.335c0.955,1.169,5.075,2.778,5.075,2.778s0,3.453,0,4.886c0,1.435,2.973,3.61,4.512,3.61s2.708-1.062,2.708-1.806v-4.512C17.775,21.045,21.146,19.221,21.942,17.521zM20.342,13.73c1.744,0,3.159-1.414,3.159-3.158c0-1.745-1.415-3.159-3.159-3.159s-3.158,1.414-3.158,3.159C17.184,12.316,18.598,13.73,20.342,13.73zM12.019,13.73c1.744,0,3.158-1.414,3.158-3.158c0-1.745-1.414-3.159-3.158-3.159c-1.745,0-3.159,1.414-3.159,3.159C8.86,12.316,10.273,13.73,12.019,13.73z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Smile.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Smile.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Smile();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Smile = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Smile.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Smile\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM20.729,7.375c0.934,0,1.688,1.483,1.688,3.312S21.661,14,20.729,14c-0.932,0-1.688-1.483-1.688-3.312S19.798,7.375,20.729,7.375zM11.104,7.375c0.932,0,1.688,1.483,1.688,3.312S12.037,14,11.104,14s-1.688-1.483-1.688-3.312S10.172,7.375,11.104,7.375zM16.021,26c-2.873,0-5.563-1.757-7.879-4.811c2.397,1.564,5.021,2.436,7.774,2.436c2.923,0,5.701-0.98,8.215-2.734C21.766,24.132,18.99,26,16.021,26z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Smile2.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Smile2.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Smile2();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Smile2 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Smile2.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Smile2\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM16,29.534C8.539,29.534,2.466,23.462,2.466,16C2.466,8.539,8.539,2.466,16,2.466c7.462,0,13.535,6.072,13.535,13.533C29.534,23.462,23.462,29.534,16,29.534zM11.104,14c0.932,0,1.688-1.483,1.688-3.312s-0.755-3.312-1.688-3.312s-1.688,1.483-1.688,3.312S10.172,14,11.104,14zM20.729,14c0.934,0,1.688-1.483,1.688-3.312s-0.756-3.312-1.688-3.312c-0.932,0-1.688,1.483-1.688,3.312S19.798,14,20.729,14zM8.143,21.189C10.458,24.243,13.148,26,16.021,26c2.969,0,5.745-1.868,8.11-5.109c-2.515,1.754-5.292,2.734-8.215,2.734C13.164,23.625,10.54,22.756,8.143,21.189z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Snow.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Snow.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Snow();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Snow = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Snow.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Snow\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.372,6.912c-0.093-3.925-3.302-7.078-7.248-7.08c-2.638,0.002-4.942,1.412-6.208,3.518c-0.595-0.327-1.28-0.518-2.01-0.518C7.627,2.834,5.773,4.639,5.69,6.898c-2.393,0.786-4.125,3.025-4.127,5.686c0,3.312,2.687,6,6,6v-0.002h15.875c3.312,0,6-2.688,6-6C29.434,9.944,27.732,7.715,25.372,6.912zM23.436,16.584H7.562c-2.209-0.006-3.997-1.793-4.001-4c-0.002-1.983,1.45-3.619,3.35-3.933c0.265-0.043,0.502-0.19,0.657-0.414C7.723,8.015,7.78,7.74,7.731,7.475C7.703,7.326,7.686,7.187,7.686,7.051c0.004-1.225,0.995-2.217,2.22-2.219c0.647,0,1.217,0.278,1.633,0.731c0.233,0.257,0.587,0.375,0.927,0.31c0.342-0.066,0.626-0.308,0.748-0.631c0.749-1.992,2.662-3.412,4.911-3.41c2.898,0.004,5.244,2.351,5.251,5.25c0,0.16-0.009,0.325-0.026,0.496c-0.05,0.518,0.305,0.984,0.814,1.079c1.859,0.345,3.273,1.966,3.271,3.923C27.43,14.791,25.645,16.578,23.436,16.584zM16.667,24.09l1.119-1.119c0.389-0.391,0.389-1.025,0-1.416c-0.392-0.391-1.025-0.391-1.415,0l-1.119,1.119l-1.119-1.119c-0.391-0.391-1.025-0.391-1.415,0c-0.391,0.391-0.391,1.025,0,1.416l1.118,1.117l-1.12,1.121c-0.389,0.393-0.389,1.021,0,1.414c0.195,0.188,0.451,0.293,0.707,0.293c0.256,0,0.512-0.104,0.708-0.293l1.12-1.119l1.12,1.119c0.195,0.188,0.451,0.293,0.708,0.293c0.256,0,0.512-0.104,0.707-0.293c0.391-0.396,0.391-1.021,0-1.414L16.667,24.09zM25.119,21.817c-0.393-0.392-1.025-0.392-1.415,0l-1.12,1.121l-1.12-1.121c-0.391-0.392-1.022-0.392-1.414,0c-0.39,0.392-0.39,1.022,0,1.416l1.119,1.119l-1.119,1.119c-0.39,0.391-0.39,1.022,0,1.413c0.195,0.195,0.451,0.294,0.707,0.294c0.257,0,0.513-0.099,0.707-0.294l1.12-1.118l1.12,1.118c0.194,0.195,0.45,0.294,0.707,0.294c0.256,0,0.513-0.099,0.708-0.294c0.389-0.391,0.389-1.022,0-1.413l-1.12-1.119l1.12-1.119C25.507,22.842,25.507,22.209,25.119,21.817zM9.334,23.953l1.119-1.119c0.389-0.394,0.389-1.021,0-1.414c-0.391-0.394-1.025-0.394-1.415,0l-1.119,1.119l-1.12-1.121c-0.391-0.39-1.023-0.39-1.415,0c-0.391,0.396-0.391,1.024,0,1.418l1.119,1.117l-1.12,1.118c-0.391,0.394-0.391,1.025,0,1.414c0.196,0.195,0.452,0.293,0.708,0.293c0.256,0,0.511-0.098,0.707-0.293l1.12-1.119l1.121,1.121c0.195,0.195,0.451,0.293,0.707,0.293s0.513-0.098,0.708-0.293c0.389-0.391,0.389-1.022,0-1.416L9.334,23.953z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Split.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Split.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Split();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Split = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Split.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Split\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M21.786,20.698c-1.792-0.237-2.912-1.331-4.358-2.886c-0.697-0.751-1.428-1.577-2.324-2.319c1.396-1.165,2.411-2.519,3.483-3.503c1.01-0.92,1.901-1.519,3.199-1.688v2.574l7.556-4.363L21.786,4.15v2.652c-3.34,0.266-5.45,2.378-6.934,4.013c-0.819,0.896-1.537,1.692-2.212,2.192c-0.685,0.501-1.227,0.731-2.013,0.742c-0.001,0-0.002,0-0.003,0H2.812v3.5h0.001v0.001c0,0,0.046-0.001,0.136-0.001h7.677c0.786,0.011,1.33,0.241,2.017,0.743c1.021,0.743,2.095,2.181,3.552,3.568c1.312,1.258,3.162,2.46,5.592,2.649v2.664l7.556-4.36l-7.556-4.361V20.698z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Star.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Star.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Star();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Star = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Star.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Star\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,22.375L7.116,28.83l3.396-10.438l-8.883-6.458l10.979,0.002L16.002,1.5l3.391,10.434h10.981l-8.886,6.457l3.396,10.439L16,22.375L16,22.375z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Star2.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Star2.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Star2();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Star2 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Star2.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Star2\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M14.615,4.928c0.487-0.986,1.284-0.986,1.771,0l2.249,4.554c0.486,0.986,1.775,1.923,2.864,2.081l5.024,0.73c1.089,0.158,1.335,0.916,0.547,1.684l-3.636,3.544c-0.788,0.769-1.28,2.283-1.095,3.368l0.859,5.004c0.186,1.085-0.459,1.553-1.433,1.041l-4.495-2.363c-0.974-0.512-2.567-0.512-3.541,0l-4.495,2.363c-0.974,0.512-1.618,0.044-1.432-1.041l0.858-5.004c0.186-1.085-0.307-2.6-1.094-3.368L3.93,13.977c-0.788-0.768-0.542-1.525,0.547-1.684l5.026-0.73c1.088-0.158,2.377-1.095,2.864-2.081L14.615,4.928z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Star2Off.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Star2Off.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Star2Off();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Star2Off = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Star2Off.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Star2Off\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M26.522,12.293l-5.024-0.73c-1.089-0.158-2.378-1.095-2.864-2.081l-2.249-4.554c-0.487-0.986-1.284-0.986-1.771,0l-2.247,4.554c-0.487,0.986-1.776,1.923-2.864,2.081l-5.026,0.73c-1.088,0.158-1.334,0.916-0.547,1.684l3.637,3.544c0.788,0.769,1.28,2.283,1.094,3.368l-0.858,5.004c-0.186,1.085,0.458,1.553,1.432,1.041l4.495-2.363c0.974-0.512,2.566-0.512,3.541,0l4.495,2.363c0.974,0.512,1.618,0.044,1.433-1.041l-0.859-5.004c-0.186-1.085,0.307-2.6,1.095-3.368l3.636-3.544C27.857,13.209,27.611,12.452,26.522,12.293zM22.037,16.089c-1.266,1.232-1.966,3.394-1.67,5.137l0.514,2.984l-2.679-1.409c-0.757-0.396-1.715-0.612-2.702-0.612s-1.945,0.216-2.7,0.61l-2.679,1.409l0.511-2.982c0.297-1.743-0.404-3.905-1.671-5.137l-2.166-2.112l2.995-0.435c1.754-0.255,3.592-1.591,4.373-3.175L15.5,7.652l1.342,2.716c0.781,1.583,2.617,2.92,4.369,3.173l2.992,0.435L22.037,16.089z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Star3.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Star3.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Star3();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Star3 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Star3.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Star3\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M22.441,28.181c-0.419,0-0.835-0.132-1.189-0.392l-5.751-4.247L9.75,27.789c-0.354,0.26-0.771,0.392-1.189,0.392c-0.412,0-0.824-0.128-1.175-0.384c-0.707-0.511-1-1.422-0.723-2.25l2.26-6.783l-5.815-4.158c-0.71-0.509-1.009-1.416-0.74-2.246c0.268-0.826,1.037-1.382,1.904-1.382c0.004,0,0.01,0,0.014,0l7.15,0.056l2.157-6.816c0.262-0.831,1.035-1.397,1.906-1.397s1.645,0.566,1.906,1.397l2.155,6.816l7.15-0.056c0.004,0,0.01,0,0.015,0c0.867,0,1.636,0.556,1.903,1.382c0.271,0.831-0.028,1.737-0.739,2.246l-5.815,4.158l2.263,6.783c0.276,0.826-0.017,1.737-0.721,2.25C23.268,28.053,22.854,28.181,22.441,28.181L22.441,28.181z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Star3Off.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Star3Off.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Star3Off();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Star3Off = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Star3Off.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Star3Off\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.631,12.359c-0.268-0.826-1.036-1.382-1.903-1.382h-0.015l-7.15,0.056l-2.155-6.816c-0.262-0.831-1.035-1.397-1.906-1.397s-1.645,0.566-1.906,1.397l-2.157,6.816l-7.15-0.056H4.273c-0.868,0-1.636,0.556-1.904,1.382c-0.27,0.831,0.029,1.737,0.74,2.246l5.815,4.158l-2.26,6.783c-0.276,0.828,0.017,1.739,0.723,2.25c0.351,0.256,0.763,0.384,1.175,0.384c0.418,0,0.834-0.132,1.189-0.392l5.751-4.247l5.751,4.247c0.354,0.26,0.771,0.392,1.189,0.392c0.412,0,0.826-0.128,1.177-0.384c0.704-0.513,0.997-1.424,0.721-2.25l-2.263-6.783l5.815-4.158C28.603,14.097,28.901,13.19,28.631,12.359zM19.712,17.996l2.729,8.184l-6.94-5.125L8.56,26.18l2.729-8.184l-7.019-5.018l8.627,0.066L15.5,4.82l2.603,8.225l8.627-0.066L19.712,17.996z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/StarOff.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/StarOff.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.StarOff();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.StarOff = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.StarOff.prototype */\n{\n\n NAME: \"draw2d.shape.icon.StarOff\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,22.375L7.116,28.83l3.396-10.438l-8.883-6.458l10.979,0.002L16.002,1.5l3.391,10.434h10.981l-8.886,6.457l3.396,10.439L16,22.375L16,22.375zM22.979,26.209l-2.664-8.205l6.979-5.062h-8.627L16,4.729l-2.666,8.206H4.708l6.979,5.07l-2.666,8.203L16,21.146L22.979,26.209L22.979,26.209z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Start.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Start.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Start();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Start = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Start.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Start\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.316,5.318,9.833,13.682,9.833,5.5,5.5,5.5,5.5,25.5,9.833,25.5,9.833,17.318,24.316,25.682z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Sticker.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Sticker.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Sticker();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Sticker = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Sticker.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Sticker\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.5,1.999c-1.042,0-1.916,0.377-2.57,1.088L2.895,13.138C2.302,13.784,1.999,14.58,1.999,15.5C1.999,22.943,8.057,29,15.5,29S29,22.943,29,15.5S22.943,1.999,15.5,1.999zM15.5,28C8.596,28,3,22.404,3,15.5c0-3.452,5.239-2.737,7.501-4.999C12.762,8.239,12.048,3,15.5,3C22.404,3,28,8.597,28,15.5S22.404,28,15.5,28z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Stop.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Stop.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Stop();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Stop = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Stop.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Stop\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M5.5,5.5h20v20h-20z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/StopWatch.js\":\n/*!*************************************!*\\\n !*** ./src/shape/icon/StopWatch.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.StopWatch();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.StopWatch = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.StopWatch.prototype */\n{\n\n NAME: \"draw2d.shape.icon.StopWatch\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M27.216,18.533c0-3.636-1.655-6.883-4.253-9.032l0.733-0.998l0.482,0.354c0.198,0.146,0.481,0.104,0.628-0.097l0.442-0.604c0.146-0.198,0.103-0.482-0.097-0.628l-2.052-1.506c-0.199-0.146-0.481-0.103-0.628,0.097L22.03,6.724c-0.146,0.199-0.104,0.482,0.096,0.628l0.483,0.354l-0.736,1.003c-1.28-0.834-2.734-1.419-4.296-1.699c0.847-0.635,1.402-1.638,1.403-2.778h-0.002c0-1.922-1.557-3.48-3.479-3.48c-1.925,0-3.48,1.559-3.48,3.48c0,1.141,0.556,2.144,1.401,2.778c-1.549,0.277-2.99,0.857-4.265,1.68L8.424,7.684l0.484-0.353c0.198-0.145,0.245-0.428,0.098-0.628l-0.44-0.604C8.42,5.899,8.136,5.855,7.937,6.001L5.881,7.5c-0.2,0.146-0.243,0.428-0.099,0.628l0.442,0.604c0.145,0.2,0.428,0.244,0.627,0.099l0.483-0.354l0.729,0.999c-2.615,2.149-4.282,5.407-4.282,9.057c0,6.471,5.245,11.716,11.718,11.716c6.47,0,11.716-5.243,11.718-11.716H27.216zM12.918,4.231c0.002-1.425,1.155-2.58,2.582-2.582c1.426,0.002,2.579,1.157,2.581,2.582c-0.002,1.192-0.812,2.184-1.908,2.482v-1.77h0.6c0.246,0,0.449-0.203,0.449-0.449V3.746c0-0.247-0.203-0.449-0.449-0.449h-2.545c-0.247,0-0.449,0.202-0.449,0.449v0.749c0,0.246,0.202,0.449,0.449,0.449h0.599v1.77C13.729,6.415,12.919,5.424,12.918,4.231zM15.5,27.554c-4.983-0.008-9.015-4.038-9.022-9.021c0.008-4.982,4.039-9.013,9.022-9.022c4.981,0.01,9.013,4.04,9.021,9.022C24.513,23.514,20.481,27.546,15.5,27.554zM15.5,12.138c0.476,0,0.861-0.385,0.861-0.86s-0.386-0.861-0.861-0.861s-0.861,0.386-0.861,0.861S15.024,12.138,15.5,12.138zM15.5,24.927c-0.476,0-0.861,0.386-0.861,0.861s0.386,0.861,0.861,0.861s0.861-0.386,0.861-0.861S15.976,24.927,15.5,24.927zM12.618,11.818c-0.237-0.412-0.764-0.553-1.176-0.315c-0.412,0.238-0.554,0.765-0.315,1.177l2.867,6.722c0.481,0.831,1.543,1.116,2.375,0.637c0.829-0.479,1.114-1.543,0.635-2.374L12.618,11.818zM18.698,24.07c-0.412,0.237-0.555,0.765-0.316,1.176c0.237,0.412,0.764,0.554,1.176,0.315c0.413-0.238,0.553-0.765,0.316-1.176C19.635,23.974,19.108,23.832,18.698,24.07zM8.787,15.65c0.412,0.238,0.938,0.097,1.176-0.315c0.237-0.413,0.097-0.938-0.314-1.176c-0.412-0.239-0.938-0.098-1.177,0.313C8.234,14.886,8.375,15.412,8.787,15.65zM22.215,21.413c-0.412-0.236-0.938-0.096-1.176,0.316c-0.238,0.412-0.099,0.938,0.314,1.176c0.41,0.238,0.937,0.098,1.176-0.314C22.768,22.178,22.625,21.652,22.215,21.413zM9.107,18.531c-0.002-0.476-0.387-0.86-0.861-0.86c-0.477,0-0.862,0.385-0.862,0.86c0.001,0.476,0.386,0.86,0.861,0.861C8.722,19.393,9.106,19.008,9.107,18.531zM21.896,18.531c0,0.477,0.384,0.862,0.859,0.86c0.476,0.002,0.862-0.382,0.862-0.859s-0.387-0.86-0.862-0.862C22.279,17.671,21.896,18.056,21.896,18.531zM8.787,21.413c-0.412,0.238-0.554,0.765-0.316,1.176c0.239,0.412,0.765,0.553,1.177,0.316c0.413-0.239,0.553-0.765,0.315-1.178C9.725,21.317,9.198,21.176,8.787,21.413zM21.352,14.157c-0.411,0.238-0.551,0.764-0.312,1.176c0.237,0.413,0.764,0.555,1.174,0.315c0.412-0.236,0.555-0.762,0.316-1.176C22.29,14.06,21.766,13.921,21.352,14.157zM12.304,24.067c-0.413-0.235-0.939-0.096-1.176,0.315c-0.238,0.413-0.098,0.939,0.312,1.178c0.413,0.236,0.939,0.096,1.178-0.315C12.857,24.832,12.715,24.308,12.304,24.067zM18.698,12.992c0.41,0.238,0.938,0.099,1.174-0.313c0.238-0.411,0.1-0.938-0.314-1.177c-0.414-0.238-0.937-0.097-1.177,0.315C18.144,12.229,18.286,12.755,18.698,12.992z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Sun.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Sun.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Sun();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Sun = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Sun.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Sun\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.502,7.504c-4.35,0-7.873,3.523-7.873,7.873c0,4.347,3.523,7.872,7.873,7.872c4.346,0,7.871-3.525,7.871-7.872C23.374,11.027,19.85,7.504,15.502,7.504zM15.502,21.25c-3.244-0.008-5.866-2.63-5.874-5.872c0.007-3.243,2.63-5.866,5.874-5.874c3.242,0.008,5.864,2.631,5.871,5.874C21.366,18.62,18.744,21.242,15.502,21.25zM15.502,6.977c0.553,0,1-0.448,1-1.001V1.125c-0.002-0.553-0.448-1-1-1c-0.553,0-1.001,0.449-1,1.002v4.85C14.502,6.528,14.949,6.977,15.502,6.977zM18.715,7.615c0.125,0.053,0.255,0.076,0.382,0.077c0.394,0,0.765-0.233,0.925-0.618l1.856-4.483c0.21-0.511-0.031-1.095-0.541-1.306c-0.511-0.211-1.096,0.031-1.308,0.541L18.174,6.31C17.963,6.82,18.205,7.405,18.715,7.615zM21.44,9.436c0.195,0.194,0.451,0.293,0.707,0.293s0.512-0.098,0.707-0.293l3.43-3.433c0.391-0.39,0.39-1.023,0-1.415c-0.392-0.39-1.025-0.39-1.415,0.002L21.44,8.021C21.049,8.412,21.049,9.045,21.44,9.436zM23.263,12.16c0.158,0.385,0.531,0.617,0.923,0.617c0.127,0,0.257-0.025,0.383-0.078l4.48-1.857c0.511-0.211,0.753-0.797,0.541-1.307s-0.796-0.752-1.307-0.54l-4.481,1.857C23.292,11.064,23.051,11.65,23.263,12.16zM29.752,14.371l-4.851,0.001c-0.552,0-1,0.448-0.998,1.001c0,0.553,0.447,0.999,0.998,0.999l4.852-0.002c0.553,0,0.999-0.449,0.999-1C30.752,14.817,30.304,14.369,29.752,14.371zM29.054,19.899l-4.482-1.854c-0.512-0.212-1.097,0.03-1.307,0.541c-0.211,0.511,0.031,1.096,0.541,1.308l4.482,1.854c0.126,0.051,0.256,0.075,0.383,0.075c0.393,0,0.765-0.232,0.925-0.617C29.806,20.695,29.563,20.109,29.054,19.899zM22.86,21.312c-0.391-0.391-1.023-0.391-1.414,0.001c-0.391,0.39-0.39,1.022,0,1.413l3.434,3.429c0.195,0.195,0.45,0.293,0.706,0.293s0.513-0.098,0.708-0.293c0.391-0.392,0.389-1.025,0-1.415L22.86,21.312zM20.029,23.675c-0.211-0.511-0.796-0.752-1.307-0.541c-0.51,0.212-0.752,0.797-0.54,1.308l1.86,4.48c0.159,0.385,0.531,0.617,0.925,0.617c0.128,0,0.258-0.024,0.383-0.076c0.511-0.211,0.752-0.797,0.54-1.309L20.029,23.675zM15.512,23.778c-0.553,0-1,0.448-1,1l0.004,4.851c0,0.553,0.449,0.999,1,0.999c0.553,0,1-0.448,0.998-1l-0.003-4.852C16.511,24.226,16.062,23.777,15.512,23.778zM12.296,23.142c-0.51-0.21-1.094,0.031-1.306,0.543l-1.852,4.483c-0.21,0.511,0.033,1.096,0.543,1.307c0.125,0.052,0.254,0.076,0.382,0.076c0.392,0,0.765-0.234,0.924-0.619l1.853-4.485C13.051,23.937,12.807,23.353,12.296,23.142zM9.57,21.325c-0.392-0.391-1.025-0.389-1.415,0.002L4.729,24.76c-0.391,0.392-0.389,1.023,0.002,1.415c0.195,0.194,0.45,0.292,0.706,0.292c0.257,0,0.513-0.098,0.708-0.293l3.427-3.434C9.961,22.349,9.961,21.716,9.57,21.325zM7.746,18.604c-0.213-0.509-0.797-0.751-1.307-0.54L1.96,19.925c-0.511,0.212-0.752,0.798-0.54,1.308c0.16,0.385,0.531,0.616,0.924,0.616c0.127,0,0.258-0.024,0.383-0.076l4.479-1.861C7.715,19.698,7.957,19.113,7.746,18.604zM7.1,15.392c0-0.553-0.447-0.999-1-0.999l-4.851,0.006c-0.553,0-1.001,0.448-0.999,1.001c0.001,0.551,0.449,1,1,0.998l4.852-0.006C6.654,16.392,7.102,15.942,7.1,15.392zM1.944,10.869l4.485,1.85c0.125,0.053,0.254,0.076,0.381,0.076c0.393,0,0.766-0.232,0.925-0.618c0.212-0.511-0.032-1.097-0.544-1.306L2.708,9.021c-0.511-0.21-1.095,0.032-1.306,0.542C1.19,10.074,1.435,10.657,1.944,10.869zM8.137,9.451c0.195,0.193,0.449,0.291,0.705,0.291s0.513-0.098,0.709-0.295c0.391-0.389,0.389-1.023-0.004-1.414L6.113,4.609C5.723,4.219,5.088,4.221,4.699,4.612c-0.391,0.39-0.389,1.024,0.002,1.414L8.137,9.451zM10.964,7.084c0.16,0.384,0.532,0.615,0.923,0.615c0.128,0,0.258-0.025,0.384-0.077c0.51-0.212,0.753-0.798,0.54-1.307l-1.864-4.479c-0.212-0.51-0.798-0.751-1.308-0.539C9.129,1.51,8.888,2.096,9.1,2.605L10.964,7.084z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Svg.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Svg.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Svg();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Svg = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Svg.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Svg\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M31.274,15.989c0-2.473-2.005-4.478-4.478-4.478l0,0c0.81-0.811,1.312-1.93,1.312-3.167c0-2.474-2.005-4.479-4.479-4.479c-1.236,0-2.356,0.501-3.167,1.312c0-2.473-2.005-4.478-4.478-4.478c-2.474,0-4.479,2.005-4.479,4.478c-0.811-0.81-1.93-1.312-3.167-1.312c-2.474,0-4.479,2.005-4.479,4.479c0,1.236,0.501,2.356,1.312,3.166c-2.474,0-4.479,2.005-4.479,4.479c0,2.474,2.005,4.479,4.479,4.479c-0.811,0.81-1.312,1.93-1.312,3.167c0,2.473,2.005,4.478,4.479,4.478c1.236,0,2.356-0.501,3.167-1.312c0,2.473,2.005,4.479,4.479,4.479c2.473,0,4.478-2.006,4.478-4.479l0,0c0.811,0.811,1.931,1.312,3.167,1.312c2.474,0,4.478-2.005,4.478-4.478c0-1.237-0.501-2.357-1.312-3.168c0.001,0,0.001,0,0.001,0C29.27,20.467,31.274,18.463,31.274,15.989zM23.583,21.211c0.016,0,0.031-0.001,0.047-0.001c1.339,0,2.424,1.085,2.424,2.425c0,1.338-1.085,2.424-2.424,2.424s-2.424-1.086-2.424-2.424c0-0.017,0.001-0.031,0.001-0.047l-3.541-3.542v5.009c0.457,0.44,0.743,1.06,0.743,1.746c0,1.339-1.086,2.424-2.424,2.424c-1.339,0-2.425-1.085-2.425-2.424c0-0.687,0.286-1.306,0.743-1.746v-5.009l-3.541,3.542c0,0.016,0.001,0.031,0.001,0.047c0,1.338-1.085,2.424-2.424,2.424s-2.424-1.086-2.424-2.424c0-1.34,1.085-2.425,2.424-2.425c0.015,0,0.031,0.001,0.046,0.001l3.542-3.541H6.919c-0.44,0.458-1.06,0.743-1.746,0.743c-1.339,0-2.424-1.085-2.424-2.424s1.085-2.424,2.424-2.424c0.686,0,1.305,0.285,1.746,0.744h5.008l-3.542-3.542c-0.015,0-0.031,0.001-0.046,0.001c-1.339,0-2.424-1.085-2.424-2.424S7.001,5.92,8.34,5.92s2.424,1.085,2.424,2.424c0,0.015-0.001,0.031-0.001,0.046l3.541,3.542V6.924c-0.457-0.441-0.743-1.06-0.743-1.746c0-1.339,1.086-2.425,2.425-2.425c1.338,0,2.424,1.085,2.424,2.425c0,0.686-0.286,1.305-0.743,1.746v5.008l3.541-3.542c0-0.015-0.001-0.031-0.001-0.046c0-1.339,1.085-2.424,2.424-2.424s2.424,1.085,2.424,2.424c0,1.339-1.085,2.424-2.424,2.424c-0.016,0-0.031-0.001-0.047-0.001l-3.541,3.542h5.008c0.441-0.458,1.061-0.744,1.747-0.744c1.338,0,2.423,1.085,2.423,2.424s-1.085,2.424-2.423,2.424c-0.687,0-1.306-0.285-1.747-0.743h-5.008L23.583,21.211z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/TShirt.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/TShirt.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.TShirt();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.TShirt = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.TShirt.prototype */\n{\n\n NAME: \"draw2d.shape.icon.TShirt\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M20.1,4.039c-0.681,1.677-2.32,2.862-4.24,2.862c-1.921,0-3.56-1.185-4.24-2.862L1.238,8.442l2.921,6.884l3.208-1.361V28h17.099V14.015l3.093,1.312l2.922-6.884L20.1,4.039z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Tag.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Tag.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Tag();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Tag = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Tag.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Tag\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M14.263,2.826H7.904L2.702,8.028v6.359L18.405,30.09l11.561-11.562L14.263,2.826zM6.495,8.859c-0.619-0.619-0.619-1.622,0-2.24C7.114,6,8.117,6,8.736,6.619c0.62,0.62,0.619,1.621,0,2.241C8.117,9.479,7.114,9.479,6.495,8.859z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/TakeOff.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/TakeOff.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.TakeOff();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.TakeOff = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.TakeOff.prototype */\n{\n\n NAME: \"draw2d.shape.icon.TakeOff\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M10.27,19.267c0,0,9.375-1.981,16.074-8.681c0,0,1.395-1.339-1.338-1.339c-2.305,0-5.6,2.438-5.6,2.438l-9.137-1.42l-1.769,1.769l4.983,2.411l-3.001,2.035l-2.571-1.285L6.09,16.052C6.09,16.052,8.02,18.062,10.27,19.267zM3.251,23.106v1.998h24.498v-1.998H3.251z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Talke.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Talke.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Talke();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Talke = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Talke.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Talke\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,4.938c-7.732,0-14,4.701-14,10.5c0,1.981,0.741,3.833,2.016,5.414L2,25.272l5.613-1.44c2.339,1.316,5.237,2.106,8.387,2.106c7.732,0,14-4.701,14-10.5S23.732,4.938,16,4.938zM16.982,21.375h-1.969v-1.889h1.969V21.375zM16.982,17.469v0.625h-1.969v-0.769c0-2.321,2.641-2.689,2.641-4.337c0-0.752-0.672-1.329-1.553-1.329c-0.912,0-1.713,0.672-1.713,0.672l-1.12-1.393c0,0,1.104-1.153,3.009-1.153c1.81,0,3.49,1.121,3.49,3.009C19.768,15.437,16.982,15.741,16.982,17.469z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Talkq.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Talkq.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Talkq();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Talkq = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Talkq.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Talkq\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,4.938c-7.732,0-14,4.701-14,10.5c0,1.981,0.741,3.833,2.016,5.414L2,25.272l5.613-1.44c2.339,1.316,5.237,2.106,8.387,2.106c7.732,0,14-4.701,14-10.5S23.732,4.938,16,4.938zM16.868,21.375h-1.969v-1.889h1.969V21.375zM16.772,18.094h-1.777l-0.176-8.083h2.113L16.772,18.094z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Thunder.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Thunder.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Thunder();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Thunder = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Thunder.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Thunder\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.371,7.306c-0.092-3.924-3.301-7.077-7.248-7.079c-2.638,0.001-4.942,1.412-6.208,3.517c-0.595-0.327-1.28-0.517-2.01-0.517C7.626,3.229,5.772,5.033,5.689,7.293c-2.393,0.786-4.125,3.025-4.127,5.686c0,3.312,2.687,6,6,6v-0.002h5.271l-2.166,3.398l1.977-0.411L10,30.875l9.138-10.102L17,21l2.167-2.023h4.269c3.312,0,6-2.688,6-6C29.434,10.34,27.732,8.11,25.371,7.306zM23.436,16.979H7.561c-2.209-0.006-3.997-1.792-4.001-4.001c-0.002-1.982,1.45-3.618,3.35-3.931c0.265-0.043,0.502-0.191,0.657-0.414C7.722,8.41,7.779,8.136,7.73,7.87C7.702,7.722,7.685,7.582,7.685,7.446C7.689,6.221,8.68,5.23,9.905,5.228c0.647,0,1.217,0.278,1.633,0.731c0.233,0.257,0.587,0.375,0.927,0.309c0.342-0.066,0.626-0.307,0.748-0.63c0.749-1.992,2.662-3.412,4.911-3.41c2.899,0.004,5.244,2.35,5.251,5.249c0,0.161-0.009,0.326-0.027,0.497c-0.049,0.517,0.305,0.984,0.815,1.079c1.86,0.344,3.274,1.966,3.271,3.923C27.43,15.186,25.645,16.973,23.436,16.979z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Trash.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Trash.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Trash();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Trash = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Trash.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Trash\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M20.826,5.75l0.396,1.188c1.54,0.575,2.589,1.44,2.589,2.626c0,2.405-4.308,3.498-8.312,3.498c-4.003,0-8.311-1.093-8.311-3.498c0-1.272,1.21-2.174,2.938-2.746l0.388-1.165c-2.443,0.648-4.327,1.876-4.327,3.91v2.264c0,1.224,0.685,2.155,1.759,2.845l0.396,9.265c0,1.381,3.274,2.5,7.312,2.5c4.038,0,7.313-1.119,7.313-2.5l0.405-9.493c0.885-0.664,1.438-1.521,1.438-2.617V9.562C24.812,7.625,23.101,6.42,20.826,5.75zM11.093,24.127c-0.476-0.286-1.022-0.846-1.166-1.237c-1.007-2.76-0.73-4.921-0.529-7.509c0.747,0.28,1.58,0.491,2.45,0.642c-0.216,2.658-0.43,4.923,0.003,7.828C11.916,24.278,11.567,24.411,11.093,24.127zM17.219,24.329c-0.019,0.445-0.691,0.856-1.517,0.856c-0.828,0-1.498-0.413-1.517-0.858c-0.126-2.996-0.032-5.322,0.068-8.039c0.418,0.022,0.835,0.037,1.246,0.037c0.543,0,1.097-0.02,1.651-0.059C17.251,18.994,17.346,21.325,17.219,24.329zM21.476,22.892c-0.143,0.392-0.69,0.95-1.165,1.235c-0.474,0.284-0.817,0.151-0.754-0.276c0.437-2.93,0.214-5.209-0.005-7.897c0.881-0.174,1.708-0.417,2.44-0.731C22.194,17.883,22.503,20.076,21.476,22.892zM11.338,9.512c0.525,0.173,1.092-0.109,1.268-0.633h-0.002l0.771-2.316h4.56l0.771,2.316c0.14,0.419,0.53,0.685,0.949,0.685c0.104,0,0.211-0.017,0.316-0.052c0.524-0.175,0.808-0.742,0.633-1.265l-1.002-3.001c-0.136-0.407-0.518-0.683-0.945-0.683h-6.002c-0.428,0-0.812,0.275-0.948,0.683l-1,2.999C10.532,8.77,10.815,9.337,11.338,9.512z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Twitter.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Twitter.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Twitter();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Twitter = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Twitter.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Twitter\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M23.295,22.567h-7.213c-2.125,0-4.103-2.215-4.103-4.736v-1.829h11.232c1.817,0,3.291-1.469,3.291-3.281c0-1.813-1.474-3.282-3.291-3.282H11.979V6.198c0-1.835-1.375-3.323-3.192-3.323c-1.816,0-3.29,1.488-3.29,3.323v11.633c0,6.23,4.685,11.274,10.476,11.274h7.211c1.818,0,3.318-1.463,3.318-3.298S25.112,22.567,23.295,22.567z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/TwitterBird.js\":\n/*!***************************************!*\\\n !*** ./src/shape/icon/TwitterBird.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.TwitterBird();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.TwitterBird = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.TwitterBird.prototype */\n{\n\n NAME: \"draw2d.shape.icon.TwitterBird\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M14.605,13.11c0.913-2.851,2.029-4.698,3.313-6.038c0.959-1,1.453-1.316,0.891-0.216c0.25-0.199,0.606-0.464,0.885-0.605c1.555-0.733,1.442-0.119,0.373,0.54c2.923-1.045,2.82,0.286-0.271,0.949c2.527,0.047,5.214,1.656,5.987,5.077c0.105,0.474-0.021,0.428,0.464,0.514c1.047,0.186,2.03,0.174,2.991-0.13c-0.104,0.708-1.039,1.167-2.497,1.471c-0.541,0.112-0.651,0.083-0.005,0.229c0.799,0.179,1.69,0.226,2.634,0.182c-0.734,0.846-1.905,1.278-3.354,1.296c-0.904,3.309-2.976,5.678-5.596,7.164c-6.152,3.492-15.108,2.984-19.599-3.359c2.947,2.312,7.312,2.821,10.555-0.401c-2.125,0-2.674-1.591-0.99-2.449c-1.595-0.017-2.608-0.521-3.203-1.434c-0.226-0.347-0.229-0.374,0.14-0.64c0.405-0.293,0.958-0.423,1.528-0.467c-1.651-0.473-2.66-1.335-3.009-2.491c-0.116-0.382-0.134-0.363,0.256-0.462c0.38-0.097,0.87-0.148,1.309-0.17C6.11,10.88,5.336,9.917,5.139,8.852c-0.186-1.006,0.005-0.748,0.758-0.46C9.263,9.68,12.619,11.062,14.605,13.11L14.605,13.11z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Umbrella.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Umbrella.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Umbrella();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Umbrella = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Umbrella.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Umbrella\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M14.784,26.991c0,1.238-1.329,1.696-1.835,1.696c-0.504,0-1.536-0.413-1.65-1.812c0-0.354-0.288-0.642-0.644-0.642c-0.354,0-0.641,0.287-0.641,0.642c0.045,1.056,0.756,3.052,2.935,3.052c2.432,0,3.166-1.882,3.166-3.144v-8.176l-1.328-0.024C14.787,18.584,14.784,25.889,14.784,26.991zM15.584,9.804c-6.807,0-11.084,4.859-11.587,8.326c0.636-0.913,1.694-1.51,2.89-1.51c1.197,0,2.22,0.582,2.855,1.495c0.638-0.904,1.69-1.495,2.88-1.495c1.2,0,2.26,0.6,2.896,1.517c0.635-0.917,1.83-1.517,3.03-1.517c1.19,0,2.241,0.591,2.879,1.495c0.636-0.913,1.659-1.495,2.855-1.495c1.197,0,2.254,0.597,2.89,1.51C26.669,14.663,22.393,9.804,15.584,9.804zM14.733,7.125v2.081h1.323V7.125c0-0.365-0.296-0.661-0.661-0.661C15.029,6.464,14.733,6.76,14.733,7.125z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Undo.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Undo.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Undo();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Undo = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Undo.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Undo\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M12.981,9.073V6.817l-12.106,6.99l12.106,6.99v-2.422c3.285-0.002,9.052,0.28,9.052,2.269c0,2.78-6.023,4.263-6.023,4.263v2.132c0,0,13.53,0.463,13.53-9.823C29.54,9.134,17.952,8.831,12.981,9.073z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Unlock.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Unlock.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Unlock();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Unlock = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Unlock.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Unlock\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M20.375,12.833h-2.209V10c0,0,0,0,0-0.001c0-2.389,1.945-4.333,4.334-4.333c2.391,0,4.335,1.944,4.335,4.333c0,0,0,0,0,0v2.834h2V9.999h-0.001c-0.001-3.498-2.836-6.333-6.334-6.333S16.166,6.502,16.166,10v2.833H3.125V25h17.25V12.833z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Usb.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Usb.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Usb();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Usb = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Usb.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Usb\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.5,1.667L13.745,4.74h1.252v15.709L11.8,17.391c-0.205-0.26-0.351-0.601-0.358-0.952c0-1.417-0.001-2.258-0.001-2.568c0.592-0.21,1.02-0.774,1.02-1.444c0-0.849-0.682-1.538-1.521-1.538c-0.84,0-1.521,0.689-1.521,1.538c0,0.67,0.427,1.234,1.019,1.444l-0.001,2.539c0,0.688,0.373,1.409,0.812,1.868c-0.013-0.013-0.027-0.025,0,0c0.011,0.01,3.392,3.245,3.392,3.245c0.205,0.26,0.35,0.6,0.357,0.951v1.776c-1.161,0.236-2.036,1.272-2.036,2.517c0,1.418,1.137,2.566,2.539,2.566c1.403,0,2.54-1.148,2.54-2.566c0-1.244-0.875-2.28-2.038-2.517v-1.746c0-0.005,0-0.009,0-0.014v-3.861c0.008-0.35,0.152-0.689,0.358-0.949c0,0,3.38-3.234,3.392-3.245c0.027-0.026,0.012-0.013,0,0c0.438-0.459,0.811-1.181,0.811-1.869V10.12h1.02V7.046h-3.041v3.075h1.018c0,0-0.002,0.644-0.002,2.476c-0.008,0.351-0.152,0.692-0.357,0.952l-3.198,3.06V4.74h1.254L15.5,1.667z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/User.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/User.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.User();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.User = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.User.prototype */\n{\n\n NAME: \"draw2d.shape.icon.User\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M20.771,12.364c0,0,0.849-3.51,0-4.699c-0.85-1.189-1.189-1.981-3.058-2.548s-1.188-0.454-2.547-0.396c-1.359,0.057-2.492,0.792-2.492,1.188c0,0-0.849,0.057-1.188,0.397c-0.34,0.34-0.906,1.924-0.906,2.321s0.283,3.058,0.566,3.624l-0.337,0.113c-0.283,3.283,1.132,3.68,1.132,3.68c0.509,3.058,1.019,1.756,1.019,2.548s-0.51,0.51-0.51,0.51s-0.452,1.245-1.584,1.698c-1.132,0.452-7.416,2.886-7.927,3.396c-0.511,0.511-0.453,2.888-0.453,2.888h26.947c0,0,0.059-2.377-0.452-2.888c-0.512-0.511-6.796-2.944-7.928-3.396c-1.132-0.453-1.584-1.698-1.584-1.698s-0.51,0.282-0.51-0.51s0.51,0.51,1.02-2.548c0,0,1.414-0.397,1.132-3.68H20.771z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Users.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Users.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Users();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Users = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Users.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Users\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M21.053,20.8c-1.132-0.453-1.584-1.698-1.584-1.698s-0.51,0.282-0.51-0.51s0.51,0.51,1.02-2.548c0,0,1.414-0.397,1.132-3.68h-0.34c0,0,0.849-3.51,0-4.699c-0.85-1.189-1.189-1.981-3.058-2.548s-1.188-0.454-2.547-0.396c-1.359,0.057-2.492,0.792-2.492,1.188c0,0-0.849,0.057-1.188,0.397c-0.34,0.34-0.906,1.924-0.906,2.321s0.283,3.058,0.566,3.624l-0.337,0.113c-0.283,3.283,1.132,3.68,1.132,3.68c0.509,3.058,1.019,1.756,1.019,2.548s-0.51,0.51-0.51,0.51s-0.452,1.245-1.584,1.698c-1.132,0.452-7.416,2.886-7.927,3.396c-0.511,0.511-0.453,2.888-0.453,2.888h26.947c0,0,0.059-2.377-0.452-2.888C28.469,23.686,22.185,21.252,21.053,20.8zM8.583,20.628c-0.099-0.18-0.148-0.31-0.148-0.31s-0.432,0.239-0.432-0.432s0.432,0.432,0.864-2.159c0,0,1.199-0.336,0.959-3.119H9.538c0,0,0.143-0.591,0.237-1.334c-0.004-0.308,0.006-0.636,0.037-0.996l0.038-0.426c-0.021-0.492-0.107-0.939-0.312-1.226C8.818,9.619,8.53,8.947,6.947,8.467c-1.583-0.48-1.008-0.385-2.159-0.336C3.636,8.179,2.676,8.802,2.676,9.139c0,0-0.72,0.048-1.008,0.336c-0.271,0.271-0.705,1.462-0.757,1.885v0.281c0.047,0.653,0.258,2.449,0.469,2.872l-0.286,0.096c-0.239,2.783,0.959,3.119,0.959,3.119c0.432,2.591,0.864,1.488,0.864,2.159s-0.432,0.432-0.432,0.432s-0.383,1.057-1.343,1.439c-0.061,0.024-0.139,0.056-0.232,0.092v5.234h0.575c-0.029-1.278,0.077-2.927,0.746-3.594C2.587,23.135,3.754,22.551,8.583,20.628zM30.913,11.572c-0.04-0.378-0.127-0.715-0.292-0.946c-0.719-1.008-1.008-1.679-2.59-2.159c-1.584-0.48-1.008-0.385-2.16-0.336C24.72,8.179,23.76,8.802,23.76,9.139c0,0-0.719,0.048-1.008,0.336c-0.271,0.272-0.709,1.472-0.758,1.891h0.033l0.08,0.913c0.02,0.231,0.022,0.436,0.027,0.645c0.09,0.666,0.21,1.35,0.33,1.589l-0.286,0.096c-0.239,2.783,0.96,3.119,0.96,3.119c0.432,2.591,0.863,1.488,0.863,2.159s-0.432,0.432-0.432,0.432s-0.053,0.142-0.163,0.338c4.77,1.9,5.927,2.48,6.279,2.834c0.67,0.667,0.775,2.315,0.746,3.594h0.48v-5.306c-0.016-0.006-0.038-0.015-0.052-0.021c-0.959-0.383-1.343-1.439-1.343-1.439s-0.433,0.239-0.433-0.432s0.433,0.432,0.864-2.159c0,0,0.804-0.229,0.963-1.841v-1.227c-0.001-0.018-0.001-0.033-0.003-0.051h-0.289c0,0,0.215-0.89,0.292-1.861V11.572z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Video.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Video.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Video();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Video = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Video.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Video\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M27.188,4.875v1.094h-4.5V4.875H8.062v1.094h-4.5V4.875h-1v21.25h1v-1.094h4.5v1.094h14.625v-1.094h4.5v1.094h1.25V4.875H27.188zM8.062,23.719h-4.5v-3.125h4.5V23.719zM8.062,19.281h-4.5v-3.125h4.5V19.281zM8.062,14.844h-4.5v-3.125h4.5V14.844zM8.062,10.406h-4.5V7.281h4.5V10.406zM11.247,20.59V9.754l9.382,5.418L11.247,20.59zM27.188,23.719h-4.5v-3.125h4.5V23.719zM27.188,19.281h-4.5v-3.125h4.5V19.281zM27.188,14.844h-4.5v-3.125h4.5V14.844zM27.188,10.406h-4.5V7.281h4.5V10.406z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/View.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/View.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.View();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.View = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.View.prototype */\n{\n\n NAME: \"draw2d.shape.icon.View\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,8.286C8.454,8.286,2.5,16,2.5,16s5.954,7.715,13.5,7.715c5.771,0,13.5-7.715,13.5-7.715S21.771,8.286,16,8.286zM16,20.807c-2.649,0-4.807-2.157-4.807-4.807s2.158-4.807,4.807-4.807s4.807,2.158,4.807,4.807S18.649,20.807,16,20.807zM16,13.194c-1.549,0-2.806,1.256-2.806,2.806c0,1.55,1.256,2.806,2.806,2.806c1.55,0,2.806-1.256,2.806-2.806C18.806,14.451,17.55,13.194,16,13.194z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Vim.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Vim.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Vim();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Vim = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Vim.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Vim\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.012,10.44l4.571-4.645c0.11-0.113,0.173-0.264,0.173-0.423V3.134c0-0.159-0.064-0.314-0.177-0.427l-0.604-0.602c-0.111-0.112-0.261-0.176-0.42-0.177l-9.646-0.086C18.71,1.84,18.523,1.935,18.41,2.099L17.807,2.96c-0.033,0.047-0.059,0.099-0.076,0.154l-2.144-2.156l0,0l-1.646,1.666l-0.447-0.497c-0.112-0.125-0.27-0.197-0.438-0.199L3.324,1.756c-0.163-0.003-0.322,0.06-0.437,0.176L2.284,2.535C2.171,2.647,2.107,2.803,2.107,2.962v2.325c0,0.164,0.066,0.32,0.183,0.434l0.657,0.635C3.056,6.461,3.2,6.521,3.352,6.525l0.285,0.007l0.007,6.512l-2.527,2.557l2.533,2.533l0.008,8.084c0,0.159,0.065,0.314,0.177,0.427l0.861,0.861c0.112,0.111,0.268,0.176,0.427,0.176h2.67c0.161,0,0.317-0.064,0.43-0.181l2.378-2.417l4.9,4.9l14.47-14.558L25.012,10.44zM9.747,24.232l-2.208,2.242H5.372l-0.509-0.509L4.856,19.34l-0.008-7.515L4.842,5.943c0-0.328-0.261-0.594-0.588-0.603L3.617,5.326L3.313,5.031v-1.82l0.245-0.245l9.215,0.163l0.319,0.354l0.126,0.141v1.419l-0.352,0.362H12.26c-0.331,0-0.6,0.266-0.603,0.597l-0.076,7.203c-0.002,0.244,0.141,0.463,0.365,0.56c0.224,0.096,0.482,0.049,0.657-0.12l7.495-7.235c0.174-0.171,0.23-0.432,0.139-0.66c-0.09-0.228-0.312-0.377-0.56-0.377h-0.479l-0.296-0.379V3.496l0.312-0.445l9.083,0.081l0.252,0.252v1.743l-4.388,4.458L9.747,24.232z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Volume0.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Volume0.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Volume0();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Volume0 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Volume0.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Volume0\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M4.998,12.127v7.896h4.495l6.729,5.526l0.004-18.948l-6.73,5.526H4.998z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Volume1.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Volume1.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Volume1();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Volume1 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Volume1.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Volume1\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M4.998,12.127v7.896h4.495l6.729,5.526l0.004-18.948l-6.73,5.526H4.998z M18.806,11.219c-0.393-0.389-1.024-0.389-1.415,0.002c-0.39,0.391-0.39,1.024,0.002,1.416v-0.002c0.863,0.864,1.395,2.049,1.395,3.366c0,1.316-0.531,2.497-1.393,3.361c-0.394,0.389-0.394,1.022-0.002,1.415c0.195,0.195,0.451,0.293,0.707,0.293c0.257,0,0.513-0.098,0.708-0.293c1.222-1.22,1.98-2.915,1.979-4.776C20.788,14.136,20.027,12.439,18.806,11.219z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Volume2.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Volume2.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Volume2();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Volume2 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Volume2.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Volume2\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M4.998,12.127v7.896h4.495l6.729,5.526l0.004-18.948l-6.73,5.526H4.998z M18.806,11.219c-0.393-0.389-1.024-0.389-1.415,0.002c-0.39,0.391-0.39,1.024,0.002,1.416v-0.002c0.863,0.864,1.395,2.049,1.395,3.366c0,1.316-0.531,2.497-1.393,3.361c-0.394,0.389-0.394,1.022-0.002,1.415c0.195,0.195,0.451,0.293,0.707,0.293c0.257,0,0.513-0.098,0.708-0.293c1.222-1.22,1.98-2.915,1.979-4.776C20.788,14.136,20.027,12.439,18.806,11.219z M21.101,8.925c-0.393-0.391-1.024-0.391-1.413,0c-0.392,0.391-0.392,1.025,0,1.414c1.45,1.451,2.344,3.447,2.344,5.661c0,2.212-0.894,4.207-2.342,5.659c-0.392,0.39-0.392,1.023,0,1.414c0.195,0.195,0.451,0.293,0.708,0.293c0.256,0,0.512-0.098,0.707-0.293c1.808-1.809,2.929-4.315,2.927-7.073C24.033,13.24,22.912,10.732,21.101,8.925z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Volume3.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Volume3.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Volume3();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Volume3 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Volume3.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Volume3\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M4.998,12.127v7.896h4.495l6.729,5.526l0.004-18.948l-6.73,5.526H4.998z M18.806,11.219c-0.393-0.389-1.024-0.389-1.415,0.002c-0.39,0.391-0.39,1.024,0.002,1.416v-0.002c0.863,0.864,1.395,2.049,1.395,3.366c0,1.316-0.531,2.497-1.393,3.361c-0.394,0.389-0.394,1.022-0.002,1.415c0.195,0.195,0.451,0.293,0.707,0.293c0.257,0,0.513-0.098,0.708-0.293c1.222-1.22,1.98-2.915,1.979-4.776C20.788,14.136,20.027,12.439,18.806,11.219z M21.101,8.925c-0.393-0.391-1.024-0.391-1.413,0c-0.392,0.391-0.392,1.025,0,1.414c1.45,1.451,2.344,3.447,2.344,5.661c0,2.212-0.894,4.207-2.342,5.659c-0.392,0.39-0.392,1.023,0,1.414c0.195,0.195,0.451,0.293,0.708,0.293c0.256,0,0.512-0.098,0.707-0.293c1.808-1.809,2.929-4.315,2.927-7.073C24.033,13.24,22.912,10.732,21.101,8.925z M23.28,6.746c-0.393-0.391-1.025-0.389-1.414,0.002c-0.391,0.389-0.391,1.023,0.002,1.413h-0.002c2.009,2.009,3.248,4.773,3.248,7.839c0,3.063-1.239,5.828-3.246,7.838c-0.391,0.39-0.391,1.023,0.002,1.415c0.194,0.194,0.45,0.291,0.706,0.291s0.513-0.098,0.708-0.293c2.363-2.366,3.831-5.643,3.829-9.251C27.115,12.389,25.647,9.111,23.28,6.746z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Warning.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Warning.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Warning();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Warning = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Warning.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Warning\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M29.225,23.567l-3.778-6.542c-1.139-1.972-3.002-5.2-4.141-7.172l-3.778-6.542c-1.14-1.973-3.003-1.973-4.142,0L9.609,9.853c-1.139,1.972-3.003,5.201-4.142,7.172L1.69,23.567c-1.139,1.974-0.207,3.587,2.071,3.587h23.391C29.432,27.154,30.363,25.541,29.225,23.567zM16.536,24.58h-2.241v-2.151h2.241V24.58zM16.428,20.844h-2.023l-0.201-9.204h2.407L16.428,20.844z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/WheelChair.js\":\n/*!**************************************!*\\\n !*** ./src/shape/icon/WheelChair.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.WheelChair();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.WheelChair = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.WheelChair.prototype */\n{\n\n NAME: \"draw2d.shape.icon.WheelChair\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M20.373,19.85c0,4.079-3.318,7.397-7.398,7.397c-4.079,0-7.398-3.318-7.398-7.397c0-2.466,1.213-4.652,3.073-5.997l-0.251-2.21c-2.875,1.609-4.825,4.684-4.825,8.207c0,5.184,4.217,9.4,9.401,9.4c4.395,0,8.093-3.031,9.117-7.111L20.37,19.73C20.37,19.771,20.373,19.81,20.373,19.85zM11.768,6.534c1.321,0,2.392-1.071,2.392-2.392c0-1.321-1.071-2.392-2.392-2.392c-1.321,0-2.392,1.071-2.392,2.392C9.375,5.463,10.446,6.534,11.768,6.534zM27.188,22.677l-5.367-7.505c-0.28-0.393-0.749-0.579-1.226-0.538c-0.035-0.003-0.071-0.006-0.106-0.006h-6.132l-0.152-1.335h4.557c0.53,0,0.96-0.429,0.96-0.959c0-0.53-0.43-0.959-0.96-0.959h-4.776l-0.25-2.192c-0.146-1.282-1.303-2.203-2.585-2.057C9.869,7.271,8.948,8.428,9.094,9.71l0.705,6.19c0.136,1.197,1.154,2.078,2.332,2.071c0.004,0,0.007,0.001,0.012,0.001h8.023l4.603,6.436c0.439,0.615,1.338,0.727,2.007,0.248C27.442,24.178,27.628,23.292,27.188,22.677z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Windows.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Windows.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Windows();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Windows = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Windows.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Windows\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M20.023,17.484c-1.732-0.205-3.022-0.908-4.212-1.701l0,0l-0.559,0.279l-2.578,8.924l0,0c1.217,0.805,2.905,1.707,4.682,1.914c2.686,0.312,5.56-0.744,6.391-1.195l2.617-9.061l-0.559-0.279C25.805,16.365,23.193,17.857,20.023,17.484zM14.424,14.825c-1.267-0.87-2.578-1.652-4.375-1.816c-0.318-0.029-0.627-0.042-0.925-0.042c-3.011,0-4.948,1.347-4.948,1.347l-2.565,8.877l0,0l0.526,0.281c0.981-0.476,2.78-1.145,5.09-0.984c1.665,0.113,2.92,0.781,4.117,1.531l0.507-0.26l0,0L14.424,14.825zM10.201,12.094c1.664,0.114,2.921,0.78,4.117,1.533l0.509-0.26l0,0L17.4,4.431c-1.27-0.87-2.579-1.653-4.377-1.816c-0.318-0.029-0.626-0.042-0.924-0.042C9.088,2.573,7.15,3.92,7.15,3.92l-2.566,8.878L5.11,13.08C6.092,12.604,7.891,11.936,10.201,12.094zM28.779,5.971L28.779,5.971c0,0.001-2.609,1.492-5.779,1.119c-1.734-0.204-3.023-0.907-4.213-1.701L18.227,5.67l-2.576,8.923l0,0c1.215,0.803,2.906,1.709,4.68,1.915c2.687,0.312,5.558-0.745,6.392-1.197l2.615-9.059L28.779,5.971z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Woman.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Woman.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Woman();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Woman = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Woman.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Woman\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M21.022,16.349c-0.611-1.104-1.359-1.998-2.109-2.623c-0.875,0.641-1.941,1.031-3.104,1.031c-1.164,0-2.231-0.391-3.105-1.031c-0.75,0.625-1.498,1.519-2.111,2.623c-1.422,2.563-1.579,5.192-0.351,5.874c0.55,0.307,1.127,0.078,1.723-0.496c-0.105,0.582-0.167,1.213-0.167,1.873c0,2.932,1.139,5.307,2.543,5.307c0.846,0,1.265-0.865,1.466-2.189c0.201,1.324,0.62,2.189,1.464,2.189c1.406,0,2.545-2.375,2.545-5.307c0-0.66-0.061-1.291-0.168-1.873c0.598,0.574,1.174,0.803,1.725,0.496C22.603,21.541,22.444,18.912,21.022,16.349zM15.808,13.757c2.363,0,4.279-1.916,4.279-4.279s-1.916-4.279-4.279-4.279c-2.363,0-4.28,1.916-4.28,4.279S13.445,13.757,15.808,13.757zM18.731,4.974c1.235,0.455,0.492-0.725,0.492-1.531s0.762-1.792-0.492-1.391c-1.316,0.422-2.383,0.654-2.383,1.461S17.415,4.489,18.731,4.974zM15.816,4.4c0.782,0,0.345-0.396,0.345-0.884c0-0.488,0.438-0.883-0.345-0.883s-0.374,0.396-0.374,0.883C15.442,4.005,15.034,4.4,15.816,4.4zM12.884,4.974c1.316-0.484,2.383-0.654,2.383-1.461S14.2,2.474,12.884,2.052c-1.254-0.402-0.492,0.584-0.492,1.391S11.648,5.428,12.884,4.974z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Wrench.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Wrench.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Wrench();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Wrench = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Wrench.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Wrench\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M26.834,14.693c1.816-2.088,2.181-4.938,1.193-7.334l-3.646,4.252l-3.594-0.699L19.596,7.45l3.637-4.242c-2.502-0.63-5.258,0.13-7.066,2.21c-1.907,2.193-2.219,5.229-1.039,7.693L5.624,24.04c-1.011,1.162-0.888,2.924,0.274,3.935c1.162,1.01,2.924,0.888,3.935-0.274l9.493-10.918C21.939,17.625,24.918,16.896,26.834,14.693z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Wrench2.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Wrench2.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Wrench2();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Wrench2 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Wrench2.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Wrench2\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.946,9.721l-2.872-0.768l-0.771-2.874l3.188-3.231c-1.992-0.653-4.268-0.192-5.848,1.391c-1.668,1.668-2.095,4.111-1.279,6.172l-3.476,3.478l-3.478,3.478c-2.062-0.816-4.504-0.391-6.173,1.277c-1.583,1.581-2.043,3.856-1.39,5.849l3.231-3.188l2.874,0.77l0.769,2.872l-3.239,3.197c1.998,0.665,4.288,0.207,5.876-1.384c1.678-1.678,2.1-4.133,1.271-6.202l3.463-3.464l3.464-3.463c2.069,0.828,4.523,0.406,6.202-1.272c1.592-1.589,2.049-3.878,1.384-5.876L24.946,9.721z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Wrench3.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Wrench3.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Wrench3();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Wrench3 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Wrench3.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Wrench3\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M27.839,6.775l-3.197,3.239L21.77,9.246l-0.771-2.874l3.188-3.231c-1.992-0.653-4.268-0.192-5.848,1.391c-1.668,1.668-2.095,4.111-1.279,6.172L7.42,20.344c-0.204-0.032-0.408-0.062-0.621-0.062c-2.173,0-3.933,1.759-3.933,3.933c0,2.173,1.76,3.933,3.933,3.933c2.171,0,3.931-1.76,3.933-3.933c0-0.24-0.03-0.473-0.071-0.7l9.592-9.59c2.069,0.828,4.523,0.406,6.202-1.272C28.047,11.062,28.504,8.772,27.839,6.775zM6.799,25.146c-0.517,0-0.933-0.418-0.935-0.933c0.002-0.515,0.418-0.933,0.935-0.933c0.514,0,0.932,0.418,0.932,0.933S7.313,25.146,6.799,25.146z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/ZoomIn.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/ZoomIn.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.ZoomIn();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.ZoomIn = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.ZoomIn.prototype */\n{\n\n NAME: \"draw2d.shape.icon.ZoomIn\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M22.646,19.307c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127l3.535-3.537L22.646,19.307zM13.688,20.369c-3.582-0.008-6.478-2.904-6.484-6.484c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486C20.165,17.465,17.267,20.361,13.688,20.369zM15.687,9.051h-4v2.833H8.854v4.001h2.833v2.833h4v-2.834h2.832v-3.999h-2.833V9.051z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/ZoomOut.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/ZoomOut.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.ZoomOut();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.ZoomOut = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.ZoomOut.prototype */\n{\n\n NAME: \"draw2d.shape.icon.ZoomOut\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M22.646,19.307c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127l3.535-3.537L22.646,19.307zM13.688,20.369c-3.582-0.008-6.478-2.904-6.484-6.484c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486C20.165,17.465,17.267,20.361,13.688,20.369zM8.854,11.884v4.001l9.665-0.001v-3.999L8.854,11.884z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/layout/FlexGridLayout.js\":\n/*!********************************************!*\\\n !*** ./src/shape/layout/FlexGridLayout.js ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * FlexGridLayout is a powerful, flexible and precise layout manager that aligns components vertically and\n * horizontally in a dynamic rectangular grid of cells, with each component occupying in one or more cell.\n * To define a form layout you specify the form's columns, rows. Everyhing that applies to columns applies\n * to rows too - just with a different orientation. FlexGridLayout uses the same API, algorithms and implementation\n * for column and rows.\n *\n * FlexGridLayout focuses on form-oriented panels much like the 'Segment' panel. Nevertheless, it is a general purpose\n * layout system that can be used for the vast majority of rectangular layouts.\n *\n * Define your layout with:\n * <ul>\n * <li>[number]px</li>\n * <li>grow</li>\n * <li>pref</li>\n * </ul>\n *\n * e.g. we want build a shape with a border on the left and right and a label in the\n * center. We allow the center to grow, the shape is resizeable.\n *\n * <pre>\n * 10px grow 10px\n *\n * -----+------------------+-----\n * | | [LABEL] | |\n * | | | |\n * | | | | grow\n * | | | |\n * | | | |\n * -----+------------------+-----\n * </pre>\n *\n * The number forces the exact width or height of the cell. <b>grow</b> respect the minimum width of the\n * element and allows to resize the shape. The row/col with the <b>grow</b> declaration will be resized.\n * The <b>pref</b> declaration forces the cell to the minimum width/height of the embedded figure.\n *\n * Example Implementation of a shape:\n *\n * @example\n * let PredefinedProcess = draw2d.shape.layout.FlexGridLayout.extend({\n *\n *\n * // 10px grow 10px\n * //\n * // -----+------------------+-----\n * // | | [LABEL] | |\n * // | | | |\n * // | | | | grow\n * // | | | |\n * // | | | |\n * // -----+------------------+-----\n * //\n * // @param attr\n * //\n * init: function(attr, setter, getter)\n * {\n * this._super(extend({\n * columns:\"10px, grow, 10px\",\n * rows: \"grow\",\n * bgColor:\"#FFFFFF\",\n * stroke:2\n * },attr),\n * setter,\n * getter);\n *\n *\n * this.label = new draw2d.shape.basic.Label({text:\"Process Name\", resizeable:true, stroke:2});\n * this.label.installEditor(new draw2d.ui.LabelInplaceEditor());\n * this.add(this.label, {row:0, col:1});\n *\n * this.setDimension(120,80);\n * }\n * });\n * let shape = new PredefinedProcess();\n * canvas.add(shape,10,10);\n *\n *\n * @author Andreas Herz\n * @extends draw2d.shape.layout.Layout\n * @since 2.5.1\n */\n_packages2.default.shape.layout.FlexGridLayout = _packages2.default.shape.layout.Layout.extend(\n/** @lends draw2d.shape.layout.FlexGridLayout.prototype */\n{\n\n NAME: \"draw2d.shape.layout.FlexGridLayout\",\n\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n var _this = this;\n this.cellLocator = {\n relocate: function relocate(index, figure) {\n if (_this.gridDef.layoutRequired === true) {\n _this._layout();\n }\n var cell = figure.__cellConstraint;\n var x = cell.x;\n var y = cell.y;\n\n // stretch the figure to fill the complete cell\n //\n if (figure.isResizeable()) {\n figure.setDimension(Math.max(figure.getMinWidth(), cell.width), Math.max(figure.getMinHeight(), cell.height));\n }\n // else apply the valign and align property\n //\n else {\n // apply vertical alignment\n //\n switch (cell.valign) {\n case \"middle\":\n y = y + (cell.height - figure.getHeight()) / 2;\n break;\n case \"bottom\":\n y = y + (cell.height - figure.getHeight());\n break;\n }\n\n // apply horizontal alignment\n //\n switch (cell.align) {\n case \"center\":\n x = x + (cell.width - figure.getWidth()) / 2;\n break;\n case \"right\":\n x = x + (cell.width - figure.getWidth());\n break;\n }\n }\n figure.setPosition(x, y);\n },\n bind: function bind() {},\n unbind: function unbind() {},\n translate: function translate(figure, diff) {\n figure.setPosition(figure.x + diff.x, figure.y + diff.y);\n }\n };\n\n this.debug = false;\n this.gridDef = {\n debugLines: [],\n def_cols: [],\n def_rows: [],\n min_height: [],\n min_width: [],\n minGridWidth: 10,\n minGridHeight: 10,\n hResizeable: false,\n vResizeable: false,\n layoutRequired: true\n };\n\n this._super((0, _extend2.default)({ stroke: 2 }, attr), (0, _extend2.default)({}, setter), (0, _extend2.default)({}, getter));\n\n this.resizeListener = function (figure) {\n _this.gridDef.layoutRequired = true;\n // propagate the event to the parent or other listener if existing\n //\n if (_this.getParent() instanceof _packages2.default.shape.layout.Layout) {\n _this.fireEvent(\"resize\");\n }\n // or we are the parent and must consume it self\n else {\n _this.setDimension(_this.gridDef.hResizeable === true ? _this.getWidth() : 1, _this.gridDef.vResizeable === true ? _this.getHeight() : 1);\n }\n };\n\n var rows = attr.rows.split(\",\");\n var columns = attr.columns.split(\",\");\n for (var i = 0; i < columns.length; i++) {\n this.gridDef.def_cols[i] = this.cellWidthFromDef(columns[i]);\n }\n\n for (var _i = 0; _i < rows.length; _i++) {\n this.gridDef.def_rows[_i] = this.cellWidthFromDef(rows[_i]);\n }\n\n this.installEditPolicy(new _packages2.default.policy.figure.RectangleSelectionFeedbackPolicy());\n },\n\n add: function add(figure, cellConstraint) {\n\n figure.__cellConstraint = (0, _extend2.default)({}, {\n row: 0,\n col: 0,\n rowspan: 1,\n colspan: 1,\n align: \"left\",\n valign: \"top\",\n width: 1,\n height: 1\n }, cellConstraint);\n this.gridDef.layoutRequired = true;\n this._super(figure, this.cellLocator);\n this._layout();\n },\n\n /**\n * @inheritdoc\n */\n getMinWidth: function getMinWidth() {\n return this.gridDef.minGridWidth;\n },\n\n /**\n * @inheritdoc\n */\n getMinHeight: function getMinHeight() {\n return this.gridDef.minGridHeight;\n },\n\n /**\n * @inheritdoc\n */\n setCanvas: function setCanvas(canvas) {\n // layout must be recalculated if the shape will be assigned\n // to a canvas. \"Text\" elements can now calculate correct with the right font settings.\n //\n this.gridDef.layoutRequired = true;\n this._super(canvas);\n\n return this;\n },\n\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return this;\n }\n this._super(attributes);\n if (this.debug) {\n this.paintDebugGrid();\n }\n\n return this;\n },\n\n setDimension: function setDimension(w, h) {\n // we need the calculated layout to determine the min width/height of the figure\n //\n if (this.gridDef.layoutRequired === true) {\n this._layout();\n }\n // set the new dimension\n this._super(w, h);\n\n // after setting the new dimension a recalculation of the layout is required. May the shape\n // has grown up\n this.gridDef.layoutRequired = true;\n this.repaint();\n\n return this;\n },\n\n _layout: function _layout() {\n this.gridDef.layoutRequired = false;\n\n var figures = this.getChildren();\n\n // copy the initial requested width/heights\n //\n this.gridDef.min_height = this.gridDef.def_rows.slice(0);\n this.gridDef.min_width = this.gridDef.def_cols.slice(0);\n\n // Calculate the basic width/height of the elements without considering the \"span\" and \"grow\"\n //\n for (var i = 0; i < figures.getSize(); i++) {\n var figure = figures.get(i);\n var cell = figure.__cellConstraint;\n // ermitteln der derzeitig zur verfügung stehenden weite\n this.gridDef.min_width[cell.col] = Math.max(this.gridDef.min_width[cell.col], figure.getMinWidth());\n\n // Falls das Elemente eine y_span hat, dann versuchen ob es auf die ganze\n // höhe rein passt. Wenn nicht wird der Teil der 'grow' angegeben hat verändert.\n // Wenn kein Element 'grow' angegeben hat, dann wird das letzte Element verändert\n if (cell.rowspan > 1) {\n var eHeight = figure.getMinHeight();\n var cHeight = this.cellHeight(cell.row, cell.row + cell.rowspan);\n if (cHeight < eHeight) {\n var diff = eHeight - cHeight;\n this.gridDef.min_height[cell.row + cell.rowspan - 1] = this.gridDef.min_height[cell.row + cell.rowspan - 1] + diff;\n }\n } else {\n this.gridDef.min_height[cell.row] = Math.max(this.gridDef.min_height[cell.row], figure.getMinHeight());\n }\n }\n this.gridDef.minGridWidth = this._getGridWidth();\n this.gridDef.minGridHeight = this._getGridHeight();\n\n // Resize the grid height if at least one row supports \"grow\"\n //\n var gridHeight = this._getGridHeight();\n for (var _i2 = 0; _i2 < this.gridDef.def_rows.length; _i2++) {\n // row found which can grow\n if (this.gridDef.def_rows[_i2] === -1) {\n this.gridDef.min_height[_i2] = this.gridDef.min_height[_i2] + Math.max(0, this.getHeight() - gridHeight);\n this.gridDef.vResizeable = true;\n break;\n }\n }\n\n // Resize the grid if at least one column supports \"grow\"\n //\n var gridWidth = this._getGridWidth();\n for (var _i3 = 0; _i3 < this.gridDef.def_cols.length; _i3++) {\n // column found which can grow\n if (this.gridDef.def_cols[_i3] === -1) {\n this.gridDef.min_width[_i3] = this.gridDef.min_width[_i3] + Math.max(0, this.getWidth() - gridWidth);\n this.gridDef.hResizeable = true;\n break;\n }\n }\n\n // apply the cell constraints to the elements\n //\n for (var _i4 = 0; _i4 < figures.getSize(); _i4++) {\n var _cell = figures.get(_i4).__cellConstraint;\n _cell.width = this.cellWidth(_cell.col, _cell.col + _cell.colspan);\n _cell.height = this.cellHeight(_cell.row, _cell.row + _cell.rowspan);\n _cell.x = this.cellX(_cell.col);\n _cell.y = this.cellY(_cell.row);\n }\n\n return this;\n },\n\n cellX: function cellX(col) {\n var r = 0;\n for (var i = 0; i < col; i++) {\n r = r + this.gridDef.min_width[i];\n }\n\n return r;\n },\n\n cellY: function cellY(row) {\n var r = 0;\n for (var i = 0; i < row; i++) {\n r = r + this.gridDef.min_height[i];\n }\n\n return r;\n },\n\n cellWidth: function cellWidth(from, to) {\n var r = 0;\n for (var i = from; i < to; i++) {\n r = r + this.gridDef.min_width[i];\n }\n\n return r;\n },\n\n cellHeight: function cellHeight(from, to) {\n var r = 0;\n for (var i = from; i < to; i++) {\n r = r + this.gridDef.min_height[i];\n }\n\n return r;\n },\n\n paintDebugGrid: function paintDebugGrid() {\n // alte Linien erstmal entfernen bevor man neue zeichnet\n //\n for (var i = 0; i < this.gridDef.debugLines.length; i++) {\n this.gridDef.debugLines[i].remove();\n }this.gridDef.debugLines = [];\n\n var gridHeight = this._getGridHeight();\n var gridWidth = this._getGridWidth();\n var posX = this.getAbsoluteX();\n var posY = this.getAbsoluteY();\n\n // draw the cols first\n var x = posX;\n for (var _i5 = 0; _i5 <= this.gridDef.min_width.length; _i5++) {\n var newLine = this.canvas.paper.path(\"M \" + x + \" \" + posY + \" l 0 \" + gridHeight).attr({\n \"stroke\": \"#FF0000\",\n \"stroke-width\": 1\n });\n this.gridDef.debugLines.push(newLine);\n if (_i5 < this.gridDef.min_width.length) x = x + this.gridDef.min_width[_i5];\n }\n\n var y = posY;\n for (var _i6 = 0; _i6 <= this.gridDef.min_height.length; _i6++) {\n var _newLine = this.canvas.paper.path(\"M \" + posX + \" \" + y + \" l \" + gridWidth + \" 0\").attr({\n \"stroke\": \"#FF0000\",\n \"stroke-width\": 1\n });\n this.gridDef.debugLines.push(_newLine);\n if (_i6 < this.gridDef.min_height.length) y = y + this.gridDef.min_height[_i6];\n }\n },\n\n _getGridWidth: function _getGridWidth() {\n var gridWidth = 0;\n for (var i = 0; i < this.gridDef.min_width.length; i++) {\n gridWidth = gridWidth + this.gridDef.min_width[i];\n }\n\n return gridWidth;\n },\n\n _getGridHeight: function _getGridHeight() {\n var gridHeight = 0;\n for (var i = 0; i < this.gridDef.min_height.length; i++) {\n gridHeight = gridHeight + this.gridDef.min_height[i];\n }\n\n return gridHeight;\n },\n\n cellWidthFromDef: function cellWidthFromDef(def) {\n var pattern = new RegExp(\"(\\\\d+)(?:px)?\");\n var match = def.match(pattern);\n\n if (match != null) {\n return parseInt(match[1]);\n }\n\n pattern = new RegExp(\"p(?:ref)?\");\n match = def.match(pattern);\n if (match != null) {\n return 0;\n }\n\n pattern = new RegExp(\"g(?:row)?\");\n match = def.match(pattern);\n if (match != null) {\n this.autoResize = false;\n return -1;\n }\n\n return 0;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/layout/HorizontalLayout.js\":\n/*!**********************************************!*\\\n !*** ./src/shape/layout/HorizontalLayout.js ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * The HorizontalLayout class arranges the layout elements in a horizontal sequence,\n * left to right, with optional gaps between the elements.\n *\n * During the execution of the setDimension() method, the minimum width of the container is calculated\n * by accumulating the minimum sizes of the elements, including stroke, gaps and padding.\n *\n *\n * See the example below with and without gap and border settings\n *\n *\n * @example\n *\n * // first container without any gap and a border of the parent\n * // container\n * let label1 = new draw2d.shape.basic.Label({text:\"Label 1\"});\n * let label2 = new draw2d.shape.basic.Label({text:\"Label 2\"});\n * let label3 = new draw2d.shape.basic.Label({text:\"Label 3\"});\n *\n * let container1 = new draw2d.shape.layout.HorizontalLayout();\n *\n * container1.add(label1);\n * container1.add(label2);\n * container1.add(label3);\n * container1.setGap(10);\n * container1.setStroke(2);\n * canvas.add(container1,50,10);\n *\n * // second container without any gab or border\n * //\n * let label11 = new draw2d.shape.basic.Label({text:\"Label 1\"});\n * let label12 = new draw2d.shape.basic.Label({text:\"Label 2\"});\n * let label13 = new draw2d.shape.basic.Label({text:\"Label 3\"});\n *\n * let container2 = new draw2d.shape.layout.HorizontalLayout();\n *\n * container2.add(label11);\n * container2.add(label12);\n * container2.add(label13);\n *\n * canvas.add(container2,50,90);\n *\n *\n * @author Andreas Herz\n * @extends draw2d.shape.layout.Layout\n * @since 2.5.1\n */\n_packages2.default.shape.layout.HorizontalLayout = _packages2.default.shape.layout.Layout.extend(\n/** @lends draw2d.shape.layout.HorizontalLayout.prototype */\n{\n\n NAME: \"draw2d.shape.layout.HorizontalLayout\",\n\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.gap = 0;\n var _this = this;\n this.locator = {\n translate: function translate(figure, diff) {\n figure.setPosition(figure.x + diff.x, figure.y + diff.y);\n },\n bind: function bind() {},\n unbind: function unbind() {},\n relocate: function relocate(index, target) {\n var stroke = _this.getStroke();\n var yPos = stroke + _this.padding.top;\n var xPos = stroke + _this.padding.left; // respect the border and padding of the parent\n for (var i = 0; i < index; i++) {\n var child = _this.children.get(i).figure;\n if (child.isVisible()) {\n xPos += child.getWidth() + _this.gap;\n }\n }\n\n target.setPosition(xPos, yPos);\n }\n };\n\n this._super((0, _extend2.default)({ width: 1, height: 1, gap: 0 }, attr), (0, _extend2.default)({\n // @attr {Number} gap the gap between the children shapes */\n gap: this.setGap\n }, setter), (0, _extend2.default)({\n gap: this.getGap\n }, getter));\n },\n\n /**\n * @inheritdoc\n */\n add: function add(child, locator, index) {\n this._super(child, this.locator, index);\n\n this.setDimension(1, 1);\n\n return this;\n },\n\n /**\n *\n * Set the gap width between child components within this layout.\n * This will only affect the space between components, not the space around all the components in the layout.\n *\n * @param {Number} gap The space, in pixels, between items.\n * @since 2.5.1\n */\n setGap: function setGap(gap) {\n this.gap = gap;\n // this forces a relayout of the element\n this.setDimension(1, 1);\n\n return this;\n },\n\n /**\n *\n * Return the gap between the children shapes\n *\n * @since 5.0.0\n *\n */\n getGap: function getGap() {\n return this.gap;\n },\n\n /**\n * @inheritdoc\n */\n getMinWidth: function getMinWidth() {\n var _this = this;\n var width = this.stroke * 2 + this.padding.left + this.padding.right;\n var gap = 0;\n\n this.children.each(function (i, e) {\n if (e.figure.isVisible()) {\n width += e.figure.isResizeable() ? e.figure.getMinWidth() : e.figure.getWidth() + gap;\n gap = _this.gap;\n }\n });\n\n return width;\n },\n\n /**\n * @inheritdoc\n */\n getMinHeight: function getMinHeight() {\n var markup = this.stroke * 2 + this.padding.top + this.padding.bottom;\n var height = 0;\n\n this.children.each(function (i, e) {\n height = Math.max(height, e.figure.isResizeable() ? e.figure.getMinHeight() : e.figure.getHeight());\n });\n\n return height + markup;\n },\n\n /**\n * @inheritdoc\n */\n setDimension: function setDimension(w, h) {\n this._super(w, h);\n\n var diff = this.width - this.getMinWidth();\n if (diff > 0) {\n diff = diff / this.children.getSize() | 0;\n this.children.each(function (i, e) {\n if (e.figure.isResizeable() === true) {\n e.figure.setDimension(e.figure.getMinWidth() + diff, e.figure.getHeight());\n }\n });\n } else {\n var minHeight = this.getMinHeight();\n this.children.each(function (i, e) {\n // The layout respect the \"resizeable\" flag because a layout is a kind of layouter and\n // any kind of autolayouter must respect this flag\n if (e.figure.isResizeable() === true) {\n // reset the shape to the minimum width/height. see setMinWidth/setMinHeight\n e.figure.setDimension(1, minHeight);\n }\n });\n }\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n getPersistentAttributes: function getPersistentAttributes() {\n var memento = this._super();\n\n memento.gap = this.gap;\n\n return memento;\n },\n\n /**\n * @inheritdoc\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n\n if (typeof memento.gap === \"number\") {\n this.gap = memento.gap;\n }\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/layout/Layout.js\":\n/*!************************************!*\\\n !*** ./src/shape/layout/Layout.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A base class for positioning child figures and determining the ideal size for\n * a figure with children.\n *\n *\n * @author Andreas Herz\n * @extends draw2d.shape.basic.Rectangle\n */\n_packages2.default.shape.layout.Layout = _packages2.default.shape.basic.Rectangle.extend(\n/** @lends draw2d.shape.layout.Layout.prototype */\n{\n\n NAME: \"draw2d.shape.layout.Layout\",\n\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n var _this = this;\n\n // @since 4.3.3\n this.padding = { top: 0, right: 0, bottom: 0, left: 0 };\n\n this._super((0, _extend2.default)({ bgColor: null, radius: 0, stroke: 0 }, attr), (0, _extend2.default)({\n // @attr {Number} padding the padding in pixel around the text */\n padding: this.setPadding\n }, setter), (0, _extend2.default)({\n padding: this.getPadding\n }, getter));\n\n this.resizeListener = function (figure) {\n // propagate the event to the parent or other listener if existing\n //\n if (_this.getParent() instanceof _packages2.default.shape.layout.Layout) {\n _this.fireEvent(\"resize\");\n }\n // or we are the parent and must consume it self\n else {\n _this.setDimension(1, 1);\n _this.fireEvent(\"resize\");\n }\n };\n\n this.installEditPolicy(new _packages2.default.policy.figure.AntSelectionFeedbackPolicy());\n },\n\n /**\n * @inheritdoc\n */\n add: function add(child, locator, index) {\n this._super(child, locator, index);\n\n child.on(\"resize\", this.resizeListener);\n child.on(\"change:visibility\", this.resizeListener);\n\n // don't use the getter/setter. This considers the canvas assignment and\n // the child is always invisible. BIG BUG. The example shape_db will break if you change this.\n // child.setVisible(this.isVisible());\n // respect the \"visible\" flag of the child as well\n child.visible = child.visible && this.visible;\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n remove: function remove(child) {\n var r = this._super(child);\n child.off(this.resizeListener);\n this.setDimension(1, 1);\n\n return r;\n },\n\n /**\n * \n * Set the padding of the element\n *\n * // Alternatively you can use the attr method:\n * //\n * // set the padding for top,left,bottom,right in one call\n * figure.attr({\n * padding: 3\n * });\n *\n * // update the padding left and top\n * figure.attr({\n * padding: {left:3, top:30}\n * });\n *\n * @param {Number|Object} padding The new padding\n * @since 4.3.3\n **/\n setPadding: function setPadding(padding) {\n if (typeof padding === \"number\") {\n this.padding = { top: padding, right: padding, bottom: padding, left: padding };\n } else {\n this.padding = (0, _extend2.default)(this.padding, padding);\n }\n this.fireEvent(\"change:padding\", { value: this.padding });\n\n // force a relayout of the figure\n this.setDimension(1, 1);\n\n return this;\n },\n\n /**\n * \n * Get the padding of the element.\n *\n * @since 4.3.3\n * @returns {this}\n **/\n getPadding: function getPadding() {\n return this.padding;\n },\n\n /**\n * @inheritdoc\n * @returns {this}\n */\n setVisible: function setVisible(flag) {\n // propagate the visibility to all children too.\n //\n this.children.each(function (i, e) {\n e.figure.setVisible(flag);\n });\n\n this._super(flag);\n\n // force a relayout of the shape because the dimension has been changed\n // by enable/disable of child shapes\n this.setDimension(1, 1);\n\n return this;\n },\n\n /**\n * \n * Returns the Command to perform the specified Request or null.\n *\n * @param {draw2d.command.CommandType} request describes the Command being requested\n * @returns {draw2d.command.Command} null or a Command\n * @private\n **/\n createCommand: function createCommand(request) {\n // it is not possible to rate a layout object\n // ..at the moment\n if (request.getPolicy() === _packages2.default.command.CommandType.ROTATE) {\n return null;\n }\n\n return this._super(request);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/layout/StackLayout.js\":\n/*!*****************************************!*\\\n !*** ./src/shape/layout/StackLayout.js ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Using the StackLayout as their layout shape have their children placed on top of one another.\n * Order of placement is determined by the order in which the children were added, first child\n * added placed on the bottom. Only one child is visible at once.\n *\n * @author Andreas Herz\n * @extends draw2d.shape.layout.Layout\n */\n_packages2.default.shape.layout.StackLayout = _packages2.default.shape.layout.Layout.extend(\n/** @lends draw2d.shape.layout.StackLayout.prototype */\n{\n\n NAME: \"draw2d.shape.layout.StackLayout\",\n\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.visibleLayer = 0;\n this.locator = new _packages2.default.layout.locator.XYAbsPortLocator(0, 0);\n\n this._super((0, _extend2.default)({ resizeable: true, width: 10, height: 10 }, attr), (0, _extend2.default)({}, setter), (0, _extend2.default)({}, getter));\n\n this.resizeListener = function (figure) {};\n // install default selection handler. Can be overridden or replaced\n this.installEditPolicy(new _packages2.default.policy.figure.RectangleSelectionFeedbackPolicy());\n },\n\n /**\n *\n * Set the current visible layer of the stack layout\n *\n * @param {Number} visibleLayer\n */\n setVisibleLayer: function setVisibleLayer(visibleLayer, duration) {\n this.getChildren().get(this.visibleLayer).setVisible(false, duration);\n this.visibleLayer = Math.min(this.getChildren().getSize() - 1, Math.max(0, visibleLayer));\n\n this.getChildren().get(this.visibleLayer).setVisible(true, duration);\n return this;\n },\n\n /**\n *\n * Returns the current visible layer\n *\n * @returns {Number}\n */\n getVisibleLayer: function getVisibleLayer() {\n return this.visibleLayer;\n },\n\n /**\n * @inheritdoc\n */\n add: function add(child, locator, index) {\n // the child didn'T care about events...at the moment\n //\n child.hitTest = function () {\n return false;\n };\n\n // make all existing shapes invisible\n //\n this.getChildren().each(function (i, c) {\n c.setVisible(false);\n });\n this.visibleLayer = this.getChildren().getSize();\n\n // ignore the parameter \"locator\" and use the locator for the stack layout instead\n return this._super(child, this.locator, index);\n },\n\n /**\n * @inheritdoc\n */\n setVisible: function setVisible(flag) {\n _packages2.default.shape.basic.Rectangle.prototype.setVisible.call(this, flag);\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n getMinWidth: function getMinWidth() {\n var markup = this.stroke * 2 + this.padding.left + this.padding.right;\n var width = 10;\n this.children.each(function (i, e) {\n width = Math.max(width, e.figure.isResizeable() ? e.figure.getMinWidth() : e.figure.getWidth());\n });\n return width + markup;\n },\n\n /**\n * @inheritdoc\n */\n getMinHeight: function getMinHeight() {\n var markup = this.stroke * 2 + this.padding.top + this.padding.bottom;\n var height = 10;\n this.children.each(function (i, e) {\n height = Math.max(height, e.figure.isResizeable() ? e.figure.getMinHeight() : e.figure.getHeight());\n });\n return height + markup;\n },\n\n /**\n * @inheritdoc\n */\n setDimension: function setDimension(w, h) {\n this._super(w, h);\n\n var width = this.width - this.padding.left - this.padding.right;\n var height = this.height - this.padding.top - this.padding.bottom;\n if (width === this._recursiveWidth && height === this._recursiveHeight) {\n return this;\n }\n this._recursiveHeight = height;\n this._recursiveWidth = width;\n\n this.children.each(function (i, e) {\n if (e.figure.isResizeable()) {\n e.figure.setDimension(width, height);\n }\n });\n\n delete this._recursiveHeight;\n delete this._recursiveWidth;\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/layout/TableLayout.js\":\n/*!*****************************************!*\\\n !*** ./src/shape/layout/TableLayout.js ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * The TableLayout class arranges the children in a row/column order. Each cell can be styled\n * with valign, align and padding.\n *\n *\n * See the example below with and without padding or alignment settings\n *\n *\n * @example\n *\n * let label1 = new draw2d.shape.basic.Label({text:\"[0,1] with long long long long label\", fontColor:\"#00AF00\"});\n * let label2 = new draw2d.shape.basic.Label({text:\"[1,1] padding:10\", fontColor:\"#00AF00\"});\n * let label3 = new draw2d.shape.basic.Label({text:\"[2,1] align:right\", fontColor:\"#00AF00\"});\n * let label4 = new draw2d.shape.basic.Label({text:\"[3,1] resize:true\",resizeable:true, fontColor:\"#00AF00\"});\n *\n * let container = new draw2d.shape.layout.TableLayout();\n *\n * container.addRow(\"[0,0]\", label1 ,\"[0,2] align:center\");\n * container.addRow(\"[1,0] valign:bottom\", label2,\"[1,2] long long long label\");\n * container.addRow(\"[2,0]\", label3,\"[2,2]\");\n * container.addRow(\"[3,0]\", label4,\"[3,2]\");\n *\n * container.setPadding(0);\n * container.setCellPadding(1,1, 10);\n *\n * container.setCellAlign(0,2, \"center\");\n * container.setCellAlign(2,1, \"right\");\n *\n * container.setCellVerticalAlign(1, 0, \"bottom\");\n * canvas.add(container,10,10);\n *\n *\n * @author Andreas Herz\n * @extends draw2d.shape.layout.Layout\n * @since 5.3.0\n */\n_packages2.default.shape.layout.TableLayout = _packages2.default.shape.layout.Layout.extend(\n/** @lends draw2d.shape.layout.TableLayout.prototype */\n{\n\n NAME: \"draw2d.shape.layout.TableLayout\",\n\n DUMMY_CELL: {\n getMinHeight: function getMinHeight() {\n return 1;\n },\n getMinWidth: function getMinWidth() {\n return 1;\n },\n off: function off() {}\n },\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n var _this = this;\n this.cellLocator = {\n relocate: function relocate(index, figure) {\n if (_this.repaintBlocked === true) {\n return;\n }\n var cell = figure.__cell;\n var layout = _this.getCellLayout(cell.row, cell.column);\n var outerWidth = _this.getWidth();\n var minWidth = _this.getMinWidth();\n var widthOffset = 0;\n if (outerWidth != minWidth) {\n widthOffset = (outerWidth - minWidth) / _this.layoutInfos[0].length * cell.column;\n }\n\n var width = figure.getWidth();\n var height = figure.getHeight();\n var x = layout.x + _this.padding.left + layout.padding.left + widthOffset;\n var y = layout.y + _this.padding.top + layout.padding.top;\n\n // stretch the figure to fill the complete cell\n //\n if (figure.isResizeable()) {\n var w = Math.max(figure.getMinWidth(), layout.w - (layout.padding.left + layout.padding.right) + widthOffset);\n var h = Math.max(figure.getMinHeight(), layout.h - (layout.padding.top + layout.padding.bottom));\n figure.setDimension(w, h);\n }\n // else apply the valign and align property\n //\n else {\n // apply vertical alignment\n //\n switch (layout.valign) {\n case \"middle\":\n y = y + (layout.h - (height + layout.padding.top + layout.padding.bottom)) / 2;\n break;\n case \"bottom\":\n y = y + (layout.h - (height + layout.padding.top + layout.padding.bottom));\n break;\n }\n\n // apply horizontal alignment\n //\n switch (layout.align) {\n case \"center\":\n x = x + (layout.w - (width + layout.padding.left + layout.padding.right)) / 2 + widthOffset / 2;\n break;\n case \"right\":\n x = x + (layout.w - (width + layout.padding.left + layout.padding.right)) + widthOffset;\n break;\n }\n }\n figure.setPosition(x, y);\n },\n bind: function bind() {},\n unbind: function unbind() {},\n translate: function translate(figure, diff) {\n figure.setPosition(figure.x + diff.x, figure.y + diff.y);\n }\n };\n\n this.padding = { top: 4, right: 4, bottom: 4, left: 4 };\n\n this.grid = [];\n this.layoutInfos = [];\n this.layoutInfos[0] = [];\n this.layoutInfos[0][0] = { x: 0, y: 0, w: 1, h: 1, valign: \"top\", align: \"left\" };\n\n this._super(extend({ stroke: 1, resizeable: false }, attr), extend({\n // @attr {Number} padding the padding in pixel around the text */\n padding: this.setPadding\n }, setter), extend({\n padding: this.getPadding\n }, getter));\n },\n\n /**\n * \n * Set the padding of the given cell.\n *\n *\n * @param {Number|Object} padding The new padding\n **/\n setCellPadding: function setCellPadding(row, column, padding) {\n var layout = this.getCellLayout(row, column);\n if (layout === null) {\n return this;\n }\n\n if (typeof padding === \"number\") {\n layout.padding = { top: padding, right: padding, bottom: padding, left: padding };\n } else {\n extend(layout.padding, padding);\n }\n\n this.calculateLayout();\n this.setDimension(1, 1);\n\n return this;\n },\n\n /**\n * \n * Get the padding of the outer grid.\n *\n **/\n getCellPadding: function getCellPadding(row, column) {\n\n var layout = this.getCellLayout(row, column);\n if (layout === null || typeof layout.padding === \"undefined\") {\n return { top: 0, right: 0, bottom: 0, left: 0 };\n }\n return layout.padding;\n },\n\n /**\n * \n * Set the padding of the outer grid.\n *\n * // Alternatively you can use the attr method:\n * //\n * // set the padding for top,left,bottom,right in one call\n * figure.attr({\n * padding: 3\n * });\n *\n * // update the padding left and top\n * figure.attr({\n * padding: {left:3, top:30}\n * });\n *\n * @param {Number|Object} padding The new padding\n **/\n setPadding: function setPadding(padding) {\n if (typeof padding === \"number\") {\n this.padding = { top: padding, right: padding, bottom: padding, left: padding };\n } else {\n this.padding = extend(this.padding, padding);\n }\n this.calculateLayout();\n this.setDimension(1, 1);\n this.fireEvent(\"change:padding\", { value: this.padding });\n\n return this;\n },\n\n /**\n * \n * Get the padding of the outer grid.\n *\n **/\n getPadding: function getPadding() {\n return this.padding;\n },\n\n setCanvas: function setCanvas(canvas) {\n this._super(canvas);\n this.calculateLayout();\n this.setDimension(2, 2);\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n add: function add(child, locator, index) {\n this._super(child, locator, index);\n\n this.setDimension(1, 1);\n\n return this;\n },\n\n /**\n *\n * \n * Removes the row from the TableLayout\n *\n * @returns the removed row\n */\n removeRow: function removeRow(index) {\n var _this = this;\n var removedRow = this.grid.splice(index, 1);\n removedRow[0].forEach(function (figure) {\n _this.remove(figure);\n });\n\n this.calculateLayout();\n this.setDimension(2, 2);\n\n return removedRow;\n },\n\n /**\n * \n * Add a row to the table grid.\n * This method has a variable argument list. All arguments are added in one row.\n *\n * @param {Array} figures variable count of figures to add as one row\n */\n addRow: function addRow() {\n var figuresToAdd = [];\n var _this = this;\n var args = Array.prototype.slice.call(arguments); // sometimes js is stupid...\n\n var rowCount = this.grid.length + 1;\n var columnCount = this.grid.length > 0 ? Math.max(this.grid[0].length, args.length) : args.length;\n\n var row = [];\n\n args.forEach(function (figure, index) {\n if (typeof figure === \"string\") {\n figure = new _packages2.default.shape.basic.Label({ text: figure });\n }\n row.push(figure);\n figuresToAdd.push(figure);\n });\n this.grid.push(row);\n\n // adjust the columns. All rows must have the same column count. Add empty cells\n // if required.\n //\n this.grid.forEach(function (row, index) {\n var missingColumns = columnCount - row.length;\n for (var i = 0; i < missingColumns; i++) {\n row.push(_this.DUMMY_CELL);\n }\n });\n\n var orig = this.repaintBlocked;\n this.repaintBlocked = true;\n figuresToAdd.forEach(function (figure) {\n _this.add(figure, _this.cellLocator);\n });\n this.repaintBlocked = orig;\n\n this.calculateLayout();\n this.setDimension(1, 1);\n\n return this;\n },\n\n getMinWidth: function getMinWidth() {\n // return some good default if we are not part of the canvas.\n // A real width/height calculation isn'T possible if the canvas not set\n if (this.canvas === null || this.layoutInfos.length === 0) {\n return 10;\n }\n\n var bottom = this.layoutInfos[this.layoutInfos.length - 1];\n var layout = bottom[bottom.length - 1];\n\n return layout.w + layout.x + this.padding.left + this.padding.right;\n },\n\n getMinHeight: function getMinHeight() {\n // return some good default if we are not part of the canvas.\n // A real width/height calculation isn'T possible if the canvas not set\n if (this.canvas === null || this.layoutInfos.length === 0) {\n return 10;\n }\n\n var bottom = this.layoutInfos[this.layoutInfos.length - 1];\n var layout = bottom[bottom.length - 1];\n\n return layout.h + layout.y + this.padding.top + this.padding.bottom;\n },\n\n /**\n * \n * Set the vertical alignment of a cell. Possible values are\n * <ul>\n * <li>top</li>\n * <li>middle</li>\n * <li>bottom</li>\n * </ul>\n *\n * @param {Number} row The row index of the cell. Starting by 0\n * @param {Number} column The column index of the cell. Starting by 0\n * @param {String} align The vertical alignment of the cell\n */\n setCellVerticalAlign: function setCellVerticalAlign(row, column, valign) {\n var layout = this.getCellLayout(row, column);\n if (layout === null) {\n return; // silently\n }\n\n switch (valign) {\n case \"top\":\n case \"middle\":\n case \"bottom\":\n layout.valign = valign;\n this.calculateLayout();\n this.setDimension(1, 1);\n }\n\n return this;\n },\n\n /**\n * \n * Get the vertical alignment of a cell. Possible values are\n * <ul>\n * <li>top</li>\n * <li>middle</li>\n * <li>bottom</li>\n * </ul>\n *\n * @param {Number} row The row index of the cell. Starting by 0\n * @param {Number} column The column index of the cell. Starting by 0\n * @returns {String} The vertical alignment of the cell\n */\n getCellVerticalAlign: function getCellVerticalAlign(row, column) {\n var layout = this.getCellLayout(row, column);\n if (layout === null) {\n return \"top\";\n }\n\n return layout.valign;\n },\n\n /**\n * \n * Set the alignment of a cell. Possible values are\n * <ul>\n * <li>left</li>\n * <li>center</li>\n * <li>right</li>\n * </ul>\n *\n *\n * @param {Number} row The row index of the cell. Starting by 0\n * @param {Number} column The column index of the cell. Starting by 0\n * @param {String} align The horizontal alignment of the cell\n */\n setCellAlign: function setCellAlign(row, column, align) {\n\n var layout = this.getCellLayout(row, column);\n if (layout === null) {\n return; // silently\n }\n\n switch (align) {\n case \"left\":\n case \"center\":\n case \"right\":\n layout.align = align;\n this.calculateLayout();\n this.setDimension(1, 1);\n }\n\n return this;\n },\n\n /**\n * \n * Return the alignment of a cell. Possible values are\n * <ul>\n * <li>left</li>\n * <li>center</li>\n * <li>right</li>\n * </ul>\n *\n *\n * @param {Number} row The row index of the cell. Starting by 0\n * @param {Number} column The column index of the cell. Starting by 0\n * return {String} The horizontal alignment of the cell\n */\n getCellAlign: function getCellAlign(row, column) {\n\n var layout = this.getCellLayout(row, column);\n if (layout === null) {\n return \"left\";\n }\n return layout.align;\n },\n\n /**\n * \n * Return the layout information for the given row/column or <b>null</b>\n * if the row/column index is out of range.\n *\n * @private\n */\n getCellLayout: function getCellLayout(row, column) {\n if (row < 0 || column < 0) {\n return null; // silently\n }\n\n if (row >= this.layoutInfos.length) {\n return null; // silently\n }\n\n var layouts = this.layoutInfos[row];\n if (column >= layouts.length) {\n return null; // silently\n }\n\n return layouts[column];\n },\n\n /**\n * \n * Recalculate the layout of the table\n *\n * @private\n */\n calculateLayout: function calculateLayout() {\n var _this = this;\n var rowCount = this.grid.length;\n var columnCount = this.grid.length > 0 ? this.grid[0].length : 0;\n\n var newLayoutInfos = [];\n for (var row = 0; row < rowCount; row++) {\n newLayoutInfos[row] = [];\n for (var column = 0; column < columnCount; column++) {\n newLayoutInfos[row][column] = {\n width: 0,\n height: 0,\n x: 0,\n y: 0,\n valign: this.getCellVerticalAlign(row, column),\n align: this.getCellAlign(row, column),\n padding: this.getCellPadding(row, column)\n };\n }\n }\n\n // determine the heights/widths of the grid\n //\n var layoutWidths = new Array(columnCount + 1).join('0').split('').map(parseFloat);\n var layoutHeights = new Array(rowCount + 1).join('0').split('').map(parseFloat);\n this.grid.forEach(function (figures, row) {\n for (var _column = 0; _column < columnCount; _column++) {\n var layout = newLayoutInfos[row][_column];\n var figure = figures[_column];\n figure.__cell = { row: row, column: _column };\n layoutHeights[row] = Math.max(layoutHeights[row], figure.getMinHeight() + layout.padding.top + layout.padding.bottom);\n layoutWidths[_column] = Math.max(layoutWidths[_column], figure.getMinWidth() + layout.padding.left + layout.padding.right);\n }\n });\n\n var x = 0,\n y = 0;\n for (var _row = 0; _row < rowCount; _row++) {\n for (var _column2 = 0; _column2 < columnCount; _column2++) {\n var layout = newLayoutInfos[_row][_column2];\n layout.w = layoutWidths[_column2];\n layout.h = layoutHeights[_row];\n layout.x = x;\n layout.y = y;\n x = x + layout.w;\n }\n y = y + layoutHeights[_row];\n x = 0;\n }\n\n this.layoutInfos = newLayoutInfos;\n\n return this;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/layout/VerticalLayout.js\":\n/*!********************************************!*\\\n !*** ./src/shape/layout/VerticalLayout.js ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * The VerticalLayout class arranges the layout elements in a vertical sequence,\n * left to right, with optional gaps between the elements.\n *\n * During the execution of the setDimension() method, the minimum height of the container is calculated\n * by accumulating the minimum sizes of the elements, including stroke, gaps and padding.\n *\n * See the example below with and without gap and border settings\n *\n *\n * @example\n *\n * // first container without any gap and a border of the parent\n * // container\n * let label1 = new draw2d.shape.basic.Label({text:\"Label 1\"});\n * let label2 = new draw2d.shape.basic.Label({text:\"Label 2\"});\n * let label3 = new draw2d.shape.basic.Label({text:\"Label 3\"});\n *\n * let container1 = new draw2d.shape.layout.VerticalLayout();\n *\n * container1.add(label1);\n * container1.add(label2);\n * container1.add(label3);\n * container1.setGap(10);\n * container1.setStroke(2);\n * canvas.add(container1,50,10);\n *\n * // second container without any gab or border\n * //\n * let label11 = new draw2d.shape.basic.Label({text:\"Label 1\"});\n * let label12 = new draw2d.shape.basic.Label({text:\"Label 2\"});\n * let label13 = new draw2d.shape.basic.Label({text:\"Label 3\"});\n *\n * let container2 = new draw2d.shape.layout.VerticalLayout();\n *\n * container2.add(label11);\n * container2.add(label12);\n * container2.add(label13);\n *\n * canvas.add(container2,150,10);\n *\n * @author Andreas Herz\n * @extends draw2d.shape.layout.Layout\n */\n_packages2.default.shape.layout.VerticalLayout = _packages2.default.shape.layout.Layout.extend(\n/** @lends draw2d.shape.layout.VerticalLayout.prototype */\n{\n\n NAME: \"draw2d.shape.layout.VerticalLayout\",\n\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n // some layout parameter\n //\n this.gap = 0;\n\n // \"this\" shortcut to avoid $.proxy\n var _this = this;\n\n this.locator = {\n translate: function translate(figure, diff) {\n figure.setPosition(figure.x + diff.x, figure.y + diff.y);\n },\n bind: function bind() {},\n unbind: function unbind() {},\n relocate: function relocate(index, target) {\n var stroke = _this.getStroke();\n var yPos = stroke + _this.padding.top; // respect the border and padding of the shape\n var xPos = _this.padding.left;\n\n for (var i = 0; i < index; i++) {\n var child = _this.children.get(i).figure;\n if (child.isVisible()) {\n yPos += child.getHeight() + _this.gap;\n }\n }\n\n target.setPosition(xPos, yPos);\n }\n };\n\n this._super(extend({ width: 10, height: 10 }, attr), extend({\n // @attr {Number} gap the gap between the children shapes */\n gap: this.setGap\n }, setter), extend({\n gap: this.getGap\n }, getter));\n },\n\n /**\n * @inheritdoc\n */\n add: function add(child, locator, index) {\n this._super(child, this.locator, index);\n\n this.setDimension(1, 1);\n\n return this;\n },\n\n /**\n * \n * Set the gap width between child components within this layout.\n * This will only affect the space between components, not the space around all the components in the layout.\n *\n * @param {Number} gap The space, in pixels, between items.\n */\n setGap: function setGap(gap) {\n this.gap = gap;\n // this forces a relayout of the element\n this.setDimension(1, 1);\n },\n\n /**\n * @inheritdoc\n */\n getMinWidth: function getMinWidth() {\n var markup = this.stroke * 2 + this.padding.left + this.padding.right;\n var width = 10;\n this.children.each(function (i, e) {\n if (e.figure.isVisible()) width = Math.max(width, e.figure.isResizeable() ? e.figure.getMinWidth() : e.figure.getWidth());\n });\n return width + markup;\n },\n\n /**\n * @inheritdoc\n */\n getMinHeight: function getMinHeight() {\n var _this = this;\n var gap = 0;\n var markup = this.stroke * 2 + this.padding.top + this.padding.bottom;\n var height = 0;\n\n this.children.each(function (i, e) {\n if (e.figure.isVisible()) {\n height += (e.figure.isResizeable() ? e.figure.getMinHeight() : e.figure.getHeight()) + gap;\n // first element is iterated. Now we must add the gap to all next elements\n gap = _this.gap;\n }\n });\n\n return height + markup;\n },\n\n /**\n * @inheritdoc\n */\n setDimension: function setDimension(w, h) {\n this._super(w, h);\n\n var width = this.width - this.padding.left - this.padding.right;\n if (width === this._recursiveWidth) {\n return this;\n }\n this._recursiveWidth = width;\n\n this.children.each(function (i, e) {\n if (e.figure.isResizeable() && e.figure.isVisible()) {\n e.figure.setDimension(width, e.figure.getMinHeight());\n }\n });\n\n delete this._recursiveWidth;\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n getPersistentAttributes: function getPersistentAttributes() {\n var memento = this._super();\n\n memento.gap = this.gap;\n\n return memento;\n },\n\n /**\n * @inheritdoc\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n\n if (typeof memento.gap === \"number\") {\n this.gap = memento.gap;\n }\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/node/Between.js\":\n/*!***********************************!*\\\n !*** ./src/shape/node/Between.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * A simple Node which has a InputPort and OutputPort. Mainly used for demo and examples.\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.node.Between({color: \"#3d3d3d\"});\n *\n * canvas.add(figure,50,10);\n *\n * @extends draw2d.shape.basic.Rectangle\n */\n_packages2.default.shape.node.Between = _packages2.default.shape.basic.Rectangle.extend(\n/** @lends draw2d.shape.node.Between.prototype */\n{\n\n NAME: \"draw2d.shape.node.Between\",\n\n DEFAULT_COLOR: new _packages2.default.util.Color(\"#4D90FE\"),\n\n /**\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({\n bgColor: this.DEFAULT_COLOR,\n color: this.DEFAULT_COLOR.darker(),\n width: 50,\n height: 50\n }, attr), setter, getter);\n\n this.createPort(\"output\");\n this.createPort(\"input\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/node/End.js\":\n/*!*******************************!*\\\n !*** ./src/shape/node/End.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * A simple Node which has a InputPort. Mainly used for demo and examples.\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.node.End({color: \"#3d3d3d\"});\n *\n * canvas.add(figure,50,10);\n *\n * @extends draw2d.shape.basic.Rectangle\n */\n_packages2.default.shape.node.End = _packages2.default.shape.basic.Rectangle.extend(\n/** @lends draw2d.shape.node.End.prototype */\n{\n\n NAME: \"draw2d.shape.node.End\",\n\n DEFAULT_COLOR: new _packages2.default.util.Color(\"#4D90FE\"),\n\n /**\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({\n bgColor: this.DEFAULT_COLOR,\n color: this.DEFAULT_COLOR.darker(),\n width: 50,\n height: 50\n }, attr), setter, getter);\n\n this.createPort(\"input\");\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/node/Fulcrum.js\":\n/*!***********************************!*\\\n !*** ./src/shape/node/Fulcrum.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _JSONUtil = __webpack_require__(/*! ../../util/JSONUtil */ \"./src/util/JSONUtil.js\");\n\nvar _JSONUtil2 = _interopRequireDefault(_JSONUtil);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A horizontal bus shape with a special kind of port handling. The hole figure is a hybrid port.\n *\n *\n * @example\n *\n * canvas.add( new draw2d.shape.node.Fulcrum(),50,10);\n * canvas.add( new draw2d.shape.node.Fulcrum(),80,100);\n * canvas.add( new draw2d.shape.node.Fulcrum(),150,50);\n *\n * @extends draw2d.shape.node.Hub\n */\n_packages2.default.shape.node.Fulcrum = _packages2.default.shape.node.Hub.extend(\n/** @lends draw2d.shape.node.Fulcrum.prototype */\n{\n\n NAME: \"draw2d.shape.node.Fulcrum\",\n\n /**\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 40, height: 40 }, attr), setter, getter);\n\n this.port.setConnectionAnchor(new _packages2.default.layout.anchor.ConnectionAnchor(this.port));\n this.port.setVisible(true);\n this.port.hitTest = this.port._orig_hitTest;\n\n this.setConnectionDirStrategy(0);\n this.setColor(null);\n this.setRadius(10);\n this.setBackgroundColor(null);\n this.setStroke(0);\n this.installEditPolicy(new _packages2.default.policy.figure.AntSelectionFeedbackPolicy());\n },\n\n /**\n * @inheritdoc\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return this;\n }\n\n attributes = attributes || {};\n\n // set some good defaults if the parent didn't\n _JSONUtil2.default.ensureDefault(attributes, \"fill\", this.bgColor.rgba());\n\n return this._super(attributes);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/node/HorizontalBus.js\":\n/*!*****************************************!*\\\n !*** ./src/shape/node/HorizontalBus.js ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A horizontal bus shape with a special kind of port handling. The hole figure is a hybrid port.\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.node.HorizontalBus({width:300, height:20, text:\"Horizontal Bus\"});\n *\n * canvas.add(figure,50,10);\n *\n * @extends draw2d.shape.node.Hub\n */\n_packages2.default.shape.node.HorizontalBus = _packages2.default.shape.node.Hub.extend(\n/** @lends draw2d.shape.node.HorizontalBus.prototype */\n{\n\n NAME: \"draw2d.shape.node.HorizontalBus\",\n\n /**\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.setConnectionDirStrategy(1);\n\n this.installEditPolicy(new _packages2.default.policy.figure.HBusSelectionFeedbackPolicy());\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/node/Hub.js\":\n/*!*******************************!*\\\n !*** ./src/shape/node/Hub.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _Color = __webpack_require__(/*! ../../util/Color */ \"./src/util/Color.js\");\n\nvar _Color2 = _interopRequireDefault(_Color);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A hub is a shape with a special kind of port handling. The hole figure is a hybrid port. You can drag&drop a Port directly on\n * the figure.\n *\n *\n * @example\n *\n *\n * canvas.add(new draw2d.shape.node.Start({x:50, y:50}));\n * canvas.add(new draw2d.shape.node.Hub({x:150, y:50}));\n *\n * @extends draw2d.shape.basic.Rectangle\n */\n_packages2.default.shape.node.Hub = _packages2.default.shape.basic.Rectangle.extend(\n/** @lends draw2d.shape.node.Hub.prototype */\n{\n\n NAME: \"draw2d.shape.node.Hub\",\n\n DEFAULT_COLOR: new _Color2.default(\"#4DF0FE\"),\n BACKGROUND_COLOR: new _Color2.default(\"#29AA77\"),\n\n /**\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.label = null;\n\n this._super(extend({ color: this.DEFAULT_COLOR.darker(), bgColor: this.BACKGROUND_COLOR }, attr), extend({\n // deprecated\n label: this.setLabel,\n // @attr {String} text the text to display in the center of the hub */\n text: this.setLabel\n }, setter), extend({\n label: this.getLabel,\n text: this.getLabel\n }, getter));\n\n var _port = this.port = this.createPort(\"hybrid\", new _packages2.default.layout.locator.CenterLocator());\n\n var r = _packages2.default.geo.Rectangle;\n this.CONNECTION_DIR_STRATEGY = [function (peerPort) {\n return _port.getParent().getBoundingBox().getDirection(peerPort.getAbsolutePosition());\n }, function (peerPort) {\n return _port.getAbsoluteY() > peerPort.getAbsoluteY() ? r.DIRECTION_UP : r.DIRECTION_DOWN;\n }, function (peerPort) {\n return _port.getAbsoluteX() > peerPort.getAbsoluteX() ? r.DIRECTION_LEFT : r.DIRECTION_RIGHT;\n }];\n\n // redirect the glow effect and the hitTest for the port to the parent node\n //\n this.port.setGlow = this.setGlow.bind(this);\n this.port._orig_hitTest = this.port.hitTest;\n this.port.hitTest = this.hitTest.bind(this);\n\n // provide a special connection anchor for this port. We use the bounding box of the\n // parent as connection border\n //\n this.port.setConnectionAnchor(new _packages2.default.layout.anchor.ShortesPathConnectionAnchor(this.port));\n this.port.setVisible(false);\n this.port.setVisible = function () {};\n\n this.setConnectionDirStrategy(0);\n },\n\n /**\n *\n * Called by the framework during drag&drop operations if the user drag a figure over this figure\n *\n * @param {draw2d.Figure} draggedFigure The figure which is currently dragging\n *\n * @returns {draw2d.Figure} the figure which should receive the drop event or null if the element didn't want a drop event\n **/\n delegateTarget: function delegateTarget(draggedFigure) {\n // redirect the dragEnter handling to the hybrid port\n //\n return this.getHybridPort(0).delegateTarget(draggedFigure);\n },\n\n /**\n *\n * This value is relevant for the interactive resize of the figure.\n *\n * @returns {Number} Returns the min. width of this object.\n */\n getMinWidth: function getMinWidth() {\n if (this.label !== null) {\n return Math.max(this.label.getMinWidth(), this._super());\n }\n return this._super();\n },\n\n /**\n * @inheritdoc\n *\n * @private\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = attributes || {};\n\n // set some good defaults if the parent didn't\n if (typeof attributes.fill === \"undefined\") {\n if (this.bgColor !== null) {\n attributes.fill = \"90-\" + this.bgColor.hash() + \":5-\" + this.bgColor.lighter(0.3).hash() + \":95\";\n } else {\n attributes.fill = \"none\";\n }\n }\n\n this._super(attributes);\n },\n\n /**\n *\n * Set the label for the Hub\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * text: label\n * });\n *\n *\n * @param {String} label\n * @since 3.0.4\n */\n setLabel: function setLabel(label) {\n // Create any Draw2D figure as decoration for the connection\n //\n if (this.label === null) {\n var _this = this;\n\n this.label = new _packages2.default.shape.basic.Label({ text: label, color: \"#0d0d0d\", fontColor: \"#0d0d0d\", stroke: 0 });\n // add the new decoration to the connection with a position locator.\n //\n this.add(this.label, new _packages2.default.layout.locator.CenterLocator());\n this.label.setSelectionAdapter(function () {\n return _this;\n });\n this.label.delegateTarget = function () {\n return _this.port;\n };\n } else {\n this.label.setText(label);\n }\n },\n\n /**\n *\n * Set the strategy for the connection direction calculation.<br>\n * <br>\n *\n * <ul>\n * <li>0 - Use the best/shortest direction (UP/RIGHT/DOWN/LEFT) for the connection routing (default)</li>\n * <li>1 - Use UP/DOWN for the connection direction</li>\n * <li>2 - Use LEFT/RIGHT</li>\n * </ul>\n * @param {Number} strategy the connection routing strategy to use\n * @since 2.4.3\n */\n setConnectionDirStrategy: function setConnectionDirStrategy(strategy) {\n switch (strategy) {\n case 0:\n case 1:\n case 2:\n this.port.getConnectionDirection = this.CONNECTION_DIR_STRATEGY[strategy];\n break;\n }\n },\n\n /**\n * @inheritdoc\n */\n getPersistentAttributes: function getPersistentAttributes() {\n var memento = this._super();\n\n memento.dirStrategy = this.CONNECTION_DIR_STRATEGY.indexOf(this.port.getConnectionDirection);\n if (this.label !== null) {\n memento.label = this.label.getText();\n }\n\n return memento;\n },\n\n /**\n * @inheritdoc\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n\n if (typeof memento.dirStrategy === \"number\") {\n this.setConnectionDirStrategy(memento.dirStrategy);\n }\n\n if (typeof memento.label !== \"undefined\") {\n this.setLabel(memento.label);\n }\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/node/Node.js\":\n/*!********************************!*\\\n !*** ./src/shape/node/Node.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A Node is the base class for all figures which can have {@link draw2d.Port}s. A {@link draw2d.Port} is the\n * anchor for a {@link draw2d.Connection} line.<br><br>A {@link draw2d.Port} is a green dot which can\n * be dragged and dropped over another port.<br>\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.Figure\n */\n_packages2.default.shape.node.Node = _packages2.default.Figure.extend(\n/** @lends draw2d.shape.node.Node.prototype */\n{\n\n NAME: \"draw2d.shape.node.Node\",\n\n /**\n * Creates a new Node element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.inputPorts = new _packages2.default.util.ArrayList();\n this.outputPorts = new _packages2.default.util.ArrayList();\n this.hybridPorts = new _packages2.default.util.ArrayList();\n\n // flag which indicates if the figure should read/write ports to\n // JSON\n this.persistPorts = true;\n\n // Flags just for performance reasons\n //\n this.portRelayoutRequired = true;\n\n // just for performance reasons\n //\n this.cachedPorts = null;\n\n this._super((0, _extend2.default)({ width: 50, height: 50 }, attr), (0, _extend2.default)({\n // @attr {Number} indicate whenever you want persists the ports too */\n persistPorts: this.setPersistPorts\n }, setter), (0, _extend2.default)({\n persistPorts: this.getPersistPorts\n }, getter));\n },\n\n /**\n *\n * Indicates if the node should read/write the ports via the draw2d.Figure.getPersistenAttributes\n * to the JSON object\n *\n * @param {Boolean} flag\n * @since 5.0.4\n */\n setPersistPorts: function setPersistPorts(flag) {\n this.persistPorts = flag;\n this.fireEvent(\"change:persistPorts\", { value: this.persistPorts });\n\n return this;\n },\n\n /**\n *\n * Indicates if the figure writes the ports to the JSON structore too.\n * Default is \"false\"\n *\n * @returns {Boolean}\n */\n getPersistPorts: function getPersistPorts() {\n return this.persistPorts;\n },\n\n /**\n * @inheritdoc\n */\n toFront: function toFront(figure) {\n var _this = this;\n\n this._super(figure);\n\n this.getPorts().each(function (i, port) {\n port.getConnections().each(function (i, connection) {\n return connection.toFront(figure);\n });\n port.toFront(_this);\n });\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n toBack: function toBack(figure) {\n\n this.getPorts().each(function (i, port) {\n port.getConnections().each(function (i, connection) {\n return connection.toBack(figure);\n });\n port.toBack(figure);\n });\n\n this._super(figure);\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n setVisible: function setVisible(flag, duration) {\n // adjust the visibility of the ports to the parent state\n //\n if (!flag) {\n this.getPorts().each(function (i, port) {\n port.__initialVisibilityState = port.isVisible();\n port.setVisible(false, duration);\n });\n } else {\n this.getPorts().each(function (i, port) {\n if (typeof port.__initialVisibilityState !== \"undefined\") {\n port.setVisible(port.__initialVisibilityState, duration);\n } else {\n port.setVisible(true, duration);\n }\n delete port.__initialVisibilityState;\n });\n }\n this._super(flag, duration);\n },\n\n /**\n *\n * Return all ports of the node. The results contains\n * all ports of the children too per default. Set <b>recursive</b>\n * to false to retrieve direct assigned ports only.\n *\n * @param {Boolean} [recursive] indicates if the method should return children ports too. Default is <b>true</b>\n * @returns {draw2d.util.ArrayList}\n **/\n getPorts: function getPorts(recursive) {\n var _this2 = this;\n\n if (typeof recursive === \"boolean\" && recursive === false) {\n var ports = new _packages2.default.util.ArrayList();\n ports.addAll(this.inputPorts);\n ports.addAll(this.outputPorts);\n ports.addAll(this.hybridPorts);\n return ports;\n }\n\n if (this.cachedPorts === null) {\n this.cachedPorts = new _packages2.default.util.ArrayList();\n this.cachedPorts.addAll(this.inputPorts);\n this.cachedPorts.addAll(this.outputPorts);\n this.cachedPorts.addAll(this.hybridPorts);\n\n this.children.each(function (i, e) {\n _this2.cachedPorts.addAll(e.figure.getPorts());\n });\n }\n return this.cachedPorts;\n },\n\n /**\n *\n * Return all input ports of the node.\n *\n * @returns {draw2d.util.ArrayList}\n **/\n getInputPorts: function getInputPorts() {\n return this.inputPorts.clone().addAll(this.hybridPorts);\n },\n\n /**\n *\n * Return all output ports of the node.\n *\n * @returns {draw2d.util.ArrayList}\n **/\n getOutputPorts: function getOutputPorts() {\n return this.outputPorts.clone().addAll(this.hybridPorts);\n },\n\n /**\n *\n * Clone the figure. <br>\n * You must override and implement the methods <b>getPersistentAttributes</b> and <b>setPersistentAttributes</b> for your custom\n * figures if the have special attributes.\n *\n * The clone() method performs a deep copy of the object, meaning that it copies the children, ports and decorations\n * per default. You can control the clone procedure with the 'cloneMetaData'.\n *\n *\n * @param {Object} [cloneMetaData] controls the clone procedure\n * @param {Boolean} [cloneMetaData.excludeChildren] set it to true if you want exclude the children.\n * @param {Boolean} [cloneMetaData.excludePorts] set it to true if you want exclude the ports of the node.\n *\n * @since 4.1.0\n * @experimental\n */\n clone: function clone(cloneMetaData) {\n cloneMetaData = (0, _extend2.default)({ excludePorts: false }, cloneMetaData);\n\n var clone = this._super(cloneMetaData);\n\n // remove all ports of the clone. the \"init\" method can have create some. but this must\n // removed because we want a clone of an existing figure\n //\n if (cloneMetaData.excludePorts === false) {\n clone.resetPorts();\n var ports = this.getPorts(false);\n\n ports.each(function (i, port) {\n var clonePort = port.clone();\n var locator = port.getLocator().clone();\n clone.addPort(clonePort, locator);\n });\n }\n\n return clone;\n },\n\n /**\n *\n * Return the port with the corresponding name.\n *\n *\n * @param {String} portName The name of the port to return.\n * @returns {draw2d.Port} Returns the port with the hands over name or null.\n **/\n getPort: function getPort(portName) {\n return this.getPorts().find(function (e) {\n return e.getName() === portName;\n });\n },\n\n /**\n *\n * Return the input port with the corresponding name.\n *\n *\n * @param {String/Number} portNameOrIndex The name or numeric index of the port to return.\n * @returns {draw2d.InputPort} Returns the port with the hands over name or null.\n **/\n getInputPort: function getInputPort(portNameOrIndex) {\n if (typeof portNameOrIndex === \"number\") {\n return this.inputPorts.get(portNameOrIndex);\n }\n\n for (var i = 0; i < this.inputPorts.getSize(); i++) {\n var port = this.inputPorts.get(i);\n if (port.getName() === portNameOrIndex) {\n return port;\n }\n }\n\n return null;\n },\n\n /**\n *\n * Return the output port with the corresponding name.\n *\n * @param {String/Number} portNameOrIndex The name or the numeric index of the port to return.\n * @returns {draw2d.OutputPort} Returns the port with the hands over name or null.\n **/\n getOutputPort: function getOutputPort(portNameOrIndex) {\n if (typeof portNameOrIndex === \"number\") {\n return this.outputPorts.get(portNameOrIndex);\n }\n\n for (var i = 0; i < this.outputPorts.getSize(); i++) {\n var port = this.outputPorts.get(i);\n if (port.getName() === portNameOrIndex) {\n return port;\n }\n }\n\n return null;\n },\n\n /**\n *\n * Return the input port with the corresponding name.\n *\n *\n * @param {String/Number} portNameOrIndex The name or numeric index of the port to return.\n * @returns {draw2d.InputPort} Returns the port with the hands over name or null.\n **/\n getHybridPort: function getHybridPort(portNameOrIndex) {\n if (typeof portNameOrIndex === \"number\") {\n return this.hybridPorts.get(portNameOrIndex);\n }\n\n for (var i = 0; i < this.hybridPorts.getSize(); i++) {\n var port = this.hybridPorts.get(i);\n if (port.getName() === portNameOrIndex) {\n return port;\n }\n }\n\n return null;\n },\n\n /**\n *\n * Add a port to this node at the given position.<br>\n *\n * @param {draw2d.Port} port The new port to add.\n * @param {draw2d.layout.locator.Locator} locator The layout for the port.\n **/\n addPort: function addPort(port, locator) {\n if (!(port instanceof _packages2.default.Port)) {\n throw \"Argument is not typeof 'draw2d.Port'. \\nFunction: draw2d.shape.node.Node#addPort\";\n }\n\n // add to the internal cache if already build\n if (this.cachedPorts !== null) {\n this.cachedPorts.add(port);\n }\n\n this.portRelayoutRequired = true;\n\n if (port instanceof _packages2.default.InputPort) {\n this.inputPorts.add(port);\n } else if (port instanceof _packages2.default.OutputPort) {\n this.outputPorts.add(port);\n } else if (port instanceof _packages2.default.HybridPort) {\n this.hybridPorts.add(port);\n }\n\n if (typeof locator !== \"undefined\" && locator instanceof _packages2.default.layout.locator.Locator) {\n port.setLocator(locator);\n }\n\n port.setParent(this);\n port.setCanvas(this.canvas);\n\n // You can't delete a port with the [DEL] key if a port is a child of a node\n port.setDeleteable(false);\n\n if (this.canvas !== null) {\n port.getShapeElement();\n this.canvas.registerPort(port);\n }\n\n return port;\n },\n\n /**\n *\n * Remove all ports of this node\n *\n * @since 5.0.0\n * @returns {this}\n */\n resetPorts: function resetPorts() {\n var _this3 = this;\n\n this.getPorts().each(function (i, port) {\n return _this3.removePort(port);\n });\n return this;\n },\n\n /**\n *\n * Removes a port and all related connections from this node.<br>\n *\n * @param {draw2d.Port} port The port to remove.\n * @returns {this}\n **/\n removePort: function removePort(port) {\n this.portRelayoutRequired = true;\n\n this.cachedPorts = null;\n this.inputPorts.remove(port);\n this.outputPorts.remove(port);\n this.hybridPorts.remove(port);\n\n if (port.getCanvas() !== null) {\n var canvas = port.getCanvas();\n canvas.unregisterPort(port);\n // remove the related connections of the port too.\n var connections = port.getConnections().clone();\n connections.each(function (i, connection) {\n canvas.remove(connection);\n });\n }\n\n port.setCanvas(null);\n\n return this;\n },\n\n /**\n *\n * Create a standard Port for this element. Inherited class can override this\n * method to create its own type of ports.\n *\n * @param {String} type the type of the requested port. possible [\"input\", \"output\"]\n * @param {draw2d.layout.locator.Locator} [locator] the layouter to use for this port\n * @template\n */\n createPort: function createPort(type, locator) {\n var newPort = null;\n var count = 0;\n\n switch (type) {\n case \"input\":\n newPort = _packages2.default.Configuration.factory.createInputPort(this);\n count = this.inputPorts.getSize();\n break;\n case \"output\":\n newPort = _packages2.default.Configuration.factory.createOutputPort(this);\n count = this.outputPorts.getSize();\n break;\n case \"hybrid\":\n newPort = _packages2.default.Configuration.factory.createHybridPort(this);\n count = this.hybridPorts.getSize();\n break;\n default:\n throw \"Unknown type [\" + type + \"] of port requested\";\n }\n\n newPort.setName(type + count);\n\n this.addPort(newPort, locator);\n // relayout the ports\n this.setDimension(this.width, this.height);\n\n return newPort;\n },\n\n /**\n *\n * Return all connections related to this node.\n *\n * @returns {draw2d.util.ArrayList}\n */\n getConnections: function getConnections() {\n var connections = new _packages2.default.util.ArrayList();\n var ports = this.getPorts();\n for (var i = 0; i < ports.getSize(); i++) {\n var port = ports.get(i);\n // Do NOT add twice the same connection if it is linking ports from the same node\n for (var c = 0, c_size = port.getConnections().getSize(); c < c_size; c++) {\n if (!connections.contains(port.getConnections().get(c))) {\n connections.add(port.getConnections().get(c));\n }\n }\n }\n return connections;\n },\n\n /**\n * @returns {this}\n */\n setCanvas: function setCanvas(canvas) {\n var oldCanvas = this.canvas;\n this._super(canvas);\n\n var ports = this.getPorts();\n if (oldCanvas !== null) {\n ports.each(function (i, port) {\n return oldCanvas.unregisterPort(port);\n });\n }\n\n if (canvas !== null) {\n ports.each(function (i, port) {\n port.setCanvas(canvas);\n canvas.registerPort(port);\n });\n // relayout the ports\n this.setDimension(this.width, this.height);\n } else {\n ports.each(function (i, port) {\n return port.setCanvas(null);\n });\n }\n return this;\n },\n\n /**\n * @returns {this}\n */\n setRotationAngle: function setRotationAngle(angle) {\n this.portRelayoutRequired = true;\n this._super(angle);\n\n this.layoutPorts();\n\n return this;\n },\n\n /**\n * @returns {this}\n */\n setDimension: function setDimension(w, h) {\n this.portRelayoutRequired = true;\n this._super(w, h);\n\n return this;\n },\n\n /**\n *\n * Called if the value of any port has been changed\n *\n * @param {draw2d.Port} relatedPort\n * @template\n */\n onPortValueChanged: function onPortValueChanged(relatedPort) {},\n\n /**\n * @private\n * @return {this}\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return this;\n }\n\n this._super(attributes);\n this.layoutPorts();\n\n return this;\n },\n\n /**\n *\n *\n * @private\n * @returns {this}\n */\n layoutPorts: function layoutPorts() {\n if (this.portRelayoutRequired === false) {\n return this; //silently\n }\n this.portRelayoutRequired = false;\n\n // layout the ports\n //\n this.outputPorts.each(function (i, port) {\n return port.locator.relocate(i, port);\n });\n this.inputPorts.each(function (i, port) {\n return port.locator.relocate(i, port);\n });\n this.hybridPorts.each(function (i, port) {\n return port.locator.relocate(i, port);\n });\n\n return this;\n },\n\n /**\n *\n * Returns the Command to perform the specified Request or null.\n *\n * @param {draw2d.command.CommandType} request describes the Command being requested\n * @returns {draw2d.command.Command} null or a Command\n * @private\n **/\n createCommand: function createCommand(request) {\n if (request === null) {\n return null;\n }\n\n if (request.getPolicy() === _packages2.default.command.CommandType.ROTATE) {\n return new _packages2.default.command.CommandRotate(this, (this.getRotationAngle() + 90) % 360);\n }\n\n return this._super(request);\n },\n\n /**\n *\n * Return an objects with all important attributes for XML or JSON serialization\n *\n * @returns {Object}\n */\n getPersistentAttributes: function getPersistentAttributes() {\n var memento = this._super();\n\n // write all ports to the JSON\n //\n if (this.persistPorts === true) {\n memento.ports = [];\n this.getPorts().each(function (i, port) {\n memento.ports.push((0, _extend2.default)(port.getPersistentAttributes(), {\n name: port.getName(),\n port: port.NAME,\n locator: port.getLocator().NAME,\n locatorAttr: port.getLocator().attr()\n }));\n });\n }\n\n return memento;\n },\n\n /**\n *\n * Read all attributes from the serialized properties and transfer them into the shape.\n *\n * @param {Object} memento\n * @returns {this}\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n var _this4 = this;\n\n this._super(memento);\n\n if (typeof memento.ports !== \"undefined\") {\n // we read the ports from the JSON and now we save it to the JSON too.\n this.persistPorts = true;\n\n // remove all ports created in the init method\n //\n this.resetPorts();\n\n // and restore all ports of the JSON document instead.\n //\n memento.ports.forEach(function (e) {\n var locator = eval(\"new \" + e.locator + \"()\");\n if (e.locatorAttr) {\n locator.attr(e.locatorAttr);\n }\n\n var port = eval(\"new \" + e.port + \"()\");\n port.setPersistentAttributes(e);\n _this4.addPort(port, locator);\n });\n }\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/node/Start.js\":\n/*!*********************************!*\\\n !*** ./src/shape/node/Start.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A generic Node which has an OutputPort. Mainly used for demos and examples.\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.node.Start({color: \"#3d3d3d\"});\n *\n * canvas.add(figure,50,10);\n *\n * @extends draw2d.shape.basic.Rectangle\n */\n_packages2.default.shape.node.Start = _packages2.default.shape.basic.Rectangle.extend(\n/** @lends draw2d.shape.node.Start.prototype */\n{\n\n NAME: \"draw2d.shape.node.Start\",\n DEFAULT_COLOR: new _packages2.default.util.Color(\"#4D90FE\"),\n\n /**\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({\n bgColor: this.DEFAULT_COLOR,\n color: this.DEFAULT_COLOR.darker(),\n width: 50,\n height: 50\n }, attr), setter, getter);\n this.createPort(\"output\");\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/node/VerticalBus.js\":\n/*!***************************************!*\\\n !*** ./src/shape/node/VerticalBus.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A horizontal bus shape with a special kind of port handling. The hole figure is a hybrid port.\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.node.VerticalBus({width:40, height:300, text:\"Vertical Bus\"});\n *\n * canvas.add(figure,50,10);\n *\n * @extends draw2d.shape.node.Hub\n */\n_packages2.default.shape.node.VerticalBus = _packages2.default.shape.node.Hub.extend(\n/** @lends draw2d.shape.node.VerticalBus.prototype */\n{\n\n NAME: \"draw2d.shape.node.VerticalBus\",\n\n /**\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.setConnectionDirStrategy(2);\n this.installEditPolicy(new _packages2.default.policy.figure.VBusSelectionFeedbackPolicy());\n },\n\n /**\n * \n * set the label for the Hub\n *\n * @param {String} labelString\n * @since 3.0.4\n */\n setLabel: function setLabel(labelString) {\n var mustAdjustTheAngel = this.label === null;\n\n this._super(labelString);\n\n if (mustAdjustTheAngel === true && this.label !== null) {\n this.label.setRotationAngle(90);\n }\n },\n\n /**\n * @inheritdoc\n */\n getMinHeight: function getMinHeight() {\n if (this.shape === null && this.label === null) {\n return 0;\n }\n\n if (this.label !== null) {\n return this.label.getMinWidth();\n }\n\n return this._super();\n },\n\n /**\n * @inheritdoc\n */\n getMinWidth: function getMinWidth() {\n if (this.shape === null && this.label === null) {\n return 0;\n }\n\n if (this.label !== null) {\n return this.label.getMinHeight();\n }\n\n return this._super();\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/note/PostIt.js\":\n/*!**********************************!*\\\n !*** ./src/shape/note/PostIt.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Simple Post-it like figure with text. Can be used for annotations or documentation.\n *\n *\n * @example\n *\n * let shape = new draw2d.shape.note.PostIt({\n * text:\"This is a simple sticky note\",\n * color:\"#000000\",\n * padding:20\n * });\n *\n * canvas.add(shape,40,10);\n *\n * @author Andreas Herz\n * @extends draw2d.shape.basic.Label\n */\n_packages2.default.shape.note.PostIt = _packages2.default.shape.basic.Label.extend(\n/** @lends draw2d.shape.note.PostIt.prototype */\n{\n\n NAME: \"draw2d.shape.note.PostIt\",\n\n /**\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.setStroke(1);\n this.setBackgroundColor(\"#5b5b5b\");\n this.setColor(\"#FFFFFF\");\n this.setFontColor(\"#ffffff\");\n this.setFontSize(14);\n this.setPadding(5);\n this.setRadius(5);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/pert/Activity.js\":\n/*!************************************!*\\\n !*** ./src/shape/pert/Activity.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * NOT FOR PRODUCTIVE\n *\n * Checkout [Wikipedia PERT][1] for more information.\n * [1] http://en.wikipedia.org/wiki/Program_Evaluation_and_Review_Technique\n *\n * Double click on the Task name or the top middle number to change the value.\n *\n *\n * @example\n *\n * canvas.add( new draw2d.shape.pert.Start(),10,10);\n * canvas.add( new draw2d.shape.pert.Activity(),80,130);\n * canvas.add( new draw2d.shape.pert.Activity(),180,50);\n *\n *\n *\n *\n * @extends draw2d.shape.layout.VerticalLayout\n */\n_packages2.default.shape.pert.Activity = _packages2.default.shape.layout.VerticalLayout.extend(\n/** @lends draw2d.shape.pert.Activity.prototype */\n{\n\n NAME: \"draw2d.shape.pert.Activity\",\n\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n // shortcut for some callback methods to avoid $.proxy wrapper\n var _this = this;\n\n // persistence values for the activity\n // will be stored/read in the JSON\n this.mementoValues = {\n duration: null\n\n // just some color attributes for the rendering/gradient\n };this.bgColor = new _packages2.default.util.Color(\"#f3f3f3\");\n this.lighterBgColor = this.bgColor.lighter(0.2).rgba();\n this.darkerBgColor = this.bgColor.darker(0.2).rgba();\n\n this._super(extend({ bgColor: this.bgColor, stroke: 2, radius: 2, color: this.darkerBgColor }, attr), setter, getter);\n\n // Compose the top row of the shape\n //\n var top = new _packages2.default.shape.layout.HorizontalLayout({ stroke: 0 });\n\n this.earlyStartLabel = this.createLabel(\"Early Start\").setStroke(0);\n\n this.durationLabel = new _packages2.default.shape.basic.Label({\n text: \"Duration\",\n stroke: 1,\n color: this.darkerBgColor,\n radius: 0,\n bgColor: null,\n padding: 5\n });\n // duration label has a inplaceEditor for the value\n this.durationLabel.installEditor(new _packages2.default.ui.LabelEditor({\n onCommit: function onCommit(value) {\n _this.setDuration(parseFloat(value));\n }\n }));\n\n this.earlyEndLabel = this.createLabel({ text: \"Early End\", stroke: 0 });\n\n top.add(this.earlyStartLabel);\n top.add(this.durationLabel);\n top.add(this.earlyEndLabel);\n\n // the middle part of the shape\n // This part contains the ports for the connection\n //\n this.activityLabel = new _packages2.default.shape.basic.Label({\n text: \"Activity Name\",\n radius: 0,\n padding: 10,\n color: this.darkerBgColor,\n bgColor: null\n });\n // direct editor for the label\n this.activityLabel.installEditor(new _packages2.default.ui.LabelInplaceEditor());\n\n this.inputPort = this.activityLabel.createPort(\"input\");\n this.inputPort.getActivity = function () {\n return _this;\n };\n this.inputPort.onConnect = function () {\n _this.setDuration(_this.mementoValues.duration);\n };\n this.inputPort.onDisconnect = function () {\n _this.setDuration(_this.mementoValues.duration);\n };\n this.inputPort.setValue = function (anyValue) {\n _this.setDuration(_this.mementoValues.duration);\n };\n\n this.outputPort = this.activityLabel.createPort(\"output\");\n this.outputPort.getActivity = function () {\n return _this;\n };\n this.outputPort.onConnect = function () {\n _this.setDuration(_this.mementoValues.duration);\n };\n this.outputPort.onDisconnect = function () {\n _this.setDuration(_this.mementoValues.duration);\n };\n\n // the bottom of the activity shape\n //\n var bottom = new _packages2.default.shape.layout.HorizontalLayout({ stroke: 0 });\n\n this.lateStartLabel = this.createLabel(\"Late Start\").setStroke(0);\n this.stackLabel = this.createLabel(\"Stack\");\n this.lateEndLabel = this.createLabel(\"Late End\").setStroke(0);\n\n bottom.add(this.lateStartLabel);\n bottom.add(this.stackLabel);\n bottom.add(this.lateEndLabel);\n\n // finally compose the shape with top/middle/bottom in VerticalLayout\n //\n this.add(top);\n this.add(this.activityLabel);\n this.add(bottom);\n\n // set some good default value for the activity\n //\n this.setDuration(1);\n },\n\n /**\n * \n * Set the duration for the activity. This triggers a complete recalculation of the complete\n * diagram. No further calls are required\n *\n * @param {Number} duration the new Duration for the activity\n */\n setDuration: function setDuration(duration) {\n\n if (this.mementoValues.duration !== duration) {\n // store the new value\n this.mementoValues.duration = duration;\n\n // update the labels for duration\n this.durationLabel.setText(this.mementoValues.duration);\n }\n\n // calculate the earlyStart and latestEnd and set the labels\n //\n var start = this.getEarlyStart();\n\n this.earlyStartLabel.setText(start);\n this.earlyEndLabel.setText(start + this.mementoValues.duration);\n\n // notify all children that a parent value has been changed\n // Just knock on the inputPort...\n //\n var connections = this.outputPort.getConnections();\n connections.each(function (i, conn) {\n var targetPort = conn.getTarget();\n targetPort.setValue();\n });\n\n // propagate the lateFinish up to all parent nodes if we are a leaf\n //\n if (connections.getSize() === 0) {\n var lateFinish = parseFloat(this.earlyEndLabel.getText());\n this.setLateFinish(lateFinish);\n }\n },\n\n getEarlyEnd: function getEarlyEnd() {\n return this.getEarlyStart() + this.mementoValues.duration;\n },\n\n getEarlyStart: function getEarlyStart() {\n var latestEarlyEnd = 0;\n\n // retrieve the greatest \"earlyStart\" from all parent activities\n this.inputPort.getConnections().each(function (i, conn) {\n var parentActivity = conn.getSource().getActivity();\n latestEarlyEnd = Math.max(latestEarlyEnd, parentActivity.getEarlyEnd());\n });\n\n return latestEarlyEnd;\n },\n\n setLateFinish: function setLateFinish(value) {\n var lateStart = value - this.mementoValues.duration;\n\n this.lateEndLabel.setText(value);\n this.lateStartLabel.setText(lateStart);\n this.stackLabel.setText(lateStart - parseFloat(this.earlyStartLabel.getText()));\n\n var connections = this.inputPort.getConnections();\n connections.each(function (i, conn) {\n var sourcePort = conn.getSource();\n sourcePort.getActivity().setLateFinish(lateStart);\n });\n },\n\n /**\n * \n * help method to create some labels\n *\n * @param {String} txt the label to display\n * @returns {draw2d.shape.basic.Label}\n */\n createLabel: function createLabel(txt) {\n var label = new _packages2.default.shape.basic.Label({ text: txt });\n label.setStroke(1);\n label.setColor(this.darkerBgColor);\n label.setRadius(0);\n label.setBackgroundColor(null);\n label.setPadding(5);\n label.setColor(this.bgColor.darker(0.2));\n label.onDoubleClick = function (angle) {/* ignore them for the layout elements*/\n };\n\n return label;\n },\n\n /**\n * @inheritdoc\n */\n setBackgroundColor: function setBackgroundColor(color) {\n this._super(color);\n\n // calculate the new lighter and darker colors for the gradient\n //\n this.lighterBgColor = this.bgColor.lighter(0.2).rgba();\n this.darkerBgColor = this.bgColor.darker(0.2).rgba();\n },\n\n /**\n * @inheritdoc\n */\n repaint: function repaint(attributes) {\n\n // repaint can be blocked during deserialization and if the shape\n // not part of any canvas.\n //\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = attributes || {};\n\n if (this.getAlpha() < 0.9) {\n attributes.fill = this.bgColor.rgba();\n } else {\n attributes.fill = [\"90\", this.bgColor.hash(), this.lighterBgColor].join(\"-\");\n }\n\n this._super(attributes);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/pert/Start.js\":\n/*!*********************************!*\\\n !*** ./src/shape/pert/Start.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * NOT FOR PRODUCTIVE\n *\n * Checkout [Wikipedia PERT][1] for more information.\n *\n * Double click on the Task name or the top middle number to change the value.\n *\n *\n * @example\n *\n * canvas.add( new draw2d.shape.pert.Start(),10,10);\n * canvas.add( new draw2d.shape.pert.Activity(),80,130);\n * canvas.add( new draw2d.shape.pert.Activity(),180,50);\n *\n * [1] http://en.wikipedia.org/wiki/Program_Evaluation_and_Review_Technique\n *\n * @extends draw2d.shape.layout.VerticalLayout\n */\n_packages2.default.shape.pert.Start = _packages2.default.shape.layout.VerticalLayout.extend(\n/** @lends draw2d.shape.pert.Start.prototype */\n{\n\n NAME: \"draw2d.shape.pert.Start\",\n\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n // shortcut for some callback methods to avoid $.proxy wrapper\n var _this = this;\n\n // persistence values for the activity\n // will be stored/read in the JSON\n this.mementoValues = {\n duration: null\n\n // just some color attributes for the rendering/gradient\n };this.bgColor = new _packages2.default.util.Color(\"#f3f3f3\");\n this.lighterBgColor = this.bgColor.lighter(0.2).rgba();\n this.darkerBgColor = this.bgColor.darker(0.2).rgba();\n\n this._super(extend({ bgColor: this.bgColor, stroke: 2, radius: 2, color: this.darkerBgColor }, attr), setter, getter);\n\n // Compose the top row of the shape\n //\n var top = new _packages2.default.shape.layout.HorizontalLayout({ stroke: 0 });\n\n this.durationLabel = new _packages2.default.shape.basic.Label({\n text: \"Duration\",\n stroke: 1,\n color: this.darkerBgColor,\n radius: 0,\n bgColor: null,\n padding: 5\n });\n // duration label has a inplaceEditor for the value\n this.durationLabel.installEditor(new _packages2.default.ui.LabelEditor({\n text: \"Enter new duration\",\n onCommit: function onCommit(value) {\n _this.setDuration(parseFloat(value));\n }\n }));\n\n this.earlyEndLabel = this.createLabel({ text: \"Early End\", stroke: 0 });\n\n top.add(this.durationLabel);\n top.add(this.earlyEndLabel);\n\n // the middle part of the shape\n // This part contains the ports for the connection\n //\n this.activityLabel = new _packages2.default.shape.basic.Label({\n text: \"Start\",\n radius: 0,\n padding: 10,\n color: this.darkerBgColor,\n bgColor: null\n });\n // direct editor for the label\n this.activityLabel.installEditor(new _packages2.default.ui.LabelInplaceEditor());\n\n this.outputPort = this.activityLabel.createPort(\"output\");\n this.outputPort.getActivity = function () {\n return _this;\n };\n this.outputPort.onConnect = function () {\n _this.setDuration(_this.mementoValues.duration);\n };\n this.outputPort.onDisconnect = function () {\n _this.setDuration(_this.mementoValues.duration);\n };\n\n // the bottom of the activity shape\n //\n var bottom = this.createLabel(\" \");\n bottom.setPadding(10);\n bottom.setStroke(0);\n this.lateEndLabel = bottom;\n\n // finally compose the shape with top/middle/bottom in VerticalLayout\n //\n this.add(top);\n this.add(this.activityLabel);\n this.add(bottom);\n\n // set some good default value for the activity\n //\n this.setDuration(1);\n },\n\n /**\n * \n * Set the duration for the activity. This triggers a complete recalculation of the complete\n * diagram. No further calls are required\n *\n * @param {Number} duration the new Duration for the activity\n */\n setDuration: function setDuration(duration) {\n\n if (this.mementoValues.duration !== duration) {\n // store the new value\n this.mementoValues.duration = duration;\n\n // update the labels for duration\n this.durationLabel.setText(this.mementoValues.duration);\n }\n\n this.earlyEndLabel.setText(this.mementoValues.duration);\n\n // notify all children that a parent value has been changed\n // Just knock on the inputPort...\n //\n var connections = this.outputPort.getConnections();\n connections.each(function (i, conn) {\n var targetPort = conn.getTarget();\n targetPort.setValue();\n });\n\n // propagate the lateFinish up to all parent nodes if we are a leaf\n //\n if (connections.getSize() === 0) {\n var lateFinish = parseFloat(this.earlyEndLabel.getText());\n this.setLateFinish(lateFinish);\n }\n },\n\n getEarlyEnd: function getEarlyEnd() {\n return this.mementoValues.duration;\n },\n\n setLateFinish: function setLateFinish(value) {\n var lateStart = value - this.mementoValues.duration;\n\n this.lateEndLabel.setText(value);\n },\n\n /**\n * \n * help method to create some labels\n *\n * @param {String} txt the label to display\n * @returns {draw2d.shape.basic.Label}\n */\n createLabel: function createLabel(txt) {\n var label = new _packages2.default.shape.basic.Label({ text: txt });\n label.setStroke(1);\n label.setColor(this.darkerBgColor);\n label.setRadius(0);\n label.setBackgroundColor(null);\n label.setPadding(5);\n label.setColor(this.bgColor.darker(0.2));\n label.onDoubleClick = function (angle) {/* ignore them for the layout elements*/\n };\n\n return label;\n },\n\n /**\n * @inheritdoc\n */\n setBackgroundColor: function setBackgroundColor(color) {\n this._super(color);\n\n // calculate the new lighter and darker colors for the gradient\n //\n this.lighterBgColor = this.bgColor.lighter(0.2).rgba();\n this.darkerBgColor = this.bgColor.darker(0.2).rgba();\n },\n\n /**\n * @inheritdoc\n */\n repaint: function repaint(attributes) {\n\n // repaint can be blocked during deserialization and if the shape\n // not part of any canvas.\n //\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = attributes || {};\n\n if (this.getAlpha() < 0.9) {\n attributes.fill = this.bgColor.rgba();\n } else {\n attributes.fill = [\"90\", this.bgColor.hash(), this.lighterBgColor].join(\"-\");\n }\n\n this._super(attributes);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/state/Connection.js\":\n/*!***************************************!*\\\n !*** ./src/shape/state/Connection.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Connection designed for a state diagram with arrow decoration at the\n * target of the connection and a label\n *\n *\n * @example\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * let start = new draw2d.shape.state.Start();\n * let end = new draw2d.shape.state.End();\n\n * // ...add it to the canvas\n * canvas.add( start, 50,50);\n * canvas.add( end, 230,180);\n *\n * // Create a Connection and connect the Start and End node\n * //\n * let c = new draw2d.shape.state.Connection({\n * \t source : start.getOutputPort(0),\n * target : end.getInputPort(0)\n * });\n *\n * // and finally add the connection to the canvas\n * canvas.add(c);\n *\n *\n * @extends draw2d.Connection\n */\n_packages2.default.shape.state.Connection = _packages2.default.Connection.extend(\n/** @lends draw2d.shape.state.Connection.prototype */\n{\n NAME: \"draw2d.shape.state.Connection\",\n\n DEFAULT_COLOR: new _packages2.default.util.Color(\"#4D90FE\"),\n\n init: function init(attr, setter, getter) {\n this._super(extend({ router: null, stroke: 2 }, attr), setter, getter);\n\n this.setTargetDecorator(new _packages2.default.decoration.connection.ArrowDecorator(17, 8));\n\n this.label = new _packages2.default.shape.basic.Label({ text: \"label\" });\n this.label.setStroke(1);\n this.label.setPadding(2);\n this.label.setBackgroundColor(\"#f0f0f0\");\n this.add(this.label, new _packages2.default.layout.locator.ParallelMidpointLocator());\n },\n /**\n * \n * Set the text to show if the state shape\n *\n * @param {String} text\n */\n setLabel: function setLabel(text) {\n this.label.setText(text);\n\n // hide the label if no text available\n this.label.setVisible(!(text === null || text === \"\"));\n this.fireEvent(\"change:label\", { value: text });\n\n return this;\n },\n\n /**\n * \n * Return the label of the shape\n *\n */\n getLabel: function getLabel() {\n return this.label.getText();\n },\n\n /**\n * @inheritdoc\n */\n getPersistentAttributes: function getPersistentAttributes() {\n return extend(this._super(), {\n label: this.getLabel()\n });\n },\n\n /**\n * @inheritdoc\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n\n if (typeof memento.label !== \"undefined\") {\n this.setLabel(memento.label);\n }\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/state/End.js\":\n/*!********************************!*\\\n !*** ./src/shape/state/End.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * The end node for a state diagram\n *\n *\n * @example\n * let end = new draw2d.shape.state.End();\n\n * // ...add it to the canvas\n * canvas.add( end, 230,80);\n *\n * @extends draw2d.shape.basic.Circle\n */\n_packages2.default.shape.state.End = _packages2.default.shape.basic.Circle.extend(\n/** @lends draw2d.shape.state.End.prototype */\n{\n\n NAME: \"draw2d.shape.state.End\",\n\n DEFAULT_COLOR: new _packages2.default.util.Color(\"#4D90FE\"),\n\n init: function init(attr, setter, getter) {\n this.innerCircle = new _packages2.default.shape.basic.Circle(20);\n\n this._super(attr, setter, getter);\n\n this.port = this.createPort(\"input\", new _packages2.default.layout.locator.TopLocator());\n this.port.setConnectionAnchor(new _packages2.default.layout.anchor.ShortesPathConnectionAnchor(this.port));\n\n this.setDimension(50, 50);\n this.setBackgroundColor(this.DEFAULT_COLOR);\n this.installEditPolicy(new _packages2.default.policy.figure.AntSelectionFeedbackPolicy());\n\n this.innerCircle.setStroke(2);\n this.innerCircle.setBackgroundColor(null);\n this.add(this.innerCircle, new _packages2.default.layout.locator.CenterLocator());\n\n this.setStroke(0);\n //this.setColor(this.DEFAULT_COLOR.darker());\n },\n\n /**\n * @inheritdoc\n */\n setDimension: function setDimension(w, h) {\n this._super(w, h);\n this.innerCircle.setDimension(this.getWidth() - 10, this.getHeight() - 10);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/state/Start.js\":\n/*!**********************************!*\\\n !*** ./src/shape/state/Start.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * The start node for a state diagram\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.state.Start({color:\"#3d3d3d\"});\n *\n * canvas.add(figure,50,10);\n *\n * @extends draw2d.shape.basic.Rectangle\n */\n_packages2.default.shape.state.Start = _packages2.default.shape.basic.Circle.extend(\n/** @lends draw2d.shape.state.Start.prototype */\n{\n\n NAME: \"draw2d.shape.state.Start\",\n\n DEFAULT_COLOR: new _packages2.default.util.Color(\"#3369E8\"),\n\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.port = this.createPort(\"output\", new _packages2.default.layout.locator.BottomLocator());\n this.port.setConnectionAnchor(new _packages2.default.layout.anchor.ShortesPathConnectionAnchor(this.port));\n\n this.setDimension(50, 50);\n this.setBackgroundColor(this.DEFAULT_COLOR);\n this.installEditPolicy(new _packages2.default.policy.figure.AntSelectionFeedbackPolicy());\n\n this.setStroke(0);\n //this.setColor(this.DEFAULT_COLOR.darker());\n\n var label = new _packages2.default.shape.basic.Label({ text: \"START\" });\n label.setStroke(0);\n label.setFontColor(\"#ffffff\");\n label.setFontFamily('\"Open Sans\",sans-serif');\n this.add(label, new _packages2.default.layout.locator.CenterLocator());\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/state/State.js\":\n/*!**********************************!*\\\n !*** ./src/shape/state/State.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * a state shape for a state diagram\n *\n * @example\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * let start = new draw2d.shape.state.Start();\n * let state = new draw2d.shape.state.State();\n\n * // ...add it to the canvas\n * canvas.add( start, 50,50);\n * canvas.add( state, 230,180);\n *\n * // Create a Connection and connect the Start and End node\n * //\n * let c = new draw2d.shape.state.Connection({\n * \t\tsource : start.getOutputPort(0),\n * target : state.getInputPort(0)\n * });\n *\n *\n * // and finally add the connection to the canvas\n * canvas.add(c);\n *\n * @extends draw2d.shape.layout.VerticalLayout\n */\n_packages2.default.shape.state.State = _packages2.default.shape.layout.VerticalLayout.extend(\n/** @lends draw2d.shape.state.State.prototype */\n{\n\n NAME: \"draw2d.shape.state.State\",\n\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.port = this.createPort(\"hybrid\", new _packages2.default.layout.locator.BottomLocator());\n this.port.setConnectionAnchor(new _packages2.default.layout.anchor.ChopboxConnectionAnchor(this.port));\n\n this.setBackgroundColor(\"#f3f3f3\");\n\n // UI representation\n this.setStroke(1);\n this.setColor(\"#e0e0e0\");\n this.setRadius(5);\n\n // Compose the top row of the shape\n //\n var top = this.createLabel(\"State\").setStroke(0);\n this.label = top;\n\n // the middle part of the shape\n // This part contains the ports for the connection\n //\n var center = new _packages2.default.shape.basic.Rectangle();\n center.getHeight = function () {\n return 1;\n };\n center.setMinWidth(90);\n center.setColor(\"#e0e0e0\");\n\n // the bottom of the activity shape\n //\n var bottom = new _packages2.default.shape.basic.Rectangle();\n bottom.setMinHeight(30);\n bottom.setStroke(0);\n bottom.setBackgroundColor(null);\n\n // finally compose the shape with top/middle/bottom in VerticalLayout\n //\n this.add(top);\n this.add(center);\n this.add(bottom);\n },\n\n /**\n *\n * Set the text to show if the state shape\n *\n * @param {String} text\n */\n setLabel: function setLabel(text) {\n this.label.setText(text);\n this.fireEvent(\"change:label\", { value: text });\n\n return this;\n },\n\n /**\n *\n * Return the label of the shape\n *\n */\n getLabel: function getLabel() {\n return this.label.getText();\n },\n\n /**\n *\n * helper method to create some labels\n *\n * @param {String} txt the label to display\n * @returns {draw2d.shape.basic.Label}\n * @private\n */\n createLabel: function createLabel(txt) {\n var label = new _packages2.default.shape.basic.Label(txt);\n label.setStroke(1);\n label.setColor(this.darkerBgColor);\n label.setRadius(0);\n label.setBackgroundColor(null);\n label.setPadding(5);\n label.setColor(this.bgColor.darker(0.2));\n label.onDoubleClick = function (angle) {/* ignore them for the layout elements*/\n };\n\n return label;\n },\n\n /**\n * @inheritdoc\n */\n getPersistentAttributes: function getPersistentAttributes() {\n return extend(this._super(), {\n label: this.getLabel()\n });\n },\n\n /**\n * @inheritdoc\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n\n if (typeof memento.label !== \"undefined\") {\n this.setLabel(memento.label);\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/widget/Slider.js\":\n/*!************************************!*\\\n !*** ./src/shape/widget/Slider.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _shifty = __webpack_require__(/*! shifty */ \"./node_modules/shifty/dist/shifty.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * @example\n *\n * let slider = new draw2d.shape.widget.Slider({width:120, height:20});\n * canvas.add( slider,100,60);\n *\n * @extends draw2d.shape.widget.Widget\n */\n_packages2.default.shape.widget.Slider = _packages2.default.shape.widget.Widget.extend(\n/** @lends draw2d.shape.widget.Slider.prototype */\n{\n\n NAME: \"draw2d.shape.widget.Slider\",\n\n DEFAULT_COLOR_THUMB: new _packages2.default.util.Color(\"#bddf69\"),\n DEFAULT_COLOR_BG: new _packages2.default.util.Color(\"#d3d3d3\"),\n\n init: function init(attr, setter, getter) {\n this.currentValue = 0; // [0..100]\n this.slideBoundingBox = new _packages2.default.geo.Rectangle(0, 0, 10, 20);\n this.padding = { top: 4, right: 4, bottom: 4, left: 4 };\n this.panning = false;\n this.thumbGrow = 0;\n\n this._super(extend({\n width: 150,\n height: 15,\n stroke: 1,\n radius: 4,\n resizeable: true,\n color: this.DEFAULT_COLOR_THUMB,\n bgColor: this.DEFAULT_COLOR_BG,\n value: 50\n }, attr), extend({\n // @attr {Number} padding the padding in pixel around the text */\n padding: this.setPadding,\n // @attr {Number} value the new value of the slider. values must be in range of [0..100] */\n value: this.setValue\n }, setter), extend({\n padding: this.getPadding,\n value: this.getValue\n }, getter));\n\n this.setMinHeight(15);\n this.setMinWidth(80);\n },\n\n /**\n * \n * Create the additional elements for the figure\n *\n */\n createSet: function createSet() {\n var result = this.canvas.paper.set();\n var thumb = this.canvas.paper.rect(0, 0, 10, 20);\n thumb.node.style.cursor = \"col-resize\";\n result.push(thumb);\n\n return result;\n },\n\n /**\n * @inheritdoc\n */\n setDimension: function setDimension(w, h) {\n this._super(w, h);\n this.slideBoundingBox.setBoundary(this.padding.left, 0, this.getWidth() - this.padding.right, this.getHeight());\n this.slideBoundingBox.setHeight(this.getHeight() + 1);\n\n // TODO: and repaint again.....two repaints for one \"setDimension\"....BAD\n //\n this.repaint();\n },\n\n /**\n * \n * Set the padding of the element\n *\n * // Alternatively you can use the attr method:\n * //\n * // set the padding for top,left,bottom,right in one call\n * figure.attr({\n * padding: 3\n * });\n *\n * // update the padding left and top\n * figure.attr({\n * padding: {left:3, top:30}\n * });\n *\n * @param {Number|Object} padding The new padding\n * @since 5.6.0\n **/\n setPadding: function setPadding(padding) {\n this.clearCache();\n if (typeof padding === \"number\") {\n this.padding = { top: padding, right: padding, bottom: padding, left: padding };\n } else {\n this.padding = extend(this.padding, padding);\n }\n this.repaint();\n this.fireEvent(\"change:padding\", { value: this.padding });\n\n return this;\n },\n\n /**\n * \n * Get the padding of the element.\n *\n * @since 5.6.0\n **/\n getPadding: function getPadding() {\n return this.padding;\n },\n\n /**\n * \n * Called if the value of the slider has been changed.\n *\n * @param {Number} value The new value of the slider in percentage [0..100]\n * @template\n */\n onValueChange: function onValueChange(value) {},\n\n /**\n * \n * Will be called if the drag and drop action begins. You can return [false] if you\n * want avoid that the figure can be move.\n *\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @returns {Boolean} true if the figure accepts dragging\n **/\n onDragStart: function onDragStart(x, y, shiftKey, ctrlKey) {\n // check if the use has been clicked on the thumb.\n // Return \"false\" to prevent drag&drop operation.\n //\n if (this.slideBoundingBox.hitTest(x, y)) {\n\n this.panningX = x;\n this.panningY = y;\n this.panning = true;\n var tweenable = new _shifty.Tweenable();\n tweenable.tween({\n from: { grow: this.thumbGrow },\n to: { grow: 10 },\n duration: 500,\n easing: 'easeOutQuart',\n step: function (state) {\n this.thumbGrow = state.grow;\n this.repaint();\n }.bind(this),\n finish: function finish() {\n tweenable.dispose();\n }\n });\n return false;\n }\n\n return this._super(x, y, shiftKey, ctrlKey);\n },\n\n /**\n * \n * Called by the framework if the figure returns false for the drag operation. In this\n * case we send a \"panning\" event - mouseDown + mouseMove. This is very useful for\n * UI-Widget like slider, spinner,...\n *\n * @param {Number} dx the x difference between the mouse down operation and now\n * @param {Number} dy the y difference between the mouse down operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n */\n\n onPanning: function onPanning(dx, dy, dx2, dy2) {\n // calculate the current position of the mouse pos\n //\n var width = this.getWidth();\n var sliderWidth = width - this.padding.left - this.padding.right;\n\n var figurePos = Math.min(width, Math.max(0, this.panningX + dx));\n var sliderPos = Math.min(width - this.padding.left - this.padding.right, figurePos);\n\n this.setValue(100 / sliderWidth * sliderPos);\n },\n\n /**\n * @inheritdoc\n */\n onPanningEnd: function onPanningEnd() {\n this.panning = false;\n\n var tweenable = new _shifty.Tweenable();\n tweenable.tween({\n from: { grow: this.thumbGrow },\n to: { grow: 0 },\n duration: 300,\n easing: 'easeOutQuart',\n step: function (state) {\n this.thumbGrow = state.grow;\n this.repaint();\n }.bind(this),\n finish: function finish() {\n tweenable.dispose();\n }\n });\n this.thumbGrow = 0;\n this.repaint();\n },\n\n /**\n * \n * Set the current value of the slider. Valid values are [0..100]\n *\n * @param {Number} value values between [0..100]\n */\n setValue: function setValue(value) {\n this.currentValue = Math.min(Math.max(0, value | 0), 100);\n this.repaint();\n this.onValueChange(this.currentValue);\n this.fireEvent(\"change:value\", { value: this.currentValue });\n\n return this;\n },\n\n /**\n * \n * Returns the current value of the slider\n *\n * @since 5.6.0\n *\n * @returns {Number}\n */\n getValue: function getValue() {\n return this.currentValue;\n },\n\n /**\n *\n * @param attributes\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = attributes || {};\n\n // adjust the slider to the current value and the new dimension of the widget\n //\n var thumbX = (this.getWidth() - this.padding.left - this.padding.right) / 100 * this.currentValue + this.padding.left | 0;\n this.slideBoundingBox.setX(thumbX);\n\n // update slider\n //\n if (this.svgNodes !== null) {\n var attr = this.slideBoundingBox.toJSON();\n attr.y -= this.thumbGrow / 2;\n attr.height += this.thumbGrow;\n attr.fill = this.getColor().rgba();\n attr.stroke = this.getColor().darker(0.2).rgba();\n attr.r = 4;\n this.svgNodes.attr(attr);\n }\n\n attributes.fill = \"90-\" + this.bgColor.hash() + \":5-\" + this.bgColor.lighter(0.3).hash() + \":95\";\n attributes.stroke = this.bgColor.darker(0.1).rgba();\n\n this._super(attributes);\n },\n\n applyTransformation: function applyTransformation() {\n this.svgNodes.transform(\"T\" + this.getAbsoluteX() + \",\" + this.getAbsoluteY());\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/widget/Widget.js\":\n/*!************************************!*\\\n !*** ./src/shape/widget/Widget.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Base class for all diagrams.\n *\n * @extends draw2d.SetFigure\n */\n_packages2.default.shape.widget.Widget = _packages2.default.SetFigure.extend({\n\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/ui/LabelEditor.js\":\n/*!*******************************!*\\\n !*** ./src/ui/LabelEditor.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Base class for all draw2d.shape.basic.Label editors. The default implementation is to open\n * a simple javascript prompt dialog.<br>\n * Use LabelInplaceEditor or your own implementation if you need more comfort.\n *\n * @example\n *\n * let label = new draw2d.shape.basic.Label({text:\"Double Click on me\"});\n *\n * label.installEditor(new draw2d.ui.LabelEditor({\n * // called after the value has been set to the LabelFigure\n * onCommit: $.proxy(function(value){\n * alert(\"new value set to:\"+value);\n * },this),\n * // called if the user abort the operation\n * onCancel: function(){\n * }\n * }));\n *\n * canvas.add(label,50,10);\n *\n *\n * @author Andreas Herz\n */\n_packages2.default.ui.LabelEditor = Class.extend(\n/** @lends draw2d.ui.LabelEditor.prototype */\n{\n NAME: \"draw2d.ui.LabelEditor\",\n\n /**\n *\n * @param {Object} attr callback handler and configuration. **{ onCommit:function(){}}, onCancel: function(){}, onStart: function(){}, text:'My Dialog Title' }**\n */\n init: function init(attr) {\n // register some default listener and override this with the handover one\n this.configuration = extend({\n onCommit: function onCommit() {},\n onCancel: function onCancel() {},\n onStart: function onStart() {},\n text: \"Value\"\n }, attr);\n },\n\n /**\n *\n * Trigger the edit of the label text.\n *\n * @param {draw2d.shape.basic.Label} label the label to edit\n */\n start: function start(label) {\n this.configuration.onStart();\n var newText = prompt(this.configuration.text, label.getText());\n if (newText) {\n var cmd = new _packages2.default.command.CommandAttr(label, { text: newText });\n label.getCanvas().getCommandStack().execute(cmd);\n\n this.configuration.onCommit(label.getText());\n } else {\n this.configuration.onCancel();\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/ui/LabelInplaceEditor.js\":\n/*!**************************************!*\\\n !*** ./src/ui/LabelInplaceEditor.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _jquery = __webpack_require__(/*! lib/jquery.autoresize */ \"./src/lib/jquery.autoresize.js\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Inplace editor for draw2d.shape.base.Label\n *\n * @example\n *\n * var label = new draw2d.shape.basic.Label({text:\"Double Click on me\"});\n *\n * label.installEditor(new draw2d.ui.LabelInplaceEditor({\n * // called after the value has been set to the LabelFigure\n * onCommit: $.proxy(function(value){\n * alert(\"new value set to:\"+value);\n * },this),\n * // called if the user abort the operation\n * onCancel: function(){\n * }\n * }));\n *\n * canvas.add(label,50,10);\n *\n * @author Andreas Herz\n * @extends draw2d.ui.LabelEditor\n */\n_packages2.default.ui.LabelInplaceEditor = _packages2.default.ui.LabelEditor.extend(\n/** @lends draw2d.ui.LabelInplaceEditor.prototype */\n{\n\n NAME: \"draw2d.ui.LabelInplaceEditor\",\n\n init: function init(listener) {\n this._super();\n\n // register some default listener and override this with the handover one\n this.listener = extend({\n onCommit: function onCommit() {},\n onCancel: function onCancel() {},\n onStart: function onStart() {}\n }, listener);\n },\n\n /**\n *\n * Trigger the edit of the label text.\n *\n * @param {draw2d.shape.basic.Label} label the label to edit\n */\n start: function start(label) {\n var _this = this;\n\n this.label = label;\n\n this.commitCallback = this.commit.bind(this);\n\n // commit the editor if the user clicks anywhere in the document\n //\n $(\"body\").bind(\"click\", this.commitCallback);\n\n // append the input field to the document and register\n // the ENTER and ESC key to commit /cancel the operation\n //\n this.html = $('<input id=\"inplaceeditor\">');\n this.html.val(label.getText());\n this.html.hide();\n\n $(\"body\").append(this.html);\n\n this.html.autoResize();\n\n this.html.bind(\"keyup\", function (e) {\n switch (e.which) {\n case 13:\n this.commit();\n break;\n case 27:\n this.cancel();\n break;\n }\n }.bind(this));\n\n this.html.bind(\"blur\", this.commitCallback);\n\n // avoid commit of the operation if we click inside the editor\n //\n this.html.bind(\"click\", function (e) {\n e.stopPropagation();\n e.preventDefault();\n });\n\n // Position the INPUT and init the autoresize of the element\n //\n var canvas = this.label.getCanvas();\n var bb = this.label.getBoundingBox();\n\n bb.setPosition(canvas.fromCanvasToDocumentCoordinate(bb.x, bb.y));\n\n // remove the scroll from the body if we add the canvas directly into the body\n var scrollDiv = canvas.getScrollArea();\n if (scrollDiv.is($(\"body\"))) {\n bb.translate(canvas.getScrollLeft(), canvas.getScrollTop());\n }\n\n bb.translate(-1, -1);\n bb.resize(2, 2);\n\n this.html.css({\n position: \"absolute\",\n \"top\": bb.y,\n \"left\": bb.x,\n \"min-width\": bb.w * (1 / canvas.getZoom()),\n \"height\": Math.max(25, bb.h * (1 / canvas.getZoom()))\n });\n this.html.fadeIn(function () {\n _this.html.focus();\n _this.listener.onStart();\n });\n },\n\n /**\n *\n * Transfer the data from the editor into the label.<br>\n * Remove the editor.<br>\n *\n * @private\n */\n commit: function commit() {\n var _this2 = this;\n\n this.html.unbind(\"blur\", this.commitCallback);\n $(\"body\").unbind(\"click\", this.commitCallback);\n var label = this.html.val();\n var cmd = new _packages2.default.command.CommandAttr(this.label, { text: label });\n this.label.getCanvas().getCommandStack().execute(cmd);\n this.html.fadeOut(function () {\n _this2.html.remove();\n _this2.html = null;\n _this2.listener.onCommit(_this2.label.getText());\n });\n },\n\n /**\n *\n * Transfer the data from the editor into the label.<br>\n * Remove the editor.<br>\n * @private\n */\n cancel: function cancel() {\n var _this3 = this;\n\n this.html.unbind(\"blur\", this.commitCallback);\n $(\"body\").unbind(\"click\", this.commitCallback);\n this.html.fadeOut(function () {\n _this3.html.remove();\n _this3.html = null;\n _this3.listener.onCancel();\n });\n }\n});\n\n/***/ }),\n\n/***/ \"./src/util/ArrayList.js\":\n/*!*******************************!*\\\n !*** ./src/util/ArrayList.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * <Disclaimer> Writing my own class for arrays was one of my worst ideas...\n *\n * An ArrayList stores a variable number of objects. This is similar to making an array of\n * objects, but with an ArrayList, items can be easily added and removed from the ArrayList\n * and it is resized dynamically. This can be very convenient, but it's slower than making\n * an array of objects when using many elements.\n */\n_packages2.default.util.ArrayList = Class.extend(\n/** @lends draw2d.util.ArrayList */\n{\n\n init: function init(a) {\n if (Array.isArray(a)) {\n this.data = a;\n } else {\n this.data = [];\n }\n },\n\n /**\n *\n * Clears the array\n *\n * @since 6.1.0\n * @returns {this}\n */\n clear: function clear() {\n this.data = [];\n\n return this;\n },\n\n /**\n *\n * Reverses the order of the elements in the ArrayList. The array will be modified!\n *\n * @returns {this}\n */\n reverse: function reverse() {\n this.data.reverse();\n\n return this;\n },\n\n /**\n *\n * The size/count of the stored objects.\n *\n * @returns {Number}\n */\n getSize: function getSize() {\n return this.data.length;\n },\n\n /**\n *\n * checks to see if the Vector has any elements.\n *\n * @returns {Boolean} true if the list is empty\n **/\n isEmpty: function isEmpty() {\n return this.getSize() === 0;\n },\n\n /**\n *\n * return the last element.\n *\n * @returns {Object}\n */\n last: function last() {\n return this.data[this.data.length - 1];\n },\n\n /**\n *\n * Return a reference to the internal javascript native array.\n *\n * @returns {Array}\n */\n asArray: function asArray() {\n return this.data;\n },\n\n /**\n *\n * returns the first element\n *\n * @returns {Object}\n */\n first: function first() {\n if (this.data.length > 0) {\n return this.data[0];\n }\n return null;\n },\n\n /**\n *\n * returns an element at a specified index\n *\n * @param {Number} i\n * @returns {Object}\n */\n get: function get(i) {\n return this.data[i];\n },\n\n /**\n *\n * Adds a element at the end of the Vector.\n *\n * @param {Object} obj the object to add\n * @returns {this}\n */\n add: function add() {\n var _data;\n\n (_data = this.data).push.apply(_data, arguments);\n\n return this;\n },\n\n /**\n *\n *\n * The method removes items from an array as necessary so that all remaining items pass a\n * provided test. The test is a function that is passed an array item and the index of the\n * item within the array. Only if the test returns true will the item stay in the array.\n *\n * @param {Function} func the filter function(element,index)\n * @param {Object} func.value value of the element in iteration.\n * @since 2.0.0\n * @returns {this}\n */\n grep: function grep(func) {\n this.data = this.data.filter(func);\n\n return this;\n },\n\n /**\n *\n *\n * Return ONE element which matches by the given function or <b>null</b>\n * if no element is found.\n *\n * var r1= figures.find(function(figure){\n * return figure.id===123456\n * });\n *\n * @param {Function} func the filter function\n * @param {Object} func.value value of the element in iteration.\n * @param {Object} func.index index of the element in collection.\n * @since 2.0.0\n */\n find: function find(func) {\n var result = this.data.filter(func);\n if (result.length === 0) {\n return null;\n }\n return result[0];\n },\n\n /**\n *\n * Translate all items in the array into new items. The array list is modified after this call.\n * You must clone the array before if you want avoid this.\n *\n * var labels = this.commands.clone().map(function(e){\n * return e.getLabel();\n * });\n *\n * @param {Function} func The function to process each item against. The first argument to the function is the value; the second argument is the index or key of the array or object property.\n * @param {Object} func.value value of the element in iteration.\n * @param {Number} func.i index of the element in iteration\n *\n * @since 4.0.0\n * @returns {this}\n */\n map: function map(func) {\n this.data = this.data.map(func);\n\n return this;\n },\n\n /**\n *\n * Removes any duplicate elements from the array. The array is modified after this call. You\n * must clone the array before if you want avoid this\n *\n * @since 4.0.0\n * @returns {this}\n */\n unique: function unique() {\n this.data = this.data.filter(function (value, index, self) {\n return self.indexOf(value) === index;\n });\n\n return this;\n },\n\n /**\n *\n * Add all elements into this array.\n *\n * @param {draw2d.util.ArrayList} list\n * @param {Boolean} [avoidDuplicates] checks whenever the new elements exists before insert if the parameter is to [true]\n * @returns {this}\n */\n addAll: function addAll(list, avoidDuplicates) {\n if (!(list instanceof _packages2.default.util.ArrayList)) {\n throw \"Unable to handle unknown object type in ArrayList.addAll\";\n }\n\n this.data = this.data.concat(list.data);\n if (avoidDuplicates) {\n this.unique();\n }\n return this;\n },\n\n /**\n *\n * You can use the Array list as Stack as well. this is the pop method to remove one element\n * at the end of the stack.\n *\n * @returns {Object} the remove object\n */\n pop: function pop() {\n return this.removeElementAt(this.data.length - 1);\n },\n\n /**\n * Push one element at the top of the stack/array\n *\n * @param {Object} value The object to add\n * @returns {this}\n */\n push: function push(value) {\n this.add(value);\n },\n\n /**\n *\n * Remove the element from the list\n *\n * @param {Object} obj the object to remove\n *\n * @returns {Object} the removed object or null\n */\n remove: function remove(obj) {\n var index = this.indexOf(obj);\n if (index >= 0) {\n return this.removeElementAt(index);\n }\n\n return null;\n },\n\n /**\n *\n * Inserts an element at a given position. Existing elements will be shifted\n * to the right.\n *\n * @param {Object} obj the object to insert.\n * @param {Number} index the insert position.\n * @returns {this}\n */\n insertElementAt: function insertElementAt(obj, index) {\n this.data.splice(index, 0, obj);\n\n return this;\n },\n\n /**\n *\n * Removes an element at a specific index.\n *\n * @param {Number} index the index of the element to remove\n * @returns {Object} the removed object\n */\n removeElementAt: function removeElementAt(index) {\n var element = this.data[index];\n\n this.data.splice(index, 1);\n\n return element;\n },\n\n /**\n *\n * removes all given elements in the ArrayList\n *\n * @param {draw2d.util.ArrayList} elements The elements to remove\n * @returns {this}\n */\n removeAll: function removeAll(elements) {\n var _this = this;\n\n if (elements instanceof _packages2.default.util.ArrayList) {\n elements = elements.data;\n }\n\n if (Array.isArray(elements)) {\n elements.forEach(function (e) {\n _this.remove(e);\n });\n }\n\n return this;\n },\n\n /**\n *\n * Return the zero based index of the given element or -1 if the element\n * not in the list.\n *\n * @param {Object} obj the element to check\n *\n * @returns {Number} the index of the element or -1\n */\n indexOf: function indexOf(obj) {\n return this.data.indexOf(obj);\n },\n\n /**\n *\n * returns true if the element is in the Vector, otherwise false.\n *\n * @param {Object} obj the object to check\n *\n * @returns {Boolean}\n */\n contains: function contains(obj) {\n return this.indexOf(obj) !== -1;\n },\n\n /**\n *\n * Sorts the collection based on a field name or sort a function. See on http://www.w3schools.com/jsref/jsref_sort.asp\n * if you use a sort function.\n *\n * @param {String|Function} f the field name for the sorting or a sort function\n *\n * @returns {this}\n *\n */\n sort: function sort(f) {\n if (typeof f === \"function\") {\n this.data.sort(f);\n } else {\n this.data.sort(function (a, b) {\n if (a[f] < b[f]) return -1;\n if (a[f] > b[f]) return 1;\n return 0;\n });\n }\n return this;\n },\n\n /**\n *\n * Copies the contents of a Vector to another Vector returning the new Vector.\n *\n * @param {Boolean} [deep] call \"clone\" of each elements and add the clone to the new ArrayList\n *\n * @returns {draw2d.util.ArrayList} the new ArrayList\n */\n clone: function clone(deep) {\n var newVector = new _packages2.default.util.ArrayList();\n\n if (deep) {\n for (var i = 0; i < this.data.length; i++) {\n newVector.data.push(this.data[i].clone());\n }\n } else {\n newVector.data = this.data.slice(0);\n }\n\n return newVector;\n },\n\n /**\n *\n * Iterates over the list of elements, yielding each in turn to an iterator\n * function.\n * Each invocation of iterator is called with two arguments: (index, element).\n *\n * @param {Function} func the callback function to call for each element\n * @param {Number} func.i index of the element in iteration\n * @param {Object} func.value value of the element in iteration.\n * @param {Boolean} [reverse] optional parameter. Iterate the collection reverse if it set to <b>true</b>\n * @returns {this}\n */\n each: function each(func, reverse) {\n if (typeof reverse !== \"undefined\" && reverse === true) {\n for (var i = this.data.length - 1; i >= 0; i--) {\n if (func(i, this.data[i]) === false) break;\n }\n } else {\n for (var _i = 0; _i < this.data.length; _i++) {\n if (func(_i, this.data[_i]) === false) break;\n }\n }\n\n return this;\n },\n\n /**\n * overwrites the element with an object at the specific index.\n *\n * @param {Object} obj The object to add\n * @param {Number} index the index where the object should places.\n *\n * @returns {this}\n */\n overwriteElementAt: function overwriteElementAt(obj, index) {\n this.data[index] = obj;\n\n return this;\n },\n\n /**\n *\n * @returns {Object} the attributes which are required for persistence\n */\n getPersistentAttributes: function getPersistentAttributes() {\n return { data: this.data };\n },\n\n /**\n *\n * Read all attributes from the serialized properties and transfer them into the shape.\n *\n * @param {Object} memento\n * @returns {this}\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this.data = memento.data;\n\n return this;\n }\n\n});\n\n_packages2.default.util.ArrayList.EMPTY_LIST = new _packages2.default.util.ArrayList();\n\n/***/ }),\n\n/***/ \"./src/util/Base64.js\":\n/*!****************************!*\\\n !*** ./src/util/Base64.js ***!\n \\****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.util.Base64 = {\n\n /**\n * Maps bytes to characters.\n * @type {Object}\n * @private\n */\n byteToCharMap_: null,\n\n /**\n * Maps characters to bytes.\n * @type {Object}\n * @private\n */\n charToByteMap_: null,\n\n /**\n * Maps bytes to websafe characters.\n * @type {Object}\n * @private\n */\n byteToCharMapWebSafe_: null,\n\n /**\n * Maps websafe characters to bytes.\n * @type {Object}\n * @private\n */\n charToByteMapWebSafe_: null,\n\n /**\n * Our default alphabet, shared between\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\n * @type {string}\n */\n ENCODED_VALS_BASE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',\n\n /**\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\n * @type {string}\n */\n ENCODED_VALS: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' + '+/=',\n\n /**\n * Our websafe alphabet.\n * @type {string}\n */\n ENCODED_VALS_WEBSAFE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' + '-_.',\n\n encodeByteArray: function encodeByteArray(input, opt_webSafe) {\n _packages2.default.util.Base64.init();\n\n var byteToCharMap = opt_webSafe ? _packages2.default.util.Base64.byteToCharMapWebSafe_ : _packages2.default.util.Base64.byteToCharMap_;\n\n var output = [];\n\n for (var i = 0; i < input.length; i += 3) {\n var byte1 = input[i];\n var haveByte2 = i + 1 < input.length;\n var byte2 = haveByte2 ? input[i + 1] : 0;\n var haveByte3 = i + 2 < input.length;\n var byte3 = haveByte3 ? input[i + 2] : 0;\n\n var outByte1 = byte1 >> 2;\n var outByte2 = (byte1 & 0x03) << 4 | byte2 >> 4;\n var outByte3 = (byte2 & 0x0F) << 2 | byte3 >> 6;\n var outByte4 = byte3 & 0x3F;\n\n if (!haveByte3) {\n outByte4 = 64;\n\n if (!haveByte2) {\n outByte3 = 64;\n }\n }\n\n output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]);\n }\n\n return output.join('');\n },\n\n /**\n * \n * Base64-encode a string.\n *\n * @param {string} input A string to encode.\n * @param {boolean=} opt_webSafe If true, we should use the alternative alphabet.\n * @returns {string} The base64 encoded string.\n */\n encode: function encode(input, opt_webSafe) {\n return _packages2.default.util.Base64.encodeByteArray(_packages2.default.util.Base64.stringToByteArray(input), opt_webSafe);\n },\n\n /**\n * \n * Base64-decode a string.\n *\n * @param {String} input to decode (length not required to be a multiple of 4).\n * @param {boolean=} opt_webSafe True if we should use the\n * alternative alphabet.\n * @returns {Array} bytes representing the decoded value.\n */\n decode: function decode(input, opt_webSafe) {\n _packages2.default.util.Base64.init();\n\n var charToByteMap = opt_webSafe ? _packages2.default.util.Base64.charToByteMapWebSafe_ : _packages2.default.util.Base64.charToByteMap_;\n\n var output = [];\n\n for (var i = 0; i < input.length;) {\n var byte1 = charToByteMap[input.charAt(i++)];\n\n var haveByte2 = i < input.length;\n var byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\n ++i;\n\n var haveByte3 = i < input.length;\n var byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 0;\n ++i;\n\n var haveByte4 = i < input.length;\n var byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 0;\n ++i;\n\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\n throw Error();\n }\n\n var outByte1 = byte1 << 2 | byte2 >> 4;\n output.push(outByte1);\n\n if (byte3 != 64) {\n var outByte2 = byte2 << 4 & 0xF0 | byte3 >> 2;\n output.push(outByte2);\n\n if (byte4 != 64) {\n var outByte3 = byte3 << 6 & 0xC0 | byte4;\n output.push(outByte3);\n }\n }\n }\n\n return output;\n },\n\n /**\n * Turns a string into an array of bytes; a \"byte\" being a JS number in the\n * range 0-255.\n * @param {string} str String value to arrify.\n * @returns {!Array.<number>} Array of numbers corresponding to the\n * UCS character codes of each character in str.\n */\n stringToByteArray: function stringToByteArray(str) {\n var output = [],\n p = 0;\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n while (c > 0xff) {\n output[p++] = c & 0xff;\n c >>= 8;\n }\n output[p++] = c;\n }\n return output;\n },\n\n init: function init() {\n if (!_packages2.default.util.Base64.byteToCharMap_) {\n _packages2.default.util.Base64.byteToCharMap_ = {};\n _packages2.default.util.Base64.charToByteMap_ = {};\n _packages2.default.util.Base64.byteToCharMapWebSafe_ = {};\n _packages2.default.util.Base64.charToByteMapWebSafe_ = {};\n\n // We want quick mappings back and forth, so we precompute two maps.\n for (var i = 0; i < _packages2.default.util.Base64.ENCODED_VALS.length; i++) {\n _packages2.default.util.Base64.byteToCharMap_[i] = _packages2.default.util.Base64.ENCODED_VALS.charAt(i);\n _packages2.default.util.Base64.charToByteMap_[_packages2.default.util.Base64.byteToCharMap_[i]] = i;\n _packages2.default.util.Base64.byteToCharMapWebSafe_[i] = _packages2.default.util.Base64.ENCODED_VALS_WEBSAFE.charAt(i);\n _packages2.default.util.Base64.charToByteMapWebSafe_[_packages2.default.util.Base64.byteToCharMapWebSafe_[i]] = i;\n }\n }\n }\n};\n\n/***/ }),\n\n/***/ \"./src/util/Color.js\":\n/*!***************************!*\\\n !*** ./src/util/Color.js ***!\n \\***************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Util class to handle colors in the draw2d enviroment.\n *\n * @example\n * // Create a new Color with RGB values\n * var color = new draw2d.util.Color(127,0,0);\n *\n * // of from a hex string\n * var color2 = new draw2d.util.Color(\"#f00000\");\n *\n * // Create a little bit darker color\n * var darkerColor = color.darker(0.2); // 20% darker\n *\n * // create a optimal text color if 'color' the background color\n * // (best in meaning of contrast and readability)\n * var fontColor = color.getIdealTextColor();\n *\n * @param {Number|String|draw2d.util.Color|Array} red\n * @param {Number} green\n * @param {Number} blue\n * @param {Number} [alpha]\n */\n_packages2.default.util.Color = Class.extend(\n/** @lends draw2d.util.Color */\n{\n\n init: function init(red, green, blue, alpha) {\n\n this.hashString = null;\n\n if (typeof red === \"undefined\" || red === null) {\n this.hashString = \"none\";\n } else if (red instanceof _packages2.default.util.Color) {\n if (red.hashString === \"none\") {\n this.hashString = \"none\";\n } else {\n this.red = red.red;\n this.green = red.green;\n this.blue = red.blue;\n this.alpha = red.alpha;\n }\n } else if (typeof red === \"string\") {\n if (red === \"none\") {\n this.hashString = \"none\";\n } else {\n var rgba = this.hex2rgb(red);\n this.red = rgba[0];\n this.green = rgba[1];\n this.blue = rgba[2];\n this.alpha = rgba[3];\n }\n }\n // JSON struct of {red:###, green:###, blue:### }\n else if ((typeof red === \"undefined\" ? \"undefined\" : _typeof(red)) === \"object\" && typeof red.red === \"number\") {\n this.red = red.red;\n this.green = red.green;\n this.blue = red.blue;\n this.alpha = red.alpha;\n }\n // array detection 1\n else if (red instanceof Array && red.length === 3) {\n this.red = red[0];\n this.green = red[1];\n this.blue = red[2];\n this.alpha = red[3];\n }\n // array detection 2\n else if ((typeof red === \"undefined\" ? \"undefined\" : _typeof(red)) === \"object\" && typeof red.length === \"number\" && red.length === 3) {\n this.red = red[0];\n this.green = red[1];\n this.blue = red[2];\n this.alpha = red[3];\n } else {\n this.red = parseInt(red);\n this.green = parseInt(green);\n this.blue = parseInt(blue);\n this.alpha = typeof alpha === 'undefined' ? 1 : parseFloat(alpha);\n }\n },\n\n /**\n * \n * Convert the color object into a HTML CSS representation\n * @returns {String} the color in rgb(##,##,##) representation\n **/\n getHTMLStyle: function getHTMLStyle() {\n if (typeof this.red === \"undefined\") return \"rgba(0,0,0,0)\";\n\n return \"rgba(\" + this.red + \",\" + this.green + \",\" + this.blue + \",\" + this.alpha + \")\";\n },\n\n /**\n * \n * The red part of the color.\n *\n * @returns {Number} the [red] part of the color.\n **/\n getRed: function getRed() {\n return this.red;\n },\n\n /**\n * \n * The green part of the color.\n *\n * @returns {Number} the [green] part of the color.\n **/\n getGreen: function getGreen() {\n return this.green;\n },\n\n /**\n * \n * The blue part of the color\n *\n * @returns {Number} the [blue] part of the color.\n **/\n getBlue: function getBlue() {\n return this.blue;\n },\n\n /**\n * \n * The alpha part of the color\n *\n * @returns {Number} the [alpha] part of the color.\n **/\n getAlpha: function getAlpha() {\n return this.alpha;\n },\n\n /**\n * \n * Returns the ideal Text Color. Useful for font color selection by a given background color.\n *\n * @returns {draw2d.util.Color} The <i>ideal</i> inverse color.\n **/\n getIdealTextColor: function getIdealTextColor() {\n var nThreshold = 105;\n var bgDelta = this.red * 0.299 + this.green * 0.587 + this.blue * 0.114;\n return 255 - bgDelta < nThreshold ? new _packages2.default.util.Color(0, 0, 0) : new _packages2.default.util.Color(255, 255, 255);\n },\n\n /**\n * return array of [r,g,b,a] from any valid color. if failed returns [0,0,0,1]\n *\n * @param hexcolor\n * @returns {*}\n */\n hex2rgb: function hex2rgb(color) {\n if (!color) {\n return [0, 0, 0, 1];\n }\n\n if (color.toLowerCase() === 'transparent') {\n return [0, 0, 0, 0];\n }\n\n if (color[0] === '#') {\n if (color.length < 7) {\n // convert #RGB and #RGBA to #RRGGBB and #RRGGBBAA\n color = '#' + color[1] + color[1] + color[2] + color[2] + color[3] + color[3] + (color.length > 4 ? color[4] + color[4] : '');\n }\n return [parseInt(color.substr(1, 2), 16), parseInt(color.substr(3, 2), 16), parseInt(color.substr(5, 2), 16), color.length > 7 ? parseInt(color.substr(7, 2), 16) / 255 : 1];\n }\n\n if (color.indexOf('rgb') === -1) {\n // convert named colors\n var temp_elem = document.body.appendChild(document.createElement('fictum')); // intentionally use unknown tag to lower chances of css rule override with !important\n var flag = 'rgb(1, 2, 3)'; // this flag tested on chrome 59, ff 53, ie9, ie10, ie11, edge 14\n temp_elem.style.color = flag;\n if (temp_elem.style.color !== flag) {\n return [0, 0, 0, 1]; // color set failed - some monstrous css rule is probably taking over the color of our object\n }\n temp_elem.style.color = color;\n\n if (temp_elem.style.color === flag || temp_elem.style.color === '') {\n return [0, 0, 0, 1]; // color parse failed\n }\n color = getComputedStyle(temp_elem).color;\n document.body.removeChild(temp_elem);\n }\n\n if (color.indexOf('rgb') === 0) {\n if (color.indexOf('rgba') === -1) {\n color += ',1'; // convert 'rgb(R,G,B)' to 'rgb(R,G,B)A' which looks awful but will pass the regxep below\n }\n return color.match(/[\\.\\d]+/g).map(function (a) {\n return +a;\n });\n }\n },\n\n /**\n *\n **/\n hex: function hex() {\n return this.int2hex(this.red) + this.int2hex(this.green) + this.int2hex(this.blue)\n // breaks raphaelJS...so don'T use it right now\n //(this.alpha * 255).toString(16).substring(0,2).toUpperCase()\n ;\n },\n\n /**\n * \n * Convert the color object into a HTML CSS representation\n * @returns {String} the color in rgb(##,##,##) representation\n **/\n rgba: function rgba() {\n return this.getHTMLStyle();\n },\n\n /**\n * \n * Convert the color object into a HTML CSS representation\n * @returns {String} the color in #RRGGBB representation\n **/\n hash: function hash() {\n if (this.hashString === null) {\n this.hashString = \"#\" + this.hex();\n }\n return this.hashString;\n },\n\n /**\n * @private\n */\n int2hex: function int2hex(v) {\n v = Math.round(Math.min(Math.max(0, v), 255));\n return \"0123456789ABCDEF\".charAt((v - v % 16) / 16) + \"0123456789ABCDEF\".charAt(v % 16);\n },\n\n /**\n * \n * Returns a darker color of the given one. The original color is unchanged.\n *\n * @param {Number} fraction Darkness fraction between [0..1].\n * @return{draw2d.util.Color} Darker color.\n */\n darker: function darker(fraction) {\n // we can't \"darker\" a undefined color. In this case we return the undefnied color itself\n //\n if (this.hashString === \"none\") return this;\n\n fraction = typeof fraction === 'undefined' ? 0.1 : fraction;\n\n var red = parseInt(Math.round(this.getRed() * (1.0 - fraction)));\n var green = parseInt(Math.round(this.getGreen() * (1.0 - fraction)));\n var blue = parseInt(Math.round(this.getBlue() * (1.0 - fraction)));\n\n if (red < 0) red = 0;else if (red > 255) red = 255;\n if (green < 0) green = 0;else if (green > 255) green = 255;\n if (blue < 0) blue = 0;else if (blue > 255) blue = 255;\n\n return new _packages2.default.util.Color(red, green, blue, this.alpha);\n },\n\n /**\n * \n * Make a color lighter. The original color is unchanged.\n *\n * @param {Number} fraction lighter fraction between [0..1].\n * @returns {draw2d.util.Color} Lighter color.\n */\n lighter: function lighter(fraction) {\n // we can't \"lighter\" a undefined color. In this case we return the undefined color itself\n //\n if (this.hashString === \"none\") return this;\n\n fraction = typeof fraction === 'undefined' ? 0.1 : fraction;\n\n var red = parseInt(Math.round(this.getRed() * (1.0 + fraction)));\n var green = parseInt(Math.round(this.getGreen() * (1.0 + fraction)));\n var blue = parseInt(Math.round(this.getBlue() * (1.0 + fraction)));\n\n if (red < 0) red = 0;else if (red > 255) red = 255;\n if (green < 0) green = 0;else if (green > 255) green = 255;\n if (blue < 0) blue = 0;else if (blue > 255) blue = 255;\n\n return new _packages2.default.util.Color(red, green, blue, this.alpha);\n },\n\n /**\n * \n * Return a new color wich is faded to the given color.\n * @param {draw2d.util.Color} color\n * @param {Number} pc the fade percentage in [0..1]\n * @returns {draw2d.util.Color}\n *\n * @since 2.1.0\n */\n fadeTo: function fadeTo(color, pc) {\n\n var r = Math.floor(this.red + pc * (color.red - this.red) + .5);\n var g = Math.floor(this.green + pc * (color.green - this.green) + .5);\n var b = Math.floor(this.blue + pc * (color.blue - this.blue) + .5);\n var a = Math.floor(this.alpha + pc * (color.alpha - this.alpha) + .5);\n\n return new _packages2.default.util.Color(r, g, b, a);\n },\n\n /**\n * \n * Compares two color objects\n *\n * @param {draw2d.util.Color} o\n * @returns {Boolean}\n **/\n equals: function equals(o) {\n if (!(o instanceof _packages2.default.util.Color)) {\n return false;\n }\n return this.rgba() === o.rgba();\n }\n\n});\n\nmodule.exports = _packages2.default.util.Color;\n\n/***/ }),\n\n/***/ \"./src/util/Debug.js\":\n/*!***************************!*\\\n !*** ./src/util/Debug.js ***!\n \\***************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/*!\n * JavaScript Debug - v0.4 - 6/22/2010\n * http://benalman.com/projects/javascript-debug-console-log/\n *\n * Copyright (c) 2010 \"Cowboy\" Ben Alman\n * Dual licensed under the MIT and GPL licenses.\n * http://benalman.com/about/license/\n *\n * With lots of help from Paul Irish!\n * http://paulirish.com/\n */\n// Script: JavaScript Debug: A simple wrapper for console.log\n//\n// *Version: 0.4, Last Updated: 6/22/2010*\n//\n// Tested with Internet Explorer 6-8, Firefox 3-3.6, Safari 3-4, Chrome 3-5, Opera 9.6-10.5\n//\n// Home - http://benalman.com/projects/javascript-debug-console-log/\n// GitHub - http://github.com/cowboy/javascript-debug/\n// Source - http://github.com/cowboy/javascript-debug/raw/master/ba-debug.js\n// (Minified) - http://github.com/cowboy/javascript-debug/raw/master/ba-debug.min.js (1.1kb)\n//\n// About: License\n//\n// Copyright (c) 2010 \"Cowboy\" Ben Alman,\n// Dual licensed under the MIT and GPL licenses.\n// http://benalman.com/about/license/\n//\n// About: Support and Testing\n//\n// Information about what browsers this code has been tested in.\n//\n// Browsers Tested - Internet Explorer 6-8, Firefox 3-3.6, Safari 3-4, Chrome\n// 3-5, Opera 9.6-10.5\n//\n// About: Examples\n//\n// These working examples, complete with fully commented code, illustrate a few\n// ways in which this plugin can be used.\n//\n// Examples - http://benalman.com/code/projects/javascript-debug/examples/debug/\n//\n// About: Revision History\n//\n// 0.4 - (6/22/2010) Added missing passthrough methods: exception,\n// groupCollapsed, table\n// 0.3 - (6/8/2009) Initial release\n//\n// Topic: Pass-through console methods\n//\n// assert, clear, count, dir, dirxml, exception, group, groupCollapsed,\n// groupEnd, profile, profileEnd, table, time, timeEnd, trace\n//\n// These console methods are passed through (but only if both the console and\n// the method exists), so use them without fear of reprisal. Note that these\n// methods will not be passed through if the logging level is set to 0 via\n// <debug.setLevel>.\n\nwindow.debug = function () {\n var window = this,\n\n\n // Some convenient shortcuts.\n aps = Array.prototype.slice,\n con = console,\n\n\n // Public object to be returned.\n that = {},\n callback_func,\n callback_force,\n\n\n // Default logging level, show everything.\n log_level = 9,\n\n\n // Logging methods, in \"priority order\". Not all console implementations\n // will utilize these, but they will be used in the callback passed to\n // setCallback.\n log_methods = ['error', 'warn', 'info', 'debug', 'log'],\n\n\n // Pass these methods through to the console if they exist, otherwise just\n // fail gracefully. These methods are provided for convenience.\n pass_methods = 'assert clear count dir dirxml exception group groupCollapsed groupEnd profile profileEnd table time timeEnd trace'.split(' '),\n idx = pass_methods.length,\n\n\n // Logs are stored here so that they can be recalled as necessary.\n logs = [];\n\n while (--idx >= 0) {\n (function (method) {\n\n // Generate pass-through methods. These methods will be called, if they\n // exist, as long as the logging level is non-zero.\n that[method] = function () {\n log_level !== 0 && con && con[method] && con[method].apply(con, arguments);\n };\n })(pass_methods[idx]);\n }\n\n idx = log_methods.length;\n while (--idx >= 0) {\n (function (idx, level) {\n\n // Method: debug.log\n //\n // Call the console.log method if available. Adds an entry into the logs\n // array for a callback specified via <debug.setCallback>.\n //\n // Usage:\n //\n // debug.log( object [, object, ...] ); - -\n //\n // Arguments:\n //\n // object - (Object) Any valid JavaScript object.\n\n // Method: debug.debug\n //\n // Call the console.debug method if available, otherwise call console.log.\n // Adds an entry into the logs array for a callback specified via\n // <debug.setCallback>.\n //\n // Usage:\n //\n // debug.debug( object [, object, ...] ); - -\n //\n // Arguments:\n //\n // object - (Object) Any valid JavaScript object.\n\n // Method: debug.info\n //\n // Call the console.info method if available, otherwise call console.log.\n // Adds an entry into the logs array for a callback specified via\n // <debug.setCallback>.\n //\n // Usage:\n //\n // debug.info( object [, object, ...] ); - -\n //\n // Arguments:\n //\n // object - (Object) Any valid JavaScript object.\n\n // Method: debug.warn\n //\n // Call the console.warn method if available, otherwise call console.log.\n // Adds an entry into the logs array for a callback specified via\n // <debug.setCallback>.\n //\n // Usage:\n //\n // debug.warn( object [, object, ...] ); - -\n //\n // Arguments:\n //\n // object - (Object) Any valid JavaScript object.\n\n // Method: debug.error\n //\n // Call the console.error method if available, otherwise call console.log.\n // Adds an entry into the logs array for a callback specified via\n // <debug.setCallback>.\n //\n // Usage:\n //\n // debug.error( object [, object, ...] ); - -\n //\n // Arguments:\n //\n // object - (Object) Any valid JavaScript object.\n\n that[level] = function () {\n var args = aps.call(arguments),\n log_arr = [level].concat(args);\n\n logs.push(log_arr);\n exec_callback(log_arr);\n\n if (!con || !is_level(idx)) {\n return;\n }\n\n con.firebug ? con[level].apply(window, args) : con[level] ? con[level](args) : con.log(args);\n };\n })(idx, log_methods[idx]);\n }\n\n // Execute the callback function if set.\n function exec_callback(args) {\n if (callback_func && (callback_force || !con || !con.log)) {\n callback_func.apply(window, args);\n }\n };\n\n // Method: debug.setLevel\n //\n // Set a minimum or maximum logging level for the console. Doesn't affect\n // the <debug.setCallback> callback function, but if set to 0 to disable\n // logging, <Pass-through console methods> will be disabled as well.\n //\n // Usage:\n //\n // debug.setLevel( [ level ] ) - -\n //\n // Arguments:\n //\n // level - (Number) If 0, disables logging. If negative, shows N lowest\n // priority levels of log messages. If positive, shows N highest priority\n // levels of log messages.\n //\n // Priority levels:\n //\n // log (1) < debug (2) < info (3) < warn (4) < error (5)\n\n that.setLevel = function (level) {\n log_level = typeof level === 'number' ? level : 9;\n };\n\n // Determine if the level is visible given the current log_level.\n function is_level(level) {\n return log_level > 0 ? log_level > level : log_methods.length + log_level <= level;\n };\n\n // Method: debug.setCallback\n //\n // Set a callback to be used if logging isn't possible due to console.log\n // not existing. If unlogged logs exist when callback is set, they will all\n // be logged immediately unless a limit is specified.\n //\n // Usage:\n //\n // debug.setCallback( callback [, force ] [, limit ] )\n //\n // Arguments:\n //\n // callback - (Function) The aforementioned callback function. The first\n // argument is the logging level, and all subsequent arguments are those\n // passed to the initial debug logging method.\n // force - (Boolean) If false, log to console.log if available, otherwise\n // callback. If true, log to both console.log and callback.\n // limit - (Number) If specified, number of lines to limit initial scrollback\n // to.\n\n that.setCallback = function () {\n var args = aps.call(arguments),\n max = logs.length,\n i = max;\n\n callback_func = args.shift() || null;\n callback_force = typeof args[0] === 'boolean' ? args.shift() : false;\n\n i -= typeof args[0] === 'number' ? args.shift() : max;\n\n while (i < max) {\n exec_callback(logs[i++]);\n }\n };\n\n return that;\n}();\n\n/***/ }),\n\n/***/ \"./src/util/JSONUtil.js\":\n/*!******************************!*\\\n !*** ./src/util/JSONUtil.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.util.JSON = {\n\n /**\n * \n * Given a dot deliminated string set will create an object\n * based on the structure of the string with the desired value\n *\n * @param {Object} data the json object to modify\n * @param {String} path path indicating where value should be placed\n * @param {Object} value the value desired to be set at the location determined by path\n */\n set: function set(data, path, value) {\n if (!path || path === '') {\n return;\n }\n\n var re = /[\\w-]+|\\[\\]|([^\\[[\\w]\\]]|[\"'](.*?)['\"])/g;\n // parse path on dots, and brackets\n var pathList = path.match(re);\n var parent = data;\n var parentKey = void 0;\n var grandParent = null;\n var grandParentKey = null;\n\n var addObj = function addObj(obj, key, data) {\n if (key === '[]') {\n obj.push(data);\n } else {\n obj[key] = data;\n }\n };\n\n while (pathList.length > 0) {\n parentKey = pathList.shift().replace(/[\"']/g, '');\n\n // Number, treat it as an array\n if (!isNaN(+parentKey) || parentKey === \"[]\") {\n if (parent.constructor !== Array) {\n parent = [];\n addObj(grandParent, grandParentKey, parent);\n }\n // String, treat it as a key\n } else if (typeof parentKey === \"string\") {\n if (!$.isPlainObject(parent)) {\n parent = {};\n addObj(grandParent, grandParentKey, parent);\n }\n }\n // Next\n grandParent = parent;\n grandParentKey = parentKey;\n parent = parent[parentKey];\n }\n\n addObj(grandParent, grandParentKey, value);\n },\n\n /**\n * \n * Returns the value defined by the path passed in\n *\n * @param {Object} data the JSON data object\n * @param {String} path string leading to a desired value\n */\n get: function get(data, path) {\n var regex = /[\\w-]+|\\[\\]|([^\\[[\\w]\\]]|[\"'](.*?)['\"])/g;\n //check if path is truthy\n if (!path) {\n return undefined;\n }\n //parse path on dots and brackets\n var paths = path.match(regex);\n //step through data object until all keys in path have been processed\n while (data !== null && paths.length > 0) {\n if (data.propertyIsEnumerable(paths[0].replace(/\"/g, ''))) {\n data = data[paths.shift().replace(/\"/g, '')];\n } else {\n return undefined;\n }\n }\n return data;\n },\n\n /**\n * \n * calculates the diff between the given json objects\n *\n */\n diff: function diff(obj1, obj2) {\n var result = {};\n for (var key in obj1) {\n var v1 = obj1[key];\n var v2 = obj2[key];\n if (v1 !== v2) {\n if (v1.equals) {\n if (!v1.equals(v2)) {\n result[key] = obj1[key];\n }\n } else {\n result[key] = obj1[key];\n }\n }\n }\n return result;\n },\n\n flatDiff: function flatDiff(obj1, obj2) {\n var result = {};\n for (var key in obj1) {\n if (obj1[key] !== obj2[key]) {\n result[key] = obj1[key];\n }\n }\n return result;\n },\n\n ensureDefault: function ensureDefault(json, attribute, value) {\n if (!json.hasOwnProperty(attribute)) {\n json[attribute] = value;\n }\n }\n};\n\nmodule.exports = _packages2.default.util.JSON;\n\n/***/ }),\n\n/***/ \"./src/util/Polyfill.js\":\n/*!******************************!*\\\n !*** ./src/util/Polyfill.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// avoid iPad bounce effect during DragDrop//\ndocument.ontouchmove = function (e) {\n e.preventDefault();\n};\n\n/***/ }),\n\n/***/ \"./src/util/SVGUtil.js\":\n/*!*****************************!*\\\n !*** ./src/util/SVGUtil.js ***!\n \\*****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// extending raphael with a polygon function\nRaphael.fn.polygon = function (pointString) {\n var poly = ['M'];\n var point = pointString.split(' ');\n\n for (var i = 0; i < point.length; i++) {\n var c = point[i].split(',');\n for (var j = 0; j < c.length; j++) {\n var d = parseFloat(c[j]);\n if (!isNaN(d)) poly.push(d);\n };\n if (i == 0) poly.push('L');\n }\n poly.push('Z');\n\n return this.path(poly);\n};\n\n/***/ }),\n\n/***/ \"./src/util/UUID.js\":\n/*!**************************!*\\\n !*** ./src/util/UUID.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Generates a (pseudo) UUID's\n *\n * @example\n * // a UUID in the format\n * // xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12)\n * var id = draw2d.util.UUID.create();\n *\n * @author Andreas Herz\n */\n_packages2.default.util.UUID = {\n /**\n *\n * Generates a unique id.<br>\n * But just for the correctness: <strong>this is no Global Unique Identifier</strong>, it is just a random generator\n * with the output that looks like a GUID. <br>\n * But may be also useful.\n *\n * @returns {String} the UUID in the format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12)\n **/\n create: function create() {\n var segment = function segment() {\n return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);\n };\n return segment() + segment() + \"-\" + segment() + \"-\" + segment() + \"-\" + segment() + \"-\" + segment() + segment() + segment();\n }\n};\n\nmodule.exports = _packages2.default.util.UUID;\n\n/***/ }),\n\n/***/ \"./src/util/extend.js\":\n/*!****************************!*\\\n !*** ./src/util/extend.js ***!\n \\****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\n\n// Pass in the objects to merge as arguments.// For a deep extend, set the first argument to `true`.\nvar fn = function fn() {\n\n // Variables\n var extended = {};\n var deep = false;\n var i = 0;\n var length = arguments.length;\n\n // Check if a deep merge\n if (Object.prototype.toString.call(arguments[0]) === '[object Boolean]') {\n deep = arguments[0];\n i++;\n }\n\n // Merge the object into the extended object\n /**\n *\n * @param obj\n */\n var merge = function merge(obj) {\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n // If deep merge and property is an object, merge properties\n if (deep && Object.prototype.toString.call(obj[prop]) === '[object Object]') {\n extended[prop] = extend(true, extended[prop], obj[prop]);\n } else {\n extended[prop] = obj[prop];\n }\n }\n }\n };\n\n // Loop through each object and conduct a merge\n for (; i < length; i++) {\n var obj = arguments[i];\n merge(obj);\n }\n\n return extended;\n};\nmodule.exports = fn;\nglobal.extend = fn;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n/***/ }),\n\n/***/ \"./src/util/raphael_ext.js\":\n/*!*********************************!*\\\n !*** ./src/util/raphael_ext.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * adding support method to check if the node is already visible\n **/\n(function () {\n Raphael.el.isVisible = function () {\n return this.node.style.display !== \"none\";\n };\n})();\n\n/***/ }),\n\n/***/ \"./src/util/spline/BezierSpline.js\":\n/*!*****************************************!*\\\n !*** ./src/util/spline/BezierSpline.js ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.util.spline.BezierSpline = _packages2.default.util.spline.Spline.extend(\n\n/** @lends draw2d.util.spline.BezierSpline.prototype */\n{\n\n NAME: \"draw2d.util.spline.BezierSpline\",\n\n /**\n */\n init: function init() {\n this._super();\n },\n\n /**\n * Create a spline based on the given control points.\n * The generated curve starts in the first control point and ends\n * in the last control point.\n *\n * @param {Array} controlPoints Control points of spline (x0,y0,z0,x1,y1,z1,...).\n * @param {Number} parts Number of parts to divide each leg into.\n *\n * @returns {Array} the new generated array with new draw2d.geo.Point\n */\n generate: function generate(controlPoints, parts) {\n var n = controlPoints.getSize();\n var spline = new _packages2.default.util.ArrayList();\n\n spline.add(this.p(0, 0, controlPoints));\n\n for (var i = 0; i < n - 3; i += 3) {\n for (var j = 1; j <= parts; j++) {\n spline.add(this.p(i, j / parts, controlPoints));\n }\n }\n\n // spline.add(controlPoints.get(controlPoints.getSize()-1));\n\n return spline;\n },\n\n p: function p(i, t, cp) {\n var x = 0.0;\n var y = 0.0;\n\n var k = i;\n for (var j = 0; j <= 3; j++) {\n var b = this.blend(j, t);\n var p = cp.get(k++);\n x += b * p.x;\n y += b * p.y;\n }\n\n return new _packages2.default.geo.Point(x, y);\n },\n\n blend: function blend(i, t) {\n if (i == 0) return (1 - t) * (1 - t) * (1 - t);else if (i == 1) return 3 * t * (1 - t) * (1 - t);else if (i == 2) return 3 * t * t * (1 - t);else return t * t * t;\n }\n});\n\n/**\n * @class\n *\n * A bezier spline object.\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.util.spline.Spline\n */\n\n/***/ }),\n\n/***/ \"./src/util/spline/CatmullRomSpline.js\":\n/*!*********************************************!*\\\n !*** ./src/util/spline/CatmullRomSpline.js ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A catmull-rom spline object.\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.util.spline.CubicSpline\n */\n_packages2.default.util.spline.CatmullRomSpline = _packages2.default.util.spline.CubicSpline.extend(\n\n/** @lends draw2d.util.spline.CatmullRomSpline.prototype */\n{\n\n NAME: \"draw2d.util.spline.CatmullRomSpline\",\n\n /**\n */\n init: function init() {\n this._super();\n },\n\n blend: function blend(i, t) {\n if (i == -2) return ((-t + 2) * t - 1) * t / 2;else if (i == -1) return ((3 * t - 5) * t * t + 2) / 2;else if (i == 0) return ((-3 * t + 4) * t + 1) * t / 2;else return (t - 1) * t * t / 2;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/util/spline/CubicSpline.js\":\n/*!****************************************!*\\\n !*** ./src/util/spline/CubicSpline.js ***!\n \\****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A cubic spline object.\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.util.spline.Spline\n */\n_packages2.default.util.spline.CubicSpline = _packages2.default.util.spline.Spline.extend(\n\n/** @lends draw2d.util.spline.CubicSpline.prototype */\n{\n\n NAME: \"draw2d.util.spline.CubicSpline\",\n\n /**\n */\n init: function init() {\n this._super();\n },\n\n /**\n * Create a spline based on the given control points.\n * The generated curve starts in the first control point and ends\n * in the last control point.\n *\n * @param {Array} controlPoints Control points of spline (x0,y0,z0,x1,y1,z1,...).\n * @param {Number} parts Number of parts to divide each leg into.\n *\n * @returns {Array} the new generated array with new draw2d.geo.Point\n */\n generate: function generate(controlPoints, parts) {\n // Endpoints are added twice to get them include in the\n // generated array\n var cp = new _packages2.default.util.ArrayList();\n cp.add(controlPoints.get(0));\n cp.addAll(controlPoints);\n cp.add(controlPoints.get(controlPoints.getSize() - 1));\n\n var n = cp.getSize();\n var spline = new _packages2.default.util.ArrayList();\n spline.add(controlPoints.get(0));\n spline.add(this.p(1, 0, cp));\n\n for (var i = 1; i < n - 2; i++) {\n for (var j = 1; j <= parts; j++) {\n spline.add(this.p(i, j / parts, cp));\n }\n }\n spline.add(controlPoints.get(controlPoints.getSize() - 1));\n\n return spline;\n },\n\n p: function p(i, t, cp) {\n var x = 0.0;\n var y = 0.0;\n\n var k = i - 1;\n for (var j = -2; j <= 1; j++) {\n var b = this.blend(j, t);\n var p = cp.get(k++);\n x += b * p.x;\n y += b * p.y;\n }\n\n return new _packages2.default.geo.Point(x, y);\n },\n\n blend: function blend(i, t) {\n if (i === -2) return (((-t + 3) * t - 3) * t + 1) / 6;else if (i === -1) return ((3 * t - 6) * t * t + 4) / 6;else if (i === 0) return (((-3 * t + 3) * t + 3) * t + 1) / 6;\n\n return t * t * t / 6;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/util/spline/Spline.js\":\n/*!***********************************!*\\\n !*** ./src/util/spline/Spline.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.util.spline.Spline = Class.extend(\n/** @lends draw2d.util.spline.Spline.prototype */\n{\n\n NAME: \"draw2d.util.spline.Spline\",\n\n /**\n */\n init: function init() {},\n\n /**\n * Create a spline based on the given control points.\n * The generated curve starts in the first control point and ends\n * in the last control point.\n *\n * @param {Array} controlPoints Control points of spline (x0,y0,z0,x1,y1,z1,...).\n * @param {Number} parts Number of parts to divide each leg into.\n **/\n generate: function generate(controlPoints, parts) {\n throw \"inherit classes must implement the method 'draw2d.util.spline.Spline.generate()'\";\n }\n\n});\n/**\n * @class\n *\n * An abstract class defining a general spline object.\n */\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=draw2d.js.map","import _get from \"lodash/get\";\nimport _isArray from \"lodash/isArray\";\nimport _isNaN from \"lodash/isNaN\";\nimport _isNumber from \"lodash/isNumber\";\nimport _isString from \"lodash/isString\";\nexport var mathSign = function mathSign(value) {\n if (value === 0) {\n return 0;\n }\n\n if (value > 0) {\n return 1;\n }\n\n return -1;\n};\nexport var isPercent = function isPercent(value) {\n return _isString(value) && value.indexOf('%') === value.length - 1;\n};\nexport var isNumber = function isNumber(value) {\n return _isNumber(value) && !_isNaN(value);\n};\nexport var isNumOrStr = function isNumOrStr(value) {\n return isNumber(value) || _isString(value);\n};\nvar idCounter = 0;\nexport var uniqueId = function uniqueId(prefix) {\n var id = ++idCounter;\n return \"\".concat(prefix || '').concat(id);\n};\n/**\n * Get percent value of a total value\n * @param {Number|String} percent A percent\n * @param {Number} totalValue Total value\n * @param {NUmber} defaultValue The value returned when percent is undefined or invalid\n * @param {Boolean} validate If set to be true, the result will be validated\n * @return {Number} value\n */\n\nexport var getPercentValue = function getPercentValue(percent, totalValue) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (!isNumber(percent) && !_isString(percent)) {\n return defaultValue;\n }\n\n var value;\n\n if (isPercent(percent)) {\n var index = percent.indexOf('%');\n value = totalValue * parseFloat(percent.slice(0, index)) / 100;\n } else {\n value = +percent;\n }\n\n if (_isNaN(value)) {\n value = defaultValue;\n }\n\n if (validate && value > totalValue) {\n value = totalValue;\n }\n\n return value;\n};\nexport var getAnyElementOfObject = function getAnyElementOfObject(obj) {\n if (!obj) {\n return null;\n }\n\n var keys = Object.keys(obj);\n\n if (keys && keys.length) {\n return obj[keys[0]];\n }\n\n return null;\n};\nexport var hasDuplicate = function hasDuplicate(ary) {\n if (!_isArray(ary)) {\n return false;\n }\n\n var len = ary.length;\n var cache = {};\n\n for (var i = 0; i < len; i++) {\n if (!cache[ary[i]]) {\n cache[ary[i]] = true;\n } else {\n return true;\n }\n }\n\n return false;\n};\nexport var interpolateNumber = function interpolateNumber(numberA, numberB) {\n if (isNumber(numberA) && isNumber(numberB)) {\n return function (t) {\n return numberA + t * (numberB - numberA);\n };\n }\n\n return function () {\n return numberB;\n };\n};\nexport function findEntryInArray(ary, specifiedKey, specifiedValue) {\n if (!ary || !ary.length) {\n return null;\n }\n\n return ary.find(function (entry) {\n return entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : _get(entry, specifiedKey)) === specifiedValue;\n });\n}\n/**\n * The least square linear regression\n * @param {Array} data The array of points\n * @returns {Object} The domain of x, and the parameter of linear function\n */\n\nexport var getLinearRegression = function getLinearRegression(data) {\n if (!data || !data.length) {\n return null;\n }\n\n var len = data.length;\n var xsum = 0;\n var ysum = 0;\n var xysum = 0;\n var xxsum = 0;\n var xmin = Infinity;\n var xmax = -Infinity;\n var xcurrent = 0;\n var ycurrent = 0;\n\n for (var i = 0; i < len; i++) {\n xcurrent = data[i].cx || 0;\n ycurrent = data[i].cy || 0;\n xsum += xcurrent;\n ysum += ycurrent;\n xysum += xcurrent * ycurrent;\n xxsum += xcurrent * xcurrent;\n xmin = Math.min(xmin, xcurrent);\n xmax = Math.max(xmax, xcurrent);\n }\n\n var a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;\n return {\n xmin: xmin,\n xmax: xmax,\n a: a,\n b: (ysum - a * xsum) / len\n };\n};","'use strict';\n\nmodule.exports = require('./components/button/Button.js');","'use strict';\n\nmodule.exports = require('./components/dropdown/Dropdown');","/** @license React v16.13.1\n * react-is.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'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.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'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","/*\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","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\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","/**\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 printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\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 ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\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 } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\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\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 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","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import React, { createContext, useContext } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport BoxTitle from \"./BoxTitle\";\r\nimport BoxBody from \"./BoxBody\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Box.module.css\";\r\n\r\nconst BoxContext = createContext();\r\n\r\nexport const useBoxContext = () => {\r\n const context = useContext(BoxContext);\r\n if (!context) throw new Error(`Box compound components cannot be rendered outside the Box component.`);\r\n\r\n return context;\r\n};\r\n\r\nconst Box = (props) => {\r\n const activeStyles = props.useAccent ? [styles.box, styles.accent] : [styles.box];\r\n\r\n return (\r\n <BoxContext.Provider value={{}}>\r\n <div id={props.id} className={activeStyles.join(\" \")}>{props.children}</div>\r\n </BoxContext.Provider>\r\n );\r\n};\r\n\r\nexport default Box;\r\n\r\nBox.Title = BoxTitle;\r\nBox.Body = BoxBody;\r\n\r\nBox.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** Adds an orange color accent to the top of the box */\r\n useAccent: PropTypes.bool,\r\n};\r\n\r\nBox.defaultProps = {\r\n useAccent: false,\r\n};\r\n","import React from \"react\";\r\nimport { useBoxContext } from \"./Box\";\r\n\r\nimport styles from \"./Box.module.css\";\r\n\r\n/**\r\n * @visibleName Box.Title\r\n */\r\nconst BoxTitle = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useBoxContext();\r\n\r\n return <h3 className={styles.title}>{children}</h3>;\r\n};\r\n\r\nexport default BoxTitle;\r\n","import React from \"react\";\r\nimport { useBoxContext } from \"./Box\";\r\n\r\nimport styles from \"./Box.module.css\";\r\n\r\n/**\r\n * @visibleName Box.Body\r\n */\r\nconst BoxBody = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useBoxContext();\r\n\r\n return <div className={styles.body}>{children}</div>;\r\n};\r\n\r\nexport default BoxBody;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Button.module.css\";\r\n\r\nconst Button = ({ id, variant, onClick, disabled, block, children }) => {\r\n const classNames = [styles.button, styles[variant]];\r\n const [data, setData] = useState();\r\n\r\n if (disabled) {\r\n classNames.push(styles.disabled);\r\n }\r\n\r\n if (block) {\r\n classNames.push(styles.block);\r\n }\r\n\r\n useEffect(() => {\r\n let data;\r\n\r\n if (Array.isArray(children)) {\r\n data = [...children];\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n const value = data[i];\r\n if (typeof value === \"string\") {\r\n data[i] = <span key={i}>{value}</span>;\r\n }\r\n }\r\n } else {\r\n data = children;\r\n if (typeof children === \"string\") {\r\n data = <span>{children}</span>;\r\n }\r\n }\r\n\r\n setData(data);\r\n }, [children]);\r\n\r\n return (\r\n <button id={id} className={classNames.join(\" \")} onClick={onClick} disabled={disabled}>\r\n {data}\r\n </button>\r\n );\r\n};\r\n\r\nexport default Button;\r\n\r\nButton.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** The variant for the button */\r\n variant: PropTypes.oneOf([\"primary\", \"secondary\", \"tertiary\", \"action\"]),\r\n /** Disables the Button, preventing mouse events, even if the underlying component is an <a> element */\r\n disabled: PropTypes.bool,\r\n /** Spans the full width of the Button parent */\r\n block: PropTypes.bool,\r\n /** Gets called when the user clicks on the button */\r\n onClick: PropTypes.func,\r\n};\r\n\r\nButton.defaultProps = {\r\n variant: \"primary\",\r\n disabled: false,\r\n};\r\n","import React from \"react\";\r\nimport { useCardContext } from \"./Card\";\r\n\r\nimport styles from \"./Card.module.css\";\r\n\r\n/**\r\n * @visibleName Card.Header\r\n */\r\nconst CardHeader = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useCardContext();\r\n\r\n return <div className={styles.header}>{children}</div>;\r\n};\r\n\r\nexport default CardHeader;\r\n","import React from \"react\";\r\nimport { useCardContext } from \"./Card\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport styles from \"./Card.module.css\";\r\n\r\n/**\r\n * @visibleName Card.Image\r\n */\r\nconst CardImage = ({ src }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useCardContext();\r\n\r\n return src && <div className={styles.image} style={{ backgroundImage: `url(${src})` }}></div>;\r\n};\r\n\r\nexport default CardImage;\r\n\r\nCardImage.propTypes = {\r\n /** Path to the image to display in the card */\r\n src: PropTypes.string,\r\n};\r\n\r\nCardImage.defaultProps = {\r\n src: null,\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useCardContext } from \"./Card\";\r\n\r\nimport styles from \"./Card.module.css\";\r\n\r\n/**\r\n * @visibleName Card.Footer\r\n */\r\nconst CardFooter = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useCardContext();\r\n const [classNames, setClassNames] = useState([styles.footer]);\r\n\r\n useEffect(() => {\r\n if (Array.isArray(children)) {\r\n setClassNames([styles.footer, styles.multiple]);\r\n } else {\r\n setClassNames([styles.footer, styles.single]);\r\n }\r\n }, [children]);\r\n\r\n return <div className={classNames.join(\" \")}>{children}</div>;\r\n};\r\n\r\nexport default CardFooter;\r\n","import React, { createContext, useContext } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport CardHeader from \"./CardHeader\";\r\nimport CardBody from \"./CardBody\";\r\nimport CardImage from \"./CardImage\";\r\nimport CardFooter from \"./CardFooter\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Card.module.css\";\r\n\r\nconst CardContext = createContext();\r\n\r\nexport const useCardContext = () => {\r\n const context = useContext(CardContext);\r\n if (!context) throw new Error(`Card compound components cannot be rendered outside the Card component.`);\r\n\r\n return context;\r\n};\r\n\r\nconst Card = ({ id, children }) => {\r\n return (\r\n <CardContext.Provider value={{}}>\r\n <div id={id} className={styles.card}>{children}</div>\r\n </CardContext.Provider>\r\n );\r\n};\r\n\r\nexport default Card;\r\n\r\nCard.Header = CardHeader;\r\nCard.Body = CardBody;\r\nCard.Image = CardImage;\r\nCard.Footer = CardFooter;\r\n\r\nCard.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string\r\n};\r\n\r\nCard.defaultProps = {};\r\n","import React from \"react\";\r\nimport { useCardContext } from \"./Card\";\r\n\r\nimport styles from \"./Card.module.css\";\r\n\r\n/**\r\n * @visibleName Card.Body\r\n */\r\nconst CardBody = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useCardContext();\r\n\r\n return <div className={styles.body}>{children}</div>;\r\n};\r\n\r\nexport default CardBody;\r\n","import React, { useEffect, useRef } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Checkbox.module.css\";\r\n\r\nconst Checkbox = (props) => {\r\n const checkbox = useRef();\r\n const activeStyles = props.disabled ? [styles.container, styles.disabled] : [styles.container];\r\n\r\n useEffect(() => {\r\n checkbox.current.indeterminate = props.indeterminate;\r\n }, [props.indeterminate]);\r\n\r\n return (\r\n <label className={activeStyles.join(\" \")}>\r\n {props.label}\r\n <input {...props} ref={checkbox} type=\"checkbox\" indeterminate={props.indeterminate ?? undefined} />\r\n <span className={styles.focus}></span>\r\n <span className={styles.indicator}></span>\r\n </label>\r\n );\r\n};\r\n\r\nexport default Checkbox;\r\n\r\nCheckbox.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** Text to display next to the checkbox */\r\n label: PropTypes.string,\r\n /** Checked status of the checkbox */\r\n checked: PropTypes.bool,\r\n /** Disables the checkbox */\r\n disabled: PropTypes.bool,\r\n /** Indeterminate status of the checkbox */\r\n indeterminate: PropTypes.bool,\r\n /** Gets called when the user clicks on the checkbox */\r\n onChange: PropTypes.func,\r\n};\r\n\r\nCheckbox.defaultProps = {\r\n checked: false,\r\n indeterminate: false,\r\n disabled: false,\r\n};\r\n","import React from \"react\";\r\nimport { useContentContext } from \"./Content\";\r\n\r\nimport styles from \"./Content.module.css\";\r\n\r\n/**\r\n * @visibleName Content.Header\r\n */\r\nconst ContentHeader = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useContentContext();\r\n\r\n return <div className={styles.header}>{children}</div>;\r\n};\r\n\r\nexport default ContentHeader;\r\n","import React, { useContext, createContext } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport ContentHeader from \"./ContentHeader\";\r\nimport ContentActions from \"./ContentActions\";\r\nimport ContentInfo from \"./ContentInfo\";\r\nimport ContentBody from \"./ContentBody\";\r\nimport ContentFooter from \"./ContentFooter\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Content.module.css\";\r\n\r\nconst ContentContext = createContext();\r\n\r\nexport const useContentContext = () => {\r\n const context = useContext(ContentContext);\r\n if (!context) throw new Error(`Content compound components cannot be rendered outside the Content component.`);\r\n\r\n return context;\r\n};\r\n\r\nconst Content = (props) => {\r\n return (\r\n <ContentContext.Provider value={{}}>\r\n <div id={props.id} className={styles.content}>{props.children}</div>\r\n </ContentContext.Provider>\r\n );\r\n};\r\n\r\nexport default Content;\r\n\r\nContent.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string\r\n};\r\n\r\nContent.Header = ContentHeader;\r\nContent.Actions = ContentActions;\r\nContent.Info = ContentInfo;\r\nContent.Body = ContentBody;\r\nContent.Footer = ContentFooter;\r\n","function _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 React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar ChevronDown = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"polyline\", {\n points: \"6 9 12 15 18 9\"\n }));\n});\nChevronDown.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nChevronDown.displayName = 'ChevronDown';\nexport default ChevronDown;","import React from \"react\";\r\nimport { useContentContext } from \"./Content\";\r\n\r\nimport styles from \"./Content.module.css\";\r\n\r\n/**\r\n * @visibleName Content.Actions\r\n */\r\nconst ContentActions = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useContentContext();\r\n\r\n return <div className={styles.actions}>{children}</div>;\r\n};\r\n\r\nexport default ContentActions;\r\n","import React from \"react\";\r\nimport { useContentContext } from \"./Content\";\r\n\r\nimport styles from \"./Content.module.css\";\r\n\r\n/**\r\n * @visibleName Content.Info\r\n */\r\nconst ContentInfo = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useContentContext();\r\n\r\n return <div className={styles.info}>{children}</div>;\r\n};\r\n\r\nexport default ContentInfo;\r\n","import React from \"react\";\r\nimport { useContentContext } from \"./Content\";\r\n\r\n/**\r\n * @visibleName Content.Body\r\n */\r\nconst ContentBody = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useContentContext();\r\n\r\n return <React.Fragment>{children}</React.Fragment>;\r\n};\r\n\r\nexport default ContentBody;\r\n","import React from \"react\";\r\nimport { useContentContext } from \"./Content\";\r\n\r\nimport styles from \"./Content.module.css\";\r\n\r\n/**\r\n * @visibleName Content\r\n *.Footer\r\n */\r\nconst ContentFooter = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useContentContext();\r\n\r\n return <div className={styles.footer}>{children}</div>;\r\n};\r\n\r\nexport default ContentFooter;\r\n","function _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 React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar Info = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"12\",\n cy: \"12\",\n r: \"10\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"12\",\n y1: \"16\",\n x2: \"12\",\n y2: \"12\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"12\",\n y1: \"8\",\n x2: \"12.01\",\n y2: \"8\"\n }));\n});\nInfo.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nInfo.displayName = 'Info';\nexport default Info;","function _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 React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar Minus = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"5\",\n y1: \"12\",\n x2: \"19\",\n y2: \"12\"\n }));\n});\nMinus.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nMinus.displayName = 'Minus';\nexport default Minus;","function _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 React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar Plus = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"12\",\n y1: \"5\",\n x2: \"12\",\n y2: \"19\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"5\",\n y1: \"12\",\n x2: \"19\",\n y2: \"12\"\n }));\n});\nPlus.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nPlus.displayName = 'Plus';\nexport default Plus;","function _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 React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar XSquare = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"rect\", {\n x: \"3\",\n y: \"3\",\n width: \"18\",\n height: \"18\",\n rx: \"2\",\n ry: \"2\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"9\",\n y1: \"9\",\n x2: \"15\",\n y2: \"15\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"15\",\n y1: \"9\",\n x2: \"9\",\n y2: \"15\"\n }));\n});\nXSquare.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nXSquare.displayName = 'XSquare';\nexport default XSquare;","function _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 React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar X = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"18\",\n y1: \"6\",\n x2: \"6\",\n y2: \"18\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"6\",\n y1: \"6\",\n x2: \"18\",\n y2: \"18\"\n }));\n});\nX.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nX.displayName = 'X';\nexport default X;","import React, { useEffect, useRef, useState } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { Plus, Minus } from \"react-feather\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./InputNumeric.module.css\";\r\n\r\n/**\r\n * @visibleName Input.Numeric\r\n */\r\nconst InputNumeric = (props) => {\r\n const input = useRef();\r\n const [timer, setTimer] = useState();\r\n\r\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, \"value\").set;\r\n\r\n useEffect(() => {\r\n if (!props.value) return;\r\n\r\n if (Number(props.value) > props.max) input.current.value = props.max;\r\n else if (Number(props.value) < props.min) input.current.value = props.min;\r\n else input.current.value = Number(props.value);\r\n\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const increment = () => {\r\n if (props.max <= input.current.value) return;\r\n input.current.value = Number(input.current.value);\r\n\r\n nativeInputValueSetter.call(input.current, Number(input.current.value) + props.step);\r\n const e = new Event(\"change\", { bubbles: true });\r\n input.current.dispatchEvent(e);\r\n };\r\n\r\n const decrement = () => {\r\n if (props.min >= input.current.value) return;\r\n input.current.value = Number(input.current.value);\r\n\r\n nativeInputValueSetter.call(input.current, Number(input.current.value) - props.step);\r\n const e = new Event(\"change\", { bubbles: true });\r\n input.current.dispatchEvent(e);\r\n };\r\n\r\n const onInputChanged = (e) => {\r\n input.current.value = Number(e.target.value);\r\n props.onChange && props.onChange(e);\r\n };\r\n\r\n const onValidateInput = (e) => {\r\n if (Number(e.target.value) > props.max) input.current.value = props.max;\r\n else if (Number(e.target.value) < props.min) input.current.value = props.min;\r\n else input.current.value = Number(e.target.value);\r\n\r\n props.onChange && props.onChange(e);\r\n };\r\n\r\n const startAction = (action) => {\r\n clearInterval(timer);\r\n action();\r\n const interval = setInterval(action, 250);\r\n setTimer(interval);\r\n };\r\n\r\n const stopAction = () => {\r\n clearInterval(timer);\r\n };\r\n\r\n return (\r\n <div className={styles.main}>\r\n <div className={styles.numeric}>\r\n <input\r\n {...props}\r\n ref={input}\r\n type=\"number\"\r\n onChange={onInputChanged}\r\n onBlur={onValidateInput}\r\n autoComplete=\"off\"\r\n />\r\n <div className={styles.controls}>\r\n <button onMouseDown={() => startAction(increment)} onMouseUp={stopAction} onMouseLeave={stopAction} tabIndex={-1}>\r\n <Plus />\r\n </button>\r\n <button onMouseDown={() => startAction(decrement)} onMouseUp={stopAction} onMouseLeave={stopAction} tabIndex={-1}>\r\n <Minus />\r\n </button>\r\n </div>\r\n {props.legend && <span className={styles.legend}>{props.legend}</span>}\r\n </div>\r\n {props.required && <span className={styles.required}>Required field</span>}\r\n </div>\r\n );\r\n};\r\n\r\nexport default InputNumeric;\r\n\r\nInputNumeric.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** Minimum allowed value */\r\n min: PropTypes.number,\r\n /** Maximum allowed value */\r\n max: PropTypes.number,\r\n /** Increment/decrement buttons step size */\r\n step: PropTypes.number,\r\n /** Displayed value */\r\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n /** Gets called when the value is changed */\r\n onChange: PropTypes.func,\r\n /** Is the input required */\r\n required: PropTypes.bool,\r\n};\r\n\r\nInputNumeric.defaultProps = {\r\n min: 0,\r\n max: 100,\r\n required: false,\r\n step: 1\r\n};\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./InputPassword.module.css\";\r\n\r\n/**\r\n * @visibleName Input.Password\r\n */\r\nconst InputPassword = (props) => {\r\n return (\r\n <div className={styles.main}>\r\n <input {...props} className={styles.input} type=\"password\" autoComplete=\"off\" />\r\n {props.legend !== undefined && props.legend !== \"\" && <span className={styles.legend}>{props.legend}</span>}\r\n {props.required && <span className={styles.required}>Required field</span>}\r\n </div>\r\n );\r\n};\r\n\r\nexport default InputPassword;\r\n\r\nInputPassword.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** Displayed value */\r\n value: PropTypes.string,\r\n /** Gets called when the value is changed */\r\n onChange: PropTypes.func,\r\n /** Placeholder text */\r\n placeholder: PropTypes.string,\r\n /** Legend text */\r\n legend: PropTypes.string,\r\n /** Is the input required */\r\n required: PropTypes.bool,\r\n};\r\n\r\nInputPassword.defaultProps = {\r\n required: false,\r\n};\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./InputText.module.css\";\r\n\r\n/**\r\n * @visibleName Input.Text\r\n */\r\nconst InputText = (props) => {\r\n return (\r\n <div className={styles.main}>\r\n <input {...props} className={styles.input} type=\"text\" autoComplete=\"off\" />\r\n {props.legend !== undefined && props.legend !== \"\" && <span className={styles.legend}>{props.legend}</span>}\r\n {props.required && <span className={styles.required}>Required field</span>}\r\n </div>\r\n );\r\n};\r\n\r\nexport default InputText;\r\n\r\nInputText.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** Value text */\r\n value: PropTypes.string,\r\n /** Gets called when the value is changed */\r\n onChange: PropTypes.func,\r\n /** Placeholder text */\r\n placeholder: PropTypes.string,\r\n /** Legend text */\r\n legend: PropTypes.string,\r\n /** Is the input required */\r\n required: PropTypes.bool,\r\n};\r\n\r\nInputText.defaultProps = {\r\n required: false,\r\n};\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./InputTextArea.module.css\";\r\n\r\n/**\r\n * @visibleName Input.TextArea\r\n */\r\nconst InputTextArea = (props) => {\r\n return (\r\n <div className={styles.main}>\r\n <textarea {...props} className={styles.textarea} type=\"text\" autoComplete=\"off\"></textarea>\r\n {props.required && <span className={styles.required}>Required field</span>}\r\n </div>\r\n );\r\n};\r\n\r\nexport default InputTextArea;\r\n\r\nInputTextArea.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** Value text */\r\n value: PropTypes.string,\r\n /** Gets called when the value is changed */\r\n onChange: PropTypes.func,\r\n /** Placeholder text */\r\n placeholder: PropTypes.string,\r\n /** Is the input required */\r\n required: PropTypes.bool,\r\n};\r\n\r\nInputTextArea.defaultProps = {\r\n required: false,\r\n};\r\n","import InputNumeric from \"./InputNumeric\";\r\nimport InputPassword from \"./InputPassword\";\r\nimport InputText from \"./InputText\";\r\nimport InputTextArea from \"./InputTextArea\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\n\r\nconst Input = _ => {\r\n return null;\r\n};\r\n\r\nexport default Input;\r\n\r\nInput.Numeric = InputNumeric;\r\nInput.Password = InputPassword;\r\nInput.Text = InputText\r\nInput.TextArea = InputTextArea;","import { useEffect } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\n\r\nimport \"./Portal.css\";\r\n\r\nconst Portal = ({ children }) => {\r\n const container = document.createElement(\"div\");\r\n\r\n useEffect(() => {\r\n container.setAttribute(\"id\", `portal-root-${Math.floor(Math.random() * 10000)}`);\r\n document.body.appendChild(container);\r\n\r\n return () => document.body.removeChild(container);\r\n });\r\n\r\n return createPortal(children, container);\r\n};\r\n\r\nexport default Portal;\r\n","import React, { useRef } from \"react\";\r\n\r\nimport styles from \"./Overlay.module.css\";\r\n\r\nconst Overlay = (props) => {\r\n const overlay = useRef();\r\n\r\n const handleClick = (e) => {\r\n if (e.target !== overlay.current) return;\r\n props.onClick && props.onClick();\r\n };\r\n\r\n return (\r\n <div className={styles.overlay} ref={overlay} onClick={handleClick}>\r\n {props.children}\r\n </div>\r\n );\r\n};\r\n\r\nexport default Overlay;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { X } from \"react-feather\";\r\nimport { useModalContext } from \"./Modal\";\r\n\r\nimport styles from \"./Modal.module.css\";\r\n\r\n/**\r\n * @visibleName Modal.Header\r\n */\r\nconst ModalHeader = (props) => {\r\n const { onHide } = useModalContext();\r\n\r\n return (\r\n <div className={styles.header}>\r\n {props.children}\r\n {props.closeButton && (\r\n <div className={styles.close} onClick={onHide}>\r\n <X />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default ModalHeader;\r\n\r\nModalHeader.propTypes = {\r\n /** Specify whether the component should contain a close button */\r\n closeButton: PropTypes.bool,\r\n};\r\n\r\nModalHeader.defaultProps = {\r\n closeButton: true,\r\n};\r\n","import React from \"react\";\r\nimport { useModalContext } from \"./Modal\";\r\n\r\n/**\r\n * @visibleName Modal.Title\r\n */\r\nconst ModalTitle = (props) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useModalContext();\r\n\r\n return <h2>{props.children}</h2>;\r\n};\r\n\r\nexport default ModalTitle;\r\n","import React from \"react\";\r\nimport { useModalContext } from \"./Modal\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport styles from \"./Modal.module.css\";\r\n\r\n/**\r\n * @visibleName Modal.Body\r\n */\r\nconst ModalBody = (props) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useModalContext();\r\n const activeStyles = props.useAccent ? [styles.body, styles.accent] : [styles.body];\r\n\r\n return (\r\n <div className={activeStyles.join(\" \")}>\r\n <div className={styles.spacer}>{props.children}</div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default ModalBody;\r\n\r\nModalBody.propTypes = {\r\n /** Adds an orange color accent to the top of the modal's content */\r\n useAccent: PropTypes.bool,\r\n};\r\n\r\nModalBody.defaultProps = {\r\n useAccent: false,\r\n};\r\n","import React from \"react\";\r\nimport { useModalContext } from \"./Modal\";\r\n\r\nimport styles from \"./Modal.module.css\";\r\n\r\n/**\r\n * @visibleName Modal.Footer\r\n */\r\nconst ModalFooter = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useModalContext();\r\n\r\n return <div className={styles.footer}>{children}</div>;\r\n};\r\n\r\nexport default ModalFooter;\r\n","import React, { useEffect, useContext, createContext } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport Portal from \"../Portal\";\r\nimport Overlay from \"../Overlay\";\r\n\r\nimport ModalHeader from \"./ModalHeader\";\r\nimport ModalTitle from \"./ModalTitle\";\r\nimport ModalBody from \"./ModalBody\";\r\nimport ModalFooter from \"./ModalFooter\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Modal.module.css\";\r\n\r\nconst ModalContext = createContext();\r\n\r\nexport const useModalContext = () => {\r\n const context = useContext(ModalContext);\r\n if (!context) throw new Error(`Modal compound components cannot be rendered outside the Modal component.`);\r\n\r\n return context;\r\n};\r\n\r\nconst Modal = (props) => {\r\n useEffect(() => {\r\n document.body.classList.toggle(\"noscroll\");\r\n return () => document.body.classList.toggle(\"noscroll\");\r\n }, []);\r\n\r\n const state = {\r\n onHide: props.onHide,\r\n };\r\n\r\n return (\r\n <ModalContext.Provider value={state}>\r\n <Portal>\r\n <Overlay onClick={props.onHide}>\r\n <div id={props.id} className={[styles.modal, styles[props.size]].join(\" \")}>{props.children}</div>\r\n </Overlay>\r\n </Portal>\r\n </ModalContext.Provider>\r\n );\r\n};\r\n\r\nexport default Modal;\r\n\r\nModal.Header = ModalHeader;\r\nModal.Title = ModalTitle;\r\nModal.Body = ModalBody;\r\nModal.Footer = ModalFooter;\r\n\r\nModal.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** The size of the modal */\r\n size: PropTypes.oneOf([\"small\", \"normal\", \"large\"]),\r\n /** A callback fired when the header closeButton or non-static backdrop is clicked. Required if either are specified. */\r\n onHide: PropTypes.func,\r\n};\r\n\r\nModal.defaultProps = {\r\n size: \"normal\",\r\n};\r\n","import React from \"react\";\r\nimport { usePanelContext } from \"./Panel\";\r\n\r\nimport styles from \"./Panel.module.css\";\r\n\r\n/**\r\n * @visibleName Panel.Header\r\n */\r\nconst PanelHeader = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = usePanelContext();\r\n\r\n return <div className={styles.header}>{children}</div>;\r\n};\r\n\r\nexport default PanelHeader;\r\n","import React, { useContext, createContext } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport PanelHeader from \"./PanelHeader\";\r\nimport PanelBody from \"./PanelBody\";\r\nimport PanelFooter from \"./PanelFooter\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Panel.module.css\";\r\n\r\nconst PanelContext = createContext();\r\n\r\nexport const usePanelContext = () => {\r\n const context = useContext(PanelContext);\r\n if (!context) throw new Error(`Panel compound components cannot be rendered outside the Panel component.`);\r\n\r\n return context;\r\n};\r\n\r\nconst Panel = (props) => {\r\n const activeStyles = props.noPadding ? [styles.panel, styles.noPadding] : [styles.panel];\r\n\r\n return (\r\n <PanelContext.Provider value={{}}>\r\n <div id={props.id} className={activeStyles.join(\" \")}>\r\n {props.children}\r\n </div>\r\n </PanelContext.Provider>\r\n );\r\n};\r\n\r\nexport default Panel;\r\n\r\nPanel.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** Optionally remove the inner padding of the panel */\r\n noPadding: PropTypes.bool,\r\n};\r\n\r\nPanel.defaultProps = {\r\n noPadding: false,\r\n};\r\n\r\nPanel.Header = PanelHeader;\r\nPanel.Body = PanelBody;\r\nPanel.Footer = PanelFooter;\r\n","import React from \"react\";\r\nimport { usePanelContext } from \"./Panel\";\r\n\r\nimport styles from \"./Panel.module.css\";\r\n\r\n/**\r\n * @visibleName Panel.Body\r\n */\r\nconst PanelBody = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = usePanelContext();\r\n\r\n return <div className={styles.body}>{children}</div>;\r\n};\r\n\r\nexport default PanelBody;\r\n","import React from \"react\";\r\nimport { usePanelContext } from \"./Panel\";\r\n\r\nimport styles from \"./Panel.module.css\";\r\n\r\n/**\r\n * @visibleName Panel.Footer\r\n */\r\nconst PanelFooter = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = usePanelContext();\r\n\r\n return <div className={styles.footer}>{children}</div>;\r\n};\r\n\r\nexport default PanelFooter;\r\n","import React from \"react\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Panel.module.css\";\r\n\r\nconst PanelGroup = (props) => {\r\n return <div className={styles.group}>{props.children}</div>;\r\n};\r\n\r\nexport default PanelGroup;\r\n","import React from \"react\";\r\nimport { useQuestionContext } from \"./Question\";\r\n\r\nimport styles from \"./Question.module.css\";\r\n\r\n/**\r\n * @visibleName Question.Title\r\n */\r\nconst QuestionTitle = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useQuestionContext();\r\n\r\n return <p className={styles.title}>{children}</p>;\r\n};\r\n\r\nexport default QuestionTitle;\r\n","import React from \"react\";\r\nimport { useQuestionContext } from \"./Question\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport styles from \"./Question.module.css\";\r\n\r\n/**\r\n * @visibleName Question.Image\r\n */\r\nconst QuestionImage = (props) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useQuestionContext();\r\n\r\n return props.src && <div className={styles.image} style={{ backgroundImage: \"url(\" + props.src + \")\" }}></div>;\r\n};\r\n\r\nexport default QuestionImage;\r\n\r\nQuestionImage.propTypes = {\r\n /** Path to the image to display in the question box */\r\n src: PropTypes.string,\r\n};\r\n\r\nQuestionImage.defaultProps = {\r\n src: null,\r\n};\r\n","import React, { useContext, createContext } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport QuestionTitle from \"./QuestionTitle\";\r\nimport QuestionBody from \"./QuestionBody\";\r\nimport QuestionInfo from \"./QuestionInfo\";\r\nimport QuestionImage from \"./QuestionImage\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Question.module.css\";\r\n\r\nconst QuestionContext = createContext();\r\n\r\nexport const useQuestionContext = () => {\r\n const context = useContext(QuestionContext);\r\n if (!context) throw new Error(`Question compound components cannot be rendered outside the Question component.`);\r\n\r\n return context;\r\n};\r\n\r\nconst Question = (props) => {\r\n let content = [];\r\n let image;\r\n props.children.forEach((child) => {\r\n if (React.isValidElement(child)) {\r\n if (child.type.name !== \"QuestionImage\") {\r\n content.push(child);\r\n } else {\r\n image = child;\r\n }\r\n }\r\n });\r\n return (\r\n <QuestionContext.Provider value={{}}>\r\n <div id={props.id} className={styles.question}>\r\n <div className={styles.content}>{content}</div>\r\n {image}\r\n </div>\r\n </QuestionContext.Provider>\r\n );\r\n};\r\n\r\nexport default Question;\r\n\r\nQuestion.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string\r\n};\r\n\r\nQuestion.Title = QuestionTitle;\r\nQuestion.Body = QuestionBody;\r\nQuestion.Info = QuestionInfo;\r\nQuestion.Image = QuestionImage;\r\n","import React from \"react\";\r\nimport { useQuestionContext } from \"./Question\";\r\n\r\nimport styles from \"./Question.module.css\";\r\n\r\n/**\r\n * @visibleName Question.Body\r\n */\r\nconst QuestionBody = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useQuestionContext();\r\n\r\n return <div className={styles.body}>{children}</div>;\r\n};\r\n\r\nexport default QuestionBody;\r\n","import React from \"react\";\r\nimport { Info } from \"react-feather\";\r\nimport { useQuestionContext } from \"./Question\";\r\n\r\nimport styles from \"./Question.module.css\";\r\n\r\n/**\r\n * @visibleName Question.Info\r\n */\r\nconst QuestionInfo = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useQuestionContext();\r\n\r\n return (\r\n <div className={styles.info}>\r\n <Info className={styles.icon} />\r\n <p>{children}</p>\r\n </div>\r\n );\r\n};\r\n\r\nexport default QuestionInfo;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Radio.module.css\";\r\n\r\nconst Radio = (props) => {\r\n const activeStyles = props.disabled ? [styles.container, styles.disabled] : [styles.container];\r\n\r\n return (\r\n <label className={activeStyles.join(\" \")}>\r\n {props.label}\r\n <input {...props} type=\"radio\" />\r\n <span className={styles.focus}></span>\r\n <span className={styles.checkmark}></span>\r\n </label>\r\n );\r\n};\r\n\r\nexport default Radio;\r\n\r\nRadio.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** Text to display next to the radio button */\r\n label: PropTypes.string,\r\n /** Checked status of the radio button */\r\n checked: PropTypes.bool,\r\n /** Disables the radio button */\r\n disabled: PropTypes.bool,\r\n /** Gets called when the user clicks on the radio button */\r\n onChange: PropTypes.func,\r\n};\r\n\r\nRadio.defaultProps = {\r\n checked: false,\r\n disabled: false,\r\n};\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport Portal from \"../Portal/Portal\";\r\nimport { ChevronDown, X, XSquare } from \"react-feather\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Select.module.css\";\r\n\r\nconst Select = ({\r\n label,\r\n description,\r\n placeholder,\r\n options,\r\n selection,\r\n valueProperty,\r\n displayProperty,\r\n isMulti,\r\n isClearable,\r\n onChange,\r\n disabled,\r\n}) => {\r\n const [selectedItems, setSelectedItems] = useState([]);\r\n const [coords, setCoords] = useState({});\r\n\r\n const [expanded, setExpanded] = useState(false);\r\n const expand = useRef(false);\r\n const controlRef = useRef();\r\n const optionsRef = useRef();\r\n\r\n const isMultiSelect = isMulti;\r\n const canClear = isClearable;\r\n\r\n const activeStyles = disabled ? [styles.select, styles.disabled] : [styles.select];\r\n\r\n useEffect(() => {\r\n document.addEventListener(\"click\", handleClickOutsideSelect);\r\n document.addEventListener(\"keyup\", handleEscapeKey);\r\n window.addEventListener(\"blur\", handleWindowEvents);\r\n window.addEventListener(\"resize\", handleWindowEvents);\r\n\r\n return () => {\r\n document.removeEventListener(\"click\", handleClickOutsideSelect);\r\n document.removeEventListener(\"keyup\", handleEscapeKey);\r\n window.removeEventListener(\"blur\", handleWindowEvents);\r\n window.removeEventListener(\"resize\", handleWindowEvents);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!selection || selection.length === 0) {\r\n setSelectedItems([]);\r\n return;\r\n }\r\n\r\n if (!valueProperty) {\r\n setSelectedItems(Array.isArray(selection) ? selection : [selection]);\r\n return;\r\n }\r\n\r\n if (isMultiSelect) {\r\n const items = [];\r\n for (let i = 0; i < selection.length; i++) {\r\n const item = options.find((x) => x[valueProperty] === selection[i]);\r\n\r\n if (item) items.push(item);\r\n }\r\n\r\n setSelectedItems(items);\r\n\r\n if (items.length > 0) onChange && onChange(items);\r\n } else {\r\n const item = options.find((x) => x[valueProperty] === selection);\r\n\r\n setSelectedItems([item]);\r\n if (item) onChange && onChange(item);\r\n }\r\n\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [options, selection]);\r\n\r\n useEffect(() => {\r\n if (expanded) {\r\n const rect = controlRef.current.getBoundingClientRect();\r\n setCoords({\r\n left: rect.x,\r\n top: rect.y + window.scrollY + rect.height,\r\n width: rect.width - 2,\r\n });\r\n }\r\n\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [selectedItems]);\r\n\r\n const handleClickOutsideSelect = (e) => {\r\n const path = e.path || (e.composedPath && e.composedPath())\r\n if (path) {\r\n for (let i = 0; i < path.length; i++) {\r\n if (path[i] === controlRef.current || path[i] === optionsRef.current) {\r\n e.stopPropagation();\r\n return;\r\n }\r\n }\r\n } else {\r\n // Browser isn't supplying path info\r\n let element = e.target;\r\n while (element !== null) {\r\n if (element === controlRef.current || element === optionsRef.current) {\r\n e.stopPropagation();\r\n return;\r\n }\r\n\r\n element = element.parentElement\r\n }\r\n }\r\n\r\n setExpanded(false);\r\n expand.current = false;\r\n };\r\n\r\n const handleEscapeKey = (e) => {\r\n if (e.key === \"Escape\" && expand.current) {\r\n setExpanded(false);\r\n expand.current = false;\r\n }\r\n };\r\n\r\n const handleWindowEvents = (e) => {\r\n if (expand.current) {\r\n expand.current = false;\r\n setExpanded(false);\r\n }\r\n };\r\n\r\n const onClickSelectBox = (e) => {\r\n e.stopPropagation();\r\n\r\n if (!expanded) {\r\n const rect = controlRef.current.getBoundingClientRect();\r\n setCoords({\r\n left: rect.x,\r\n top: rect.y + window.scrollY + rect.height,\r\n width: rect.width - 2,\r\n });\r\n }\r\n\r\n expand.current = !expanded;\r\n setExpanded((show) => !show);\r\n };\r\n\r\n const onClickSelectItem = (e, item) => {\r\n e.stopPropagation();\r\n\r\n if (!expanded) {\r\n const rect = controlRef.current.getBoundingClientRect();\r\n setCoords({\r\n left: rect.x,\r\n top: rect.y + window.scrollY + rect.height,\r\n width: rect.width - 2,\r\n });\r\n }\r\n\r\n if (isMultiSelect) {\r\n let selected = [...selectedItems];\r\n if (!selected.find((x) => x === item)) {\r\n selected.push(item);\r\n }\r\n\r\n setSelectedItems(selected);\r\n setExpanded(false);\r\n\r\n onChange && onChange(selected);\r\n } else {\r\n setSelectedItems([item]);\r\n setExpanded(false);\r\n\r\n onChange && onChange(item);\r\n }\r\n };\r\n\r\n const onRemoveSelectedItem = (e, item) => {\r\n e.stopPropagation();\r\n\r\n const selected = selectedItems.filter((x) => x !== item);\r\n setSelectedItems(selected);\r\n onChange && onChange(selected);\r\n };\r\n\r\n const onClearSelection = (e) => {\r\n e.stopPropagation();\r\n setSelectedItems([]);\r\n onChange && onChange(isMultiSelect ? [] : null);\r\n };\r\n\r\n const renderSelection = () => {\r\n if (!selectedItems || selectedItems.length === 0) return <span className={styles.placeholder}>{placeholder}</span>;\r\n\r\n if (isMultiSelect) {\r\n return (\r\n <span className={styles.multiselect_items}>\r\n {selectedItems.map((item, index) => (\r\n <span key={index} className={styles.multiselect_item}>\r\n {renderItem(item)}\r\n <XSquare onClick={(e) => onRemoveSelectedItem(e, item)} />\r\n </span>\r\n ))}\r\n </span>\r\n );\r\n } else {\r\n return renderItem(selectedItems[0]);\r\n }\r\n };\r\n\r\n const renderOptions = () => {\r\n let items = options;\r\n if (isMultiSelect) {\r\n items = items.filter((x) => !selectedItems.some((y) => x === y));\r\n }\r\n\r\n return (\r\n <ul>\r\n {items.map((item, i) => (\r\n <li key={i} onClick={(e) => onClickSelectItem(e, item)} title={renderItem(item)}>\r\n {renderItem(item)}\r\n </li>\r\n ))}\r\n {items.length === 0 && <li className={styles.disabled}>No options available</li>}\r\n </ul>\r\n );\r\n };\r\n\r\n const renderItem = (item) => {\r\n if (!item) return;\r\n\r\n if (displayProperty) return item[displayProperty];\r\n return item;\r\n };\r\n\r\n return (\r\n <div className={label ? activeStyles.join(\" \") : [...activeStyles, styles.withoutLabel].join(\" \")}>\r\n {label && <label>{label}</label>}\r\n <div\r\n className={expanded ? [styles.input, styles.focused].join(\" \") : styles.input}\r\n onClick={(e) => onClickSelectBox(e)}\r\n ref={controlRef}\r\n >\r\n {renderSelection()}\r\n\r\n <div className={isClearable ? [styles.controls, styles.clearable].join(\" \") : styles.controls}>\r\n {canClear && selectedItems && selectedItems.length > 0 && <X onClick={onClearSelection} />}\r\n <ChevronDown />\r\n </div>\r\n </div>\r\n\r\n {expanded && (\r\n <Portal>\r\n <div\r\n ref={optionsRef}\r\n className={styles.dropdown}\r\n style={{\r\n left: coords.left,\r\n top: coords.top,\r\n width: coords.width,\r\n }}\r\n >\r\n {renderOptions()}\r\n </div>\r\n </Portal>\r\n )}\r\n\r\n {description && <span className={styles.description}>{description}</span>}\r\n </div>\r\n );\r\n};\r\n\r\nexport default Select;\r\n\r\nSelect.propTypes = {\r\n /** Determine if selecting multiple options is possible */\r\n isMulti: PropTypes.bool,\r\n /** Determine if it is possible to clear the active selection using a button */\r\n isClearable: PropTypes.bool,\r\n /** Label text */\r\n label: PropTypes.string,\r\n /** Description text displayed underneath the dropdown */\r\n description: PropTypes.string,\r\n /** Options array */\r\n options: PropTypes.array,\r\n /** The active selection */\r\n selection: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object, PropTypes.array]),\r\n /** The property of the object to display in the dropdown */\r\n displayProperty: PropTypes.string,\r\n /** The property of the object to use to determine selection */\r\n valueProperty: PropTypes.string,\r\n /** Gets called when the user selects an option from the dropdown */\r\n onChange: PropTypes.func,\r\n};\r\n\r\nSelect.defaultProps = {\r\n isMulti: false,\r\n isClearable: false,\r\n};\r\n","import React, { useContext, createContext, useState } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\n\r\nconst SelectGroupContext = createContext();\r\n\r\nexport const useSelectGroupContext = () => {\r\n const context = useContext(SelectGroupContext);\r\n if (!context) throw new Error(`SelectGroup compound components cannot be rendered outside the SelectGroup component.`);\r\n\r\n return context;\r\n};\r\n\r\nconst SelectGroup = ({ id, children, onChange, initialSelection }) => {\r\n const [active, setActive] = useState(initialSelection);\r\n\r\n const onItemClicked = (index) => {\r\n setActive(index);\r\n onChange && onChange(index);\r\n };\r\n\r\n return (\r\n <SelectGroupContext.Provider value={{}}>\r\n <div id={id}>\r\n {children.map((item, index) => {\r\n if (!React.isValidElement(item) || item.type.name !== \"SelectGroupItem\") return null;\r\n\r\n return (\r\n <React.Fragment key={index}>\r\n {React.cloneElement(item, {\r\n selected: active === Number(item.props.id),\r\n onClick: () => onItemClicked(Number(item.props.id)),\r\n })}\r\n </React.Fragment>\r\n );\r\n })}\r\n </div>\r\n </SelectGroupContext.Provider>\r\n );\r\n};\r\n\r\nexport default SelectGroup;\r\n\r\nSelectGroup.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** Id of the selected value */\r\n initialSelection: PropTypes.number,\r\n /** Gets called when the user clicks on one of the SelectGroupItem components */\r\n onChange: PropTypes.func,\r\n};\r\n","import React from \"react\";\r\nimport { useSelectGroupContext } from \"./SelectGroup\";\r\n\r\n/**\r\n * @visibleName SelectGroupItem.Title\r\n */\r\nconst SelectGroupItemTitle = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useSelectGroupContext();\r\n\r\n return <h3>{children}</h3>;\r\n};\r\n\r\nexport default SelectGroupItemTitle;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport SelectGroupItemTitle from \"./SelectGroupItemTitle\";\r\nimport SelectGroupItemDescription from \"./SelectGroupItemDescription\";\r\nimport SelectGroupItemImage from \"./SelectGroupItemImage\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./SelectGroupItem.module.css\";\r\n\r\nconst SelectGroupItem = ({ selected, onClick, children }) => {\r\n const content = [];\r\n let image;\r\n children.forEach((child) => {\r\n if (!React.isValidElement(child)) return;\r\n\r\n if (child.type.name !== \"SelectGroupItemImage\") {\r\n content.push(child);\r\n } else {\r\n image = child;\r\n }\r\n });\r\n\r\n return (\r\n <div onClick={onClick} className={selected ? [styles.item, styles.selected].join(\" \") : styles.item}>\r\n <div className={styles.box}>{content}</div>\r\n {image}\r\n </div>\r\n );\r\n};\r\n\r\nexport default SelectGroupItem;\r\n\r\nSelectGroupItem.Title = SelectGroupItemTitle;\r\nSelectGroupItem.Description = SelectGroupItemDescription;\r\nSelectGroupItem.Image = SelectGroupItemImage;\r\n\r\nSelectGroupItem.propTypes = {\r\n /** Unique identifier of the item */\r\n id: PropTypes.string\r\n};\r\n","import React from \"react\";\r\nimport { useSelectGroupContext } from \"./SelectGroup\";\r\n\r\n/**\r\n * @visibleName SelectGroupItem.Title\r\n */\r\nconst SelectGroupItemDescription = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useSelectGroupContext();\r\n\r\n return <p>{children}</p>;\r\n};\r\n\r\nexport default SelectGroupItemDescription;\r\n","import React from \"react\";\r\nimport { useSelectGroupContext } from \"./SelectGroup\";\r\n\r\n/**\r\n * @visibleName SelectGroupItem.Image\r\n */\r\nconst SelectGroupItemImage = ({ src }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useSelectGroupContext();\r\n\r\n return src && <img src={src} alt=\"\" />;\r\n};\r\n\r\nexport default SelectGroupItemImage;\r\n","import React, { useContext, createContext, useState, useEffect } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Steps.module.css\";\r\n\r\nconst StepsContext = createContext();\r\n\r\nexport const useStepsContext = () => {\r\n const context = useContext(StepsContext);\r\n if (!context) throw new Error(`Steps compound components cannot be rendered outside the Steps component.`);\r\n\r\n return context;\r\n};\r\n\r\nconst Steps = ({ id, activeStep, onChange, children }) => {\r\n const [active, setActive] = useState(activeStep || 0);\r\n const steps = [];\r\n\r\n useEffect(() => {\r\n setActive(activeStep);\r\n }, [activeStep])\r\n\r\n const trySetActive = (index) => {\r\n if (onChange && onChange(active, index) === false) {\r\n return;\r\n }\r\n\r\n setActive(index);\r\n };\r\n\r\n children.forEach((step, index) => {\r\n if (React.isValidElement(step) && step.type.name === \"Step\") {\r\n steps.push(\r\n React.cloneElement(step, {\r\n key: index,\r\n id: index,\r\n selected: index === active,\r\n isCompleted: index < active,\r\n onClick: () => trySetActive(index),\r\n })\r\n );\r\n }\r\n });\r\n\r\n return (\r\n <StepsContext.Provider value={{}}>\r\n <div id={id} className={styles.container}>\r\n <ul className={styles.box}>{steps}</ul>\r\n </div>\r\n {steps[active] && steps[active].props.children}\r\n </StepsContext.Provider>\r\n );\r\n};\r\n\r\nexport default Steps;\r\n\r\nSteps.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** The step that is currently being displayed */\r\n activeStep: PropTypes.number,\r\n /** Function that is called when the active step is changed. Return false in this function to prevent the step from being changed. */\r\n onChange: PropTypes.func\r\n};\r\n","import React from \"react\";\r\nimport { useStepsContext } from \"./Steps\";\r\n\r\nimport styles from \"./Steps.module.css\";\r\n\r\nconst Step = ({ id, label, selected, isCompleted, onClick }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useStepsContext();\r\n\r\n return (\r\n <li onClick={selected ? null : onClick} className={selected ? styles.active : isCompleted ? styles.completed : \"\"}>\r\n <p>\r\n <span className={styles.nmbr}>{id + 1}</span>\r\n <span>{label}</span>\r\n </p>\r\n </li>\r\n );\r\n};\r\n\r\nexport default Step;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Subheader.module.css\";\r\n\r\nconst Subheader = (props) => {\r\n const color = props.color === \"\" ? \"orange\" : props.color;\r\n\r\n return (\r\n <div id={props.id} className={styles.subheader}>\r\n <div className={styles.line}></div>\r\n <div className={[styles.content, styles[color]].join(\" \")}>{props.children}</div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Subheader;\r\n\r\nSubheader.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** The color of the box */\r\n color: PropTypes.oneOf([\"yellow\", \"green\", \"blue\", \"purple\", \"red\", \"orange\"]),\r\n};\r\n\r\nSubheader.defaultProps = {\r\n color: \"orange\",\r\n};\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Table.module.css\";\r\n\r\nconst Table = (props) => {\r\n return (\r\n <table id={props.id} className={styles.table}>\r\n {props.children}\r\n </table>\r\n );\r\n};\r\n\r\nexport default Table;\r\n\r\nTable.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n};\r\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Button = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _ClassNames = require(\"../utils/ClassNames\");\n\nvar _Tooltip = require(\"../tooltip/Tooltip\");\n\nvar _ObjectUtils = _interopRequireDefault(require(\"../utils/ObjectUtils\"));\n\nvar _Ripple = require(\"../ripple/Ripple\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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 _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\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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 Button = /*#__PURE__*/function (_Component) {\n _inherits(Button, _Component);\n\n var _super = _createSuper(Button);\n\n function Button() {\n _classCallCheck(this, Button);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Button, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.tooltip !== this.props.tooltip) {\n if (this.tooltip) this.tooltip.updateContent(this.props.tooltip);else this.renderTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = (0, _Tooltip.tip)({\n target: this.element,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"renderIcon\",\n value: function renderIcon() {\n if (this.props.icon) {\n var className = (0, _ClassNames.classNames)(this.props.icon, 'p-c', {\n 'p-button-icon-left': this.props.iconPos === 'left' && this.props.label,\n 'p-button-icon-right': this.props.iconPos === 'right' && this.props.label,\n 'p-button-icon-top': this.props.iconPos === 'top' && this.props.label,\n 'p-button-icon-bottom': this.props.iconPos === 'bottom' && this.props.label\n });\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n className: className\n });\n }\n\n return null;\n }\n }, {\n key: \"renderLabel\",\n value: function renderLabel() {\n if (!this.props.label) {\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n className: \"p-button-label p-c\",\n dangerouslySetInnerHTML: {\n __html: \" \"\n }\n });\n }\n\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n className: \"p-button-label p-c\"\n }, this.props.label);\n }\n }, {\n key: \"renderBadge\",\n value: function renderBadge() {\n if (this.props.badge) {\n var badgeClassName = (0, _ClassNames.classNames)('p-badge', this.props.badgeClassName);\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n className: badgeClassName\n }, this.props.badge);\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this = this;\n\n var className = (0, _ClassNames.classNames)('p-button p-component', this.props.className, {\n 'p-button-icon-only': this.props.icon && !this.props.label,\n 'p-button-vertical': (this.props.iconPos === 'top' || this.props.iconPos === 'bottom') && this.label,\n 'p-disabled': this.props.disabled\n });\n var icon = this.renderIcon();\n var label = this.renderLabel();\n var badge = this.renderBadge();\n\n var buttonProps = _ObjectUtils.default.findDiffKeys(this.props, Button.defaultProps);\n\n return /*#__PURE__*/_react.default.createElement(\"button\", _extends({\n ref: function ref(el) {\n return _this.element = el;\n }\n }, buttonProps, {\n className: className\n }), icon, label, this.props.children, badge, /*#__PURE__*/_react.default.createElement(_Ripple.Ripple, null));\n }\n }]);\n\n return Button;\n}(_react.Component);\n\nexports.Button = Button;\n\n_defineProperty(Button, \"defaultProps\", {\n label: null,\n icon: null,\n iconPos: 'left',\n badge: null,\n badgeClassName: null,\n tooltip: null,\n tooltipOptions: null\n});\n\n_defineProperty(Button, \"propTypes\", {\n label: _propTypes.default.string,\n icon: _propTypes.default.string,\n iconPos: _propTypes.default.string,\n badge: _propTypes.default.string,\n badgeClassName: _propTypes.default.string,\n tooltip: _propTypes.default.string,\n tooltipOptions: _propTypes.default.object\n});","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"PrismicReactjs\", [\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PrismicReactjs\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"PrismicReactjs\"] = factory(root[\"react\"]);\n})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_react__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./node_modules/object-assign/index.js\":\n/*!*********************************************!*\\\n !*** ./node_modules/object-assign/index.js ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n\n return Object(val);\n}\n\nfunction shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n } // Detect buggy property enumeration order in older V8 versions.\n // https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\n\n var test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\n test1[5] = 'de';\n\n if (Object.getOwnPropertyNames(test1)[0] === '5') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test2 = {};\n\n for (var i = 0; i < 10; i++) {\n test2['_' + String.fromCharCode(i)] = i;\n }\n\n var order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n return test2[n];\n });\n\n if (order2.join('') !== '0123456789') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test3 = {};\n 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n test3[letter] = letter;\n });\n\n if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n return false;\n }\n\n return true;\n } catch (err) {\n // We don't expect any of the above to throw, but better to be safe.\n return false;\n }\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n\n return to;\n};\n\n/***/ }),\n\n/***/ \"./node_modules/prismic-helpers/dist/prismic-helpers.min.js\":\n/*!******************************************************************!*\\\n !*** ./node_modules/prismic-helpers/dist/prismic-helpers.min.js ***!\n \\******************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n!function (e, t) {\n true ? module.exports = t() : undefined;\n}(\"undefined\" != typeof self ? self : this, function () {\n return function (e) {\n var t = {};\n\n function n(r) {\n if (t[r]) return t[r].exports;\n var o = t[r] = {\n i: r,\n l: !1,\n exports: {}\n };\n return e[r].call(o.exports, o, o.exports, n), o.l = !0, o.exports;\n }\n\n return n.m = e, n.c = t, n.d = function (e, t, r) {\n n.o(e, t) || Object.defineProperty(e, t, {\n enumerable: !0,\n get: r\n });\n }, n.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, n.t = function (e, t) {\n if (1 & t && (e = n(e)), 8 & t) return e;\n if (4 & t && \"object\" == typeof e && e && e.__esModule) return e;\n var r = Object.create(null);\n if (n.r(r), Object.defineProperty(r, \"default\", {\n enumerable: !0,\n value: e\n }), 2 & t && \"string\" != typeof e) for (var o in e) n.d(r, o, function (t) {\n return e[t];\n }.bind(null, o));\n return r;\n }, n.n = function (e) {\n var t = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return n.d(t, \"a\", t), t;\n }, n.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, n.p = \"\", n(n.s = 0);\n }([function (e, t, n) {\n e.exports = n(1);\n }, function (e, t, n) {\n var r = n(2),\n o = n(3);\n e.exports = {\n Link: r,\n Date: o\n };\n }, function (e, t, n) {\n e.exports = {\n url: function (e, t) {\n if (e && [e.link_type, e._linkType, e.linkType].some(function (e) {\n return e && [\"Document\", \"Link.Document\", \"Link.document\"].includes(e);\n }) && t && \"function\" == typeof t) {\n var n = t(e);\n if (n) return n;\n }\n\n return e && e.url ? e.url : \"\";\n }\n };\n }, function (e, t) {\n e.exports = function (e) {\n if (!e) return null;\n var t = 24 == e.length ? \"\".concat(e.substring(0, 22), \":\").concat(e.substring(22, 24)) : e;\n return new Date(t);\n };\n }]);\n});\n\n/***/ }),\n\n/***/ \"./node_modules/prismic-richtext/dist/prismic-richtext.min.js\":\n/*!********************************************************************!*\\\n !*** ./node_modules/prismic-richtext/dist/prismic-richtext.min.js ***!\n \\********************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n!function (e, t) {\n true ? module.exports = t() : undefined;\n}(\"undefined\" != typeof self ? self : this, function () {\n return function (e) {\n var t = {};\n\n function n(r) {\n if (t[r]) return t[r].exports;\n var o = t[r] = {\n i: r,\n l: !1,\n exports: {}\n };\n return e[r].call(o.exports, o, o.exports, n), o.l = !0, o.exports;\n }\n\n return n.m = e, n.c = t, n.d = function (e, t, r) {\n n.o(e, t) || Object.defineProperty(e, t, {\n enumerable: !0,\n get: r\n });\n }, n.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, n.t = function (e, t) {\n if (1 & t && (e = n(e)), 8 & t) return e;\n if (4 & t && \"object\" == typeof e && e && e.__esModule) return e;\n var r = Object.create(null);\n if (n.r(r), Object.defineProperty(r, \"default\", {\n enumerable: !0,\n value: e\n }), 2 & t && \"string\" != typeof e) for (var o in e) n.d(r, o, function (t) {\n return e[t];\n }.bind(null, o));\n return r;\n }, n.n = function (e) {\n var t = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return n.d(t, \"a\", t), t;\n }, n.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, n.p = \"\", n(n.s = 9);\n }([function (e, t, n) {\n var r = n(3);\n\n e.exports = function (e) {\n return function t(n) {\n return 0 === arguments.length || r(n) ? t : e.apply(this, arguments);\n };\n };\n }, function (e, t, n) {\n var r = n(0),\n o = n(3);\n\n e.exports = function (e) {\n return function t(n, i) {\n switch (arguments.length) {\n case 0:\n return t;\n\n case 1:\n return o(n) ? t : r(function (t) {\n return e(n, t);\n });\n\n default:\n return o(n) && o(i) ? t : o(n) ? r(function (t) {\n return e(t, i);\n }) : o(i) ? r(function (t) {\n return e(n, t);\n }) : e(n, i);\n }\n };\n };\n }, function (e, t, n) {\n \"use strict\";\n\n var r;\n\n function o(e, t, n) {\n return t in e ? Object.defineProperty(e, t, {\n value: n,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[t] = n, e;\n }\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.PRIORITIES = t.NODE_TYPES = void 0;\n var i = {\n heading1: \"heading1\",\n heading2: \"heading2\",\n heading3: \"heading3\",\n heading4: \"heading4\",\n heading5: \"heading5\",\n heading6: \"heading6\",\n paragraph: \"paragraph\",\n preformatted: \"preformatted\",\n strong: \"strong\",\n em: \"em\",\n listItem: \"list-item\",\n oListItem: \"o-list-item\",\n list: \"group-list-item\",\n oList: \"group-o-list-item\",\n image: \"image\",\n embed: \"embed\",\n hyperlink: \"hyperlink\",\n label: \"label\",\n span: \"span\"\n };\n t.NODE_TYPES = i;\n var u = (o(r = {}, i.heading1, 4), o(r, i.heading2, 4), o(r, i.heading3, 4), o(r, i.heading4, 4), o(r, i.heading5, 4), o(r, i.heading6, 4), o(r, i.paragraph, 3), o(r, i.preformatted, 5), o(r, i.strong, 6), o(r, i.em, 6), o(r, i.oList, 1), o(r, i.list, 1), o(r, i.listItem, 1), o(r, i.oListItem, 1), o(r, i.image, 1), o(r, i.embed, 1), o(r, i.hyperlink, 3), o(r, i.label, 4), o(r, i.span, 7), r);\n t.PRIORITIES = u;\n }, function (e, t) {\n e.exports = function (e) {\n return null != e && \"object\" == typeof e && !0 === e[\"@@functional/placeholder\"];\n };\n }, function (e, t, n) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n var r = d(n(12)),\n o = d(n(15)),\n i = d(n(16)),\n u = d(n(17)),\n c = d(n(21)),\n a = d(n(7)),\n l = n(23),\n f = n(2),\n s = n(8);\n\n function d(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n\n function p(e, t) {\n for (var n = 0; n < t.length; n++) {\n var r = t[n];\n r.enumerable = r.enumerable || !1, r.configurable = !0, \"value\" in r && (r.writable = !0), Object.defineProperty(e, r.key, r);\n }\n }\n\n function h(e) {\n return function (e) {\n if (Array.isArray(e)) return e;\n }(e) || function (e) {\n if (Symbol.iterator in Object(e) || \"[object Arguments]\" === Object.prototype.toString.call(e)) return Array.from(e);\n }(e) || function () {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }();\n }\n\n function y(e, t) {\n var n = t.others.reduce(function (n, r) {\n var o = n.inner,\n i = n.outer,\n u = function (e, t, n) {\n return n.start < t.start ? {\n inner: s.SpanNode.slice(n, t.start, n.end, e),\n outer: s.SpanNode.slice(n, n.start, t.start, e)\n } : n.end > t.end ? {\n inner: s.SpanNode.slice(n, n.start, t.end, e),\n outer: s.SpanNode.slice(n, t.end, n.end, e)\n } : {\n inner: n\n };\n }(e, t.elected, r);\n\n return {\n inner: o.concat(u.inner),\n outer: u.outer ? i.concat(u.outer) : i\n };\n }, {\n inner: [],\n outer: []\n }),\n r = n.inner,\n o = n.outer;\n return [t.elected.setChildren(x(e, r, t.elected.boundaries()))].concat(b(e, o));\n }\n\n function v(e) {\n return function (e, t) {\n return t.reduce(function (t, n) {\n var r = (0, c.default)(t);\n\n if (r) {\n if (r.some(function (e) {\n return e.isParentOf(n);\n })) return (0, u.default)(t).concat([r.concat(n)]);\n var o = (0, c.default)(r);\n return o && e(o, n) ? (0, u.default)(t).concat([r.concat(n)]) : t.concat([[n]]);\n }\n\n return [[n]];\n }, []);\n }(function (e, t) {\n return e.end >= t.start;\n }, (0, i.default)([function (e, t) {\n return e.start - t.start;\n }, function (e, t) {\n return e.end - t.end;\n }], e));\n }\n\n function m(e) {\n if (0 === e.length) throw new Error(\"Unable to elect node on empty list\");\n var t = h(e.sort(function (e, t) {\n if (e.isParentOf(t)) return -1;\n if (t.isParentOf(e)) return 1;\n var n = f.PRIORITIES[e.type] - f.PRIORITIES[t.type];\n return 0 === n ? e.text.length - t.text.length : n;\n }));\n return {\n elected: t[0],\n others: t.slice(1)\n };\n }\n\n function x(e, t, n) {\n if (t.length > 0) return function (e, t, n) {\n return t.reduce(function (r, o, i) {\n var u = [],\n c = 0 === i && o.start > n.lower,\n a = i === t.length - 1 && n.upper > o.end;\n\n if (c) {\n var l = new s.TextNode(n.lower, o.start, e.slice(n.lower, o.start));\n u = u.concat(l);\n } else {\n var f = t[i - 1];\n\n if (f && o.start > f.end) {\n var d = e.slice(f.end, o.start),\n p = new s.TextNode(f.end, o.start, d);\n u = u.concat(p);\n }\n }\n\n if (u = u.concat(o), a) {\n var h = new s.TextNode(o.end, n.upper, e.slice(o.end, n.upper));\n u = u.concat(h);\n }\n\n return r.concat(u);\n }, []);\n }(e, b(e, t), n);\n var r = e.slice(n.lower, n.upper);\n return [new s.TextNode(n.lower, n.upper, r)];\n }\n\n function b(e, t) {\n var n = v((0, o.default)(function (e) {\n return e.start;\n }, t)).map(m),\n i = (0, r.default)(n.map(function (t) {\n return y(e, t);\n }));\n return (0, o.default)(function (e) {\n return e.start;\n }, i);\n }\n\n var g = function () {\n function e() {\n !function (e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e);\n }\n\n var t, n, r;\n return t = e, r = [{\n key: \"fromRichText\",\n value: function (e) {\n return {\n key: (0, a.default)(),\n children: e.reduce(function (e, t, n) {\n if (l.RichTextBlock.isEmbedBlock(t.type) || l.RichTextBlock.isImageBlock(t.type)) return e.concat(new s.BlockNode(t.type, t));\n\n var r = function (e) {\n var t = e.spans.map(function (t) {\n var n = e.text.slice(t.start, t.end);\n return new s.SpanNode(t.start, t.end, t.type, n, [], t);\n }),\n n = {\n lower: 0,\n upper: e.text.length\n };\n return x(e.text, t, n);\n }(t),\n o = e[e.length - 1];\n\n if (l.RichTextBlock.isListItem(t.type) && o && o instanceof s.ListBlockNode) {\n var i = new s.ListItemBlockNode(t, r),\n c = o.addChild(i);\n return (0, u.default)(e).concat(c);\n }\n\n if (l.RichTextBlock.isOrderedListItem(t.type) && o && o instanceof s.OrderedListBlockNode) {\n var a = new s.OrderedListItemBlockNode(t, r),\n f = o.addChild(a);\n return (0, u.default)(e).concat(f);\n }\n\n if (l.RichTextBlock.isListItem(t.type)) {\n var d = new s.ListItemBlockNode(t, r),\n p = new s.ListBlockNode(l.RichTextBlock.emptyList(), [d]);\n return e.concat(p);\n }\n\n if (l.RichTextBlock.isOrderedListItem(t.type)) {\n var h = new s.OrderedListItemBlockNode(t, r),\n y = new s.OrderedListBlockNode(l.RichTextBlock.emptyOrderedList(), [h]);\n return e.concat(y);\n }\n\n return e.concat(new s.BlockNode(t.type, t, r));\n }, [])\n };\n }\n }], (n = null) && p(t.prototype, n), r && p(t, r), e;\n }();\n\n t.default = g;\n }, function (e, t) {\n e.exports = Array.isArray || function (e) {\n return null != e && e.length >= 0 && \"[object Array]\" === Object.prototype.toString.call(e);\n };\n }, function (e, t) {\n e.exports = function (e) {\n return \"[object String]\" === Object.prototype.toString.call(e);\n };\n }, function (e, t, n) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = function () {\n var e = new Date().getTime();\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (t) {\n var n = (e + 16 * Math.random()) % 16 | 0;\n return e = Math.floor(e / 16), (\"x\" == t ? n : 3 & n | 8).toString(16);\n });\n };\n }, function (e, t, n) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.ListBlockNode = t.OrderedListBlockNode = t.OrderedListItemBlockNode = t.ListItemBlockNode = t.BlockNode = t.TextNode = t.SpanNode = t.Node = void 0;\n var r,\n o = (r = n(7)) && r.__esModule ? r : {\n default: r\n },\n i = n(2);\n\n function u(e) {\n return (u = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (e) {\n return typeof e;\n } : function (e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n })(e);\n }\n\n function c(e, t) {\n for (var n = 0; n < t.length; n++) {\n var r = t[n];\n r.enumerable = r.enumerable || !1, r.configurable = !0, \"value\" in r && (r.writable = !0), Object.defineProperty(e, r.key, r);\n }\n }\n\n function a(e, t, n) {\n return t && c(e.prototype, t), n && c(e, n), e;\n }\n\n function l(e, t) {\n return !t || \"object\" !== u(t) && \"function\" != typeof t ? function (e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n }(e) : t;\n }\n\n function f(e) {\n return (f = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {\n return e.__proto__ || Object.getPrototypeOf(e);\n })(e);\n }\n\n function s(e, t) {\n if (\"function\" != typeof t && null !== t) throw new TypeError(\"Super expression must either be null or a function\");\n e.prototype = Object.create(t && t.prototype, {\n constructor: {\n value: e,\n writable: !0,\n configurable: !0\n }\n }), t && d(e, t);\n }\n\n function d(e, t) {\n return (d = Object.setPrototypeOf || function (e, t) {\n return e.__proto__ = t, e;\n })(e, t);\n }\n\n function p(e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n var h = function e(t, n, r) {\n p(this, e), this.key = (0, o.default)(), this.type = t, this.element = n, this.children = r;\n };\n\n t.Node = h;\n\n var y = function (e) {\n function t(e, n, r, o, i, u) {\n var c;\n return p(this, t), (c = l(this, f(t).call(this, r, u, i))).start = e, c.end = n, c.text = o, c.children = i, c;\n }\n\n return s(t, h), a(t, [{\n key: \"boundaries\",\n value: function () {\n return {\n lower: this.start,\n upper: this.end\n };\n }\n }, {\n key: \"isParentOf\",\n value: function (e) {\n return this.start <= e.start && this.end >= e.end;\n }\n }, {\n key: \"setChildren\",\n value: function (e) {\n return new t(this.start, this.end, this.type, this.text, e, this.element);\n }\n }], [{\n key: \"slice\",\n value: function (e, n, r, o) {\n return new t(n, r, e.type, o.slice(n, r), e.children, e.element);\n }\n }]), t;\n }();\n\n t.SpanNode = y;\n\n var v = function (e) {\n function t(e, n, r) {\n p(this, t);\n var o = {\n type: i.NODE_TYPES.span,\n start: e,\n end: n,\n text: r\n };\n return l(this, f(t).call(this, e, n, i.NODE_TYPES.span, r, [], o));\n }\n\n return s(t, y), t;\n }();\n\n t.TextNode = v;\n\n var m = function (e) {\n function t(e, n) {\n var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : [];\n return p(this, t), l(this, f(t).call(this, e, n, r));\n }\n\n return s(t, h), t;\n }();\n\n t.BlockNode = m;\n\n var x = function (e) {\n function t(e, n) {\n return p(this, t), l(this, f(t).call(this, i.NODE_TYPES.listItem, e, n));\n }\n\n return s(t, m), t;\n }();\n\n t.ListItemBlockNode = x;\n\n var b = function (e) {\n function t(e, n) {\n return p(this, t), l(this, f(t).call(this, i.NODE_TYPES.oListItem, e, n));\n }\n\n return s(t, m), t;\n }();\n\n t.OrderedListItemBlockNode = b;\n\n var g = function (e) {\n function t(e, n) {\n return p(this, t), l(this, f(t).call(this, i.NODE_TYPES.oList, e, n));\n }\n\n return s(t, m), a(t, [{\n key: \"addChild\",\n value: function (e) {\n var n = this.children.concat(e);\n return new t(this.element, n);\n }\n }]), t;\n }();\n\n t.OrderedListBlockNode = g;\n\n var O = function (e) {\n function t(e, n) {\n return p(this, t), l(this, f(t).call(this, i.NODE_TYPES.list, e, n));\n }\n\n return s(t, m), a(t, [{\n key: \"addChild\",\n value: function (e) {\n var n = this.children.concat(e);\n return new t(this.element, n);\n }\n }]), t;\n }();\n\n t.ListBlockNode = O;\n }, function (e, t, n) {\n e.exports = n(10);\n }, function (e, t, n) {\n \"use strict\";\n\n var r = c(n(11)),\n o = c(n(4)),\n i = c(n(24)),\n u = n(2);\n\n function c(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n\n e.exports = {\n asText: r.default,\n asTree: o.default.fromRichText,\n serialize: i.default,\n Elements: u.NODE_TYPES\n };\n }, function (e, t, n) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n\n var r = function (e, t) {\n var n = \"string\" == typeof t ? t : \" \";\n return e.map(function (e) {\n return e.text;\n }).join(n);\n };\n\n t.default = r;\n }, function (e, t, n) {\n var r = n(0)(n(13)(!0));\n e.exports = r;\n }, function (e, t, n) {\n var r = n(14);\n\n e.exports = function (e) {\n return function t(n) {\n for (var o, i, u, c = [], a = 0, l = n.length; a < l;) {\n if (r(n[a])) for (u = 0, i = (o = e ? t(n[a]) : n[a]).length; u < i;) c[c.length] = o[u], u += 1;else c[c.length] = n[a];\n a += 1;\n }\n\n return c;\n };\n };\n }, function (e, t, n) {\n var r = n(0),\n o = n(5),\n i = n(6),\n u = r(function (e) {\n return !!o(e) || !!e && \"object\" == typeof e && !i(e) && (1 === e.nodeType ? !!e.length : 0 === e.length || e.length > 0 && e.hasOwnProperty(0) && e.hasOwnProperty(e.length - 1));\n });\n e.exports = u;\n }, function (e, t, n) {\n var r = n(1)(function (e, t) {\n return Array.prototype.slice.call(t, 0).sort(function (t, n) {\n var r = e(t),\n o = e(n);\n return r < o ? -1 : r > o ? 1 : 0;\n });\n });\n e.exports = r;\n }, function (e, t, n) {\n var r = n(1)(function (e, t) {\n return Array.prototype.slice.call(t, 0).sort(function (t, n) {\n for (var r = 0, o = 0; 0 === r && o < e.length;) r = e[o](t, n), o += 1;\n\n return r;\n });\n });\n e.exports = r;\n }, function (e, t, n) {\n var r = n(18)(0, -1);\n e.exports = r;\n }, function (e, t, n) {\n var r = n(19),\n o = n(20)(r(\"slice\", function (e, t, n) {\n return Array.prototype.slice.call(n, e, t);\n }));\n e.exports = o;\n }, function (e, t, n) {\n var r = n(5);\n\n e.exports = function (e, t) {\n return function () {\n var n = arguments.length;\n if (0 === n) return t();\n var o = arguments[n - 1];\n return r(o) || \"function\" != typeof o[e] ? t.apply(this, arguments) : o[e].apply(o, Array.prototype.slice.call(arguments, 0, n - 1));\n };\n };\n }, function (e, t, n) {\n var r = n(0),\n o = n(1),\n i = n(3);\n\n e.exports = function (e) {\n return function t(n, u, c) {\n switch (arguments.length) {\n case 0:\n return t;\n\n case 1:\n return i(n) ? t : o(function (t, r) {\n return e(n, t, r);\n });\n\n case 2:\n return i(n) && i(u) ? t : i(n) ? o(function (t, n) {\n return e(t, u, n);\n }) : i(u) ? o(function (t, r) {\n return e(n, t, r);\n }) : r(function (t) {\n return e(n, u, t);\n });\n\n default:\n return i(n) && i(u) && i(c) ? t : i(n) && i(u) ? o(function (t, n) {\n return e(t, n, c);\n }) : i(n) && i(c) ? o(function (t, n) {\n return e(t, u, n);\n }) : i(u) && i(c) ? o(function (t, r) {\n return e(n, t, r);\n }) : i(n) ? r(function (t) {\n return e(t, u, c);\n }) : i(u) ? r(function (t) {\n return e(n, t, c);\n }) : i(c) ? r(function (t) {\n return e(n, u, t);\n }) : e(n, u, c);\n }\n };\n };\n }, function (e, t, n) {\n var r = n(22)(-1);\n e.exports = r;\n }, function (e, t, n) {\n var r = n(1),\n o = n(6),\n i = r(function (e, t) {\n var n = e < 0 ? t.length + e : e;\n return o(t) ? t.charAt(n) : t[n];\n });\n e.exports = i;\n }, function (e, t, n) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.RichTextBlock = void 0;\n var r = n(2);\n\n function o(e, t) {\n for (var n = 0; n < t.length; n++) {\n var r = t[n];\n r.enumerable = r.enumerable || !1, r.configurable = !0, \"value\" in r && (r.writable = !0), Object.defineProperty(e, r.key, r);\n }\n }\n\n var i = function () {\n function e(t, n, r) {\n !function (e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.type = t, this.text = n, this.spans = r;\n }\n\n var t, n, i;\n return t = e, i = [{\n key: \"isEmbedBlock\",\n value: function (e) {\n return e === r.NODE_TYPES.embed;\n }\n }, {\n key: \"isImageBlock\",\n value: function (e) {\n return e === r.NODE_TYPES.image;\n }\n }, {\n key: \"isList\",\n value: function (e) {\n return e === r.NODE_TYPES.list;\n }\n }, {\n key: \"isOrderedList\",\n value: function (e) {\n return e === r.NODE_TYPES.oList;\n }\n }, {\n key: \"isListItem\",\n value: function (e) {\n return e === r.NODE_TYPES.listItem;\n }\n }, {\n key: \"isOrderedListItem\",\n value: function (e) {\n return e === r.NODE_TYPES.oListItem;\n }\n }, {\n key: \"emptyList\",\n value: function () {\n return {\n type: r.NODE_TYPES.list,\n spans: [],\n text: \"\"\n };\n }\n }, {\n key: \"emptyOrderedList\",\n value: function () {\n return {\n type: r.NODE_TYPES.oList,\n spans: [],\n text: \"\"\n };\n }\n }], (n = null) && o(t.prototype, n), i && o(t, i), e;\n }();\n\n t.RichTextBlock = i;\n }, function (e, t, n) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n var r,\n o = (r = n(4)) && r.__esModule ? r : {\n default: r\n },\n i = n(8);\n\n var u = function (e, t, n) {\n return o.default.fromRichText(e).children.map(function (e, r) {\n return function (e, t, n, r) {\n return function e(n, o) {\n var u = n instanceof i.SpanNode ? n.text : null,\n c = n.children.reduce(function (t, n, r) {\n return t.concat([e(n, r)]);\n }, []),\n a = r && r(n.type, n.element, u, c, o);\n return a || t(n.type, n.element, u, c, o);\n }(e, n);\n }(e, t, r, n);\n });\n };\n\n t.default = u;\n }]);\n});\n\n/***/ }),\n\n/***/ \"./node_modules/prop-types/checkPropTypes.js\":\n/*!***************************************************!*\\\n !*** ./node_modules/prop-types/checkPropTypes.js ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\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\nvar printWarning = function () {};\n\nif (true) {\n var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\n\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function (text) {\n var message = 'Warning: ' + text;\n\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\n\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (true) {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n\n if (error && !(error instanceof Error)) {\n printWarning((componentName || 'React class') + ': type specification of ' + location + ' `' + typeSpecName + '` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).');\n }\n\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n var stack = getStack ? getStack() : '';\n printWarning('Failed ' + location + ' type: ' + error.message + (stack != null ? stack : ''));\n }\n }\n }\n }\n}\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\n\n\ncheckPropTypes.resetWarningCache = function () {\n if (true) {\n loggedTypeFailures = {};\n }\n};\n\nmodule.exports = checkPropTypes;\n\n/***/ }),\n\n/***/ \"./node_modules/prop-types/factoryWithTypeCheckers.js\":\n/*!************************************************************!*\\\n !*** ./node_modules/prop-types/factoryWithTypeCheckers.js ***!\n \\************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\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\nvar ReactIs = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\");\n\nvar assign = __webpack_require__(/*! object-assign */ \"./node_modules/object-assign/index.js\");\n\nvar ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\n\nvar checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ \"./node_modules/prop-types/checkPropTypes.js\");\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\n\nvar printWarning = function () {};\n\nif (true) {\n printWarning = function (text) {\n var message = 'Warning: ' + text;\n\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function (isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n\n var ANONYMOUS = '<<anonymous>>'; // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker\n };\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n\n /*eslint-disable no-self-compare*/\n\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n\n\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n } // Make `instanceof Error` still work for returned errors.\n\n\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (true) {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use `PropTypes.checkPropTypes()` to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n } else if ( true && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n\n if (!manualPropTypeCallCache[cacheKey] && // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3) {\n printWarning('You are manually calling a React.PropTypes validation ' + 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + 'and will throw in the standalone `prop-types` package. ' + 'You may be seeing this warning due to a third-party PropTypes ' + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.');\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n\n var propValue = props[propName];\n\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n\n if (error instanceof Error) {\n return error;\n }\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (true) {\n if (arguments.length > 1) {\n printWarning('Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).');\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n\n if (type === 'symbol') {\n return String(value);\n }\n\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n\n var propValue = props[propName];\n var propType = getPropType(propValue);\n\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n\n if (error instanceof Error) {\n return error;\n }\n }\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : undefined;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n\n if (typeof checker !== 'function') {\n printWarning('Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.');\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n\n if (!checker) {\n continue;\n }\n\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n\n if (error) {\n return error;\n }\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n } // We need to check all keys in case some are required but missing from\n // props.\n\n\n var allKeys = assign({}, props[propName], shapeTypes);\n\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n\n if (!checker) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') + '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' '));\n }\n\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n\n if (error) {\n return error;\n }\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n\n case 'boolean':\n return !propValue;\n\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n } // falsy value can't be a Symbol\n\n\n if (!propValue) {\n return false;\n } // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n\n\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n } // Fallback for non-spec compliant Symbols which are polyfilled.\n\n\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n } // Equivalent of `typeof` but with special handling for array and regexp.\n\n\n function getPropType(propValue) {\n var propType = typeof propValue;\n\n if (Array.isArray(propValue)) {\n return 'array';\n }\n\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n\n return propType;\n } // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n\n\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n\n var propType = getPropType(propValue);\n\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n\n return propType;\n } // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n\n\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n\n default:\n return type;\n }\n } // Returns class name of the object, if any.\n\n\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n};\n\n/***/ }),\n\n/***/ \"./node_modules/prop-types/index.js\":\n/*!******************************************!*\\\n !*** ./node_modules/prop-types/index.js ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\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 */\nif (true) {\n var ReactIs = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\"); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\n var throwOnDirectAccess = true;\n module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ \"./node_modules/prop-types/factoryWithTypeCheckers.js\")(ReactIs.isElement, throwOnDirectAccess);\n} else {}\n\n/***/ }),\n\n/***/ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***!\n \\*************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\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\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nmodule.exports = ReactPropTypesSecret;\n\n/***/ }),\n\n/***/ \"./node_modules/react-is/cjs/react-is.development.js\":\n/*!***********************************************************!*\\\n !*** ./node_modules/react-is/cjs/react-is.development.js ***!\n \\***********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/** @license React v16.9.0\n * react-is.development.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\nif (true) {\n (function () {\n 'use strict';\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n }); // The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n // nor polyfill, then a plain number is used for performance.\n\n var hasSymbol = typeof Symbol === 'function' && Symbol.for;\n var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\n var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\n var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\n var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\n var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\n var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\n var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n // (unstable) APIs that have been removed. Can we remove the symbols?\n\n var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\n var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\n var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\n var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\n var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\n var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\n var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\n var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\n\n function isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE);\n }\n /**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\n\n var lowPriorityWarning = function () {};\n\n {\n var printWarning = function (format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n }\n var lowPriorityWarning$1 = lowPriorityWarning;\n\n function typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n } // AsyncMode is deprecated along with isAsyncMode\n\n\n var AsyncMode = REACT_ASYNC_MODE_TYPE;\n var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\n var ContextConsumer = REACT_CONTEXT_TYPE;\n var ContextProvider = REACT_PROVIDER_TYPE;\n var Element = REACT_ELEMENT_TYPE;\n var ForwardRef = REACT_FORWARD_REF_TYPE;\n var Fragment = REACT_FRAGMENT_TYPE;\n var Lazy = REACT_LAZY_TYPE;\n var Memo = REACT_MEMO_TYPE;\n var Portal = REACT_PORTAL_TYPE;\n var Profiler = REACT_PROFILER_TYPE;\n var StrictMode = REACT_STRICT_MODE_TYPE;\n var Suspense = REACT_SUSPENSE_TYPE;\n var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\n function isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n }\n\n function isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n }\n\n function isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n }\n\n function isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n }\n\n function isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n\n function isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n }\n\n function isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n }\n\n function isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n }\n\n function isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n }\n\n function isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n }\n\n function isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n }\n\n function isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n }\n\n function isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n }\n\n exports.typeOf = typeOf;\n exports.AsyncMode = AsyncMode;\n exports.ConcurrentMode = ConcurrentMode;\n exports.ContextConsumer = ContextConsumer;\n exports.ContextProvider = ContextProvider;\n exports.Element = Element;\n exports.ForwardRef = ForwardRef;\n exports.Fragment = Fragment;\n exports.Lazy = Lazy;\n exports.Memo = Memo;\n exports.Portal = Portal;\n exports.Profiler = Profiler;\n exports.StrictMode = StrictMode;\n exports.Suspense = Suspense;\n exports.isValidElementType = isValidElementType;\n exports.isAsyncMode = isAsyncMode;\n exports.isConcurrentMode = isConcurrentMode;\n exports.isContextConsumer = isContextConsumer;\n exports.isContextProvider = isContextProvider;\n exports.isElement = isElement;\n exports.isForwardRef = isForwardRef;\n exports.isFragment = isFragment;\n exports.isLazy = isLazy;\n exports.isMemo = isMemo;\n exports.isPortal = isPortal;\n exports.isProfiler = isProfiler;\n exports.isStrictMode = isStrictMode;\n exports.isSuspense = isSuspense;\n })();\n}\n\n/***/ }),\n\n/***/ \"./node_modules/react-is/index.js\":\n/*!****************************************!*\\\n !*** ./node_modules/react-is/index.js ***!\n \\****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ \"./node_modules/react-is/cjs/react-is.development.js\");\n}\n\n/***/ }),\n\n/***/ \"./src/Component.js\":\n/*!**************************!*\\\n !*** ./src/Component.js ***!\n \\**************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var prismic_richtext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prismic-richtext */ \"./node_modules/prismic-richtext/dist/prismic-richtext.min.js\");\n/* harmony import */ var prismic_richtext__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prismic_richtext__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _richtext__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./richtext */ \"./src/richtext.js\");\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\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\n\n\n\n\n\nvar createHtmlSerializer = function createHtmlSerializer() {\n var bucket = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var serializers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var processors = serializers.reduce(function (acc, _ref) {\n var type = _ref.type,\n fn = _ref.fn;\n return Object.assign({}, acc, _defineProperty({}, type, fn));\n }, {});\n return function (type) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return processors[type] ? processors[type].apply(processors, [type].concat(args)) : null;\n };\n};\n\nvar RichText = function RichText(_ref2) {\n var Component = _ref2.Component,\n elements = _ref2.elements,\n htmlSerializer = _ref2.htmlSerializer,\n linkResolver = _ref2.linkResolver,\n render = _ref2.render,\n renderAsText = _ref2.renderAsText,\n serializeHyperlink = _ref2.serializeHyperlink,\n rest = _objectWithoutProperties(_ref2, [\"Component\", \"elements\", \"htmlSerializer\", \"linkResolver\", \"render\", \"renderAsText\", \"serializeHyperlink\"]);\n\n var maybeSerializer = htmlSerializer || serializeHyperlink && createHtmlSerializer({}, [{\n type: prismic_richtext__WEBPACK_IMPORTED_MODULE_2__[\"Elements\"].hyperlink,\n fn: serializeHyperlink\n }]);\n return render ? Object(_richtext__WEBPACK_IMPORTED_MODULE_3__[\"renderRichText\"])(render, linkResolver, maybeSerializer, Component, elements, rest) : null;\n};\n\nRichText.propTypes = {\n Component: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"elementType\"],\n linkResolver: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n htmlSerializer: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n elements: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"object\"],\n serializeHyperlink: function serializeHyperlink(props, _, componentName) {\n if (props.serializeHyperlink && props.htmlSerializer) {\n return new Error(\"You cannot specify both 'htmlSerializer' and 'serializeHyperlink'. The latter will be ignored by '\".concat(componentName, \"'.\"));\n }\n },\n render: function render(props, _, componentName) {\n if (!props.render) {\n return new Error(\"Prop 'render' was not specified in '\".concat(componentName, \"'.\"));\n }\n }\n};\nRichText.asText = _richtext__WEBPACK_IMPORTED_MODULE_3__[\"asText\"];\nRichText.render = _richtext__WEBPACK_IMPORTED_MODULE_3__[\"renderRichText\"];\nRichText.displayName = 'RichText';\n/* harmony default export */ __webpack_exports__[\"default\"] = (RichText);\n\n/***/ }),\n\n/***/ \"./src/embeds.js\":\n/*!***********************!*\\\n !*** ./src/embeds.js ***!\n \\***********************/\n/*! exports provided: createScript, embeds */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createScript\", function() { return createScript; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"embeds\", function() { return embeds; });\nfunction createScript(_ref) {\n var property = _ref.property,\n src = _ref.src,\n id = _ref.id;\n\n if (!window) {\n return;\n }\n\n (function (src, id) {\n var js,\n fjs = document.getElementsByTagName('script')[0],\n t = window[property] || {};\n\n if (document.getElementById(id)) {\n return t;\n }\n\n js = document.createElement('script');\n js.id = id;\n js.src = src;\n fjs.parentNode.insertBefore(js, fjs);\n t._e = [];\n\n t.ready = function (f) {\n t._e.push(f);\n };\n\n return t;\n })(src, id);\n}\nvar embeds = {\n Twitter: {\n property: 'twttr',\n src: 'https://platform.twitter.com/widgets.js',\n id: 'twitter-wjs',\n load: function load() {\n if (window && window.twttr && window.twttr.widgets) {\n window.twttr.widgets.load();\n }\n }\n },\n Facebook: {\n property: 'FB',\n src: 'https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.3',\n id: 'fb-wjs',\n load: function load(ref) {\n if (window && window.FB) {\n window.FB.XFBML.parse(ref);\n }\n }\n },\n Instagram: {\n property: 'instgrm',\n src: 'https://www.instagram.com/embed.js',\n id: 'insta-wjs',\n load: function load() {\n if (window && window.instgrm) {\n window.instgrm.Embeds.process();\n }\n }\n }\n};\n\n/***/ }),\n\n/***/ \"./src/index.js\":\n/*!**********************!*\\\n !*** ./src/index.js ***!\n \\**********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar PrismicHelpers = __webpack_require__(/*! prismic-helpers */ \"./node_modules/prismic-helpers/dist/prismic-helpers.min.js\");\n\nvar PrismicRichText = __webpack_require__(/*! prismic-richtext */ \"./node_modules/prismic-richtext/dist/prismic-richtext.min.js\");\n\nvar Component = __webpack_require__(/*! ./Component */ \"./src/Component.js\");\n\nmodule.exports = {\n Date: PrismicHelpers.Date,\n Elements: PrismicRichText.Elements,\n Link: PrismicHelpers.Link,\n RichText: Component[\"default\"]\n};\n\n/***/ }),\n\n/***/ \"./src/richtext.js\":\n/*!*************************!*\\\n !*** ./src/richtext.js ***!\n \\*************************/\n/*! exports provided: asText, renderRichText */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asText\", function() { return asText; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"renderRichText\", function() { return renderRichText; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prismic_richtext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prismic-richtext */ \"./node_modules/prismic-richtext/dist/prismic-richtext.min.js\");\n/* harmony import */ var prismic_richtext__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prismic_richtext__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var prismic_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prismic-helpers */ \"./node_modules/prismic-helpers/dist/prismic-helpers.min.js\");\n/* harmony import */ var prismic_helpers__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prismic_helpers__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _embeds__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./embeds */ \"./src/embeds.js\");\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\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\n\n\n\n\nvar createScript = typeof window !== \"undefined\" ? __webpack_require__(/*! ./embeds */ \"./src/embeds.js\").createScript : function () {};\n\nfunction serialize(linkResolver, elements, type, element, content, children, index) {\n if (elements[type]) {\n return serializeElement(elements[type], type, element, content, children, index);\n }\n\n switch (type) {\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].heading1:\n return serializeStandardTag('h1', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].heading2:\n return serializeStandardTag('h2', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].heading3:\n return serializeStandardTag('h3', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].heading4:\n return serializeStandardTag('h4', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].heading5:\n return serializeStandardTag('h5', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].heading6:\n return serializeStandardTag('h6', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].paragraph:\n return serializeStandardTag('p', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].preformatted:\n return serializeStandardTag('pre', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].strong:\n return serializeStandardTag('strong', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].em:\n return serializeStandardTag('em', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].listItem:\n return serializeStandardTag('li', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].oListItem:\n return serializeStandardTag('li', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].list:\n return serializeStandardTag('ul', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].oList:\n return serializeStandardTag('ol', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].image:\n return serializeImage(linkResolver, element, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].embed:\n return serializeEmbed(element, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].hyperlink:\n return serializeHyperlink(linkResolver, element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].label:\n return serializeLabel(element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].span:\n return serializeSpan(content);\n\n default:\n return null;\n }\n}\n\nfunction propsWithUniqueKey() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var key = arguments.length > 1 ? arguments[1] : undefined;\n return Object.assign(props, {\n key: key\n });\n}\n\nfunction serializeElement(Element, type, props, content, children, index) {\n return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(Element, _objectSpread({\n key: \"element-\".concat(type, \"-\").concat(index + 1)\n }, props, {\n children: children && children.length ? children : undefined\n }, type === 'image' ? {\n src: props.url,\n url: undefined\n } : null));\n}\n\nfunction serializeStandardTag(tag, element, children, key) {\n var props = element.label ? Object.assign({}, {\n className: element.label\n }) : {};\n return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(tag, propsWithUniqueKey(props, key), children);\n}\n\nfunction serializeHyperlink(linkResolver, element, children, key) {\n var targetAttr = element.data.target ? {\n target: element.data.target\n } : {};\n var relAttr = element.data.target ? {\n rel: 'noopener'\n } : {};\n var props = Object.assign({\n href: prismic_helpers__WEBPACK_IMPORTED_MODULE_2__[\"Link\"].url(element.data, linkResolver)\n }, targetAttr, relAttr);\n return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])('a', propsWithUniqueKey(props, key), children);\n}\n\nfunction serializeLabel(element, children, key) {\n var props = element.data ? Object.assign({}, {\n className: element.data.label\n }) : {};\n return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])('span', propsWithUniqueKey(props, key), children);\n}\n\nfunction serializeSpan(content) {\n if (content) {\n return content.split(\"\\n\").reduce(function (acc, p) {\n if (acc.length === 0) {\n return [p];\n } else {\n var brIndex = (acc.length + 1) / 2 - 1;\n var br = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])('br', propsWithUniqueKey({}, brIndex));\n return acc.concat([br, p]);\n }\n }, []);\n } else {\n return null;\n }\n}\n\nfunction serializeImage(linkResolver, element, key) {\n var linkUrl = element.linkTo ? prismic_helpers__WEBPACK_IMPORTED_MODULE_2__[\"Link\"].url(element.linkTo, linkResolver) : null;\n var linkTarget = element.linkTo && element.linkTo.target ? {\n target: element.linkTo.target\n } : {};\n var relAttr = linkTarget.target ? {\n rel: 'noopener'\n } : {};\n var img = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])('img', {\n src: element.url,\n alt: element.alt || ''\n });\n return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])('p', propsWithUniqueKey({\n className: [element.label || '', 'block-img'].join(' ')\n }, key), linkUrl ? Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])('a', Object.assign({\n href: linkUrl\n }, linkTarget, relAttr), img) : img);\n}\n\nfunction serializeEmbed(element, key) {\n if (_embeds__WEBPACK_IMPORTED_MODULE_3__[\"embeds\"][element.oembed.provider_name]) {\n createScript(_embeds__WEBPACK_IMPORTED_MODULE_3__[\"embeds\"][element.oembed.provider_name]);\n }\n\n var className = \"embed embed-\".concat(element.oembed.provider_name.toLowerCase());\n var props = Object.assign({\n \"data-oembed\": element.oembed.embed_url,\n \"data-oembed-type\": element.oembed.type,\n \"data-oembed-provider\": element.oembed.provider_name,\n ref: function ref(_ref) {\n if (_embeds__WEBPACK_IMPORTED_MODULE_3__[\"embeds\"][element.oembed.provider_name]) {\n _embeds__WEBPACK_IMPORTED_MODULE_3__[\"embeds\"][element.oembed.provider_name].load(_ref);\n }\n }\n }, element.label ? {\n className: \"\".concat(className, \" \").concat(element.label)\n } : {\n className: className\n });\n var embedHtml = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])('div', {\n dangerouslySetInnerHTML: {\n __html: element.oembed.html\n }\n });\n return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])('div', propsWithUniqueKey(props, key), embedHtml);\n}\n\nvar asText = function asText(structuredText) {\n if (Object.prototype.toString.call(structuredText) !== '[object Array]') {\n console.warn(\"Rich text argument should be an Array. Received \".concat(_typeof(structuredText)));\n return null;\n }\n\n return prismic_richtext__WEBPACK_IMPORTED_MODULE_1___default.a.asText(structuredText);\n};\nvar renderRichText = function renderRichText(richText, linkResolver, htmlSerializer) {\n var Component = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : react__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"];\n var elements = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n var args = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n if (Object.prototype.toString.call(richText) !== '[object Array]') {\n console.warn(\"Rich text argument should be an Array. Received \".concat(_typeof(richText)));\n return null;\n }\n\n var serializedChildren = prismic_richtext__WEBPACK_IMPORTED_MODULE_1___default.a.serialize(richText, serialize.bind(null, linkResolver, elements), htmlSerializer);\n return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(Component, args, serializedChildren);\n};\n\n/***/ }),\n\n/***/ 0:\n/*!****************************!*\\\n !*** multi ./src/index.js ***!\n \\****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! D:\\Libraries\\Desktop\\prismic\\sdk\\reactjs/src/index.js */\"./src/index.js\");\n\n\n/***/ }),\n\n/***/ \"react\":\n/*!************************!*\\\n !*** external \"react\" ***!\n \\************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_react__;\n\n/***/ })\n\n/******/ });\n});","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","'use strict';\n\nmodule.exports = require('./components/toast/Toast');\n","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\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 _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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\nvar identity = function identity(i) {\n return i;\n};\n\nexport var PLACE_HOLDER = {\n '@@functional/placeholder': true\n};\n\nvar isPlaceHolder = function isPlaceHolder(val) {\n return val === PLACE_HOLDER;\n};\n\nvar curry0 = function curry0(fn) {\n return function _curried() {\n if (arguments.length === 0 || arguments.length === 1 && isPlaceHolder(arguments.length <= 0 ? undefined : arguments[0])) {\n return _curried;\n }\n\n return fn.apply(void 0, arguments);\n };\n};\n\nvar curryN = function curryN(n, fn) {\n if (n === 1) {\n return fn;\n }\n\n return curry0(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsLength = args.filter(function (arg) {\n return arg !== PLACE_HOLDER;\n }).length;\n\n if (argsLength >= n) {\n return fn.apply(void 0, args);\n }\n\n return curryN(n - argsLength, curry0(function () {\n for (var _len2 = arguments.length, restArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n restArgs[_key2] = arguments[_key2];\n }\n\n var newArgs = args.map(function (arg) {\n return isPlaceHolder(arg) ? restArgs.shift() : arg;\n });\n return fn.apply(void 0, _toConsumableArray(newArgs).concat(restArgs));\n }));\n });\n};\n\nexport var curry = function curry(fn) {\n return curryN(fn.length, fn);\n};\nexport var range = function range(begin, end) {\n var arr = [];\n\n for (var i = begin; i < end; ++i) {\n arr[i - begin] = i;\n }\n\n return arr;\n};\nexport var map = curry(function (fn, arr) {\n if (Array.isArray(arr)) {\n return arr.map(fn);\n }\n\n return Object.keys(arr).map(function (key) {\n return arr[key];\n }).map(fn);\n});\nexport var compose = function compose() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var reverse = function reverse(arr) {\n if (Array.isArray(arr)) {\n return arr.reverse();\n } // can be string\n\n\n return arr.split('').reverse.join('');\n};\nexport var memoize = function memoize(fn) {\n var lastArgs = null;\n var lastResult = null;\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n if (lastArgs && args.every(function (val, i) {\n return val === lastArgs[i];\n })) {\n return lastResult;\n }\n\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n return lastResult;\n };\n};","/**\n * @fileOverview 一些公用的运算方法\n * @author xile611\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { curry } from './utils';\n/**\n * 获取数值的位数\n * 其中绝对值属于区间[0.1, 1), 得到的值为0\n * 绝对值属于区间[0.01, 0.1),得到的位数为 -1\n * 绝对值属于区间[0.001, 0.01),得到的位数为 -2\n *\n * @param {Number} value 数值\n * @return {Integer} 位数\n */\n\nfunction getDigitCount(value) {\n var result;\n\n if (value === 0) {\n result = 1;\n } else {\n result = Math.floor(new Decimal(value).abs().log(10).toNumber()) + 1;\n }\n\n return result;\n}\n/**\n * 按照固定的步长获取[start, end)这个区间的数据\n * 并且需要处理js计算精度的问题\n *\n * @param {Decimal} start 起点\n * @param {Decimal} end 终点,不包含该值\n * @param {Decimal} step 步长\n * @return {Array} 若干数值\n */\n\n\nfunction rangeStep(start, end, step) {\n var num = new Decimal(start);\n var i = 0;\n var result = []; // magic number to prevent infinite loop\n\n while (num.lt(end) && i < 100000) {\n result.push(num.toNumber());\n num = num.add(step);\n i++;\n }\n\n return result;\n}\n/**\n * 对数值进行线性插值\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} t [0, 1]内的某个值\n * @return {Number} 定义域内的某个值\n */\n\n\nvar interpolateNumber = curry(function (a, b, t) {\n var newA = +a;\n var newB = +b;\n return newA + t * (newB - newA);\n});\n/**\n * 线性插值的逆运算\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个范围内时,返回值属于[0, 1]\n */\n\nvar uninterpolateNumber = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return (x - a) / diff;\n});\n/**\n * 线性插值的逆运算,并且有截断的操作\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个区间内时,返回值属于[0, 1],\n * 当x不在 a ~ b这个区间时,会截断到 a ~ b 这个区间\n */\n\nvar uninterpolateTruncation = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return Math.max(0, Math.min(1, (x - a) / diff));\n});\nexport default {\n rangeStep: rangeStep,\n getDigitCount: getDigitCount,\n interpolateNumber: interpolateNumber,\n uninterpolateNumber: uninterpolateNumber,\n uninterpolateTruncation: uninterpolateTruncation\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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\n/**\n * @fileOverview calculate tick values of scale\n * @author xile611, arcthur\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { compose, range, memoize, map, reverse } from './util/utils';\nimport Arithmetic from './util/arithmetic';\n/**\n * Calculate a interval of a minimum value and a maximum value\n *\n * @param {Number} min The minimum value\n * @param {Number} max The maximum value\n * @return {Array} An interval\n */\n\nfunction getValidInterval(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n min = _ref2[0],\n max = _ref2[1];\n\n var validMin = min,\n validMax = max; // exchange\n\n if (min > max) {\n validMin = max;\n validMax = min;\n }\n\n return [validMin, validMax];\n}\n/**\n * Calculate the step which is easy to understand between ticks, like 10, 20, 25\n *\n * @param {Decimal} roughStep The rough step calculated by deviding the\n * difference by the tickCount\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Integer} correctionFactor A correction factor\n * @return {Decimal} The step which is easy to understand between two ticks\n */\n\n\nfunction getFormatStep(roughStep, allowDecimals, correctionFactor) {\n if (roughStep.lte(0)) {\n return new Decimal(0);\n }\n\n var digitCount = Arithmetic.getDigitCount(roughStep.toNumber()); // The ratio between the rough step and the smallest number which has a bigger\n // order of magnitudes than the rough step\n\n var digitCountValue = new Decimal(10).pow(digitCount);\n var stepRatio = roughStep.div(digitCountValue); // When an integer and a float multiplied, the accuracy of result may be wrong\n\n var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;\n var amendStepRatio = new Decimal(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);\n var formatStep = amendStepRatio.mul(digitCountValue);\n return allowDecimals ? formatStep : new Decimal(Math.ceil(formatStep));\n}\n/**\n * calculate the ticks when the minimum value equals to the maximum value\n *\n * @param {Number} value The minimum valuue which is also the maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickOfSingleValue(value, tickCount, allowDecimals) {\n var step = 1; // calculate the middle value of ticks\n\n var middle = new Decimal(value);\n\n if (!middle.isint() && allowDecimals) {\n var absVal = Math.abs(value);\n\n if (absVal < 1) {\n // The step should be a float number when the difference is smaller than 1\n step = new Decimal(10).pow(Arithmetic.getDigitCount(value) - 1);\n middle = new Decimal(Math.floor(middle.div(step).toNumber())).mul(step);\n } else if (absVal > 1) {\n // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1\n middle = new Decimal(Math.floor(value));\n }\n } else if (value === 0) {\n middle = new Decimal(Math.floor((tickCount - 1) / 2));\n } else if (!allowDecimals) {\n middle = new Decimal(Math.floor(value));\n }\n\n var middleIndex = Math.floor((tickCount - 1) / 2);\n var fn = compose(map(function (n) {\n return middle.add(new Decimal(n - middleIndex).mul(step)).toNumber();\n }), range);\n return fn(0, tickCount);\n}\n/**\n * Calculate the step\n *\n * @param {Number} min The minimum value of an interval\n * @param {Number} max The maximum value of an interval\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Number} correctionFactor A correction factor\n * @return {Object} The step, minimum value of ticks, maximum value of ticks\n */\n\n\nfunction calculateStep(min, max, tickCount, allowDecimals) {\n var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n\n // dirty hack (for recharts' test)\n if (!Number.isFinite((max - min) / (tickCount - 1))) {\n return {\n step: new Decimal(0),\n tickMin: new Decimal(0),\n tickMax: new Decimal(0)\n };\n } // The step which is easy to understand between two ticks\n\n\n var step = getFormatStep(new Decimal(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor); // A medial value of ticks\n\n var middle; // When 0 is inside the interval, 0 should be a tick\n\n if (min <= 0 && max >= 0) {\n middle = new Decimal(0);\n } else {\n // calculate the middle value\n middle = new Decimal(min).add(max).div(2); // minus modulo value\n\n middle = middle.sub(new Decimal(middle).mod(step));\n }\n\n var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());\n var upCount = Math.ceil(new Decimal(max).sub(middle).div(step).toNumber());\n var scaleCount = belowCount + upCount + 1;\n\n if (scaleCount > tickCount) {\n // When more ticks need to cover the interval, step should be bigger.\n return calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1);\n }\n\n if (scaleCount < tickCount) {\n // When less ticks can cover the interval, we should add some additional ticks\n upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;\n belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);\n }\n\n return {\n step: step,\n tickMin: middle.sub(new Decimal(belowCount).mul(step)),\n tickMax: middle.add(new Decimal(upCount).mul(step))\n };\n}\n/**\n * Calculate the ticks of an interval, the count of ticks will be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getNiceTickValuesFn(_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n min = _ref4[0],\n max = _ref4[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval = getValidInterval([min, max]),\n _getValidInterval2 = _slicedToArray(_getValidInterval, 2),\n cormin = _getValidInterval2[0],\n cormax = _getValidInterval2[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n var _values = cormax === Infinity ? [cormin].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return Infinity;\n }))) : [].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return -Infinity;\n })), [cormax]);\n\n return min > max ? reverse(_values) : _values;\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n } // Get the step between two ticks\n\n\n var _calculateStep = calculateStep(cormin, cormax, count, allowDecimals),\n step = _calculateStep.step,\n tickMin = _calculateStep.tickMin,\n tickMax = _calculateStep.tickMax;\n\n var values = Arithmetic.rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFn(_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n min = _ref6[0],\n max = _ref6[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval3 = getValidInterval([min, max]),\n _getValidInterval4 = _slicedToArray(_getValidInterval3, 2),\n cormin = _getValidInterval4[0],\n cormax = _getValidInterval4[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n }\n\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var fn = compose(map(function (n) {\n return new Decimal(cormin).add(new Decimal(n).mul(step)).toNumber();\n }), range);\n var values = fn(0, count).filter(function (entry) {\n return entry >= cormin && entry <= cormax;\n });\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed,\n * but the domain will be guaranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFixedDomainFn(_ref7, tickCount) {\n var _ref8 = _slicedToArray(_ref7, 2),\n min = _ref8[0],\n max = _ref8[1];\n\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n // More than two ticks should be return\n var _getValidInterval5 = getValidInterval([min, max]),\n _getValidInterval6 = _slicedToArray(_getValidInterval5, 2),\n cormin = _getValidInterval6[0],\n cormax = _getValidInterval6[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return [cormin];\n }\n\n var count = Math.max(tickCount, 2);\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var values = [].concat(_toConsumableArray(Arithmetic.rangeStep(new Decimal(cormin), new Decimal(cormax).sub(new Decimal(0.99).mul(step)), step)), [cormax]);\n return min > max ? reverse(values) : values;\n}\n\nexport var getNiceTickValues = memoize(getNiceTickValuesFn);\nexport var getTickValues = memoize(getTickValuesFn);\nexport var getTickValuesFixedDomain = memoize(getTickValuesFixedDomainFn);","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stackSeries(key) {\n const series = [];\n series.key = key;\n return series;\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var sz = Array.from(keys.apply(this, arguments), stackSeries),\n i, n = sz.length, j = -1,\n oz;\n\n for (const d of data) {\n for (i = 0, ++j; i < n; ++i) {\n (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n }\n }\n\n for (i = 0, oz = array(order(sz)); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import _isEqual from \"lodash/isEqual\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isNaN from \"lodash/isNaN\";\nimport _upperFirst from \"lodash/upperFirst\";\nimport _isString from \"lodash/isString\";\nimport _isArray from \"lodash/isArray\";\nimport _max from \"lodash/max\";\nimport _min from \"lodash/min\";\nimport _flatMap from \"lodash/flatMap\";\nimport _isFunction from \"lodash/isFunction\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\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 _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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 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\nimport { getNiceTickValues, getTickValuesFixedDomain } from 'recharts-scale';\nimport * as d3Scales from 'd3-scale';\nimport { stack as shapeStack, stackOrderNone, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle } from 'd3-shape';\nimport { isNumOrStr, uniqueId, isNumber, getPercentValue, mathSign, findEntryInArray } from './DataUtils';\nimport { Legend } from '../component/Legend';\nimport { findAllByType, findChildByType, getDisplayName } from './ReactUtils'; // TODO: Cause of circular dependency. Needs refactor.\n// import { RadiusAxisProps, AngleAxisProps } from '../polar/types';\n\nimport { filterProps } from './types';\nexport function getValueByDataKey(obj, dataKey, defaultValue) {\n if (_isNil(obj) || _isNil(dataKey)) {\n return defaultValue;\n }\n\n if (isNumOrStr(dataKey)) {\n return _get(obj, dataKey, defaultValue);\n }\n\n if (_isFunction(dataKey)) {\n return dataKey(obj);\n }\n\n return defaultValue;\n}\n/**\n * Get domain of data by key\n * @param {Array} data The data displayed in the chart\n * @param {String} key The unique key of a group of data\n * @param {String} type The type of axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain of data\n */\n\nexport function getDomainOfDataByKey(data, key, type, filterNil) {\n var flattenData = _flatMap(data, function (entry) {\n return getValueByDataKey(entry, key);\n });\n\n if (type === 'number') {\n var domain = flattenData.filter(function (entry) {\n return isNumber(entry) || parseFloat(entry);\n });\n return domain.length ? [_min(domain), _max(domain)] : [Infinity, -Infinity];\n }\n\n var validateData = filterNil ? flattenData.filter(function (entry) {\n return !_isNil(entry);\n }) : flattenData; // 支持Date类型的x轴\n\n return validateData.map(function (entry) {\n return isNumOrStr(entry) || entry instanceof Date ? entry : '';\n });\n}\nexport var calculateActiveTickIndex = function calculateActiveTickIndex(coordinate) {\n var _ticks$length;\n\n var ticks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var unsortedTicks = arguments.length > 2 ? arguments[2] : undefined;\n var axis = arguments.length > 3 ? arguments[3] : undefined;\n var index = -1;\n var len = (_ticks$length = ticks === null || ticks === void 0 ? void 0 : ticks.length) !== null && _ticks$length !== void 0 ? _ticks$length : 0;\n\n if (len > 1) {\n if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n var range = axis.range; // ticks are distributed in a circle\n\n for (var i = 0; i < len; i++) {\n var before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;\n var cur = unsortedTicks[i].coordinate;\n var after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;\n var sameDirectionCoord = void 0;\n\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n\n if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n sameDirectionCoord = after;\n var curInRange = cur + range[1] - range[0];\n diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n } else {\n sameDirectionCoord = before;\n var afterInRange = after + range[1] - range[0];\n diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n }\n\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n\n if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {\n index = unsortedTicks[i].index;\n break;\n }\n } else {\n var min = Math.min(before, after);\n var max = Math.max(before, after);\n\n if (coordinate > (min + cur) / 2 && coordinate <= (max + cur) / 2) {\n index = unsortedTicks[i].index;\n break;\n }\n }\n }\n } else {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n if (_i === 0 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i > 0 && _i < len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i === len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2) {\n index = ticks[_i].index;\n break;\n }\n }\n }\n } else {\n index = 0;\n }\n\n return index;\n};\n/**\n * Get the main color of each graphic item\n * @param {ReactElement} item A graphic item\n * @return {String} Color\n */\n\nexport var getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {\n var _ref = item,\n displayName = _ref.type.displayName; // TODO: check if displayName is valid.\n\n var _item$props = item.props,\n stroke = _item$props.stroke,\n fill = _item$props.fill;\n var result;\n\n switch (displayName) {\n case 'Line':\n result = stroke;\n break;\n\n case 'Area':\n case 'Radar':\n result = stroke && stroke !== 'none' ? stroke : fill;\n break;\n\n default:\n result = fill;\n break;\n }\n\n return result;\n};\nexport var getLegendProps = function getLegendProps(_ref2) {\n var children = _ref2.children,\n formattedGraphicalItems = _ref2.formattedGraphicalItems,\n legendWidth = _ref2.legendWidth,\n legendContent = _ref2.legendContent;\n var legendItem = findChildByType(children, Legend.displayName);\n\n if (!legendItem) {\n return null;\n }\n\n var legendData;\n\n if (legendItem.props && legendItem.props.payload) {\n legendData = legendItem.props && legendItem.props.payload;\n } else if (legendContent === 'children') {\n legendData = (formattedGraphicalItems || []).reduce(function (result, _ref3) {\n var item = _ref3.item,\n props = _ref3.props;\n var data = props.sectors || props.data || [];\n return result.concat(data.map(function (entry) {\n return {\n type: legendItem.props.iconType || item.props.legendType,\n value: entry.name,\n color: entry.fill,\n payload: entry\n };\n }));\n }, []);\n } else {\n legendData = (formattedGraphicalItems || []).map(function (_ref4) {\n var item = _ref4.item;\n var _item$props2 = item.props,\n dataKey = _item$props2.dataKey,\n name = _item$props2.name,\n legendType = _item$props2.legendType,\n hide = _item$props2.hide;\n return {\n inactive: hide,\n dataKey: dataKey,\n type: legendItem.props.iconType || legendType || 'square',\n color: getMainColorOfGraphicItem(item),\n value: name || dataKey,\n payload: item.props\n };\n });\n }\n\n return _objectSpread(_objectSpread(_objectSpread({}, legendItem.props), Legend.getWithHeight(legendItem, legendWidth)), {}, {\n payload: legendData,\n item: legendItem\n });\n};\n/**\n * Calculate the size of all groups for stacked bar graph\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @return {Object} The size of all groups\n */\n\nexport var getBarSizeList = function getBarSizeList(_ref5) {\n var globalSize = _ref5.barSize,\n _ref5$stackGroups = _ref5.stackGroups,\n stackGroups = _ref5$stackGroups === void 0 ? {} : _ref5$stackGroups;\n\n if (!stackGroups) {\n return {};\n }\n\n var result = {};\n var numericAxisIds = Object.keys(stackGroups);\n\n for (var i = 0, len = numericAxisIds.length; i < len; i++) {\n var sgs = stackGroups[numericAxisIds[i]].stackGroups;\n var stackIds = Object.keys(sgs);\n\n for (var j = 0, sLen = stackIds.length; j < sLen; j++) {\n var _sgs$stackIds$j = sgs[stackIds[j]],\n items = _sgs$stackIds$j.items,\n cateAxisId = _sgs$stackIds$j.cateAxisId;\n var barItems = items.filter(function (item) {\n return getDisplayName(item.type).indexOf('Bar') >= 0;\n });\n\n if (barItems && barItems.length) {\n var selfSize = barItems[0].props.barSize;\n var cateId = barItems[0].props[cateAxisId];\n\n if (!result[cateId]) {\n result[cateId] = [];\n }\n\n result[cateId].push({\n item: barItems[0],\n stackList: barItems.slice(1),\n barSize: _isNil(selfSize) ? globalSize : selfSize\n });\n }\n }\n }\n\n return result;\n};\n/**\n * Calculate the size of each bar and the gap between two bars\n * @param {Number} bandSize The size of each category\n * @param {sizeList} sizeList The size of all groups\n * @param {maxBarSize} maxBarSize The maximum size of bar\n * @return {Number} The size of each bar and the gap between two bars\n */\n\nexport var getBarPosition = function getBarPosition(_ref6) {\n var barGap = _ref6.barGap,\n barCategoryGap = _ref6.barCategoryGap,\n bandSize = _ref6.bandSize,\n _ref6$sizeList = _ref6.sizeList,\n sizeList = _ref6$sizeList === void 0 ? [] : _ref6$sizeList,\n maxBarSize = _ref6.maxBarSize;\n var len = sizeList.length;\n if (len < 1) return null;\n var realBarGap = getPercentValue(barGap, bandSize, 0, true);\n var result; // whether or not is barSize setted by user\n\n if (sizeList[0].barSize === +sizeList[0].barSize) {\n var useFull = false;\n var fullBarSize = bandSize / len;\n var sum = sizeList.reduce(function (res, entry) {\n return res + entry.barSize || 0;\n }, 0);\n sum += (len - 1) * realBarGap;\n\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\n\n var offset = (bandSize - sum) / 2 >> 0;\n var prev = {\n offset: offset - realBarGap,\n size: 0\n };\n result = sizeList.reduce(function (res, entry) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n size: useFull ? fullBarSize : entry.barSize\n }\n }]);\n prev = newRes[newRes.length - 1].position;\n\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: prev\n });\n });\n }\n\n return newRes;\n }, []);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n\n if (originalSize > 1) {\n originalSize >>= 0;\n }\n\n var size = maxBarSize === +maxBarSize ? Math.min(originalSize, maxBarSize) : originalSize;\n result = sizeList.reduce(function (res, entry, i) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n size: size\n }\n }]);\n\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: newRes[newRes.length - 1].position\n });\n });\n }\n\n return newRes;\n }, []);\n }\n\n return result;\n};\nexport var appendOffsetOfLegend = function appendOffsetOfLegend(offset, items, props, legendBox) {\n var children = props.children,\n width = props.width,\n margin = props.margin;\n var legendWidth = width - (margin.left || 0) - (margin.right || 0); // const legendHeight = height - (margin.top || 0) - (margin.bottom || 0);\n\n var legendProps = getLegendProps({\n children: children,\n legendWidth: legendWidth\n });\n var newOffset = offset;\n\n if (legendProps) {\n var box = legendBox || {};\n var align = legendProps.align,\n verticalAlign = legendProps.verticalAlign,\n layout = legendProps.layout;\n\n if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'center') && isNumber(offset[align])) {\n newOffset = _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, align, newOffset[align] + (box.width || 0)));\n }\n\n if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && isNumber(offset[verticalAlign])) {\n newOffset = _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, verticalAlign, newOffset[verticalAlign] + (box.height || 0)));\n }\n }\n\n return newOffset;\n};\n\nvar isErrorBarRelevantForAxis = function isErrorBarRelevantForAxis(layout, axisType, direction) {\n if (_isNil(axisType)) {\n return true;\n }\n\n if (layout === 'horizontal') {\n return axisType === 'yAxis';\n }\n\n if (layout === 'vertical') {\n return axisType === 'xAxis';\n }\n\n if (direction === 'x') {\n return axisType === 'xAxis';\n }\n\n if (direction === 'y') {\n return axisType === 'yAxis';\n }\n\n return true;\n};\n\nexport var getDomainOfErrorBars = function getDomainOfErrorBars(data, item, dataKey, layout, axisType) {\n var children = item.props.children;\n var errorBars = findAllByType(children, 'ErrorBar').filter(function (errorBarChild) {\n return isErrorBarRelevantForAxis(layout, axisType, errorBarChild.props.direction);\n });\n\n if (errorBars && errorBars.length) {\n var keys = errorBars.map(function (errorBarChild) {\n return errorBarChild.props.dataKey;\n });\n return data.reduce(function (result, entry) {\n var entryValue = getValueByDataKey(entry, dataKey, 0);\n var mainValue = _isArray(entryValue) ? [_min(entryValue), _max(entryValue)] : [entryValue, entryValue];\n var errorDomain = keys.reduce(function (prevErrorArr, k) {\n var errorValue = getValueByDataKey(entry, k, 0);\n var lowerValue = mainValue[0] - Math.abs(_isArray(errorValue) ? errorValue[0] : errorValue);\n var upperValue = mainValue[1] + Math.abs(_isArray(errorValue) ? errorValue[1] : errorValue);\n return [Math.min(lowerValue, prevErrorArr[0]), Math.max(upperValue, prevErrorArr[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(errorDomain[0], result[0]), Math.max(errorDomain[1], result[1])];\n }, [Infinity, -Infinity]);\n }\n\n return null;\n};\nexport var parseErrorBarsOfAxis = function parseErrorBarsOfAxis(data, items, dataKey, axisType, layout) {\n var domains = items.map(function (item) {\n return getDomainOfErrorBars(data, item, dataKey, layout, axisType);\n }).filter(function (entry) {\n return !_isNil(entry);\n });\n\n if (domains && domains.length) {\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n\n return null;\n};\n/**\n * Get domain of data by the configuration of item element\n * @param {Array} data The data displayed in the chart\n * @param {Array} items The instances of item\n * @param {String} type The type of axis, number - Number Axis, category - Category Axis\n * @param {LayoutType} layout The type of layout\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain\n */\n\nexport var getDomainOfItemsWithSameAxis = function getDomainOfItemsWithSameAxis(data, items, type, layout, filterNil) {\n var domains = items.map(function (item) {\n var dataKey = item.props.dataKey;\n\n if (type === 'number' && dataKey) {\n return getDomainOfErrorBars(data, item, dataKey, layout) || getDomainOfDataByKey(data, dataKey, type, filterNil);\n }\n\n return getDomainOfDataByKey(data, dataKey, type, filterNil);\n });\n\n if (type === 'number') {\n // Calculate the domain of number axis\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n\n var tag = {}; // Get the union set of category axis\n\n return domains.reduce(function (result, entry) {\n for (var i = 0, len = entry.length; i < len; i++) {\n if (!tag[entry[i]]) {\n tag[entry[i]] = true;\n result.push(entry[i]);\n }\n }\n\n return result;\n }, []);\n};\nexport var isCategoricalAxis = function isCategoricalAxis(layout, axisType) {\n return layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';\n};\n/**\n * Calculate the Coordinates of grid\n * @param {Array} ticks The ticks in axis\n * @param {Number} min The minimun value of axis\n * @param {Number} max The maximun value of axis\n * @return {Array} Coordinates\n */\n\nexport var getCoordinatesOfGrid = function getCoordinatesOfGrid(ticks, min, max) {\n var hasMin, hasMax;\n var values = ticks.map(function (entry) {\n if (entry.coordinate === min) {\n hasMin = true;\n }\n\n if (entry.coordinate === max) {\n hasMax = true;\n }\n\n return entry.coordinate;\n });\n\n if (!hasMin) {\n values.push(min);\n }\n\n if (!hasMax) {\n values.push(max);\n }\n\n return values;\n};\n/**\n * Get the ticks of an axis\n * @param {Object} axis The configuration of an axis\n * @param {Boolean} isGrid Whether or not are the ticks in grid\n * @param {Boolean} isAll Return the ticks of all the points or not\n * @return {Array} Ticks\n */\n\nexport var getTicksOfAxis = function getTicksOfAxis(axis, isGrid, isAll) {\n if (!axis) return null;\n var scale = axis.scale;\n var duplicateDomain = axis.duplicateDomain,\n type = axis.type,\n range = axis.range;\n var offsetForBand = axis.realScaleType === 'scaleBand' ? scale.bandwidth() / 2 : 2;\n var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;\n offset = axis.axisType === 'angleAxis' ? mathSign(range[0] - range[1]) * 2 * offset : offset; // The ticks setted by user should only affect the ticks adjacent to axis line\n\n if (isGrid && (axis.ticks || axis.niceTicks)) {\n return (axis.ticks || axis.niceTicks).map(function (entry) {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n return {\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset: offset\n };\n });\n } // When axis is a categorial axis, but the type of axis is number or the scale of axis is not \"auto\"\n\n\n if (axis.isCategorical && axis.categoricalDomain) {\n return axis.categoricalDomain.map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n index: index,\n offset: offset\n };\n });\n }\n\n if (scale.ticks && !isAll) {\n return scale.ticks(axis.tickCount).map(function (entry) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n offset: offset\n };\n });\n } // When axis has duplicated text, serial numbers are used to generate scale\n\n\n return scale.domain().map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index: index,\n offset: offset\n };\n });\n};\n/**\n * combine the handlers\n * @param {Function} defaultHandler Internal private handler\n * @param {Function} parentHandler Handler function specified in parent component\n * @param {Function} childHandler Handler function specified in child component\n * @return {Function} The combined handler\n */\n\nexport var combineEventHandlers = function combineEventHandlers(defaultHandler, parentHandler, childHandler) {\n var customizedHandler;\n\n if (_isFunction(childHandler)) {\n customizedHandler = childHandler;\n } else if (_isFunction(parentHandler)) {\n customizedHandler = parentHandler;\n }\n\n if (_isFunction(defaultHandler) || customizedHandler) {\n return function (arg1, arg2, arg3, arg4) {\n if (_isFunction(defaultHandler)) {\n defaultHandler(arg1, arg2, arg3, arg4);\n }\n\n if (_isFunction(customizedHandler)) {\n customizedHandler(arg1, arg2, arg3, arg4);\n }\n };\n }\n\n return null;\n};\n/**\n * Parse the scale function of axis\n * @param {Object} axis The option of axis\n * @param {String} chartType The displayName of chart\n * @param {Boolean} hasBar if it has a bar\n * @return {Function} The scale function\n */\n\nexport var parseScale = function parseScale(axis, chartType, hasBar) {\n var scale = axis.scale,\n type = axis.type,\n layout = axis.layout,\n axisType = axis.axisType;\n\n if (scale === 'auto') {\n if (layout === 'radial' && axisType === 'radiusAxis') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n\n if (layout === 'radial' && axisType === 'angleAxis') {\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n\n if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0 || chartType.indexOf('ComposedChart') >= 0 && !hasBar)) {\n return {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n }\n\n if (type === 'category') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n\n if (_isString(scale)) {\n var name = \"scale\".concat(_upperFirst(scale));\n return {\n scale: (d3Scales[name] || d3Scales.scalePoint)(),\n realScaleType: d3Scales[name] ? name : 'point'\n };\n }\n\n return _isFunction(scale) ? {\n scale: scale\n } : {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n};\nvar EPS = 1e-4;\nexport var checkDomainOfScale = function checkDomainOfScale(scale) {\n var domain = scale.domain();\n\n if (!domain || domain.length <= 2) {\n return;\n }\n\n var len = domain.length;\n var range = scale.range();\n var min = Math.min(range[0], range[1]) - EPS;\n var max = Math.max(range[0], range[1]) + EPS;\n var first = scale(domain[0]);\n var last = scale(domain[len - 1]);\n\n if (first < min || first > max || last < min || last > max) {\n scale.domain([domain[0], domain[len - 1]]);\n }\n};\nexport var findPositionOfBar = function findPositionOfBar(barPosition, child) {\n if (!barPosition) {\n return null;\n }\n\n for (var i = 0, len = barPosition.length; i < len; i++) {\n if (barPosition[i].item === child) {\n return barPosition[i].position;\n }\n }\n\n return null;\n};\nexport var truncateByDomain = function truncateByDomain(value, domain) {\n if (!domain || domain.length !== 2 || !isNumber(domain[0]) || !isNumber(domain[1])) {\n return value;\n }\n\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n var result = [value[0], value[1]];\n\n if (!isNumber(value[0]) || value[0] < min) {\n result[0] = min;\n }\n\n if (!isNumber(value[1]) || value[1] > max) {\n result[1] = max;\n }\n\n if (result[0] > max) {\n result[0] = max;\n }\n\n if (result[1] < min) {\n result[1] = min;\n }\n\n return result;\n};\n/* eslint no-param-reassign: 0 */\n\nexport var offsetSign = function offsetSign(series) {\n var n = series.length;\n\n if (n <= 0) {\n return;\n }\n\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n\n for (var i = 0; i < n; ++i) {\n var value = _isNaN(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n /* eslint-disable prefer-destructuring */\n\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = negative;\n series[i][j][1] = negative + value;\n negative = series[i][j][1];\n }\n /* eslint-enable prefer-destructuring */\n\n }\n }\n};\n/* eslint no-param-reassign: 0 */\n\nexport var offsetPositive = function offsetPositive(series) {\n var n = series.length;\n\n if (n <= 0) {\n return;\n }\n\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n\n for (var i = 0; i < n; ++i) {\n var value = _isNaN(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n /* eslint-disable prefer-destructuring */\n\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = 0;\n series[i][j][1] = 0;\n }\n /* eslint-enable prefer-destructuring */\n\n }\n }\n};\nvar STACK_OFFSET_MAP = {\n sign: offsetSign,\n expand: stackOffsetExpand,\n none: stackOffsetNone,\n silhouette: stackOffsetSilhouette,\n wiggle: stackOffsetWiggle,\n positive: offsetPositive\n};\nexport var getStackedData = function getStackedData(data, stackItems, offsetType) {\n var dataKeys = stackItems.map(function (item) {\n return item.props.dataKey;\n });\n var stack = shapeStack().keys(dataKeys).value(function (d, key) {\n return +getValueByDataKey(d, key, 0);\n }).order(stackOrderNone).offset(STACK_OFFSET_MAP[offsetType]);\n return stack(data);\n};\nexport var getStackGroupsByAxisId = function getStackGroupsByAxisId(data, _items, numericAxisId, cateAxisId, offsetType, reverseStackOrder) {\n if (!data) {\n return null;\n } // reversing items to affect render order (for layering)\n\n\n var items = reverseStackOrder ? _items.reverse() : _items;\n var stackGroups = items.reduce(function (result, item) {\n var _item$props3 = item.props,\n stackId = _item$props3.stackId,\n hide = _item$props3.hide;\n\n if (hide) {\n return result;\n }\n\n var axisId = item.props[numericAxisId];\n var parentGroup = result[axisId] || {\n hasStack: false,\n stackGroups: {}\n };\n\n if (isNumOrStr(stackId)) {\n var childGroup = parentGroup.stackGroups[stackId] || {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: []\n };\n childGroup.items.push(item);\n parentGroup.hasStack = true;\n parentGroup.stackGroups[stackId] = childGroup;\n } else {\n parentGroup.stackGroups[uniqueId('_stackId_')] = {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: [item]\n };\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, parentGroup));\n }, {});\n return Object.keys(stackGroups).reduce(function (result, axisId) {\n var group = stackGroups[axisId];\n\n if (group.hasStack) {\n group.stackGroups = Object.keys(group.stackGroups).reduce(function (res, stackId) {\n var g = group.stackGroups[stackId];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, stackId, {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: g.items,\n stackedData: getStackedData(data, g.items, offsetType)\n }));\n }, {});\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, group));\n }, {});\n};\n/**\n * get domain of ticks\n * @param {Array} ticks Ticks of axis\n * @param {String} type The type of axis\n * @return {Array} domain\n */\n\nexport var calculateDomainOfTicks = function calculateDomainOfTicks(ticks, type) {\n if (type === 'number') {\n return [_min(ticks), _max(ticks)];\n }\n\n return ticks;\n};\n/**\n * Configure the scale function of axis\n * @param {Object} scale The scale function\n * @param {Object} opts The configuration of axis\n * @return {Object} null\n */\n\nexport var getTicksOfScale = function getTicksOfScale(scale, opts) {\n var realScaleType = opts.realScaleType,\n type = opts.type,\n tickCount = opts.tickCount,\n originalDomain = opts.originalDomain,\n allowDecimals = opts.allowDecimals;\n var scaleType = realScaleType || opts.scale;\n\n if (scaleType !== 'auto' && scaleType !== 'linear') {\n return null;\n }\n\n if (tickCount && type === 'number' && originalDomain && (originalDomain[0] === 'auto' || originalDomain[1] === 'auto')) {\n // Calculate the ticks by the number of grid when the axis is a number axis\n var domain = scale.domain();\n\n if (!domain.length) {\n return null;\n }\n\n var tickValues = getNiceTickValues(domain, tickCount, allowDecimals);\n scale.domain(calculateDomainOfTicks(tickValues, type));\n return {\n niceTicks: tickValues\n };\n }\n\n if (tickCount && type === 'number') {\n var _domain = scale.domain();\n\n var _tickValues = getTickValuesFixedDomain(_domain, tickCount, allowDecimals);\n\n return {\n niceTicks: _tickValues\n };\n }\n\n return null;\n};\nexport var getCateCoordinateOfLine = function getCateCoordinateOfLine(_ref7) {\n var axis = _ref7.axis,\n ticks = _ref7.ticks,\n bandSize = _ref7.bandSize,\n entry = _ref7.entry,\n index = _ref7.index,\n dataKey = _ref7.dataKey;\n\n if (axis.type === 'category') {\n // find coordinate of category axis by the value of category\n if (!axis.allowDuplicatedCategory && axis.dataKey && !_isNil(entry[axis.dataKey])) {\n var matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);\n\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n\n var value = getValueByDataKey(entry, !_isNil(dataKey) ? dataKey : axis.dataKey);\n return !_isNil(value) ? axis.scale(value) : null;\n};\nexport var getCateCoordinateOfBar = function getCateCoordinateOfBar(_ref8) {\n var axis = _ref8.axis,\n ticks = _ref8.ticks,\n offset = _ref8.offset,\n bandSize = _ref8.bandSize,\n entry = _ref8.entry,\n index = _ref8.index;\n\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\n\n var value = getValueByDataKey(entry, axis.dataKey, axis.domain[index]);\n return !_isNil(value) ? axis.scale(value) - bandSize / 2 + offset : null;\n};\nexport var getBaseValueOfBar = function getBaseValueOfBar(_ref9) {\n var numericAxis = _ref9.numericAxis;\n var domain = numericAxis.scale.domain();\n\n if (numericAxis.type === 'number') {\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n\n if (min <= 0 && max >= 0) {\n return 0;\n }\n\n if (max < 0) {\n return max;\n }\n\n return min;\n }\n\n return domain[0];\n};\nexport var getStackedDataOfItem = function getStackedDataOfItem(item, stackGroups) {\n var stackId = item.props.stackId;\n\n if (isNumOrStr(stackId)) {\n var group = stackGroups[stackId];\n\n if (group && group.items.length) {\n var itemIndex = -1;\n\n for (var i = 0, len = group.items.length; i < len; i++) {\n if (group.items[i] === item) {\n itemIndex = i;\n break;\n }\n }\n\n return itemIndex >= 0 ? group.stackedData[itemIndex] : null;\n }\n }\n\n return null;\n};\n\nvar getDomainOfSingle = function getDomainOfSingle(data) {\n return data.reduce(function (result, entry) {\n return [_min(entry.concat([result[0]]).filter(isNumber)), _max(entry.concat([result[1]]).filter(isNumber))];\n }, [Infinity, -Infinity]);\n};\n\nexport var getDomainOfStackGroups = function getDomainOfStackGroups(stackGroups, startIndex, endIndex) {\n return Object.keys(stackGroups).reduce(function (result, stackId) {\n var group = stackGroups[stackId];\n var stackedData = group.stackedData;\n var domain = stackedData.reduce(function (res, entry) {\n var s = getDomainOfSingle(entry.slice(startIndex, endIndex + 1));\n return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];\n }, [Infinity, -Infinity]).map(function (result) {\n return result === Infinity || result === -Infinity ? 0 : result;\n });\n};\nexport var MIN_VALUE_REG = /^dataMin[\\s]*-[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var MAX_VALUE_REG = /^dataMax[\\s]*\\+[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var parseSpecifiedDomain = function parseSpecifiedDomain(specifiedDomain, dataDomain, allowDataOverflow) {\n if (_isFunction(specifiedDomain)) {\n return specifiedDomain(dataDomain, allowDataOverflow);\n }\n\n if (!_isArray(specifiedDomain)) {\n return dataDomain;\n }\n\n var domain = [];\n /* eslint-disable prefer-destructuring */\n\n if (isNumber(specifiedDomain[0])) {\n domain[0] = allowDataOverflow ? specifiedDomain[0] : Math.min(specifiedDomain[0], dataDomain[0]);\n } else if (MIN_VALUE_REG.test(specifiedDomain[0])) {\n var value = +MIN_VALUE_REG.exec(specifiedDomain[0])[1];\n domain[0] = dataDomain[0] - value;\n } else if (_isFunction(specifiedDomain[0])) {\n domain[0] = specifiedDomain[0](dataDomain[0]);\n } else {\n domain[0] = dataDomain[0];\n }\n\n if (isNumber(specifiedDomain[1])) {\n domain[1] = allowDataOverflow ? specifiedDomain[1] : Math.max(specifiedDomain[1], dataDomain[1]);\n } else if (MAX_VALUE_REG.test(specifiedDomain[1])) {\n var _value = +MAX_VALUE_REG.exec(specifiedDomain[1])[1];\n\n domain[1] = dataDomain[1] + _value;\n } else if (_isFunction(specifiedDomain[1])) {\n domain[1] = specifiedDomain[1](dataDomain[1]);\n } else {\n domain[1] = dataDomain[1];\n }\n /* eslint-enable prefer-destructuring */\n\n\n return domain;\n};\n/**\n * Calculate the size between two category\n * @param {Object} axis The options of axis\n * @param {Array} ticks The ticks of axis\n * @param {Boolean} isBar if items in axis are bars\n * @return {Number} Size\n */\n\nexport var getBandSizeOfAxis = function getBandSizeOfAxis(axis, ticks, isBar) {\n if (axis && axis.scale && axis.scale.bandwidth) {\n var bandWidth = axis.scale.bandwidth();\n\n if (!isBar || bandWidth > 0) {\n return bandWidth;\n }\n }\n\n if (axis && ticks && ticks.length >= 2) {\n var orderedTicks = _sortBy(ticks, function (o) {\n return o.coordinate;\n });\n\n var bandSize = Infinity;\n\n for (var i = 1, len = orderedTicks.length; i < len; i++) {\n var cur = orderedTicks[i];\n var prev = orderedTicks[i - 1];\n bandSize = Math.min((cur.coordinate || 0) - (prev.coordinate || 0), bandSize);\n }\n\n return bandSize === Infinity ? 0 : bandSize;\n }\n\n return isBar ? undefined : 0;\n};\n/**\n * parse the domain of a category axis when a domain is specified\n * @param {Array} specifiedDomain The domain specified by users\n * @param {Array} calculatedDomain The domain calculated by dateKey\n * @param {ReactElement} axisChild The axis element\n * @returns {Array} domains\n */\n\nexport var parseDomainOfCategoryAxis = function parseDomainOfCategoryAxis(specifiedDomain, calculatedDomain, axisChild) {\n if (!specifiedDomain || !specifiedDomain.length) {\n return calculatedDomain;\n }\n\n if (_isEqual(specifiedDomain, _get(axisChild, 'type.defaultProps.domain'))) {\n return calculatedDomain;\n }\n\n return specifiedDomain;\n};\nexport var getTooltipItem = function getTooltipItem(graphicalItem, payload) {\n var _graphicalItem$props = graphicalItem.props,\n dataKey = _graphicalItem$props.dataKey,\n name = _graphicalItem$props.name,\n unit = _graphicalItem$props.unit,\n formatter = _graphicalItem$props.formatter,\n tooltipType = _graphicalItem$props.tooltipType,\n chartType = _graphicalItem$props.chartType;\n return _objectSpread(_objectSpread({}, filterProps(graphicalItem)), {}, {\n dataKey: dataKey,\n unit: unit,\n formatter: formatter,\n name: name || dataKey,\n color: getMainColorOfGraphicItem(graphicalItem),\n value: getValueByDataKey(payload, dataKey),\n type: tooltipType,\n payload: payload,\n chartType: chartType\n });\n};","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","import _isObject from \"lodash/isObject\";\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\nimport { isValidElement } from 'react';\nvar SVGContainerPropKeys = ['viewBox', 'children'];\nvar SVGElementPropKeys = ['aria-activedescendant', 'aria-atomic', 'aria-autocomplete', 'aria-busy', 'aria-checked', 'aria-colcount', 'aria-colindex', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-details', 'aria-disabled', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-modal', 'aria-multiline', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-placeholder', 'aria-posinset', 'aria-pressed', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-rowcount', 'aria-rowindex', 'aria-rowspan', 'aria-selected', 'aria-setsize', 'aria-sort', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext', 'className', 'color', 'height', 'id', 'lang', 'max', 'media', 'method', 'min', 'name', 'style', 'target', 'type', 'width', 'role', 'tabIndex', 'accentHeight', 'accumulate', 'additive', 'alignmentBaseline', 'allowReorder', 'alphabetic', 'amplitude', 'arabicForm', 'ascent', 'attributeName', 'attributeType', 'autoReverse', 'azimuth', 'baseFrequency', 'baselineShift', 'baseProfile', 'bbox', 'begin', 'bias', 'by', 'calcMode', 'capHeight', 'clip', 'clipPath', 'clipPathUnits', 'clipRule', 'colorInterpolation', 'colorInterpolationFilters', 'colorProfile', 'colorRendering', 'contentScriptType', 'contentStyleType', 'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant', 'direction', 'display', 'divisor', 'dominantBaseline', 'dur', 'dx', 'dy', 'edgeMode', 'elevation', 'enableBackground', 'end', 'exponent', 'externalResourcesRequired', 'fill', 'fillOpacity', 'fillRule', 'filter', 'filterRes', 'filterUnits', 'floodColor', 'floodOpacity', 'focusable', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontWeight', 'format', 'from', 'fx', 'fy', 'g1', 'g2', 'glyphName', 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'glyphRef', 'gradientTransform', 'gradientUnits', 'hanging', 'horizAdvX', 'horizOriginX', 'href', 'ideographic', 'imageRendering', 'in2', 'in', 'intercept', 'k1', 'k2', 'k3', 'k4', 'k', 'kernelMatrix', 'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'letterSpacing', 'lightingColor', 'limitingConeAngle', 'local', 'markerEnd', 'markerHeight', 'markerMid', 'markerStart', 'markerUnits', 'markerWidth', 'mask', 'maskContentUnits', 'maskUnits', 'mathematical', 'mode', 'numOctaves', 'offset', 'opacity', 'operator', 'order', 'orient', 'orientation', 'origin', 'overflow', 'overlinePosition', 'overlineThickness', 'paintOrder', 'panose1', 'pathLength', 'patternContentUnits', 'patternTransform', 'patternUnits', 'pointerEvents', 'points', 'pointsAtX', 'pointsAtY', 'pointsAtZ', 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius', 'refX', 'refY', 'renderingIntent', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'result', 'rotate', 'rx', 'ry', 'seed', 'shapeRendering', 'slope', 'spacing', 'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset', 'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stopColor', 'stopOpacity', 'strikethroughPosition', 'strikethroughThickness', 'string', 'stroke', 'strokeDasharray', 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY', 'textAnchor', 'textDecoration', 'textLength', 'textRendering', 'to', 'transform', 'u1', 'u2', 'underlinePosition', 'underlineThickness', 'unicode', 'unicodeBidi', 'unicodeRange', 'unitsPerEm', 'vAlphabetic', 'values', 'vectorEffect', 'version', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'vHanging', 'vIdeographic', 'viewTarget', 'visibility', 'vMathematical', 'widths', 'wordSpacing', 'writingMode', 'x1', 'x2', 'x', 'xChannelSelector', 'xHeight', 'xlinkActuate', 'xlinkArcrole', 'xlinkHref', 'xlinkRole', 'xlinkShow', 'xlinkTitle', 'xlinkType', 'xmlBase', 'xmlLang', 'xmlns', 'xmlnsXlink', 'xmlSpace', 'y1', 'y2', 'y', 'yChannelSelector', 'z', 'zoomAndPan', 'ref', 'key', 'angle'];\nvar EventKeys = ['dangerouslySetInnerHTML', 'onCopy', 'onCopyCapture', 'onCut', 'onCutCapture', 'onPaste', 'onPasteCapture', 'onCompositionEnd', 'onCompositionEndCapture', 'onCompositionStart', 'onCompositionStartCapture', 'onCompositionUpdate', 'onCompositionUpdateCapture', 'onFocus', 'onFocusCapture', 'onBlur', 'onBlurCapture', 'onChange', 'onChangeCapture', 'onBeforeInput', 'onBeforeInputCapture', 'onInput', 'onInputCapture', 'onReset', 'onResetCapture', 'onSubmit', 'onSubmitCapture', 'onInvalid', 'onInvalidCapture', 'onLoad', 'onLoadCapture', 'onError', 'onErrorCapture', 'onKeyDown', 'onKeyDownCapture', 'onKeyPress', 'onKeyPressCapture', 'onKeyUp', 'onKeyUpCapture', 'onAbort', 'onAbortCapture', 'onCanPlay', 'onCanPlayCapture', 'onCanPlayThrough', 'onCanPlayThroughCapture', 'onDurationChange', 'onDurationChangeCapture', 'onEmptied', 'onEmptiedCapture', 'onEncrypted', 'onEncryptedCapture', 'onEnded', 'onEndedCapture', 'onLoadedData', 'onLoadedDataCapture', 'onLoadedMetadata', 'onLoadedMetadataCapture', 'onLoadStart', 'onLoadStartCapture', 'onPause', 'onPauseCapture', 'onPlay', 'onPlayCapture', 'onPlaying', 'onPlayingCapture', 'onProgress', 'onProgressCapture', 'onRateChange', 'onRateChangeCapture', 'onSeeked', 'onSeekedCapture', 'onSeeking', 'onSeekingCapture', 'onStalled', 'onStalledCapture', 'onSuspend', 'onSuspendCapture', 'onTimeUpdate', 'onTimeUpdateCapture', 'onVolumeChange', 'onVolumeChangeCapture', 'onWaiting', 'onWaitingCapture', 'onAuxClick', 'onAuxClickCapture', 'onClick', 'onClickCapture', 'onContextMenu', 'onContextMenuCapture', 'onDoubleClick', 'onDoubleClickCapture', 'onDrag', 'onDragCapture', 'onDragEnd', 'onDragEndCapture', 'onDragEnter', 'onDragEnterCapture', 'onDragExit', 'onDragExitCapture', 'onDragLeave', 'onDragLeaveCapture', 'onDragOver', 'onDragOverCapture', 'onDragStart', 'onDragStartCapture', 'onDrop', 'onDropCapture', 'onMouseDown', 'onMouseDownCapture', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseMoveCapture', 'onMouseOut', 'onMouseOutCapture', 'onMouseOver', 'onMouseOverCapture', 'onMouseUp', 'onMouseUpCapture', 'onSelect', 'onSelectCapture', 'onTouchCancel', 'onTouchCancelCapture', 'onTouchEnd', 'onTouchEndCapture', 'onTouchMove', 'onTouchMoveCapture', 'onTouchStart', 'onTouchStartCapture', 'onPointerDown', 'onPointerDownCapture', 'onPointerMove', 'onPointerMoveCapture', 'onPointerUp', 'onPointerUpCapture', 'onPointerCancel', 'onPointerCancelCapture', 'onPointerEnter', 'onPointerEnterCapture', 'onPointerLeave', 'onPointerLeaveCapture', 'onPointerOver', 'onPointerOverCapture', 'onPointerOut', 'onPointerOutCapture', 'onGotPointerCapture', 'onGotPointerCaptureCapture', 'onLostPointerCapture', 'onLostPointerCaptureCapture', 'onScroll', 'onScrollCapture', 'onWheel', 'onWheelCapture', 'onAnimationStart', 'onAnimationStartCapture', 'onAnimationEnd', 'onAnimationEndCapture', 'onAnimationIteration', 'onAnimationIterationCapture', 'onTransitionEnd', 'onTransitionEndCapture']; // Animation Types => TODO: Should be moved when react-smooth is typescriptified.\n\nexport var filterProps = function filterProps(props, includeEvents, isSvg) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n\n var inputProps = props;\n\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n\n if (!_isObject(inputProps)) {\n return null;\n }\n\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n // viewBox only exist in <svg />\n if (SVGElementPropKeys.includes(key) || isSvg && SVGContainerPropKeys.includes(key) || includeEvents && EventKeys.includes(key)) {\n out[key] = inputProps[key];\n }\n });\n return out;\n};\nexport var adaptEventHandlers = function adaptEventHandlers(props, newHandler) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n\n var inputProps = props;\n\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n\n if (!_isObject(inputProps)) {\n return null;\n }\n\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n if (EventKeys.includes(key)) {\n out[key] = newHandler || function (e) {\n return inputProps[key](inputProps, e);\n };\n }\n });\n return out;\n};\n\nvar getEventHandlerOfChild = function getEventHandlerOfChild(originalHandler, data, index) {\n return function (e) {\n originalHandler(data, index, e);\n return null;\n };\n};\n\nexport var adaptEventsOfChild = function adaptEventsOfChild(props, data, index) {\n if (!_isObject(props) || _typeof(props) !== 'object') {\n return null;\n }\n\n var out = null;\n Object.keys(props).forEach(function (key) {\n var item = props[key];\n\n if (EventKeys.includes(key) && typeof item === 'function') {\n if (!out) out = {};\n out[key] = getEventHandlerOfChild(item, data, index);\n }\n });\n return out;\n};","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","'use strict';\n\nmodule.exports = require('./components/dialog/Dialog');","'use strict';\n\nmodule.exports = require('./components/column/Column');","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\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 = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.classNames = classNames;\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) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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\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\nfunction classNames() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args) {\n var classes = [];\n\n for (var i = 0; i < args.length; i++) {\n var className = args[i];\n if (!className) continue;\n\n var type = _typeof(className);\n\n if (type === 'string' || type === 'number') {\n classes.push(className);\n } else if (type === 'object') {\n var _classes = Array.isArray(className) ? className : Object.entries(className).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n return !!value ? key : null;\n });\n\n classes = _classes.length ? classes.concat(_classes.filter(function (c) {\n return !!c;\n })) : classes;\n }\n }\n\n return classes.join(' ');\n }\n\n return null;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","'use strict';\n\nmodule.exports = require('./components/inputtext/InputText');","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","import _isString from \"lodash/isString\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\nimport _isArray from \"lodash/isArray\";\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 { Children } from 'react';\nimport { isFragment } from 'react-is';\nimport { isNumber } from './DataUtils';\nimport { shallowEqual } from './ShallowEqual';\nvar REACT_BROWSER_EVENT_MAP = {\n click: 'onClick',\n mousedown: 'onMouseDown',\n mouseup: 'onMouseUp',\n mouseover: 'onMouseOver',\n mousemove: 'onMouseMove',\n mouseout: 'onMouseOut',\n mouseenter: 'onMouseEnter',\n mouseleave: 'onMouseLeave',\n touchcancel: 'onTouchCancel',\n touchend: 'onTouchEnd',\n touchmove: 'onTouchMove',\n touchstart: 'onTouchStart'\n};\nexport var SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];\nexport var LEGEND_TYPES = ['plainline', 'line', 'square', 'rect', 'circle', 'cross', 'diamond', 'star', 'triangle', 'wye', 'none'];\nexport var TOOLTIP_TYPES = ['none'];\n/**\n * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\n\nexport var getDisplayName = function getDisplayName(Comp) {\n if (typeof Comp === 'string') {\n return Comp;\n }\n\n if (!Comp) {\n return '';\n }\n\n return Comp.displayName || Comp.name || 'Component';\n}; // `toArray` gets called multiple times during the render\n// so we can memoize last invocation (since reference to `children` is the same)\n\nvar lastChildren = null;\nvar lastResult = null;\nexport var toArray = function toArray(children) {\n if (children === lastChildren && _isArray(lastResult)) {\n return lastResult;\n }\n\n var result = [];\n Children.forEach(children, function (child) {\n if (_isNil(child)) return;\n\n if (isFragment(child)) {\n result = result.concat(toArray(child.props.children));\n } else {\n result.push(child);\n }\n });\n lastResult = result;\n lastChildren = children;\n return result;\n};\n/*\n * Find and return all matched children by type. `type` can be a React element class or\n * string\n */\n\nexport var findAllByType = function findAllByType(children, type) {\n var result = [];\n var types = [];\n\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n toArray(children).forEach(function (child) {\n var childType = _get(child, 'type.displayName') || _get(child, 'type.name');\n\n if (types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n};\n/*\n * Return the first matched child by type, return null otherwise.\n * `type` can be a React element class or string.\n */\n\nexport var findChildByType = function findChildByType(children, type) {\n var result = findAllByType(children, type);\n return result && result[0];\n};\n/*\n * Create a new array of children excluding the ones matched the type\n */\n\nexport var withoutType = function withoutType(children, type) {\n var newChildren = [];\n var types;\n\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n toArray(children).forEach(function (child) {\n var displayName = _get(child, 'type.displayName');\n\n if (displayName && types.indexOf(displayName) !== -1) {\n return;\n }\n\n newChildren.push(child);\n });\n return newChildren;\n};\n/**\n * validate the width and height props of a chart element\n * @param {Object} el A chart element\n * @return {Boolean} true If the props width and height are number, and greater than 0\n */\n\nexport var validateWidthHeight = function validateWidthHeight(el) {\n if (!el || !el.props) {\n return false;\n }\n\n var _el$props = el.props,\n width = _el$props.width,\n height = _el$props.height;\n\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0) {\n return false;\n }\n\n return true;\n};\nvar SVG_TAGS = ['a', 'altGlyph', 'altGlyphDef', 'altGlyphItem', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'circle', 'clipPath', 'color-profile', 'cursor', 'defs', 'desc', 'ellipse', 'feBlend', 'feColormatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', 'filter', 'font', 'font-face', 'font-face-format', 'font-face-name', 'font-face-url', 'foreignObject', 'g', 'glyph', 'glyphRef', 'hkern', 'image', 'line', 'lineGradient', 'marker', 'mask', 'metadata', 'missing-glyph', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'script', 'set', 'stop', 'style', 'svg', 'switch', 'symbol', 'text', 'textPath', 'title', 'tref', 'tspan', 'use', 'view', 'vkern'];\n\nvar isSvgElement = function isSvgElement(child) {\n return child && child.type && _isString(child.type) && SVG_TAGS.indexOf(child.type) >= 0;\n};\n/**\n * Filter all the svg elements of children\n * @param {Array} children The children of a react element\n * @return {Array} All the svg elements\n */\n\n\nexport var filterSvgElements = function filterSvgElements(children) {\n var svgElements = [];\n toArray(children).forEach(function (entry) {\n if (isSvgElement(entry)) {\n svgElements.push(entry);\n }\n });\n return svgElements;\n};\n/**\n * Wether props of children changed\n * @param {Object} nextChildren The latest children\n * @param {Object} prevChildren The prev children\n * @return {Boolean} equal or not\n */\n\nexport var isChildrenEqual = function isChildrenEqual(nextChildren, prevChildren) {\n if (nextChildren === prevChildren) {\n return true;\n }\n\n var count = Children.count(nextChildren);\n\n if (count !== Children.count(prevChildren)) {\n return false;\n }\n\n if (count === 0) {\n return true;\n }\n\n if (count === 1) {\n // eslint-disable-next-line no-use-before-define,@typescript-eslint/no-use-before-define\n return isSingleChildEqual(_isArray(nextChildren) ? nextChildren[0] : nextChildren, _isArray(prevChildren) ? prevChildren[0] : prevChildren);\n }\n\n for (var i = 0; i < count; i++) {\n var nextChild = nextChildren[i];\n var prevChild = prevChildren[i];\n\n if (_isArray(nextChild) || _isArray(prevChild)) {\n if (!isChildrenEqual(nextChild, prevChild)) {\n return false;\n } // eslint-disable-next-line no-use-before-define,@typescript-eslint/no-use-before-define\n\n } else if (!isSingleChildEqual(nextChild, prevChild)) {\n return false;\n }\n }\n\n return true;\n};\nexport var isSingleChildEqual = function isSingleChildEqual(nextChild, prevChild) {\n if (_isNil(nextChild) && _isNil(prevChild)) {\n return true;\n }\n\n if (!_isNil(nextChild) && !_isNil(prevChild)) {\n var _ref = nextChild.props || {},\n nextChildren = _ref.children,\n nextProps = _objectWithoutProperties(_ref, [\"children\"]);\n\n var _ref2 = prevChild.props || {},\n prevChildren = _ref2.children,\n prevProps = _objectWithoutProperties(_ref2, [\"children\"]);\n\n if (nextChildren && prevChildren) {\n // eslint-disable-next-line no-use-before-define\n return shallowEqual(nextProps, prevProps) && isChildrenEqual(nextChildren, prevChildren);\n }\n\n if (!nextChildren && !prevChildren) {\n return shallowEqual(nextProps, prevProps);\n }\n\n return false;\n }\n\n return false;\n};\nexport var renderByOrder = function renderByOrder(children, renderMap) {\n var elements = [];\n var record = {};\n toArray(children).forEach(function (child, index) {\n if (isSvgElement(child)) {\n elements.push(child);\n } else if (child) {\n var displayName = getDisplayName(child.type);\n\n var _ref3 = renderMap[displayName] || {},\n handler = _ref3.handler,\n once = _ref3.once;\n\n if (handler && (!once || !record[displayName])) {\n var results = handler(child, displayName, index);\n elements.push(results);\n record[displayName] = true;\n }\n }\n });\n return elements;\n};\nexport var getReactEventByType = function getReactEventByType(e) {\n var type = e && e.type;\n\n if (type && REACT_BROWSER_EVENT_MAP[type]) {\n return REACT_BROWSER_EVENT_MAP[type];\n }\n\n return null;\n};\nexport var parseChildIndex = function parseChildIndex(child, children) {\n return toArray(children).indexOf(child);\n};","'use strict';\n\nmodule.exports = require('./components/card/Card');","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","/*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */\r\n;(function (globalScope) {\r\n 'use strict';\r\n\r\n\r\n /*\r\n * decimal.js-light v2.5.1\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js-light\r\n * Copyright (c) 2020 Michael Mclaughlin <M8ch88l@gmail.com>\r\n * MIT Expat Licence\r\n */\r\n\r\n\r\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n var MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n Decimal = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed during run-time using `Decimal.config`.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,\r\n // `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -MAX_E\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to MAX_E\r\n\r\n // The natural logarithm of 10.\r\n // 115 digits\r\n LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'\r\n },\r\n\r\n\r\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n exponentOutOfRange = decimalError + 'Exponent out of range: ',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n ONE,\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE), // 1286742750677284\r\n\r\n // Decimal.prototype object\r\n P = {};\r\n\r\n\r\n // Decimal prototype methods\r\n\r\n\r\n /*\r\n * absoluteValue abs\r\n * comparedTo cmp\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy idiv\r\n * equals eq\r\n * exponent\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * isInteger isint\r\n * isNegative isneg\r\n * isPositive ispos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * squareRoot sqrt\r\n * times mul\r\n * toDecimalPlaces todp\r\n * toExponential\r\n * toFixed\r\n * toInteger toint\r\n * toNumber\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits tosd\r\n * toString\r\n * valueOf val\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value\r\n *\r\n */\r\n P.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this;\r\n\r\n y = new x.constructor(y);\r\n\r\n // Signs differ?\r\n if (x.s !== y.s) return x.s || -y.s;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;\r\n\r\n xdL = x.d.length;\r\n ydL = y.d.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;\r\n };\r\n\r\n\r\n /*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\n P.decimalPlaces = P.dp = function () {\r\n var x = this,\r\n w = x.d.length - 1,\r\n dp = (w - x.e) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = x.d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) dp--;\r\n\r\n return dp < 0 ? 0 : dp;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, truncated to `precision` significant digits.\r\n *\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\n P.equals = P.eq = function (y) {\r\n return !this.cmp(y);\r\n };\r\n\r\n\r\n /*\r\n * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).\r\n *\r\n */\r\n P.exponent = function () {\r\n return getBase10Exponent(this);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\n P.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\n P.greaterThanOrEqualTo = P.gte = function (y) {\r\n return this.cmp(y) >= 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\n P.isInteger = P.isint = function () {\r\n return this.e > this.d.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\n P.isNegative = P.isneg = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\n P.isPositive = P.ispos = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is 0, otherwise return false.\r\n *\r\n */\r\n P.isZero = function () {\r\n return this.s === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n };\r\n\r\n\r\n /*\r\n * Return the logarithm of the value of this Decimal to the specified base, truncated to\r\n * `precision` significant digits.\r\n *\r\n * If no base is specified, return log[10](x).\r\n *\r\n * log[base](x) = ln(x) / ln(base)\r\n *\r\n * The maximum error of the result is 1 ulp (unit in the last place).\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n P.logarithm = P.log = function (base) {\r\n var r,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n wpr = pr + 5;\r\n\r\n // Default base is 10.\r\n if (base === void 0) {\r\n base = new Ctor(10);\r\n } else {\r\n base = new Ctor(base);\r\n\r\n // log[-b](x) = NaN\r\n // log[0](x) = NaN\r\n // log[1](x) = NaN\r\n if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');\r\n }\r\n\r\n // log[b](-x) = NaN\r\n // log[b](0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // log[b](1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n external = false;\r\n r = divide(ln(x, wpr), ln(base, wpr), wpr);\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.minus = P.sub = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n y = new Ctor(y);\r\n\r\n // x % 0 = NaN\r\n if (!y.s) throw Error(decimalError + 'NaN');\r\n\r\n // Return x if x is 0.\r\n if (!x.s) return round(new Ctor(x), pr);\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n q = divide(x, y, 0, 1).times(y);\r\n external = true;\r\n\r\n return x.minus(q);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.naturalExponential = P.exp = function () {\r\n return exp(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * truncated to `precision` significant digits.\r\n *\r\n */\r\n P.naturalLogarithm = P.ln = function () {\r\n return ln(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\n P.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s || 0;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.plus = P.add = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\n P.precision = P.sd = function (z) {\r\n var e, sd, w,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n e = getBase10Exponent(x) + 1;\r\n w = x.d.length - 1;\r\n sd = w * LOG_BASE + 1;\r\n w = x.d[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) sd--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = x.d[0]; w >= 10; w /= 10) sd++;\r\n }\r\n\r\n return z && e > sd ? e : sd;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var e, n, pr, r, s, t, wpr,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n // Negative or zero?\r\n if (x.s < 1) {\r\n if (!x.s) return new Ctor(0);\r\n\r\n // sqrt(-x) = NaN\r\n throw Error(decimalError + 'NaN');\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(x.d);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n pr = Ctor.precision;\r\n s = wpr = pr + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, wpr + 2)).times(0.5);\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {\r\n n = n.slice(wpr - 3, wpr + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (s == wpr && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n round(t, pr + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n } else if (n != '9999') {\r\n break;\r\n }\r\n\r\n wpr += 4;\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n // Return 0 if either is 0.\r\n if (!x.s || !y.s) return new Ctor(0);\r\n\r\n y.s *= x.s;\r\n e = x.e + y.e;\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = e;\r\n\r\n return external ? round(y, Ctor.precision) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toDecimalPlaces = P.todp = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return round(x, dp + getBase10Exponent(x) + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = toString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), dp + 1, rm);\r\n str = toString(x, true, dp + 1);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\n P.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) return toString(x);\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);\r\n str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isneg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\n P.toInteger = P.toint = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this Decimal converted to a number primitive.\r\n *\r\n */\r\n P.toNumber = function () {\r\n return +this;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,\r\n * truncated to `precision` significant digits.\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * The maximum error is 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\n P.toPower = P.pow = function (y) {\r\n var e, k, pr, r, sign, yIsInt,\r\n x = this,\r\n Ctor = x.constructor,\r\n guard = 12,\r\n yn = +(y = new Ctor(y));\r\n\r\n // pow(x, 0) = 1\r\n if (!y.s) return new Ctor(ONE);\r\n\r\n x = new Ctor(x);\r\n\r\n // pow(0, y > 0) = 0\r\n // pow(0, y < 0) = Infinity\r\n if (!x.s) {\r\n if (y.s < 1) throw Error(decimalError + 'Infinity');\r\n return x;\r\n }\r\n\r\n // pow(1, y) = 1\r\n if (x.eq(ONE)) return x;\r\n\r\n pr = Ctor.precision;\r\n\r\n // pow(x, 1) = x\r\n if (y.eq(ONE)) return round(x, pr);\r\n\r\n e = y.e;\r\n k = y.d.length - 1;\r\n yIsInt = e >= k;\r\n sign = x.s;\r\n\r\n if (!yIsInt) {\r\n\r\n // pow(x < 0, y non-integer) = NaN\r\n if (sign < 0) throw Error(decimalError + 'NaN');\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = new Ctor(ONE);\r\n\r\n // Max k of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n e = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (k % 2) {\r\n r = r.times(x);\r\n truncate(r.d, e);\r\n }\r\n\r\n k = mathfloor(k / 2);\r\n if (k === 0) break;\r\n\r\n x = x.times(x);\r\n truncate(x.d, e);\r\n }\r\n\r\n external = true;\r\n\r\n return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);\r\n }\r\n\r\n // Result is negative if x is negative and the last digit of integer y is odd.\r\n sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;\r\n\r\n x.s = 1;\r\n external = false;\r\n r = y.times(ln(x, pr + guard));\r\n external = true;\r\n r = exp(r);\r\n r.s = sign;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n var e, str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n e = getBase10Exponent(x);\r\n str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), sd, rm);\r\n e = getBase10Exponent(x);\r\n str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toSignificantDigits = P.tosd = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return round(new Ctor(x), sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\n P.toString = P.valueOf = P.val = P.toJSON = function () {\r\n var x = this,\r\n e = getBase10Exponent(x),\r\n Ctor = x.constructor;\r\n\r\n return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n };\r\n\r\n\r\n // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n /*\r\n * add P.minus, P.plus\r\n * checkInt32 P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd\r\n * digitsToString P.log, P.sqrt, P.pow, toString, exp, ln\r\n * divide P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln\r\n * exp P.exp, P.pow\r\n * getBase10Exponent P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,\r\n * P.toString, divide, round, toString, exp, ln\r\n * getLn10 P.log, ln\r\n * getZeroString digitsToString, toString\r\n * ln P.log, P.ln, P.pow, exp\r\n * parseDecimal Decimal\r\n * round P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,\r\n * P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,\r\n * divide, getLn10, exp, ln\r\n * subtract P.minus, P.plus\r\n * toString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf\r\n * truncate P.pow\r\n *\r\n * Throws: P.log, P.mod, P.sd, P.sqrt, P.pow, checkInt32, divide, round,\r\n * getLn10, exp, ln, parseDecimal, Decimal, config\r\n */\r\n\r\n\r\n function add(x, y) {\r\n var carry, d, e, i, k, len, xd, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // If either is zero...\r\n if (!x.s || !y.s) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!y.s) y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n k = x.e;\r\n e = y.e;\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n }\r\n\r\n\r\n function digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n }\r\n\r\n\r\n var divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % BASE | 0;\r\n carry = temp / BASE | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * BASE + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, dp) {\r\n var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either 0?\r\n if (!x.s) return new Ctor(x);\r\n if (!y.s) throw Error(decimalError + 'Division by zero');\r\n\r\n e = x.e - y.e;\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n for (i = 0; yd[i] == (xd[i] || 0); ) ++i;\r\n if (yd[i] > (xd[i] || 0)) --e;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n } else if (dp) {\r\n sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) return new Ctor(0);\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / LOG_BASE + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * BASE + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= BASE/2\r\n k = BASE / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k);\r\n xd = multiplyInteger(xd, k);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= BASE / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= BASE) k = BASE - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n\r\n q.e = e;\r\n\r\n return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`\r\n * significant digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n */\r\n function exp(x, sd) {\r\n var denominator, guard, pow, sum, t, wpr,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n\r\n // exp(0) = 1\r\n if (!x.s) return new Ctor(ONE);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n while (x.abs().gte(0.1)) {\r\n x = x.times(t); // x = x / 2^5\r\n k += 5;\r\n }\r\n\r\n // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(ONE);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = round(pow.times(x), wpr);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n while (k--) sum = round(sum.times(sum), wpr);\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n }\r\n }\r\n\r\n\r\n // Calculate the base 10 exponent from the base 1e7 exponent.\r\n function getBase10Exponent(x) {\r\n var e = x.e * LOG_BASE,\r\n w = x.d[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for (; w >= 10; w /= 10) e++;\r\n return e;\r\n }\r\n\r\n\r\n function getLn10(Ctor, sd, pr) {\r\n\r\n if (sd > Ctor.LN10.sd()) {\r\n\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(decimalError + 'LN10 precision limit exceeded');\r\n }\r\n\r\n return round(new Ctor(Ctor.LN10), sd);\r\n }\r\n\r\n\r\n function getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant\r\n * digits.\r\n *\r\n * ln(n) is non-terminating (n != 1)\r\n *\r\n */\r\n function ln(y, sd) {\r\n var c, c0, denominator, e, numerator, sum, t, wpr, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // ln(-x) = NaN\r\n // ln(0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // ln(1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n if (x.eq(10)) {\r\n if (sd == null) external = true;\r\n return getLn10(Ctor, wpr);\r\n }\r\n\r\n wpr += guard;\r\n Ctor.precision = wpr;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n e = getBase10Exponent(x);\r\n\r\n if (Math.abs(e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(x, pr)) : x;\r\n }\r\n\r\n // x is reduced to a value near 1.\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);\r\n x2 = round(x.times(x), wpr);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = round(numerator.times(x2), wpr);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\n function parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48;) ++i;\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48;) --len;\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n e = e - i - 1;\r\n x.e = mathfloor(e / LOG_BASE);\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);\r\n } else {\r\n\r\n // Zero.\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).\r\n */\r\n function round(x, sd, rm) {\r\n var i, j, k, n, rd, doRound, w, xdi,\r\n xd = x.d;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd which contains the rounding digit, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // n: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (n = 1, k = xd[0]; k >= 10; k /= 10) n++;\r\n i = sd - n;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) return x;\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (n = 1; k >= 10; k /= 10) n++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - n.\r\n j = i - LOG_BASE + n;\r\n }\r\n\r\n if (rm !== void 0) {\r\n k = mathpow(10, n - j - 1);\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / k % 10 | 0;\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;\r\n\r\n // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the\r\n // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give\r\n // 714.\r\n\r\n doRound = rm < 4\r\n ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n }\r\n\r\n if (sd < 1 || !xd[0]) {\r\n if (doRound) {\r\n k = getBase10Exponent(x);\r\n xd.length = 1;\r\n\r\n // Convert sd to decimal places.\r\n sd = sd - k - 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = mathfloor(-sd / LOG_BASE) || 0;\r\n } else {\r\n xd.length = 1;\r\n\r\n // Zero.\r\n xd[0] = x.e = x.s = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (doRound) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n if ((xd[0] += k) == BASE) {\r\n xd[0] = 1;\r\n ++x.e;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) {\r\n throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function subtract(x, y) {\r\n var d, e, i, j, k, len, xd, xe, xLTy, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // Return y negated if x is zero.\r\n // Return x if y is zero and x is non-zero.\r\n if (!x.s || !y.s) {\r\n if (y.s) y.s = -y.s;\r\n else y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are non-zero numbers with the same sign.\r\n\r\n e = y.e;\r\n xe = x.e;\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of zeros\r\n // needing to be prepended, but this can be avoided while still ensuring correct rounding by\r\n // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to xd if shorter.\r\n // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(0);\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function toString(x, isExp, sd) {\r\n var k,\r\n e = getBase10Exponent(x),\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (e < 0 ? 'e' : 'e+') + e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Does not strip trailing zeros.\r\n function truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n }\r\n\r\n\r\n // Decimal methods\r\n\r\n\r\n /*\r\n * clone\r\n * config/set\r\n */\r\n\r\n\r\n /*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\n function clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * value {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(value) {\r\n var x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(value);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (value instanceof Decimal) {\r\n x.s = value.s;\r\n x.e = value.e;\r\n x.d = (value = value.d) ? value.slice() : value;\r\n return;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n\r\n // Reject Infinity/NaN.\r\n if (value * 0 !== 0) {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n if (value > 0) {\r\n x.s = 1;\r\n } else if (value < 0) {\r\n value = -value;\r\n x.s = -1;\r\n } else {\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (value === ~~value && value < 1e7) {\r\n x.e = 0;\r\n x.d = [value];\r\n return;\r\n }\r\n\r\n return parseDecimal(x, value.toString());\r\n } else if (typeof value !== 'string') {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n // Minus sign?\r\n if (value.charCodeAt(0) === 45) {\r\n value = value.slice(1);\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n if (isDecimal.test(value)) parseDecimal(x, value);\r\n else throw Error(invalidArgument + value);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n\r\n Decimal.clone = clone;\r\n Decimal.config = Decimal.set = config;\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n }\r\n\r\n\r\n /*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\n function config(obj) {\r\n if (!obj || typeof obj !== 'object') {\r\n throw Error(decimalError + 'Object expected');\r\n }\r\n var i, p, v,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -1 / 0, 0,\r\n 'toExpPos', 0, 1 / 0\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if ((v = obj[p = ps[i]]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if ((v = obj[p = 'LN10']) !== void 0) {\r\n if (v == Math.LN10) this[p] = new this(v);\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n // Create and configure initial Decimal constructor.\r\n Decimal = clone(Decimal);\r\n\r\n Decimal['default'] = Decimal.Decimal = Decimal;\r\n\r\n // Internal constant.\r\n ONE = new Decimal(1);\r\n\r\n\r\n // Export.\r\n\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () {\r\n return Decimal;\r\n });\r\n\r\n // Node and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = Decimal;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalScope) {\r\n globalScope = typeof self != 'undefined' && self && self.self == self\r\n ? self : Function('return this')();\r\n }\r\n\r\n globalScope.Decimal = Decimal;\r\n }\r\n})(this);\r\n","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\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 if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_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}","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","'use strict';\n\nmodule.exports = require('./components/fileupload/FileUpload');","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _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 }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\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 arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) 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}","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any <Redirect>s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the <Router> is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n this._pendingLocation = location;\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n }\n });\n }\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n <RouterContext.Provider\n value={{\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }}\n >\n <HistoryContext.Provider\n children={this.props.children || null}\n value={this.props.history}\n />\n </RouterContext.Provider>\n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change <Router history>\"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a <Router> that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<MemoryRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Redirect> outside a <Router>\");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n <Lifecycle\n onMount={() => {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n </RouterContext.Consumer>\n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `<Route${path ? ` path=\"${path}\"` : \"\"}>, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Route> outside a <Router>\");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // <Switch> already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n <RouterContext.Provider value={props}>\n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n </RouterContext.Provider>\n );\n }}\n </RouterContext.Consumer>\n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use <Route component> and <Route children> in the same route; <Route component> will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use <Route render> and <Route children> in the same route; <Route render> will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with <StaticRouter>\", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" <Router>, so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return <Router {...rest} history={history} staticContext={context} />;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<StaticRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first <Route> that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Switch> outside a <Router>\");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two <Route>s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n </RouterContext.Consumer>\n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a <Router>`\n );\n return (\n <Component\n {...remainingProps}\n {...context}\n ref={wrappedComponentRef}\n />\n );\n }}\n </RouterContext.Consumer>\n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","'use strict';\n\nmodule.exports = require('./components/toolbar/Toolbar');","'use strict';\n\nmodule.exports = require('./components/datatable/DataTable');","import _isNil from \"lodash/isNil\";\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 _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) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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\nimport { getPercentValue } from './DataUtils';\nimport { parseScale, checkDomainOfScale, getTicksOfScale } from './ChartUtils';\nexport var RADIAN = Math.PI / 180;\nexport var degreeToRadian = function degreeToRadian(angle) {\n return angle * Math.PI / 180;\n};\nexport var radianToDegree = function radianToDegree(angleInRadian) {\n return angleInRadian * 180 / Math.PI;\n};\nexport var polarToCartesian = function polarToCartesian(cx, cy, radius, angle) {\n return {\n x: cx + Math.cos(-RADIAN * angle) * radius,\n y: cy + Math.sin(-RADIAN * angle) * radius\n };\n};\nexport var getMaxRadius = function getMaxRadius(width, height) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;\n};\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {Object} axisType The type of axes, radius-axis or angle-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\n\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height;\n var startAngle = props.startAngle,\n endAngle = props.endAngle;\n var cx = getPercentValue(props.cx, width, width / 2);\n var cy = getPercentValue(props.cy, height, height / 2);\n var maxRadius = getMaxRadius(width, height, offset);\n var innerRadius = getPercentValue(props.innerRadius, maxRadius, 0);\n var outerRadius = getPercentValue(props.outerRadius, maxRadius, maxRadius * 0.8);\n var ids = Object.keys(axisMap);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var domain = axis.domain,\n reversed = axis.reversed;\n var range;\n\n if (_isNil(axis.range)) {\n if (axisType === 'angleAxis') {\n range = [startAngle, endAngle];\n } else if (axisType === 'radiusAxis') {\n range = [innerRadius, outerRadius];\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n } else {\n range = axis.range;\n var _range = range;\n\n var _range2 = _slicedToArray(_range, 2);\n\n startAngle = _range2[0];\n endAngle = _range2[1];\n }\n\n var _parseScale = parseScale(axis, chartName),\n realScaleType = _parseScale.realScaleType,\n scale = _parseScale.scale;\n\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n range: range,\n radius: outerRadius,\n realScaleType: realScaleType,\n scale: scale,\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var distanceBetweenPoints = function distanceBetweenPoints(point, anotherPoint) {\n var x1 = point.x,\n y1 = point.y;\n var x2 = anotherPoint.x,\n y2 = anotherPoint.y;\n return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));\n};\nexport var getAngleOfPoint = function getAngleOfPoint(_ref, _ref2) {\n var x = _ref.x,\n y = _ref.y;\n var cx = _ref2.cx,\n cy = _ref2.cy;\n var radius = distanceBetweenPoints({\n x: x,\n y: y\n }, {\n x: cx,\n y: cy\n });\n\n if (radius <= 0) {\n return {\n radius: radius\n };\n }\n\n var cos = (x - cx) / radius;\n var angleInRadian = Math.acos(cos);\n\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\n\n return {\n radius: radius,\n angle: radianToDegree(angleInRadian),\n angleInRadian: angleInRadian\n };\n};\nexport var formatAngleOfSector = function formatAngleOfSector(_ref3) {\n var startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return {\n startAngle: startAngle - min * 360,\n endAngle: endAngle - min * 360\n };\n};\n\nvar reverseFormatAngleOfSetor = function reverseFormatAngleOfSetor(angle, _ref4) {\n var startAngle = _ref4.startAngle,\n endAngle = _ref4.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return angle + min * 360;\n};\n\nexport var inRangeOfSector = function inRangeOfSector(_ref5, sector) {\n var x = _ref5.x,\n y = _ref5.y;\n\n var _getAngleOfPoint = getAngleOfPoint({\n x: x,\n y: y\n }, sector),\n radius = _getAngleOfPoint.radius,\n angle = _getAngleOfPoint.angle;\n\n var innerRadius = sector.innerRadius,\n outerRadius = sector.outerRadius;\n\n if (radius < innerRadius || radius > outerRadius) {\n return false;\n }\n\n if (radius === 0) {\n return true;\n }\n\n var _formatAngleOfSector = formatAngleOfSector(sector),\n startAngle = _formatAngleOfSector.startAngle,\n endAngle = _formatAngleOfSector.endAngle;\n\n var formatAngle = angle;\n var inRange;\n\n if (startAngle <= endAngle) {\n while (formatAngle > endAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < startAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n } else {\n while (formatAngle > startAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < endAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n }\n\n if (inRange) {\n return _objectSpread(_objectSpread({}, sector), {}, {\n radius: radius,\n angle: reverseFormatAngleOfSetor(formatAngle, sector)\n });\n }\n\n return null;\n};","function _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\n/**\n * @fileOverview Layer\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nexport var Layer = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, [\"children\", \"className\"]);\n\n var layerClass = classNames('recharts-layer', className);\n return /*#__PURE__*/React.createElement(\"g\", _extends({\n className: layerClass\n }, filterProps(others, true), {\n ref: ref\n }), children);\n});","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\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\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar DomHandler = /*#__PURE__*/function () {\n function DomHandler() {\n _classCallCheck(this, DomHandler);\n }\n\n _createClass(DomHandler, null, [{\n key: \"innerWidth\",\n value: function innerWidth(el) {\n if (el) {\n var width = el.offsetWidth;\n var style = getComputedStyle(el);\n width += parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);\n return width;\n }\n\n return 0;\n }\n }, {\n key: \"width\",\n value: function width(el) {\n if (el) {\n var width = el.offsetWidth;\n var style = getComputedStyle(el);\n width -= parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);\n return width;\n }\n\n return 0;\n }\n }, {\n key: \"getWindowScrollTop\",\n value: function getWindowScrollTop() {\n var doc = document.documentElement;\n return (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n }\n }, {\n key: \"getWindowScrollLeft\",\n value: function getWindowScrollLeft() {\n var doc = document.documentElement;\n return (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n }\n }, {\n key: \"getOuterWidth\",\n value: function getOuterWidth(el, margin) {\n if (el) {\n var width = el.offsetWidth;\n\n if (margin) {\n var style = getComputedStyle(el);\n width += parseFloat(style.marginLeft) + parseFloat(style.marginRight);\n }\n\n return width;\n }\n\n return 0;\n }\n }, {\n key: \"getOuterHeight\",\n value: function getOuterHeight(el, margin) {\n if (el) {\n var height = el.offsetHeight;\n\n if (margin) {\n var style = getComputedStyle(el);\n height += parseFloat(style.marginTop) + parseFloat(style.marginBottom);\n }\n\n return height;\n }\n\n return 0;\n }\n }, {\n key: \"getClientHeight\",\n value: function getClientHeight(el, margin) {\n if (el) {\n var height = el.clientHeight;\n\n if (margin) {\n var style = getComputedStyle(el);\n height += parseFloat(style.marginTop) + parseFloat(style.marginBottom);\n }\n\n return height;\n }\n\n return 0;\n }\n }, {\n key: \"getViewport\",\n value: function getViewport() {\n var win = window,\n d = document,\n e = d.documentElement,\n g = d.getElementsByTagName('body')[0],\n w = win.innerWidth || e.clientWidth || g.clientWidth,\n h = win.innerHeight || e.clientHeight || g.clientHeight;\n return {\n width: w,\n height: h\n };\n }\n }, {\n key: \"getOffset\",\n value: function getOffset(el) {\n if (el) {\n var rect = el.getBoundingClientRect();\n return {\n top: rect.top + (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0),\n left: rect.left + (window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0)\n };\n }\n\n return {\n top: 'auto',\n left: 'auto'\n };\n }\n }, {\n key: \"generateZIndex\",\n value: function generateZIndex() {\n this.zindex = this.zindex || 999;\n return ++this.zindex;\n }\n }, {\n key: \"getCurrentZIndex\",\n value: function getCurrentZIndex() {\n return this.zindex;\n }\n }, {\n key: \"index\",\n value: function index(element) {\n if (element) {\n var children = element.parentNode.childNodes;\n var num = 0;\n\n for (var i = 0; i < children.length; i++) {\n if (children[i] === element) return num;\n if (children[i].nodeType === 1) num++;\n }\n }\n\n return -1;\n }\n }, {\n key: \"addMultipleClasses\",\n value: function addMultipleClasses(element, className) {\n if (element) {\n if (element.classList) {\n var styles = className.split(' ');\n\n for (var i = 0; i < styles.length; i++) {\n element.classList.add(styles[i]);\n }\n } else {\n var _styles = className.split(' ');\n\n for (var _i = 0; _i < _styles.length; _i++) {\n element.className += ' ' + _styles[_i];\n }\n }\n }\n }\n }, {\n key: \"addClass\",\n value: function addClass(element, className) {\n if (element) {\n if (element.classList) element.classList.add(className);else element.className += ' ' + className;\n }\n }\n }, {\n key: \"removeClass\",\n value: function removeClass(element, className) {\n if (element) {\n if (element.classList) element.classList.remove(className);else element.className = element.className.replace(new RegExp('(^|\\\\b)' + className.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n }\n }\n }, {\n key: \"hasClass\",\n value: function hasClass(element, className) {\n if (element) {\n if (element.classList) return element.classList.contains(className);else return new RegExp('(^| )' + className + '( |$)', 'gi').test(element.className);\n }\n }\n }, {\n key: \"find\",\n value: function find(element, selector) {\n return element ? Array.from(element.querySelectorAll(selector)) : [];\n }\n }, {\n key: \"findSingle\",\n value: function findSingle(element, selector) {\n if (element) {\n return element.querySelector(selector);\n }\n\n return null;\n }\n }, {\n key: \"getHeight\",\n value: function getHeight(el) {\n if (el) {\n var height = el.offsetHeight;\n var style = getComputedStyle(el);\n height -= parseFloat(style.paddingTop) + parseFloat(style.paddingBottom) + parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\n return height;\n }\n\n return 0;\n }\n }, {\n key: \"getWidth\",\n value: function getWidth(el) {\n if (el) {\n var width = el.offsetWidth;\n var style = getComputedStyle(el);\n width -= parseFloat(style.paddingLeft) + parseFloat(style.paddingRight) + parseFloat(style.borderLeftWidth) + parseFloat(style.borderRightWidth);\n return width;\n }\n\n return 0;\n }\n }, {\n key: \"absolutePosition\",\n value: function absolutePosition(element, target) {\n if (element) {\n var elementDimensions = element.offsetParent ? {\n width: element.offsetWidth,\n height: element.offsetHeight\n } : this.getHiddenElementDimensions(element);\n var elementOuterHeight = elementDimensions.height;\n var elementOuterWidth = elementDimensions.width;\n var targetOuterHeight = target.offsetHeight;\n var targetOuterWidth = target.offsetWidth;\n var targetOffset = target.getBoundingClientRect();\n var windowScrollTop = this.getWindowScrollTop();\n var windowScrollLeft = this.getWindowScrollLeft();\n var viewport = this.getViewport();\n var top, left;\n\n if (targetOffset.top + targetOuterHeight + elementOuterHeight > viewport.height) {\n top = targetOffset.top + windowScrollTop - elementOuterHeight;\n\n if (top < 0) {\n top = windowScrollTop;\n }\n\n element.style.transformOrigin = 'bottom';\n } else {\n top = targetOuterHeight + targetOffset.top + windowScrollTop;\n element.style.transformOrigin = 'top';\n }\n\n if (targetOffset.left + targetOuterWidth + elementOuterWidth > viewport.width) left = Math.max(0, targetOffset.left + windowScrollLeft + targetOuterWidth - elementOuterWidth);else left = targetOffset.left + windowScrollLeft;\n element.style.top = top + 'px';\n element.style.left = left + 'px';\n }\n }\n }, {\n key: \"relativePosition\",\n value: function relativePosition(element, target) {\n if (element) {\n var elementDimensions = element.offsetParent ? {\n width: element.offsetWidth,\n height: element.offsetHeight\n } : this.getHiddenElementDimensions(element);\n var targetHeight = target.offsetHeight;\n var targetOffset = target.getBoundingClientRect();\n var viewport = this.getViewport();\n var top, left;\n\n if (targetOffset.top + targetHeight + elementDimensions.height > viewport.height) {\n top = -1 * elementDimensions.height;\n\n if (targetOffset.top + top < 0) {\n top = -1 * targetOffset.top;\n }\n\n element.style.transformOrigin = 'bottom';\n } else {\n top = targetHeight;\n element.style.transformOrigin = 'top';\n }\n\n if (elementDimensions.width > viewport.width) {\n // element wider then viewport and cannot fit on screen (align at left side of viewport)\n left = targetOffset.left * -1;\n } else if (targetOffset.left + elementDimensions.width > viewport.width) {\n // element wider then viewport but can be fit on screen (align at right side of viewport)\n left = (targetOffset.left + elementDimensions.width - viewport.width) * -1;\n } else {\n // element fits on screen (align with target)\n left = 0;\n }\n\n element.style.top = top + 'px';\n element.style.left = left + 'px';\n }\n }\n }, {\n key: \"flipfitCollision\",\n value: function flipfitCollision(element, target) {\n var _this = this;\n\n var my = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'left top';\n var at = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'left bottom';\n var callback = arguments.length > 4 ? arguments[4] : undefined;\n var targetOffset = target.getBoundingClientRect();\n var viewport = this.getViewport();\n var myArr = my.split(' ');\n var atArr = at.split(' ');\n\n var getPositionValue = function getPositionValue(arr, isOffset) {\n return isOffset ? +arr.substring(arr.search(/(\\+|-)/g)) || 0 : arr.substring(0, arr.search(/(\\+|-)/g)) || arr;\n };\n\n var position = {\n my: {\n x: getPositionValue(myArr[0]),\n y: getPositionValue(myArr[1] || myArr[0]),\n offsetX: getPositionValue(myArr[0], true),\n offsetY: getPositionValue(myArr[1] || myArr[0], true)\n },\n at: {\n x: getPositionValue(atArr[0]),\n y: getPositionValue(atArr[1] || atArr[0]),\n offsetX: getPositionValue(atArr[0], true),\n offsetY: getPositionValue(atArr[1] || atArr[0], true)\n }\n };\n var myOffset = {\n left: function left() {\n var totalOffset = position.my.offsetX + position.at.offsetX;\n return totalOffset + targetOffset.left + (position.my.x === 'left' ? 0 : -1 * (position.my.x === 'center' ? _this.getOuterWidth(element) / 2 : _this.getOuterWidth(element)));\n },\n top: function top() {\n var totalOffset = position.my.offsetY + position.at.offsetY;\n return totalOffset + targetOffset.top + (position.my.y === 'top' ? 0 : -1 * (position.my.y === 'center' ? _this.getOuterHeight(element) / 2 : _this.getOuterHeight(element)));\n }\n };\n var alignWithAt = {\n count: {\n x: 0,\n y: 0\n },\n left: function left() {\n var left = myOffset.left();\n var scrollLeft = DomHandler.getWindowScrollLeft();\n element.style.left = left + scrollLeft + 'px';\n\n if (this.count.x === 2) {\n element.style.left = scrollLeft + 'px';\n this.count.x = 0;\n } else if (left < 0) {\n this.count.x++;\n position.my.x = 'left';\n position.at.x = 'right';\n position.my.offsetX *= -1;\n position.at.offsetX *= -1;\n this.right();\n }\n },\n right: function right() {\n var left = myOffset.left() + DomHandler.getOuterWidth(target);\n var scrollLeft = DomHandler.getWindowScrollLeft();\n element.style.left = left + scrollLeft + 'px';\n\n if (this.count.x === 2) {\n element.style.left = viewport.width - DomHandler.getOuterWidth(element) + scrollLeft + 'px';\n this.count.x = 0;\n } else if (left + DomHandler.getOuterWidth(element) > viewport.width) {\n this.count.x++;\n position.my.x = 'right';\n position.at.x = 'left';\n position.my.offsetX *= -1;\n position.at.offsetX *= -1;\n this.left();\n }\n },\n top: function top() {\n var top = myOffset.top();\n var scrollTop = DomHandler.getWindowScrollTop();\n element.style.top = top + scrollTop + 'px';\n\n if (this.count.y === 2) {\n element.style.left = scrollTop + 'px';\n this.count.y = 0;\n } else if (top < 0) {\n this.count.y++;\n position.my.y = 'top';\n position.at.y = 'bottom';\n position.my.offsetY *= -1;\n position.at.offsetY *= -1;\n this.bottom();\n }\n },\n bottom: function bottom() {\n var top = myOffset.top() + DomHandler.getOuterHeight(target);\n var scrollTop = DomHandler.getWindowScrollTop();\n element.style.top = top + scrollTop + 'px';\n\n if (this.count.y === 2) {\n element.style.left = viewport.height - DomHandler.getOuterHeight(element) + scrollTop + 'px';\n this.count.y = 0;\n } else if (top + DomHandler.getOuterHeight(target) > viewport.height) {\n this.count.y++;\n position.my.y = 'bottom';\n position.at.y = 'top';\n position.my.offsetY *= -1;\n position.at.offsetY *= -1;\n this.top();\n }\n },\n center: function center(axis) {\n if (axis === 'y') {\n var top = myOffset.top() + DomHandler.getOuterHeight(target) / 2;\n element.style.top = top + DomHandler.getWindowScrollTop() + 'px';\n\n if (top < 0) {\n this.bottom();\n } else if (top + DomHandler.getOuterHeight(target) > viewport.height) {\n this.top();\n }\n } else {\n var left = myOffset.left() + DomHandler.getOuterWidth(target) / 2;\n element.style.left = left + DomHandler.getWindowScrollLeft() + 'px';\n\n if (left < 0) {\n this.left();\n } else if (left + DomHandler.getOuterWidth(element) > viewport.width) {\n this.right();\n }\n }\n }\n };\n alignWithAt[position.at.x]('x');\n alignWithAt[position.at.y]('y');\n\n if (this.isFunction(callback)) {\n callback(position);\n }\n }\n }, {\n key: \"findCollisionPosition\",\n value: function findCollisionPosition(position) {\n if (position) {\n var isAxisY = position === 'top' || position === 'bottom';\n var myXPosition = position === 'left' ? 'right' : 'left';\n var myYPosition = position === 'top' ? 'bottom' : 'top';\n\n if (isAxisY) {\n return {\n axis: 'y',\n my: \"center \".concat(myYPosition),\n at: \"center \".concat(position)\n };\n }\n\n return {\n axis: 'x',\n my: \"\".concat(myXPosition, \" center\"),\n at: \"\".concat(position, \" center\")\n };\n }\n }\n }, {\n key: \"getParents\",\n value: function getParents(element) {\n var parents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return element['parentNode'] === null ? parents : this.getParents(element.parentNode, parents.concat([element.parentNode]));\n }\n }, {\n key: \"getScrollableParents\",\n value: function getScrollableParents(element) {\n var scrollableParents = [];\n\n if (element) {\n var parents = this.getParents(element);\n var overflowRegex = /(auto|scroll)/;\n\n var overflowCheck = function overflowCheck(node) {\n var styleDeclaration = window['getComputedStyle'](node, null);\n return overflowRegex.test(styleDeclaration.getPropertyValue('overflow')) || overflowRegex.test(styleDeclaration.getPropertyValue('overflowX')) || overflowRegex.test(styleDeclaration.getPropertyValue('overflowY'));\n };\n\n var _iterator = _createForOfIteratorHelper(parents),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var parent = _step.value;\n var scrollSelectors = parent.nodeType === 1 && parent.dataset['scrollselectors'];\n\n if (scrollSelectors) {\n var selectors = scrollSelectors.split(',');\n\n var _iterator2 = _createForOfIteratorHelper(selectors),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var selector = _step2.value;\n var el = this.findSingle(parent, selector);\n\n if (el && overflowCheck(el)) {\n scrollableParents.push(el);\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n return scrollableParents;\n }\n }, {\n key: \"getHiddenElementOuterHeight\",\n value: function getHiddenElementOuterHeight(element) {\n if (element) {\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n var elementHeight = element.offsetHeight;\n element.style.display = 'none';\n element.style.visibility = 'visible';\n return elementHeight;\n }\n\n return 0;\n }\n }, {\n key: \"getHiddenElementOuterWidth\",\n value: function getHiddenElementOuterWidth(element) {\n if (element) {\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n var elementWidth = element.offsetWidth;\n element.style.display = 'none';\n element.style.visibility = 'visible';\n return elementWidth;\n }\n\n return 0;\n }\n }, {\n key: \"getHiddenElementDimensions\",\n value: function getHiddenElementDimensions(element) {\n var dimensions = {};\n\n if (element) {\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n dimensions.width = element.offsetWidth;\n dimensions.height = element.offsetHeight;\n element.style.display = 'none';\n element.style.visibility = 'visible';\n }\n\n return dimensions;\n }\n }, {\n key: \"fadeIn\",\n value: function fadeIn(element, duration) {\n if (element) {\n element.style.opacity = 0;\n var last = +new Date();\n var opacity = 0;\n\n var tick = function tick() {\n opacity = +element.style.opacity + (new Date().getTime() - last) / duration;\n element.style.opacity = opacity;\n last = +new Date();\n\n if (+opacity < 1) {\n window.requestAnimationFrame && requestAnimationFrame(tick) || setTimeout(tick, 16);\n }\n };\n\n tick();\n }\n }\n }, {\n key: \"fadeOut\",\n value: function fadeOut(element, ms) {\n if (element) {\n var opacity = 1,\n interval = 50,\n duration = ms,\n gap = interval / duration;\n var fading = setInterval(function () {\n opacity -= gap;\n\n if (opacity <= 0) {\n opacity = 0;\n clearInterval(fading);\n }\n\n element.style.opacity = opacity;\n }, interval);\n }\n }\n }, {\n key: \"getUserAgent\",\n value: function getUserAgent() {\n return navigator.userAgent;\n }\n }, {\n key: \"isIOS\",\n value: function isIOS() {\n return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window['MSStream'];\n }\n }, {\n key: \"isAndroid\",\n value: function isAndroid() {\n return /(android)/i.test(navigator.userAgent);\n }\n }, {\n key: \"isFunction\",\n value: function isFunction(obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n }, {\n key: \"appendChild\",\n value: function appendChild(element, target) {\n if (this.isElement(target)) target.appendChild(element);else if (target.el && target.el.nativeElement) target.el.nativeElement.appendChild(element);else throw new Error('Cannot append ' + target + ' to ' + element);\n }\n }, {\n key: \"removeChild\",\n value: function removeChild(element, target) {\n if (this.isElement(target)) target.removeChild(element);else if (target.el && target.el.nativeElement) target.el.nativeElement.removeChild(element);else throw new Error('Cannot remove ' + element + ' from ' + target);\n }\n }, {\n key: \"isElement\",\n value: function isElement(obj) {\n return (typeof HTMLElement === \"undefined\" ? \"undefined\" : _typeof(HTMLElement)) === \"object\" ? obj instanceof HTMLElement : obj && _typeof(obj) === \"object\" && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === \"string\";\n }\n }, {\n key: \"scrollInView\",\n value: function scrollInView(container, item) {\n var borderTopValue = getComputedStyle(container).getPropertyValue('borderTopWidth');\n var borderTop = borderTopValue ? parseFloat(borderTopValue) : 0;\n var paddingTopValue = getComputedStyle(container).getPropertyValue('paddingTop');\n var paddingTop = paddingTopValue ? parseFloat(paddingTopValue) : 0;\n var containerRect = container.getBoundingClientRect();\n var itemRect = item.getBoundingClientRect();\n var offset = itemRect.top + document.body.scrollTop - (containerRect.top + document.body.scrollTop) - borderTop - paddingTop;\n var scroll = container.scrollTop;\n var elementHeight = container.clientHeight;\n var itemHeight = this.getOuterHeight(item);\n\n if (offset < 0) {\n container.scrollTop = scroll + offset;\n } else if (offset + itemHeight > elementHeight) {\n container.scrollTop = scroll + offset - elementHeight + itemHeight;\n }\n }\n }, {\n key: \"clearSelection\",\n value: function clearSelection() {\n if (window.getSelection) {\n if (window.getSelection().empty) {\n window.getSelection().empty();\n } else if (window.getSelection().removeAllRanges && window.getSelection().rangeCount > 0 && window.getSelection().getRangeAt(0).getClientRects().length > 0) {\n window.getSelection().removeAllRanges();\n }\n } else if (document['selection'] && document['selection'].empty) {\n try {\n document['selection'].empty();\n } catch (error) {//ignore IE bug\n }\n }\n }\n }, {\n key: \"calculateScrollbarWidth\",\n value: function calculateScrollbarWidth(el) {\n if (el) {\n var style = getComputedStyle(el);\n return el.offsetWidth - el.clientWidth - parseFloat(style.borderLeftWidth) - parseFloat(style.borderRightWidth);\n } else {\n if (this.calculatedScrollbarWidth != null) return this.calculatedScrollbarWidth;\n var scrollDiv = document.createElement(\"div\");\n scrollDiv.className = \"p-scrollbar-measure\";\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n this.calculatedScrollbarWidth = scrollbarWidth;\n return scrollbarWidth;\n }\n }\n }, {\n key: \"getBrowser\",\n value: function getBrowser() {\n if (!this.browser) {\n var matched = this.resolveUserAgent();\n this.browser = {};\n\n if (matched.browser) {\n this.browser[matched.browser] = true;\n this.browser['version'] = matched.version;\n }\n\n if (this.browser['chrome']) {\n this.browser['webkit'] = true;\n } else if (this.browser['webkit']) {\n this.browser['safari'] = true;\n }\n }\n\n return this.browser;\n }\n }, {\n key: \"resolveUserAgent\",\n value: function resolveUserAgent() {\n var ua = navigator.userAgent.toLowerCase();\n var match = /(chrome)[ ]([\\w.]+)/.exec(ua) || /(webkit)[ ]([\\w.]+)/.exec(ua) || /(opera)(?:.*version|)[ ]([\\w.]+)/.exec(ua) || /(msie) ([\\w.]+)/.exec(ua) || ua.indexOf(\"compatible\") < 0 && /(mozilla)(?:.*? rv:([\\w.]+)|)/.exec(ua) || [];\n return {\n browser: match[1] || \"\",\n version: match[2] || \"0\"\n };\n }\n }, {\n key: \"isVisible\",\n value: function isVisible(element) {\n return element && element.offsetParent != null;\n }\n }, {\n key: \"getFocusableElements\",\n value: function getFocusableElements(element) {\n var focusableElements = DomHandler.find(element, \"button:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden]),\\n [href][clientHeight][clientWidth]:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden]),\\n input:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden]), select:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden]),\\n textarea:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden]), [tabIndex]:not([tabIndex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden]),\\n [contenteditable]:not([tabIndex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden])\");\n var visibleFocusableElements = [];\n\n var _iterator3 = _createForOfIteratorHelper(focusableElements),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var focusableElement = _step3.value;\n if (getComputedStyle(focusableElement).display !== \"none\" && getComputedStyle(focusableElement).visibility !== \"hidden\") visibleFocusableElements.push(focusableElement);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n return visibleFocusableElements;\n }\n }]);\n\n return DomHandler;\n}();\n\nexports.default = DomHandler;","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}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Ripple = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _DomHandler = _interopRequireDefault(require(\"../utils/DomHandler\"));\n\nvar _PrimeReact = _interopRequireDefault(require(\"../utils/PrimeReact\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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 _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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar Ripple = /*#__PURE__*/function (_Component) {\n _inherits(Ripple, _Component);\n\n var _super = _createSuper(Ripple);\n\n function Ripple(props) {\n var _this;\n\n _classCallCheck(this, Ripple);\n\n _this = _super.call(this, props);\n _this.onMouseDown = _this.onMouseDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Ripple, [{\n key: \"getTarget\",\n value: function getTarget() {\n return this.ink && this.ink.parentElement;\n }\n }, {\n key: \"bindEvents\",\n value: function bindEvents() {\n if (this.target) {\n this.target.addEventListener('mousedown', this.onMouseDown);\n }\n }\n }, {\n key: \"unbindEvents\",\n value: function unbindEvents() {\n if (this.target) {\n this.target.removeEventListener('mousedown', this.onMouseDown);\n }\n }\n }, {\n key: \"onMouseDown\",\n value: function onMouseDown(event) {\n if (!this.ink || getComputedStyle(this.ink, null).display === 'none') {\n return;\n }\n\n _DomHandler.default.removeClass(this.ink, 'p-ink-active');\n\n if (!_DomHandler.default.getHeight(this.ink) && !_DomHandler.default.getWidth(this.ink)) {\n var d = Math.max(_DomHandler.default.getOuterWidth(this.target), _DomHandler.default.getOuterHeight(this.target));\n this.ink.style.height = d + 'px';\n this.ink.style.width = d + 'px';\n }\n\n var offset = _DomHandler.default.getOffset(this.target);\n\n var x = event.pageX - offset.left + document.body.scrollTop - _DomHandler.default.getWidth(this.ink) / 2;\n var y = event.pageY - offset.top + document.body.scrollLeft - _DomHandler.default.getHeight(this.ink) / 2;\n this.ink.style.top = y + 'px';\n this.ink.style.left = x + 'px';\n\n _DomHandler.default.addClass(this.ink, 'p-ink-active');\n }\n }, {\n key: \"onAnimationEnd\",\n value: function onAnimationEnd(event) {\n _DomHandler.default.removeClass(event.currentTarget, 'p-ink-active');\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.ink) {\n this.target = this.getTarget();\n this.bindEvents();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (this.ink && !this.target) {\n this.target = this.getTarget();\n this.bindEvents();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.ink) {\n this.target = null;\n this.unbindEvents();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n return _PrimeReact.default.ripple && /*#__PURE__*/_react.default.createElement(\"span\", {\n ref: function ref(el) {\n return _this2.ink = el;\n },\n className: \"p-ink\",\n onAnimationEnd: this.onAnimationEnd\n });\n }\n }]);\n\n return Ripple;\n}(_react.Component);\n\nexports.Ripple = Ripple;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar ObjectUtils = /*#__PURE__*/function () {\n function ObjectUtils() {\n _classCallCheck(this, ObjectUtils);\n }\n\n _createClass(ObjectUtils, null, [{\n key: \"equals\",\n value: function equals(obj1, obj2, field) {\n if (field && obj1 && _typeof(obj1) === 'object' && obj2 && _typeof(obj2) === 'object') return this.resolveFieldData(obj1, field) === this.resolveFieldData(obj2, field);else return this.deepEquals(obj1, obj2);\n }\n }, {\n key: \"deepEquals\",\n value: function deepEquals(a, b) {\n if (a === b) return true;\n\n if (a && b && _typeof(a) == 'object' && _typeof(b) == 'object') {\n var arrA = Array.isArray(a),\n arrB = Array.isArray(b),\n i,\n length,\n key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length !== b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!this.deepEquals(a[i], b[i])) return false;\n }\n\n return true;\n }\n\n if (arrA !== arrB) return false;\n var dateA = a instanceof Date,\n dateB = b instanceof Date;\n if (dateA !== dateB) return false;\n if (dateA && dateB) return a.getTime() === b.getTime();\n var regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n if (regexpA !== regexpB) return false;\n if (regexpA && regexpB) return a.toString() === b.toString();\n var keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n }\n\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (!this.deepEquals(a[key], b[key])) return false;\n }\n\n return true;\n }\n /*eslint no-self-compare: \"off\"*/\n\n\n return a !== a && b !== b;\n }\n }, {\n key: \"resolveFieldData\",\n value: function resolveFieldData(data, field) {\n if (this.isFunction(field)) {\n return field(data);\n } else {\n if (data && field) {\n if (field.indexOf('.') === -1) {\n return data[field];\n } else {\n var fields = field.split('.');\n var value = data;\n\n for (var i = 0, len = fields.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n\n value = value[fields[i]];\n }\n\n return value;\n }\n } else {\n return null;\n }\n }\n }\n }, {\n key: \"isFunction\",\n value: function isFunction(obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n }, {\n key: \"findDiffKeys\",\n value: function findDiffKeys(obj1, obj2) {\n if (!obj1 || !obj2) {\n return {};\n }\n\n return Object.keys(obj1).filter(function (key) {\n return !obj2.hasOwnProperty(key);\n }).reduce(function (result, current) {\n result[current] = obj1[current];\n return result;\n }, {});\n }\n }, {\n key: \"reorderArray\",\n value: function reorderArray(value, from, to) {\n var target;\n\n if (value && from !== to) {\n if (to >= value.length) {\n target = to - value.length;\n\n while (target-- + 1) {\n value.push(undefined);\n }\n }\n\n value.splice(to, 0, value.splice(from, 1)[0]);\n }\n }\n }, {\n key: \"findIndexInList\",\n value: function findIndexInList(value, list) {\n var index = -1;\n\n if (list) {\n for (var i = 0; i < list.length; i++) {\n if (list[i] === value) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n }, {\n key: \"getJSXElement\",\n value: function getJSXElement(obj) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n\n return this.isFunction(obj) ? obj.apply(void 0, params) : obj;\n }\n }, {\n key: \"removeAccents\",\n value: function removeAccents(str) {\n if (str && str.search(/[\\xC0-\\xFF]/g) > -1) {\n str = str.replace(/[\\xC0-\\xC5]/g, \"A\").replace(/[\\xC6]/g, \"AE\").replace(/[\\xC7]/g, \"C\").replace(/[\\xC8-\\xCB]/g, \"E\").replace(/[\\xCC-\\xCF]/g, \"I\").replace(/[\\xD0]/g, \"D\").replace(/[\\xD1]/g, \"N\").replace(/[\\xD2-\\xD6\\xD8]/g, \"O\").replace(/[\\xD9-\\xDC]/g, \"U\").replace(/[\\xDD]/g, \"Y\").replace(/[\\xDE]/g, \"P\").replace(/[\\xE0-\\xE5]/g, \"a\").replace(/[\\xE6]/g, \"ae\").replace(/[\\xE7]/g, \"c\").replace(/[\\xE8-\\xEB]/g, \"e\").replace(/[\\xEC-\\xEF]/g, \"i\").replace(/[\\xF1]/g, \"n\").replace(/[\\xF2-\\xF6\\xF8]/g, \"o\").replace(/[\\xF9-\\xFC]/g, \"u\").replace(/[\\xFE]/g, \"p\").replace(/[\\xFD\\xFF]/g, \"y\");\n }\n\n return str;\n }\n }]);\n\n return ObjectUtils;\n}();\n\nexports.default = ObjectUtils;","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","export default function warn(s) {\n console.warn('[react-ga]', s);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = [\"to\", \"target\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport warn from '../utils/console/warn';\nvar NEWTAB = '_blank';\nvar MIDDLECLICK = 1;\n\nvar OutboundLink = /*#__PURE__*/function (_Component) {\n _inherits(OutboundLink, _Component);\n\n var _super = _createSuper(OutboundLink);\n\n function OutboundLink() {\n var _this;\n\n _classCallCheck(this, OutboundLink);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"handleClick\", function (event) {\n var _this$props = _this.props,\n target = _this$props.target,\n eventLabel = _this$props.eventLabel,\n to = _this$props.to,\n onClick = _this$props.onClick,\n trackerNames = _this$props.trackerNames;\n var eventMeta = {\n label: eventLabel\n };\n var sameTarget = target !== NEWTAB;\n var normalClick = !(event.ctrlKey || event.shiftKey || event.metaKey || event.button === MIDDLECLICK);\n\n if (sameTarget && normalClick) {\n event.preventDefault();\n OutboundLink.trackLink(eventMeta, function () {\n window.location.href = to;\n }, trackerNames);\n } else {\n OutboundLink.trackLink(eventMeta, function () {}, trackerNames);\n }\n\n if (onClick) {\n onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(OutboundLink, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n href = _this$props2.to,\n target = _this$props2.target,\n oldProps = _objectWithoutProperties(_this$props2, _excluded);\n\n var props = _objectSpread(_objectSpread({}, oldProps), {}, {\n target: target,\n href: href,\n onClick: this.handleClick\n });\n\n if (target === NEWTAB) {\n props.rel = \"\".concat(props.rel ? props.rel : '', \" noopener noreferrer\").trim();\n }\n\n delete props.eventLabel;\n delete props.trackerNames;\n return /*#__PURE__*/React.createElement('a', props);\n }\n }]);\n\n return OutboundLink;\n}(Component);\n\n_defineProperty(OutboundLink, \"trackLink\", function () {\n warn('ga tracking not enabled');\n});\n\nexport { OutboundLink as default };\nOutboundLink.propTypes = {\n eventLabel: PropTypes.string.isRequired,\n target: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n trackerNames: PropTypes.arrayOf(PropTypes.string)\n};\nOutboundLink.defaultProps = {\n target: null,\n to: null,\n onClick: null,\n trackerNames: null\n};","import warn from './console/warn';\nimport mightBeEmail from './mightBeEmail';\nvar redacted = 'REDACTED (Potential Email Address)';\nexport default function redactEmail(string) {\n if (mightBeEmail(string)) {\n warn('This arg looks like an email address, redacting.');\n return redacted;\n }\n\n return string;\n}","// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nexport default function mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === 'string' && s.indexOf('@') !== -1;\n}","// GA strings need to have leading/trailing whitespace trimmed, and not all\n// browsers have String.prototoype.trim().\nexport default function trim(s) {\n return s && s.toString().replace(/^\\s+|\\s+$/g, '');\n}","/**\n * To Title Case 2.1 - http://individed.com/code/to-title-case/\n * Copyright 2008-2013 David Gouch. Licensed under the MIT License.\n * https://github.com/gouch/to-title-case\n */\nimport trim from './trim';\nvar smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\\.?|via)$/i; // test\n\nexport default function toTitleCase(string) {\n return trim(string).replace(/[A-Za-z0-9\\u00C0-\\u00FF]+[^\\s-]*/g, function (match, index, title) {\n if (index > 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== ':' && (title.charAt(index + match.length) !== '-' || title.charAt(index - 1) === '-') && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}","var isLoaded = false;\nexport default function (options) {\n if (isLoaded) return;\n isLoaded = true;\n var gaAddress = 'https://www.google-analytics.com/analytics.js';\n\n if (options && options.gaAddress) {\n gaAddress = options.gaAddress;\n } else if (options && options.debug) {\n gaAddress = 'https://www.google-analytics.com/analytics_debug.js';\n }\n\n var onerror = options && options.onerror; // https://developers.google.com/analytics/devguides/collection/analyticsjs/\n\n /* eslint-disable */\n\n (function (i, s, o, g, r, a, m) {\n i['GoogleAnalyticsObject'] = r;\n i[r] = i[r] || function () {\n (i[r].q = i[r].q || []).push(arguments);\n }, i[r].l = 1 * new Date();\n a = s.createElement(o), m = s.getElementsByTagName(o)[0];\n a.async = 1;\n a.src = g;\n a.onerror = onerror;\n m.parentNode.insertBefore(a, m);\n })(window, document, 'script', gaAddress, 'ga');\n /* eslint-enable */\n\n}","export default function log(s) {\n console.info('[react-ga]', s);\n}","export var gaCalls = [];\nexport default {\n calls: gaCalls,\n ga: function ga() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n gaCalls.push([].concat(args));\n },\n resetCalls: function resetCalls() {\n gaCalls.length = 0;\n }\n};","var _excluded = [\"category\", \"action\", \"label\", \"value\", \"nonInteraction\", \"transport\"];\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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : 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 _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\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 _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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\n/**\n * React Google Analytics Module\n *\n * @package react-ga\n * @author Adam Lofting <adam@mozillafoundation.org>\n * Atul Varma <atul@mozillafoundation.org>\n */\n\n/**\n * Utilities\n */\nimport format from './utils/format';\nimport removeLeadingSlash from './utils/removeLeadingSlash';\nimport trim from './utils/trim';\nimport loadGA from './utils/loadGA';\nimport warn from './utils/console/warn';\nimport log from './utils/console/log';\nimport TestModeAPI from './utils/testModeAPI';\n\nvar _isNotBrowser = typeof window === 'undefined' || typeof document === 'undefined';\n\nvar _debug = false;\nvar _titleCase = true;\nvar _testMode = false;\nvar _alwaysSendToDefaultTracker = true;\nvar _redactEmail = true;\n\nvar internalGa = function internalGa() {\n var _window;\n\n if (_testMode) return TestModeAPI.ga.apply(TestModeAPI, arguments);\n if (_isNotBrowser) return false;\n if (!window.ga) return warn('ReactGA.initialize must be called first or GoogleAnalytics should be loaded manually');\n return (_window = window).ga.apply(_window, arguments);\n};\n\nfunction _format(s) {\n return format(s, _titleCase, _redactEmail);\n}\n\nfunction _gaCommand(trackerNames) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var command = args[0];\n\n if (typeof internalGa === 'function') {\n if (typeof command !== 'string') {\n warn('ga command must be a string');\n return;\n }\n\n if (_alwaysSendToDefaultTracker || !Array.isArray(trackerNames)) internalGa.apply(void 0, args);\n\n if (Array.isArray(trackerNames)) {\n trackerNames.forEach(function (name) {\n internalGa.apply(void 0, _toConsumableArray([\"\".concat(name, \".\").concat(command)].concat(args.slice(1))));\n });\n }\n }\n}\n\nfunction _initialize(gaTrackingID, options) {\n if (!gaTrackingID) {\n warn('gaTrackingID is required in initialize()');\n return;\n }\n\n if (options) {\n if (options.debug && options.debug === true) {\n _debug = true;\n }\n\n if (options.titleCase === false) {\n _titleCase = false;\n }\n\n if (options.redactEmail === false) {\n _redactEmail = false;\n }\n\n if (options.useExistingGa) {\n return;\n }\n }\n\n if (options && options.gaOptions) {\n internalGa('create', gaTrackingID, options.gaOptions);\n } else {\n internalGa('create', gaTrackingID, 'auto');\n }\n}\n\nexport function addTrackers(configsOrTrackingId, options) {\n if (Array.isArray(configsOrTrackingId)) {\n configsOrTrackingId.forEach(function (config) {\n if (_typeof(config) !== 'object') {\n warn('All configs must be an object');\n return;\n }\n\n _initialize(config.trackingId, config);\n });\n } else {\n _initialize(configsOrTrackingId, options);\n }\n\n return true;\n}\nexport function initialize(configsOrTrackingId, options) {\n if (options && options.testMode === true) {\n _testMode = true;\n } else {\n if (_isNotBrowser) {\n return;\n }\n\n if (!options || options.standardImplementation !== true) loadGA(options);\n }\n\n _alwaysSendToDefaultTracker = options && typeof options.alwaysSendToDefaultTracker === 'boolean' ? options.alwaysSendToDefaultTracker : true;\n addTrackers(configsOrTrackingId, options);\n}\n/**\n * ga:\n * Returns the original GA object.\n */\n\nexport function ga() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (args.length > 0) {\n internalGa.apply(void 0, args);\n\n if (_debug) {\n log(\"called ga('arguments');\");\n log(\"with arguments: \".concat(JSON.stringify(args)));\n }\n }\n\n return window.ga;\n}\n/**\n * set:\n * GA tracker set method\n * @param {Object} fieldsObject - a field/value pair or a group of field/value pairs on the tracker\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function set(fieldsObject, trackerNames) {\n if (!fieldsObject) {\n warn('`fieldsObject` is required in .set()');\n return;\n }\n\n if (_typeof(fieldsObject) !== 'object') {\n warn('Expected `fieldsObject` arg to be an Object');\n return;\n }\n\n if (Object.keys(fieldsObject).length === 0) {\n warn('empty `fieldsObject` given to .set()');\n }\n\n _gaCommand(trackerNames, 'set', fieldsObject);\n\n if (_debug) {\n log(\"called ga('set', fieldsObject);\");\n log(\"with fieldsObject: \".concat(JSON.stringify(fieldsObject)));\n }\n}\n/**\n * send:\n * Clone of the low level `ga.send` method\n * WARNING: No validations will be applied to this\n * @param {Object} fieldObject - field object for tracking different analytics\n * @param {Array} trackerNames - trackers to send the command to\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function send(fieldObject, trackerNames) {\n _gaCommand(trackerNames, 'send', fieldObject);\n\n if (_debug) {\n log(\"called ga('send', fieldObject);\");\n log(\"with fieldObject: \".concat(JSON.stringify(fieldObject)));\n log(\"with trackers: \".concat(JSON.stringify(trackerNames)));\n }\n}\n/**\n * pageview:\n * Basic GA pageview tracking\n * @param {String} path - the current page page e.g. '/about'\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n * @param {String} title - (optional) the page title e. g. 'My Website'\n */\n\nexport function pageview(rawPath, trackerNames, title) {\n if (!rawPath) {\n warn('path is required in .pageview()');\n return;\n }\n\n var path = trim(rawPath);\n\n if (path === '') {\n warn('path cannot be an empty string in .pageview()');\n return;\n }\n\n var extraFields = {};\n\n if (title) {\n extraFields.title = title;\n }\n\n if (typeof ga === 'function') {\n _gaCommand(trackerNames, 'send', _objectSpread({\n hitType: 'pageview',\n page: path\n }, extraFields));\n\n if (_debug) {\n log(\"called ga('send', 'pageview', path);\");\n var extraLog = '';\n\n if (title) {\n extraLog = \" and title: \".concat(title);\n }\n\n log(\"with path: \".concat(path).concat(extraLog));\n }\n }\n}\n/**\n * modalview:\n * a proxy to basic GA pageview tracking to consistently track\n * modal views that are an equivalent UX to a traditional pageview\n * @param {String} modalName e.g. 'add-or-edit-club'\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function modalview(rawModalName, trackerNames) {\n if (!rawModalName) {\n warn('modalName is required in .modalview(modalName)');\n return;\n }\n\n var modalName = removeLeadingSlash(trim(rawModalName));\n\n if (modalName === '') {\n warn('modalName cannot be an empty string or a single / in .modalview()');\n return;\n }\n\n if (typeof ga === 'function') {\n var path = \"/modal/\".concat(modalName);\n\n _gaCommand(trackerNames, 'send', 'pageview', path);\n\n if (_debug) {\n log(\"called ga('send', 'pageview', path);\");\n log(\"with path: \".concat(path));\n }\n }\n}\n/**\n * timing:\n * GA timing\n * @param args.category {String} required\n * @param args.variable {String} required\n * @param args.value {Int} required\n * @param args.label {String} required\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function timing() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n category = _ref.category,\n variable = _ref.variable,\n value = _ref.value,\n label = _ref.label;\n\n var trackerNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n if (typeof ga === 'function') {\n if (!category || !variable || typeof value !== 'number') {\n warn('args.category, args.variable ' + 'AND args.value are required in timing() ' + 'AND args.value has to be a number');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'timing',\n timingCategory: _format(category),\n timingVar: _format(variable),\n timingValue: value\n };\n\n if (label) {\n fieldObject.timingLabel = _format(label);\n }\n\n send(fieldObject, trackerNames);\n }\n}\n/**\n * event:\n * GA event tracking\n * @param args.category {String} required\n * @param args.action {String} required\n * @param args.label {String} optional\n * @param args.value {Int} optional\n * @param args.nonInteraction {boolean} optional\n * @param args.transport {string} optional\n * @param {{action: string, category: string}} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function event() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n category = _ref2.category,\n action = _ref2.action,\n label = _ref2.label,\n value = _ref2.value,\n nonInteraction = _ref2.nonInteraction,\n transport = _ref2.transport,\n args = _objectWithoutProperties(_ref2, _excluded);\n\n var trackerNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n if (typeof ga === 'function') {\n // Simple Validation\n if (!category || !action) {\n warn('args.category AND args.action are required in event()');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'event',\n eventCategory: _format(category),\n eventAction: _format(action)\n }; // Optional Fields\n\n if (label) {\n fieldObject.eventLabel = _format(label);\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value !== 'number') {\n warn('Expected `args.value` arg to be a Number.');\n } else {\n fieldObject.eventValue = value;\n }\n }\n\n if (typeof nonInteraction !== 'undefined') {\n if (typeof nonInteraction !== 'boolean') {\n warn('`args.nonInteraction` must be a boolean.');\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n\n if (typeof transport !== 'undefined') {\n if (typeof transport !== 'string') {\n warn('`args.transport` must be a string.');\n } else {\n if (['beacon', 'xhr', 'image'].indexOf(transport) === -1) {\n warn('`args.transport` must be either one of these values: `beacon`, `xhr` or `image`');\n }\n\n fieldObject.transport = transport;\n }\n }\n\n Object.keys(args).filter(function (key) {\n return key.substr(0, 'dimension'.length) === 'dimension';\n }).forEach(function (key) {\n fieldObject[key] = args[key];\n });\n Object.keys(args).filter(function (key) {\n return key.substr(0, 'metric'.length) === 'metric';\n }).forEach(function (key) {\n fieldObject[key] = args[key];\n }); // Send to GA\n\n send(fieldObject, trackerNames);\n }\n}\n/**\n * exception:\n * GA exception tracking\n * @param args.description {String} optional\n * @param args.fatal {boolean} optional\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function exception(_ref3, trackerNames) {\n var description = _ref3.description,\n fatal = _ref3.fatal;\n\n if (typeof ga === 'function') {\n // Required Fields\n var fieldObject = {\n hitType: 'exception'\n }; // Optional Fields\n\n if (description) {\n fieldObject.exDescription = _format(description);\n }\n\n if (typeof fatal !== 'undefined') {\n if (typeof fatal !== 'boolean') {\n warn('`args.fatal` must be a boolean.');\n } else {\n fieldObject.exFatal = fatal;\n }\n } // Send to GA\n\n\n send(fieldObject, trackerNames);\n }\n}\nexport var plugin = {\n /**\n * require:\n * GA requires a plugin\n * @param name {String} e.g. 'ecommerce' or 'myplugin'\n * @param options {Object} optional e.g {path: '/log', debug: true}\n * @param trackerName {String} optional e.g 'trackerName'\n */\n require: function require(rawName, options, trackerName) {\n if (typeof ga === 'function') {\n // Required Fields\n if (!rawName) {\n warn('`name` is required in .require()');\n return;\n }\n\n var name = trim(rawName);\n\n if (name === '') {\n warn('`name` cannot be an empty string in .require()');\n return;\n }\n\n var requireString = trackerName ? \"\".concat(trackerName, \".require\") : 'require'; // Optional Fields\n\n if (options) {\n if (_typeof(options) !== 'object') {\n warn('Expected `options` arg to be an Object');\n return;\n }\n\n if (Object.keys(options).length === 0) {\n warn('Empty `options` given to .require()');\n }\n\n ga(requireString, name, options);\n\n if (_debug) {\n log(\"called ga('require', '\".concat(name, \"', \").concat(JSON.stringify(options)));\n }\n } else {\n ga(requireString, name);\n\n if (_debug) {\n log(\"called ga('require', '\".concat(name, \"');\"));\n }\n }\n }\n },\n\n /**\n * execute:\n * GA execute action for plugin\n * Takes variable number of arguments\n * @param pluginName {String} e.g. 'ecommerce' or 'myplugin'\n * @param action {String} e.g. 'addItem' or 'myCustomAction'\n * @param actionType {String} optional e.g. 'detail'\n * @param payload {Object} optional e.g { id: '1x5e', name : 'My product to track' }\n */\n execute: function execute(pluginName, action) {\n var payload;\n var actionType;\n\n for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n args[_key3 - 2] = arguments[_key3];\n }\n\n if (args.length === 1) {\n payload = args[0];\n } else {\n actionType = args[0];\n payload = args[1];\n }\n\n if (typeof ga === 'function') {\n if (typeof pluginName !== 'string') {\n warn('Expected `pluginName` arg to be a String.');\n } else if (typeof action !== 'string') {\n warn('Expected `action` arg to be a String.');\n } else {\n var command = \"\".concat(pluginName, \":\").concat(action);\n payload = payload || null;\n\n if (actionType && payload) {\n ga(command, actionType, payload);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n log(\"actionType: \\\"\".concat(actionType, \"\\\" with payload: \").concat(JSON.stringify(payload)));\n }\n } else if (payload) {\n ga(command, payload);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n log(\"with payload: \".concat(JSON.stringify(payload)));\n }\n } else {\n ga(command);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n }\n }\n }\n }\n }\n};\n/**\n * outboundLink:\n * GA outboundLink tracking\n * @param args.label {String} e.g. url, or 'Create an Account'\n * @param {function} hitCallback - Called after processing a hit.\n */\n\nexport function outboundLink(args, hitCallback, trackerNames) {\n if (typeof hitCallback !== 'function') {\n warn('hitCallback function is required');\n return;\n }\n\n if (typeof ga === 'function') {\n // Simple Validation\n if (!args || !args.label) {\n warn('args.label is required in outboundLink()');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'event',\n eventCategory: 'Outbound',\n eventAction: 'Click',\n eventLabel: _format(args.label)\n };\n var safetyCallbackCalled = false;\n\n var safetyCallback = function safetyCallback() {\n // This prevents a delayed response from GA\n // causing hitCallback from being fired twice\n safetyCallbackCalled = true;\n hitCallback();\n }; // Using a timeout to ensure the execution of critical application code\n // in the case when the GA server might be down\n // or an ad blocker prevents sending the data\n // register safety net timeout:\n\n\n var t = setTimeout(safetyCallback, 250);\n\n var clearableCallbackForGA = function clearableCallbackForGA() {\n clearTimeout(t);\n\n if (!safetyCallbackCalled) {\n hitCallback();\n }\n };\n\n fieldObject.hitCallback = clearableCallbackForGA; // Send to GA\n\n send(fieldObject, trackerNames);\n } else {\n // if ga is not defined, return the callback so the application\n // continues to work as expected\n setTimeout(hitCallback, 0);\n }\n}\nexport var testModeAPI = TestModeAPI;\nexport default {\n initialize: initialize,\n ga: ga,\n set: set,\n send: send,\n pageview: pageview,\n modalview: modalview,\n timing: timing,\n event: event,\n exception: exception,\n plugin: plugin,\n outboundLink: outboundLink,\n testModeAPI: TestModeAPI\n};","import redactEmail from './redactEmail';\nimport toTitleCase from './toTitleCase';\nexport default function format() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var titleCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var redactingEmail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n var _str = s || '';\n\n if (titleCase) {\n _str = toTitleCase(s);\n }\n\n if (redactingEmail) {\n _str = redactEmail(_str);\n }\n\n return _str;\n}","export default function removeLeadingSlash(string) {\n if (string.substring(0, 1) === '/') {\n return string.substring(1);\n }\n\n return string;\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : 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\nimport UnboundOutboundLink from './components/OutboundLink';\nimport * as Defaults from './core';\nvar initialize = Defaults.initialize;\nexport { initialize };\nvar addTrackers = Defaults.addTrackers;\nexport { addTrackers };\nvar ga = Defaults.ga;\nexport { ga };\nvar set = Defaults.set;\nexport { set };\nvar send = Defaults.send;\nexport { send };\nvar pageview = Defaults.pageview;\nexport { pageview };\nvar modalview = Defaults.modalview;\nexport { modalview };\nvar timing = Defaults.timing;\nexport { timing };\nvar event = Defaults.event;\nexport { event };\nvar exception = Defaults.exception;\nexport { exception };\nvar plugin = Defaults.plugin;\nexport { plugin };\nvar outboundLink = Defaults.outboundLink;\nexport { outboundLink };\nvar testModeAPI = Defaults.testModeAPI;\nexport { testModeAPI };\nUnboundOutboundLink.origTrackLink = UnboundOutboundLink.trackLink;\nUnboundOutboundLink.trackLink = Defaults.outboundLink;\nexport var OutboundLink = UnboundOutboundLink;\nexport default _objectSpread(_objectSpread({}, Defaults), {}, {\n OutboundLink: OutboundLink\n});","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","const createCapacitorPlatforms = (win) => {\n const defaultPlatformMap = new Map();\n defaultPlatformMap.set('web', { name: 'web' });\n const capPlatforms = win.CapacitorPlatforms || {\n currentPlatform: { name: 'web' },\n platforms: defaultPlatformMap,\n };\n const addPlatform = (name, platform) => {\n capPlatforms.platforms.set(name, platform);\n };\n const setPlatform = (name) => {\n if (capPlatforms.platforms.has(name)) {\n capPlatforms.currentPlatform = capPlatforms.platforms.get(name);\n }\n };\n capPlatforms.addPlatform = addPlatform;\n capPlatforms.setPlatform = setPlatform;\n return capPlatforms;\n};\nconst initPlatforms = (win) => (win.CapacitorPlatforms = createCapacitorPlatforms(win));\n/**\n * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead\n */\nexport const CapacitorPlatforms = /*#__PURE__*/ initPlatforms((typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {}));\n/**\n * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead\n */\nexport const addPlatform = CapacitorPlatforms.addPlatform;\n/**\n * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead\n */\nexport const setPlatform = CapacitorPlatforms.setPlatform;\n//# sourceMappingURL=platforms.js.map","export var ExceptionCode;\n(function (ExceptionCode) {\n /**\n * API is not implemented.\n *\n * This usually means the API can't be used because it is not implemented for\n * the current platform.\n */\n ExceptionCode[\"Unimplemented\"] = \"UNIMPLEMENTED\";\n /**\n * API is not available.\n *\n * This means the API can't be used right now because:\n * - it is currently missing a prerequisite, such as network connectivity\n * - it requires a particular platform or browser version\n */\n ExceptionCode[\"Unavailable\"] = \"UNAVAILABLE\";\n})(ExceptionCode || (ExceptionCode = {}));\nexport class CapacitorException extends Error {\n constructor(message, code) {\n super(message);\n this.message = message;\n this.code = code;\n }\n}\nexport const getPlatformId = (win) => {\n var _a, _b;\n if (win === null || win === void 0 ? void 0 : win.androidBridge) {\n return 'android';\n }\n else if ((_b = (_a = win === null || win === void 0 ? void 0 : win.webkit) === null || _a === void 0 ? void 0 : _a.messageHandlers) === null || _b === void 0 ? void 0 : _b.bridge) {\n return 'ios';\n }\n else {\n return 'web';\n }\n};\n//# sourceMappingURL=util.js.map","import { legacyRegisterWebPlugin } from './legacy/legacy-web-plugin-merge';\nimport { initCapacitorGlobal } from './runtime';\nexport const Capacitor = /*#__PURE__*/ initCapacitorGlobal(typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {});\nexport const registerPlugin = Capacitor.registerPlugin;\n/**\n * @deprecated Provided for backwards compatibility for Capacitor v2 plugins.\n * Capacitor v3 plugins should import the plugin directly. This \"Plugins\"\n * export is deprecated in v3, and will be removed in v4.\n */\nexport const Plugins = Capacitor.Plugins;\n/**\n * Provided for backwards compatibility. Use the registerPlugin() API\n * instead, and provide the web plugin as the \"web\" implmenetation.\n * For example\n *\n * export const Example = registerPlugin('Example', {\n * web: () => import('./web').then(m => new m.Example())\n * })\n *\n * @deprecated Deprecated in v3, will be removed from v4.\n */\nexport const registerWebPlugin = (plugin) => legacyRegisterWebPlugin(Capacitor, plugin);\n//# sourceMappingURL=global.js.map","import { CapacitorException, getPlatformId, ExceptionCode } from './util';\nexport const createCapacitor = (win) => {\n var _a, _b, _c, _d, _e;\n const capCustomPlatform = win.CapacitorCustomPlatform || null;\n const cap = win.Capacitor || {};\n const Plugins = (cap.Plugins = cap.Plugins || {});\n /**\n * @deprecated Use `capCustomPlatform` instead, default functions like registerPlugin will function with the new object.\n */\n const capPlatforms = win.CapacitorPlatforms;\n const defaultGetPlatform = () => {\n return capCustomPlatform !== null\n ? capCustomPlatform.name\n : getPlatformId(win);\n };\n const getPlatform = ((_a = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _a === void 0 ? void 0 : _a.getPlatform) || defaultGetPlatform;\n const defaultIsNativePlatform = () => getPlatform() !== 'web';\n const isNativePlatform = ((_b = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _b === void 0 ? void 0 : _b.isNativePlatform) || defaultIsNativePlatform;\n const defaultIsPluginAvailable = (pluginName) => {\n const plugin = registeredPlugins.get(pluginName);\n if (plugin === null || plugin === void 0 ? void 0 : plugin.platforms.has(getPlatform())) {\n // JS implementation available for the current platform.\n return true;\n }\n if (getPluginHeader(pluginName)) {\n // Native implementation available.\n return true;\n }\n return false;\n };\n const isPluginAvailable = ((_c = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _c === void 0 ? void 0 : _c.isPluginAvailable) ||\n defaultIsPluginAvailable;\n const defaultGetPluginHeader = (pluginName) => { var _a; return (_a = cap.PluginHeaders) === null || _a === void 0 ? void 0 : _a.find(h => h.name === pluginName); };\n const getPluginHeader = ((_d = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _d === void 0 ? void 0 : _d.getPluginHeader) || defaultGetPluginHeader;\n const handleError = (err) => win.console.error(err);\n const pluginMethodNoop = (_target, prop, pluginName) => {\n return Promise.reject(`${pluginName} does not have an implementation of \"${prop}\".`);\n };\n const registeredPlugins = new Map();\n const defaultRegisterPlugin = (pluginName, jsImplementations = {}) => {\n const registeredPlugin = registeredPlugins.get(pluginName);\n if (registeredPlugin) {\n console.warn(`Capacitor plugin \"${pluginName}\" already registered. Cannot register plugins twice.`);\n return registeredPlugin.proxy;\n }\n const platform = getPlatform();\n const pluginHeader = getPluginHeader(pluginName);\n let jsImplementation;\n const loadPluginImplementation = async () => {\n if (!jsImplementation && platform in jsImplementations) {\n jsImplementation =\n typeof jsImplementations[platform] === 'function'\n ? (jsImplementation = await jsImplementations[platform]())\n : (jsImplementation = jsImplementations[platform]);\n }\n else if (capCustomPlatform !== null &&\n !jsImplementation &&\n 'web' in jsImplementations) {\n jsImplementation =\n typeof jsImplementations['web'] === 'function'\n ? (jsImplementation = await jsImplementations['web']())\n : (jsImplementation = jsImplementations['web']);\n }\n return jsImplementation;\n };\n const createPluginMethod = (impl, prop) => {\n var _a, _b;\n if (pluginHeader) {\n const methodHeader = pluginHeader === null || pluginHeader === void 0 ? void 0 : pluginHeader.methods.find(m => prop === m.name);\n if (methodHeader) {\n if (methodHeader.rtype === 'promise') {\n return (options) => cap.nativePromise(pluginName, prop.toString(), options);\n }\n else {\n return (options, callback) => cap.nativeCallback(pluginName, prop.toString(), options, callback);\n }\n }\n else if (impl) {\n return (_a = impl[prop]) === null || _a === void 0 ? void 0 : _a.bind(impl);\n }\n }\n else if (impl) {\n return (_b = impl[prop]) === null || _b === void 0 ? void 0 : _b.bind(impl);\n }\n else {\n throw new CapacitorException(`\"${pluginName}\" plugin is not implemented on ${platform}`, ExceptionCode.Unimplemented);\n }\n };\n const createPluginMethodWrapper = (prop) => {\n let remove;\n const wrapper = (...args) => {\n const p = loadPluginImplementation().then(impl => {\n const fn = createPluginMethod(impl, prop);\n if (fn) {\n const p = fn(...args);\n remove = p === null || p === void 0 ? void 0 : p.remove;\n return p;\n }\n else {\n throw new CapacitorException(`\"${pluginName}.${prop}()\" is not implemented on ${platform}`, ExceptionCode.Unimplemented);\n }\n });\n if (prop === 'addListener') {\n p.remove = async () => remove();\n }\n return p;\n };\n // Some flair ✨\n wrapper.toString = () => `${prop.toString()}() { [capacitor code] }`;\n Object.defineProperty(wrapper, 'name', {\n value: prop,\n writable: false,\n configurable: false,\n });\n return wrapper;\n };\n const addListener = createPluginMethodWrapper('addListener');\n const removeListener = createPluginMethodWrapper('removeListener');\n const addListenerNative = (eventName, callback) => {\n const call = addListener({ eventName }, callback);\n const remove = async () => {\n const callbackId = await call;\n removeListener({\n eventName,\n callbackId,\n }, callback);\n };\n const p = new Promise(resolve => call.then(() => resolve({ remove })));\n p.remove = async () => {\n console.warn(`Using addListener() without 'await' is deprecated.`);\n await remove();\n };\n return p;\n };\n const proxy = new Proxy({}, {\n get(_, prop) {\n switch (prop) {\n // https://github.com/facebook/react/issues/20030\n case '$$typeof':\n return undefined;\n case 'toJSON':\n return () => ({});\n case 'addListener':\n return pluginHeader ? addListenerNative : addListener;\n case 'removeListener':\n return removeListener;\n default:\n return createPluginMethodWrapper(prop);\n }\n },\n });\n Plugins[pluginName] = proxy;\n registeredPlugins.set(pluginName, {\n name: pluginName,\n proxy,\n platforms: new Set([\n ...Object.keys(jsImplementations),\n ...(pluginHeader ? [platform] : []),\n ]),\n });\n return proxy;\n };\n const registerPlugin = ((_e = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _e === void 0 ? void 0 : _e.registerPlugin) || defaultRegisterPlugin;\n // Add in convertFileSrc for web, it will already be available in native context\n if (!cap.convertFileSrc) {\n cap.convertFileSrc = filePath => filePath;\n }\n cap.getPlatform = getPlatform;\n cap.handleError = handleError;\n cap.isNativePlatform = isNativePlatform;\n cap.isPluginAvailable = isPluginAvailable;\n cap.pluginMethodNoop = pluginMethodNoop;\n cap.registerPlugin = registerPlugin;\n cap.Exception = CapacitorException;\n cap.DEBUG = !!cap.DEBUG;\n cap.isLoggingEnabled = !!cap.isLoggingEnabled;\n // Deprecated props\n cap.platform = cap.getPlatform();\n cap.isNative = cap.isNativePlatform();\n return cap;\n};\nexport const initCapacitorGlobal = (win) => (win.Capacitor = createCapacitor(win));\n//# sourceMappingURL=runtime.js.map","import { Capacitor } from './global';\nimport { ExceptionCode } from './util';\n/**\n * Base class web plugins should extend.\n */\nexport class WebPlugin {\n constructor(config) {\n this.listeners = {};\n this.windowListeners = {};\n if (config) {\n // TODO: add link to upgrade guide\n console.warn(`Capacitor WebPlugin \"${config.name}\" config object was deprecated in v3 and will be removed in v4.`);\n this.config = config;\n }\n }\n addListener(eventName, listenerFunc) {\n const listeners = this.listeners[eventName];\n if (!listeners) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push(listenerFunc);\n // If we haven't added a window listener for this event and it requires one,\n // go ahead and add it\n const windowListener = this.windowListeners[eventName];\n if (windowListener && !windowListener.registered) {\n this.addWindowListener(windowListener);\n }\n const remove = async () => this.removeListener(eventName, listenerFunc);\n const p = Promise.resolve({ remove });\n Object.defineProperty(p, 'remove', {\n value: async () => {\n console.warn(`Using addListener() without 'await' is deprecated.`);\n await remove();\n },\n });\n return p;\n }\n async removeAllListeners() {\n this.listeners = {};\n for (const listener in this.windowListeners) {\n this.removeWindowListener(this.windowListeners[listener]);\n }\n this.windowListeners = {};\n }\n notifyListeners(eventName, data) {\n const listeners = this.listeners[eventName];\n if (listeners) {\n listeners.forEach(listener => listener(data));\n }\n }\n hasListeners(eventName) {\n return !!this.listeners[eventName].length;\n }\n registerWindowListener(windowEventName, pluginEventName) {\n this.windowListeners[pluginEventName] = {\n registered: false,\n windowEventName,\n pluginEventName,\n handler: event => {\n this.notifyListeners(pluginEventName, event);\n },\n };\n }\n unimplemented(msg = 'not implemented') {\n return new Capacitor.Exception(msg, ExceptionCode.Unimplemented);\n }\n unavailable(msg = 'not available') {\n return new Capacitor.Exception(msg, ExceptionCode.Unavailable);\n }\n async removeListener(eventName, listenerFunc) {\n const listeners = this.listeners[eventName];\n if (!listeners) {\n return;\n }\n const index = listeners.indexOf(listenerFunc);\n this.listeners[eventName].splice(index, 1);\n // If there are no more listeners for this type of event,\n // remove the window listener\n if (!this.listeners[eventName].length) {\n this.removeWindowListener(this.windowListeners[eventName]);\n }\n }\n addWindowListener(handle) {\n window.addEventListener(handle.windowEventName, handle.handler);\n handle.registered = true;\n }\n removeWindowListener(handle) {\n if (!handle) {\n return;\n }\n window.removeEventListener(handle.windowEventName, handle.handler);\n handle.registered = false;\n }\n}\n//# sourceMappingURL=web-plugin.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Column = void 0;\n\nvar _react = require(\"react\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 Column = /*#__PURE__*/function (_Component) {\n _inherits(Column, _Component);\n\n var _super = _createSuper(Column);\n\n function Column() {\n _classCallCheck(this, Column);\n\n return _super.apply(this, arguments);\n }\n\n return Column;\n}(_react.Component);\n\nexports.Column = Column;\n\n_defineProperty(Column, \"defaultProps\", {\n columnKey: null,\n field: null,\n sortField: null,\n filterField: null,\n header: null,\n body: null,\n loadingBody: null,\n footer: null,\n sortable: false,\n sortFunction: null,\n filter: false,\n filterMatchMode: 'startsWith',\n filterPlaceholder: null,\n filterType: 'text',\n filterMaxLength: null,\n filterElement: null,\n filterFunction: null,\n filterHeaderStyle: null,\n filterHeaderClassName: null,\n style: null,\n className: null,\n headerStyle: null,\n headerClassName: null,\n bodyStyle: null,\n bodyClassName: null,\n footerStyle: null,\n footerClassName: null,\n expander: false,\n frozen: false,\n selectionMode: null,\n colSpan: null,\n rowSpan: null,\n editor: null,\n editorValidator: null,\n editorValidatorEvent: 'click',\n onEditorInit: null,\n onEditorSubmit: null,\n onEditorCancel: null,\n excludeGlobalFilter: false,\n rowReorder: false,\n rowReorderIcon: 'pi pi-bars',\n rowEditor: false,\n exportable: true,\n reorderable: true\n});\n\n_defineProperty(Column, \"propTypes\", {\n columnKey: _propTypes.default.string,\n field: _propTypes.default.string,\n sortField: _propTypes.default.string,\n filterField: _propTypes.default.string,\n header: _propTypes.default.any,\n body: _propTypes.default.any,\n loadingBody: _propTypes.default.func,\n footer: _propTypes.default.any,\n sortable: _propTypes.default.any,\n sortFunction: _propTypes.default.func,\n filter: _propTypes.default.bool,\n filterMatchMode: _propTypes.default.string,\n filterPlaceholder: _propTypes.default.string,\n filterType: _propTypes.default.string,\n filterMaxLength: _propTypes.default.number,\n filterElement: _propTypes.default.object,\n filterFunction: _propTypes.default.func,\n filterHeaderStyle: _propTypes.default.object,\n filterHeaderClassName: _propTypes.default.string,\n style: _propTypes.default.object,\n className: _propTypes.default.string,\n headerStyle: _propTypes.default.object,\n headerClassName: _propTypes.default.string,\n bodyStyle: _propTypes.default.object,\n bodyClassName: _propTypes.default.string,\n footerStyle: _propTypes.default.object,\n footerClassName: _propTypes.default.string,\n expander: _propTypes.default.bool,\n frozen: _propTypes.default.bool,\n selectionMode: _propTypes.default.string,\n colSpan: _propTypes.default.number,\n rowSpan: _propTypes.default.number,\n editor: _propTypes.default.func,\n editorValidator: _propTypes.default.func,\n onEditorInit: _propTypes.default.func,\n onEditorSubmit: _propTypes.default.func,\n onEditorCancel: _propTypes.default.func,\n editorValidatorEvent: _propTypes.default.string,\n excludeGlobalFilter: _propTypes.default.bool,\n rowReorder: _propTypes.default.bool,\n rowReorderIcon: _propTypes.default.string,\n rowEditor: _propTypes.default.bool,\n exportable: _propTypes.default.bool,\n reorderable: _propTypes.default.bool\n});","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import superPropBase from \"./superPropBase\";\nexport default function _get(target, property, receiver) {\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(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}","import getPrototypeOf from \"./getPrototypeOf\";\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 EventEmitter from 'eventemitter3';\nvar eventCenter = new EventEmitter();\n\nif (eventCenter.setMaxListeners) {\n eventCenter.setMaxListeners(10);\n}\n\nexport { eventCenter };\nexport var SYNC_EVENT = 'recharts.syncMouseEvents'; // eslint-disable-next-line no-redeclare","export var ifOverflowMatches = function ifOverflowMatches(props, value) {\n var alwaysShow = props.alwaysShow;\n var ifOverflow = props.ifOverflow;\n\n if (alwaysShow) {\n ifOverflow = 'extendDomain';\n }\n\n return ifOverflow === value;\n};","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DataTable = void 0;\n\nvar _ClassNames = require(\"../utils/ClassNames\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _Paginator = require(\"../paginator/Paginator\");\n\nvar _DomHandler = _interopRequireDefault(require(\"../utils/DomHandler\"));\n\nvar _ObjectUtils = _interopRequireDefault(require(\"../utils/ObjectUtils\"));\n\nvar _FilterUtils = _interopRequireDefault(require(\"../utils/FilterUtils\"));\n\nvar _ScrollableView = require(\"./ScrollableView\");\n\nvar _TableBody = require(\"./TableBody\");\n\nvar _TableFooter = require(\"./TableFooter\");\n\nvar _TableHeader = require(\"./TableHeader\");\n\nvar _TableLoadingBody = require(\"./TableLoadingBody\");\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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\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\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\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\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 _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\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 _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 DataTable = /*#__PURE__*/function (_Component) {\n _inherits(DataTable, _Component);\n\n var _super = _createSuper(DataTable);\n\n function DataTable(props) {\n var _this;\n\n _classCallCheck(this, DataTable);\n\n _this = _super.call(this, props);\n _this.state = {};\n\n if (!_this.props.onPage) {\n _this.state.first = props.first;\n _this.state.rows = props.rows;\n }\n\n if (!_this.props.onSort) {\n _this.state.sortField = props.sortField;\n _this.state.sortOrder = props.sortOrder;\n _this.state.multiSortMeta = props.multiSortMeta;\n }\n\n if (!_this.props.onFilter) {\n _this.state.filters = props.filters;\n }\n\n if (_this.isStateful()) {\n _this.restoreState(_this.state);\n }\n\n _this.onPageChange = _this.onPageChange.bind(_assertThisInitialized(_this));\n _this.onSort = _this.onSort.bind(_assertThisInitialized(_this));\n _this.onFilter = _this.onFilter.bind(_assertThisInitialized(_this));\n _this.onColumnResizeStart = _this.onColumnResizeStart.bind(_assertThisInitialized(_this));\n _this.onHeaderCheckboxClick = _this.onHeaderCheckboxClick.bind(_assertThisInitialized(_this));\n _this.onColumnDragStart = _this.onColumnDragStart.bind(_assertThisInitialized(_this));\n _this.onColumnDragOver = _this.onColumnDragOver.bind(_assertThisInitialized(_this));\n _this.onColumnDragLeave = _this.onColumnDragLeave.bind(_assertThisInitialized(_this));\n _this.onColumnDrop = _this.onColumnDrop.bind(_assertThisInitialized(_this));\n _this.onVirtualScroll = _this.onVirtualScroll.bind(_assertThisInitialized(_this));\n _this.frozenSelectionMode = null;\n return _this;\n }\n\n _createClass(DataTable, [{\n key: \"getFirst\",\n value: function getFirst() {\n return this.props.onPage ? this.props.first : this.state.first;\n }\n }, {\n key: \"getRows\",\n value: function getRows() {\n return this.props.onPage ? this.props.rows : this.state.rows;\n }\n }, {\n key: \"getSortField\",\n value: function getSortField() {\n return this.props.onSort ? this.props.sortField : this.state.sortField;\n }\n }, {\n key: \"getSortOrder\",\n value: function getSortOrder() {\n return this.props.onSort ? this.props.sortOrder : this.state.sortOrder;\n }\n }, {\n key: \"getMultiSortMeta\",\n value: function getMultiSortMeta() {\n return this.props.onSort ? this.props.multiSortMeta : this.state.multiSortMeta;\n }\n }, {\n key: \"getFilters\",\n value: function getFilters() {\n return this.props.onFilter ? this.props.filters : this.state.filters;\n }\n }, {\n key: \"getStorage\",\n value: function getStorage() {\n switch (this.props.stateStorage) {\n case 'local':\n return window.localStorage;\n\n case 'session':\n return window.sessionStorage;\n\n case 'custom':\n return null;\n\n default:\n throw new Error(this.props.stateStorage + ' is not a valid value for the state storage, supported values are \"local\", \"session\" and \"custom\".');\n }\n }\n }, {\n key: \"isCustomStateStorage\",\n value: function isCustomStateStorage() {\n return this.props.stateStorage === 'custom';\n }\n }, {\n key: \"isStateful\",\n value: function isStateful() {\n return this.props.stateKey != null || this.isCustomStateStorage();\n }\n }, {\n key: \"saveState\",\n value: function saveState() {\n var state = {};\n\n if (this.props.paginator) {\n state.first = this.getFirst();\n state.rows = this.getRows();\n }\n\n var sortField = this.getSortField();\n\n if (sortField) {\n state.sortField = sortField;\n state.sortOrder = this.getSortOrder();\n }\n\n var multiSortMeta = this.getMultiSortMeta();\n\n if (multiSortMeta) {\n state.multiSortMeta = multiSortMeta;\n }\n\n if (this.hasFilter()) {\n state.filters = this.getFilters();\n }\n\n if (this.props.resizableColumns) {\n this.saveColumnWidths(state);\n }\n\n if (this.props.reorderableColumns) {\n state.columnOrder = this.state.columnOrder;\n }\n\n if (this.props.expandedRows) {\n state.expandedRows = this.props.expandedRows;\n }\n\n if (this.props.selection && this.props.onSelectionChange) {\n state.selection = this.props.selection;\n }\n\n if (this.isCustomStateStorage()) {\n if (this.props.customSaveState) {\n this.props.customSaveState(state);\n }\n } else {\n var storage = this.getStorage();\n\n if (Object.keys(state).length) {\n storage.setItem(this.props.stateKey, JSON.stringify(state));\n }\n }\n\n if (this.props.onStateSave) {\n this.props.onStateSave(state);\n }\n }\n }, {\n key: \"clearState\",\n value: function clearState() {\n var storage = this.getStorage();\n\n if (storage && this.props.stateKey) {\n storage.removeItem(this.props.stateKey);\n }\n }\n }, {\n key: \"restoreState\",\n value: function restoreState(state) {\n var restoredState = {};\n\n if (this.isCustomStateStorage()) {\n if (this.props.customRestoreState) {\n restoredState = this.props.customRestoreState();\n }\n } else {\n var storage = this.getStorage();\n var stateString = storage.getItem(this.props.stateKey);\n\n if (stateString) {\n restoredState = JSON.parse(stateString);\n }\n }\n\n if (restoredState && Object.keys(restoredState).length) {\n if (this.props.paginator) {\n if (this.props.onPage) {\n this.props.onPage({\n first: restoredState.first,\n rows: restoredState.rows\n });\n } else {\n state.first = restoredState.first;\n state.rows = restoredState.rows;\n }\n }\n\n if (restoredState.sortField) {\n if (this.props.onSort) {\n this.props.onSort({\n sortField: restoredState.sortField,\n sortOrder: restoredState.sortOrder\n });\n } else {\n state.sortField = restoredState.sortField;\n state.sortOrder = restoredState.sortOrder;\n }\n }\n\n if (restoredState.multiSortMeta) {\n if (this.props.onSort) {\n this.props.onSort({\n multiSortMeta: restoredState.multiSortMeta\n });\n } else {\n state.multiSortMeta = restoredState.multiSortMeta;\n }\n }\n\n if (restoredState.filters) {\n if (this.props.onFilter) {\n this.props.onFilter({\n filters: restoredState.filters\n });\n } else {\n state.filters = restoredState.filters;\n }\n }\n\n if (this.props.resizableColumns) {\n this.columnWidthsState = restoredState.columnWidths;\n this.tableWidthState = restoredState.tableWidth;\n }\n\n if (this.props.reorderableColumns) {\n state.columnOrder = restoredState.columnOrder;\n }\n\n if (restoredState.expandedRows && this.props.onRowToggle) {\n this.props.onRowToggle({\n data: restoredState.expandedRows\n });\n }\n\n if (restoredState.selection && this.props.onSelectionChange) {\n this.props.onSelectionChange({\n value: restoredState.selection\n });\n }\n\n if (this.props.onStateRestore) {\n this.props.onStateRestore(restoredState);\n }\n }\n }\n }, {\n key: \"saveColumnWidths\",\n value: function saveColumnWidths(state) {\n var widths = [];\n\n var headers = _DomHandler.default.find(this.container, '.p-datatable-thead > tr > th');\n\n headers.map(function (header) {\n return widths.push(_DomHandler.default.getOuterWidth(header));\n });\n state.columnWidths = widths.join(',');\n\n if (this.props.columnResizeMode === 'expand') {\n state.tableWidth = this.props.scrollable ? _DomHandler.default.findSingle(this.container, '.p-datatable-scrollable-header-table').style.width : _DomHandler.default.getOuterWidth(this.table) + 'px';\n }\n }\n }, {\n key: \"restoreColumnWidths\",\n value: function restoreColumnWidths() {\n if (this.columnWidthsState) {\n var widths = this.columnWidthsState.split(',');\n\n if (this.props.columnResizeMode === 'expand' && this.tableWidthState) {\n if (this.props.scrollable) {\n this.setScrollableItemsWidthOnExpandResize(null, this.tableWidthState, 0);\n } else {\n this.table.style.width = this.tableWidthState;\n this.container.style.width = this.tableWidthState;\n }\n }\n\n if (this.props.scrollable) {\n var headerCols = _DomHandler.default.find(this.container, '.p-datatable-scrollable-header-table > colgroup > col');\n\n var bodyCols = _DomHandler.default.find(this.container, '.p-datatable-scrollable-body-table > colgroup > col');\n\n headerCols.map(function (col, index) {\n return col.style.width = widths[index] + 'px';\n });\n bodyCols.map(function (col, index) {\n return col.style.width = widths[index] + 'px';\n });\n } else {\n var headers = _DomHandler.default.find(this.table, '.p-datatable-thead > tr > th');\n\n headers.map(function (header, index) {\n return header.style.width = widths[index] + 'px';\n });\n }\n }\n }\n }, {\n key: \"onPageChange\",\n value: function onPageChange(event) {\n if (this.props.onPage) this.props.onPage(event);else this.setState({\n first: event.first,\n rows: event.rows\n });\n\n if (this.props.onValueChange) {\n this.props.onValueChange();\n }\n }\n }, {\n key: \"createPaginator\",\n value: function createPaginator(position, totalRecords, data) {\n var className = 'p-paginator-' + position;\n return /*#__PURE__*/_react.default.createElement(_Paginator.Paginator, {\n first: this.getFirst(),\n rows: this.getRows(),\n pageLinkSize: this.props.pageLinkSize,\n className: className,\n onPageChange: this.onPageChange,\n template: this.props.paginatorTemplate,\n totalRecords: totalRecords,\n rowsPerPageOptions: this.props.rowsPerPageOptions,\n currentPageReportTemplate: this.props.currentPageReportTemplate,\n leftContent: this.props.paginatorLeft,\n rightContent: this.props.paginatorRight,\n alwaysShow: this.props.alwaysShowPaginator,\n dropdownAppendTo: this.props.paginatorDropdownAppendTo\n });\n }\n }, {\n key: \"onSort\",\n value: function onSort(event) {\n var sortField = event.sortField;\n var sortOrder = this.props.defaultSortOrder;\n var multiSortMeta;\n var eventMeta;\n this.columnSortable = event.sortable;\n this.columnSortFunction = event.sortFunction;\n this.columnField = event.sortField;\n\n if (this.props.sortMode === 'multiple') {\n var metaKey = event.originalEvent.metaKey || event.originalEvent.ctrlKey;\n multiSortMeta = this.getMultiSortMeta();\n\n if (multiSortMeta && multiSortMeta instanceof Array) {\n var sortMeta = multiSortMeta.find(function (sortMeta) {\n return sortMeta.field === sortField;\n });\n sortOrder = sortMeta ? this.getCalculatedSortOrder(sortMeta.order) : sortOrder;\n }\n\n var newMetaData = {\n field: sortField,\n order: sortOrder\n };\n\n if (sortOrder) {\n if (!multiSortMeta || !metaKey) {\n multiSortMeta = [];\n }\n\n this.addSortMeta(newMetaData, multiSortMeta);\n } else if (this.props.removableSort && multiSortMeta) {\n this.removeSortMeta(newMetaData, multiSortMeta);\n }\n\n eventMeta = {\n multiSortMeta: multiSortMeta\n };\n } else {\n sortOrder = this.getSortField() === sortField ? this.getCalculatedSortOrder(this.getSortOrder()) : sortOrder;\n\n if (this.props.removableSort) {\n sortField = sortOrder ? sortField : null;\n }\n\n eventMeta = {\n sortField: sortField,\n sortOrder: sortOrder\n };\n }\n\n if (this.props.onSort) {\n this.props.onSort(eventMeta);\n } else {\n eventMeta.first = 0;\n this.setState(eventMeta);\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(this.processData({\n sortField: sortField,\n sortOrder: sortOrder,\n multiSortMeta: multiSortMeta\n }));\n }\n }\n }, {\n key: \"getCalculatedSortOrder\",\n value: function getCalculatedSortOrder(currentOrder) {\n return this.props.removableSort ? currentOrder ? currentOrder < 0 ? 0 : -1 : 1 : currentOrder * -1;\n }\n }, {\n key: \"addSortMeta\",\n value: function addSortMeta(meta, multiSortMeta) {\n var index = -1;\n\n for (var i = 0; i < multiSortMeta.length; i++) {\n if (multiSortMeta[i].field === meta.field) {\n index = i;\n break;\n }\n }\n\n if (index >= 0) multiSortMeta[index] = meta;else multiSortMeta.push(meta);\n }\n }, {\n key: \"removeSortMeta\",\n value: function removeSortMeta(meta, multiSortMeta) {\n var index = -1;\n\n for (var i = 0; i < multiSortMeta.length; i++) {\n if (multiSortMeta[i].field === meta.field) {\n index = i;\n break;\n }\n }\n\n if (index >= 0) {\n multiSortMeta.splice(index, 1);\n }\n\n multiSortMeta = multiSortMeta.length > 0 ? multiSortMeta : null;\n }\n }, {\n key: \"sortSingle\",\n value: function sortSingle(data, sortField, sortOrder) {\n var value = _toConsumableArray(data);\n\n if (this.columnSortable && this.columnSortFunction) {\n value = this.columnSortFunction({\n field: this.getSortField(),\n order: this.getSortOrder()\n });\n } else {\n value.sort(function (data1, data2) {\n var value1 = _ObjectUtils.default.resolveFieldData(data1, sortField);\n\n var value2 = _ObjectUtils.default.resolveFieldData(data2, sortField);\n\n var result = null;\n if (value1 == null && value2 != null) result = -1;else if (value1 != null && value2 == null) result = 1;else if (value1 == null && value2 == null) result = 0;else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2, undefined, {\n numeric: true\n });else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n return sortOrder * result;\n });\n }\n\n return value;\n }\n }, {\n key: \"sortMultiple\",\n value: function sortMultiple(data, multiSortMeta) {\n var _this2 = this;\n\n var value = _toConsumableArray(data);\n\n if (this.columnSortable && this.columnSortFunction) {\n var meta = multiSortMeta.find(function (meta) {\n return meta.field === _this2.columnField;\n });\n var field = this.columnField;\n var order = meta ? meta.order : this.defaultSortOrder;\n value = this.columnSortFunction({\n field: field,\n order: order\n });\n } else {\n value.sort(function (data1, data2) {\n return _this2.multisortField(data1, data2, multiSortMeta, 0);\n });\n }\n\n return value;\n }\n }, {\n key: \"multisortField\",\n value: function multisortField(data1, data2, multiSortMeta, index) {\n var value1 = _ObjectUtils.default.resolveFieldData(data1, multiSortMeta[index].field);\n\n var value2 = _ObjectUtils.default.resolveFieldData(data2, multiSortMeta[index].field);\n\n var result = null;\n\n if (typeof value1 === 'string' || value1 instanceof String) {\n if (value1.localeCompare && value1 !== value2) {\n return multiSortMeta[index].order * value1.localeCompare(value2, undefined, {\n numeric: true\n });\n }\n } else {\n result = value1 < value2 ? -1 : 1;\n }\n\n if (value1 === value2) {\n return multiSortMeta.length - 1 > index ? this.multisortField(data1, data2, multiSortMeta, index + 1) : 0;\n }\n\n return multiSortMeta[index].order * result;\n }\n }, {\n key: \"filter\",\n value: function filter(value, field, mode) {\n this.onFilter({\n value: value,\n field: field,\n matchMode: mode\n });\n }\n }, {\n key: \"onFilter\",\n value: function onFilter(event) {\n var currentFilters = this.getFilters();\n var newFilters = currentFilters ? _objectSpread({}, currentFilters) : {};\n if (!this.isFilterBlank(event.value)) newFilters[event.field] = {\n value: event.value,\n matchMode: event.matchMode\n };else if (newFilters[event.field]) delete newFilters[event.field];\n\n if (this.props.onFilter) {\n this.props.onFilter({\n filters: newFilters\n });\n } else {\n this.setState({\n first: 0,\n filters: newFilters\n });\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(this.processData({\n filters: newFilters\n }));\n }\n }\n }, {\n key: \"hasFilter\",\n value: function hasFilter() {\n var filters = this.getFilters() || this.props.globalFilter;\n return filters && Object.keys(filters).length > 0;\n }\n }, {\n key: \"isFilterBlank\",\n value: function isFilterBlank(filter) {\n if (filter !== null && filter !== undefined) {\n if (typeof filter === 'string' && filter.trim().length === 0 || filter instanceof Array && filter.length === 0) return true;else return false;\n }\n\n return true;\n }\n }, {\n key: \"hasFooter\",\n value: function hasFooter() {\n if (this.props.children) {\n if (this.props.footerColumnGroup) {\n return true;\n } else {\n return this.hasChildrenFooter(this.props.children);\n }\n } else {\n return false;\n }\n }\n }, {\n key: \"hasChildrenFooter\",\n value: function hasChildrenFooter(children) {\n var hasFooter = false;\n\n if (children) {\n if (children instanceof Array) {\n for (var i = 0; i < children.length; i++) {\n hasFooter = hasFooter || this.hasChildrenFooter(children[i]);\n }\n } else {\n return children.props && children.props.footer !== null;\n }\n }\n\n return hasFooter;\n }\n }, {\n key: \"onColumnResizeStart\",\n value: function onColumnResizeStart(event) {\n var containerLeft = _DomHandler.default.getOffset(this.container).left;\n\n this.resizeColumn = event.columnEl;\n this.resizeColumnProps = event.columnProps;\n this.columnResizing = true;\n this.lastResizerHelperX = event.originalEvent.pageX - containerLeft + this.container.scrollLeft;\n this.bindColumnResizeEvents();\n }\n }, {\n key: \"onColumnResize\",\n value: function onColumnResize(event) {\n var containerLeft = _DomHandler.default.getOffset(this.container).left;\n\n _DomHandler.default.addClass(this.container, 'p-unselectable-text');\n\n this.resizerHelper.style.height = this.container.offsetHeight + 'px';\n this.resizerHelper.style.top = 0 + 'px';\n this.resizerHelper.style.left = event.pageX - containerLeft + this.container.scrollLeft + 'px';\n this.resizerHelper.style.display = 'block';\n }\n }, {\n key: \"onColumnResizeEnd\",\n value: function onColumnResizeEnd(event) {\n var delta = this.resizerHelper.offsetLeft - this.lastResizerHelperX;\n var columnWidth = this.resizeColumn.offsetWidth;\n var newColumnWidth = columnWidth + delta;\n var minWidth = this.resizeColumn.style.minWidth || 15;\n\n if (columnWidth + delta > parseInt(minWidth, 10)) {\n if (this.props.columnResizeMode === 'fit') {\n var nextColumn = this.resizeColumn.nextElementSibling;\n var nextColumnWidth = nextColumn.offsetWidth - delta;\n\n if (newColumnWidth > 15 && nextColumnWidth > 15) {\n if (this.props.scrollable) {\n var scrollableView = this.findParentScrollableView(this.resizeColumn);\n\n var scrollableBodyTable = _DomHandler.default.findSingle(scrollableView, 'table.p-datatable-scrollable-body-table');\n\n var scrollableHeaderTable = _DomHandler.default.findSingle(scrollableView, 'table.p-datatable-scrollable-header-table');\n\n var scrollableFooterTable = _DomHandler.default.findSingle(scrollableView, 'table.p-datatable-scrollable-footer-table');\n\n var resizeColumnIndex = _DomHandler.default.index(this.resizeColumn);\n\n this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n } else {\n this.resizeColumn.style.width = newColumnWidth + 'px';\n\n if (nextColumn) {\n nextColumn.style.width = nextColumnWidth + 'px';\n }\n }\n }\n } else if (this.props.columnResizeMode === 'expand') {\n if (this.props.scrollable) {\n this.setScrollableItemsWidthOnExpandResize(this.resizeColumn, newColumnWidth, delta);\n } else {\n this.table.style.width = this.table.offsetWidth + delta + 'px';\n this.resizeColumn.style.width = newColumnWidth + 'px';\n }\n }\n\n if (this.props.onColumnResizeEnd) {\n this.props.onColumnResizeEnd({\n element: this.resizeColumn,\n column: this.resizeColumnProps,\n delta: delta\n });\n }\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n this.resizerHelper.style.display = 'none';\n this.resizeColumn = null;\n this.resizeColumnProps = null;\n\n _DomHandler.default.removeClass(this.container, 'p-unselectable-text');\n\n this.unbindColumnResizeEvents();\n }\n }, {\n key: \"setScrollableItemsWidthOnExpandResize\",\n value: function setScrollableItemsWidthOnExpandResize(column, newColumnWidth, delta) {\n var scrollableView = column ? this.findParentScrollableView(column) : this.container;\n\n var scrollableBody = _DomHandler.default.findSingle(scrollableView, '.p-datatable-scrollable-body');\n\n var scrollableHeader = _DomHandler.default.findSingle(scrollableView, '.p-datatable-scrollable-header');\n\n var scrollableFooter = _DomHandler.default.findSingle(scrollableView, '.p-datatable-scrollable-footer');\n\n var scrollableBodyTable = _DomHandler.default.findSingle(scrollableBody, 'table.p-datatable-scrollable-body-table');\n\n var scrollableHeaderTable = _DomHandler.default.findSingle(scrollableHeader, 'table.p-datatable-scrollable-header-table');\n\n var scrollableFooterTable = _DomHandler.default.findSingle(scrollableFooter, 'table.p-datatable-scrollable-footer-table');\n\n var scrollableBodyTableWidth = column ? scrollableBodyTable.offsetWidth + delta : newColumnWidth;\n var scrollableHeaderTableWidth = column ? scrollableHeaderTable.offsetWidth + delta : newColumnWidth;\n var isContainerInViewport = this.container.offsetWidth >= scrollableBodyTableWidth;\n\n var setWidth = function setWidth(container, table, width, isContainerInViewport) {\n if (container && table) {\n container.style.width = isContainerInViewport ? width + _DomHandler.default.calculateScrollbarWidth(scrollableBody) + 'px' : 'auto';\n table.style.width = width + 'px';\n }\n };\n\n setWidth(scrollableBody, scrollableBodyTable, scrollableBodyTableWidth, isContainerInViewport);\n setWidth(scrollableHeader, scrollableHeaderTable, scrollableHeaderTableWidth, isContainerInViewport);\n setWidth(scrollableFooter, scrollableFooterTable, scrollableHeaderTableWidth, isContainerInViewport);\n\n if (column) {\n var resizeColumnIndex = _DomHandler.default.index(column);\n\n this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, null);\n this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, null);\n this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, null);\n }\n }\n }, {\n key: \"findParentScrollableView\",\n value: function findParentScrollableView(column) {\n if (column) {\n var parent = column.parentElement;\n\n while (parent && !_DomHandler.default.hasClass(parent, 'p-datatable-scrollable-view')) {\n parent = parent.parentElement;\n }\n\n return parent;\n } else {\n return null;\n }\n }\n }, {\n key: \"resizeColGroup\",\n value: function resizeColGroup(table, resizeColumnIndex, newColumnWidth, nextColumnWidth) {\n if (table) {\n var colGroup = table.children[0].nodeName === 'COLGROUP' ? table.children[0] : null;\n\n if (colGroup) {\n var col = colGroup.children[resizeColumnIndex];\n var nextCol = col.nextElementSibling;\n col.style.width = newColumnWidth + 'px';\n\n if (nextCol && nextColumnWidth) {\n nextCol.style.width = nextColumnWidth + 'px';\n }\n } else {\n throw new Error(\"Scrollable tables require a colgroup to support resizable columns\");\n }\n }\n }\n }, {\n key: \"bindColumnResizeEvents\",\n value: function bindColumnResizeEvents() {\n var _this3 = this;\n\n this.documentColumnResizeListener = document.addEventListener('mousemove', function (event) {\n if (_this3.columnResizing) {\n _this3.onColumnResize(event);\n }\n });\n this.documentColumnResizeEndListener = document.addEventListener('mouseup', function (event) {\n if (_this3.columnResizing) {\n _this3.columnResizing = false;\n\n _this3.onColumnResizeEnd(event);\n }\n });\n }\n }, {\n key: \"unbindColumnResizeEvents\",\n value: function unbindColumnResizeEvents() {\n document.removeEventListener('document', this.documentColumnResizeListener);\n document.removeEventListener('document', this.documentColumnResizeEndListener);\n }\n }, {\n key: \"findParentHeader\",\n value: function findParentHeader(element) {\n if (element.nodeName === 'TH') {\n return element;\n } else {\n var parent = element.parentElement;\n\n while (parent.nodeName !== 'TH') {\n parent = parent.parentElement;\n if (!parent) break;\n }\n\n return parent;\n }\n }\n }, {\n key: \"onColumnDragStart\",\n value: function onColumnDragStart(event) {\n if (this.columnResizing) {\n event.preventDefault();\n return;\n }\n\n this.iconWidth = _DomHandler.default.getHiddenElementOuterWidth(this.reorderIndicatorUp);\n this.iconHeight = _DomHandler.default.getHiddenElementOuterHeight(this.reorderIndicatorUp);\n this.draggedColumn = this.findParentHeader(event.target);\n event.dataTransfer.setData('text', 'b'); // Firefox requires this to make dragging possible\n }\n }, {\n key: \"onColumnDragOver\",\n value: function onColumnDragOver(event) {\n var dropHeader = this.findParentHeader(event.target);\n\n if (this.props.reorderableColumns && this.draggedColumn && dropHeader) {\n event.preventDefault();\n\n var containerOffset = _DomHandler.default.getOffset(this.container);\n\n var dropHeaderOffset = _DomHandler.default.getOffset(dropHeader);\n\n if (this.draggedColumn !== dropHeader) {\n var targetLeft = dropHeaderOffset.left - containerOffset.left; //let targetTop = containerOffset.top - dropHeaderOffset.top;\n\n var columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n this.reorderIndicatorUp.style.top = dropHeaderOffset.top - containerOffset.top - (this.iconHeight - 1) + 'px';\n this.reorderIndicatorDown.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n\n if (event.pageX > columnCenter) {\n this.reorderIndicatorUp.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.iconWidth / 2) + 'px';\n this.reorderIndicatorDown.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.iconWidth / 2) + 'px';\n this.dropPosition = 1;\n } else {\n this.reorderIndicatorUp.style.left = targetLeft - Math.ceil(this.iconWidth / 2) + 'px';\n this.reorderIndicatorDown.style.left = targetLeft - Math.ceil(this.iconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n\n this.reorderIndicatorUp.style.display = 'block';\n this.reorderIndicatorDown.style.display = 'block';\n }\n }\n }\n }, {\n key: \"onColumnDragLeave\",\n value: function onColumnDragLeave(event) {\n if (this.props.reorderableColumns && this.draggedColumn) {\n event.preventDefault();\n this.reorderIndicatorUp.style.display = 'none';\n this.reorderIndicatorDown.style.display = 'none';\n }\n }\n }, {\n key: \"onColumnDrop\",\n value: function onColumnDrop(event) {\n event.preventDefault();\n\n if (this.draggedColumn) {\n var dragIndex = _DomHandler.default.index(this.draggedColumn);\n\n var dropIndex = _DomHandler.default.index(this.findParentHeader(event.target));\n\n var allowDrop = dragIndex !== dropIndex;\n\n if (allowDrop && (dropIndex - dragIndex === 1 && this.dropPosition === -1 || dragIndex - dropIndex === 1 && this.dropPosition === 1)) {\n allowDrop = false;\n }\n\n if (allowDrop) {\n var columns = this.state.columnOrder ? this.getColumns() : _react.default.Children.toArray(this.props.children);\n\n _ObjectUtils.default.reorderArray(columns, dragIndex, dropIndex);\n\n var columnOrder = [];\n\n var _iterator = _createForOfIteratorHelper(columns),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var column = _step.value;\n columnOrder.push(column.props.columnKey || column.props.field);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n this.setState({\n columnOrder: columnOrder\n });\n\n if (this.props.onColReorder) {\n this.props.onColReorder({\n originalEvent: event,\n dragIndex: dragIndex,\n dropIndex: dropIndex,\n columns: columns\n });\n }\n }\n\n this.reorderIndicatorUp.style.display = 'none';\n this.reorderIndicatorDown.style.display = 'none';\n this.draggedColumn.draggable = false;\n this.draggedColumn = null;\n this.dropPosition = null;\n }\n }\n }, {\n key: \"onVirtualScroll\",\n value: function onVirtualScroll(event) {\n var _this4 = this;\n\n if (this.virtualScrollTimer) {\n clearTimeout(this.virtualScrollTimer);\n }\n\n this.virtualScrollTimer = setTimeout(function () {\n if (_this4.props.onVirtualScroll) {\n _this4.props.onVirtualScroll({\n first: (event.page - 1) * _this4.props.rows,\n rows: _this4.props.virtualScroll ? _this4.props.rows * 2 : _this4.props.rows\n });\n }\n }, this.props.virtualScrollDelay);\n }\n }, {\n key: \"exportCSV\",\n value: function exportCSV() {\n var _this5 = this;\n\n var data = this.processData();\n var csv = \"\\uFEFF\";\n\n var columns = _react.default.Children.toArray(this.props.children); //headers\n\n\n for (var i = 0; i < columns.length; i++) {\n if (columns[i].props.field) {\n csv += '\"' + (columns[i].props.header || columns[i].props.field) + '\"';\n\n if (i < columns.length - 1) {\n csv += this.props.csvSeparator;\n }\n }\n } //body\n\n\n data.forEach(function (record, i) {\n csv += '\\n';\n\n for (var _i = 0; _i < columns.length; _i++) {\n var column = columns[_i],\n field = column.props.field;\n\n if (column.props.exportable && field) {\n var cellData = _ObjectUtils.default.resolveFieldData(record, field);\n\n if (cellData != null) {\n if (_this5.props.exportFunction) {\n cellData = _this5.props.exportFunction({\n data: cellData,\n field: field\n });\n } else cellData = String(cellData).replace(/\"/g, '\"\"');\n } else cellData = '';\n\n csv += '\"' + cellData + '\"';\n\n if (_i < columns.length - 1) {\n csv += _this5.props.csvSeparator;\n }\n }\n }\n });\n var blob = new Blob([csv], {\n type: 'text/csv;charset=utf-8;'\n });\n\n if (window.navigator.msSaveOrOpenBlob) {\n navigator.msSaveOrOpenBlob(blob, this.props.exportFilename + '.csv');\n } else {\n var link = document.createElement(\"a\");\n link.style.display = 'none';\n document.body.appendChild(link);\n\n if (link.download !== undefined) {\n link.setAttribute('href', URL.createObjectURL(blob));\n link.setAttribute('download', this.props.exportFilename + '.csv');\n link.click();\n } else {\n csv = 'data:text/csv;charset=utf-8,' + csv;\n window.open(encodeURI(csv));\n }\n\n document.body.removeChild(link);\n }\n }\n }, {\n key: \"closeEditingCell\",\n value: function closeEditingCell() {\n if (this.props.editMode !== \"row\") {\n document.body.click();\n }\n }\n }, {\n key: \"onHeaderCheckboxClick\",\n value: function onHeaderCheckboxClick(event) {\n var selection;\n\n if (!event.checked) {\n var visibleData = this.hasFilter() ? this.processData() : this.props.value;\n selection = _toConsumableArray(visibleData);\n } else {\n selection = [];\n }\n\n if (this.props.onSelectionChange) {\n var originalEvent = event.originalEvent,\n rest = _objectWithoutProperties(event, [\"originalEvent\"]);\n\n this.props.onSelectionChange(_objectSpread({\n originalEvent: originalEvent,\n value: selection\n }, rest));\n }\n }\n }, {\n key: \"filterLocal\",\n value: function filterLocal(value, localFilters) {\n var filteredValue = [];\n var filters = localFilters || this.getFilters();\n\n var columns = _react.default.Children.toArray(this.props.children);\n\n for (var i = 0; i < value.length; i++) {\n var localMatch = true;\n var globalMatch = false;\n\n for (var j = 0; j < columns.length; j++) {\n var col = columns[j];\n var columnField = col.props.filterField || col.props.field;\n var filterMeta = filters ? filters[columnField] : null; //local\n\n if (filterMeta) {\n var filterValue = filterMeta.value;\n\n var dataFieldValue = _ObjectUtils.default.resolveFieldData(value[i], columnField);\n\n var filterMatchMode = filterMeta.matchMode || col.props.filterMatchMode;\n var filterConstraint = filterMatchMode === 'custom' ? col.props.filterFunction : _FilterUtils.default[filterMatchMode];\n\n if (!filterConstraint(dataFieldValue, filterValue, this.props.filterLocale)) {\n localMatch = false;\n }\n\n if (!localMatch) {\n break;\n }\n }\n\n if (!col.props.excludeGlobalFilter && this.props.globalFilter && !globalMatch) {\n globalMatch = _FilterUtils.default['contains'](_ObjectUtils.default.resolveFieldData(value[i], columnField), this.props.globalFilter, this.props.filterLocale);\n }\n }\n\n var matches = localMatch;\n\n if (this.props.globalFilter) {\n matches = localMatch && globalMatch;\n }\n\n if (matches) {\n filteredValue.push(value[i]);\n }\n }\n\n if (filteredValue.length === value.length) {\n filteredValue = value;\n }\n\n return filteredValue;\n }\n }, {\n key: \"processData\",\n value: function processData(localState) {\n var data = this.props.value;\n\n if (!this.props.lazy) {\n if (data && data.length) {\n var sortField = localState && localState.sortField || this.getSortField();\n var sortOrder = localState && localState.sortOrder || this.getSortOrder();\n var multiSortMeta = localState && localState.multiSortMeta || this.getMultiSortMeta();\n\n if (sortField || multiSortMeta && multiSortMeta.length) {\n if (this.props.sortMode === 'single') data = this.sortSingle(data, sortField, sortOrder);else if (this.props.sortMode === 'multiple') data = this.sortMultiple(data, multiSortMeta);\n }\n\n var localFilters = localState && localState.filters || this.getFilters();\n\n if (localFilters || this.props.globalFilter) {\n data = this.filterLocal(data, localFilters);\n }\n }\n }\n\n return data;\n }\n }, {\n key: \"isAllSelected\",\n value: function isAllSelected() {\n var visibleData = this.hasFilter() ? this.processData() : this.props.value;\n return this.props.selection && visibleData && visibleData.length && this.props.selection.length === visibleData.length;\n }\n }, {\n key: \"getFrozenColumns\",\n value: function getFrozenColumns(columns) {\n var frozenColumns = null;\n\n var _iterator2 = _createForOfIteratorHelper(columns),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var col = _step2.value;\n\n if (col.props.frozen) {\n frozenColumns = frozenColumns || [];\n frozenColumns.push(col);\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return frozenColumns;\n }\n }, {\n key: \"getScrollableColumns\",\n value: function getScrollableColumns(columns) {\n var scrollableColumns = null;\n\n var _iterator3 = _createForOfIteratorHelper(columns),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var col = _step3.value;\n\n if (!col.props.frozen) {\n scrollableColumns = scrollableColumns || [];\n scrollableColumns.push(col);\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n return scrollableColumns;\n }\n }, {\n key: \"getFrozenSelectionModeInColumn\",\n value: function getFrozenSelectionModeInColumn(columns) {\n if (Array.isArray(columns)) {\n var _iterator4 = _createForOfIteratorHelper(columns),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var col = _step4.value;\n if (col.props.selectionMode) return col.props.selectionMode;\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n\n return null;\n }\n }, {\n key: \"createTableHeader\",\n value: function createTableHeader(value, columns, columnGroup) {\n return /*#__PURE__*/_react.default.createElement(_TableHeader.TableHeader, {\n value: value,\n onSort: this.onSort,\n sortField: this.getSortField(),\n sortOrder: this.getSortOrder(),\n multiSortMeta: this.getMultiSortMeta(),\n columnGroup: columnGroup,\n resizableColumns: this.props.resizableColumns,\n onColumnResizeStart: this.onColumnResizeStart,\n onFilter: this.onFilter,\n onHeaderCheckboxClick: this.onHeaderCheckboxClick,\n headerCheckboxSelected: this.isAllSelected(),\n reorderableColumns: this.props.reorderableColumns,\n onColumnDragStart: this.onColumnDragStart,\n filters: this.getFilters(),\n onColumnDragOver: this.onColumnDragOver,\n onColumnDragLeave: this.onColumnDragLeave,\n onColumnDrop: this.onColumnDrop,\n tabIndex: this.props.tabIndex\n }, columns);\n }\n }, {\n key: \"createTableBody\",\n value: function createTableBody(value, columns, frozen) {\n return /*#__PURE__*/_react.default.createElement(_TableBody.TableBody, {\n value: value,\n first: this.getFirst(),\n rows: this.getRows(),\n lazy: this.props.lazy,\n paginator: this.props.paginator,\n dataKey: this.props.dataKey,\n compareSelectionBy: this.props.compareSelectionBy,\n selectionMode: this.props.selectionMode,\n selection: this.props.selection,\n metaKeySelection: this.props.metaKeySelection,\n frozen: frozen,\n frozenSelectionMode: this.frozenSelectionMode,\n onSelectionChange: this.props.onSelectionChange,\n onRowClick: this.props.onRowClick,\n onRowDoubleClick: this.props.onRowDoubleClick,\n onRowSelect: this.props.onRowSelect,\n onRowUnselect: this.props.onRowUnselect,\n contextMenuSelection: this.props.contextMenuSelection,\n onContextMenuSelectionChange: this.props.onContextMenuSelectionChange,\n onContextMenu: this.props.onContextMenu,\n expandedRows: this.props.expandedRows,\n onRowToggle: this.props.onRowToggle,\n rowExpansionTemplate: this.props.rowExpansionTemplate,\n onRowExpand: this.props.onRowExpand,\n onRowCollapse: this.props.onRowCollapse,\n emptyMessage: this.props.emptyMessage,\n virtualScroll: this.props.virtualScroll,\n virtualRowHeight: this.props.virtualRowHeight,\n loading: this.props.loading,\n groupField: this.props.groupField,\n rowGroupMode: this.props.rowGroupMode,\n rowGroupHeaderTemplate: this.props.rowGroupHeaderTemplate,\n rowGroupFooterTemplate: this.props.rowGroupFooterTemplate,\n sortField: this.getSortField(),\n rowClassName: this.props.rowClassName,\n onRowReorder: this.props.onRowReorder,\n editMode: this.props.editMode,\n rowEditorValidator: this.props.rowEditorValidator,\n onRowEditInit: this.props.onRowEditInit,\n onRowEditSave: this.props.onRowEditSave,\n onRowEditCancel: this.props.onRowEditCancel,\n expandableRowGroups: this.props.expandableRowGroups,\n showRowReorderElement: this.props.showRowReorderElement,\n showSelectionElement: this.props.showSelectionElement\n }, columns);\n }\n }, {\n key: \"createTableLoadingBody\",\n value: function createTableLoadingBody(columns) {\n if (this.props.virtualScroll) {\n return /*#__PURE__*/_react.default.createElement(_TableLoadingBody.TableLoadingBody, {\n columns: columns,\n rows: this.getRows()\n });\n } else {\n return null;\n }\n }\n }, {\n key: \"createTableFooter\",\n value: function createTableFooter(columns, columnGroup) {\n if (this.hasFooter()) return /*#__PURE__*/_react.default.createElement(_TableFooter.TableFooter, {\n columnGroup: columnGroup\n }, columns);else return null;\n }\n }, {\n key: \"createScrollableView\",\n value: function createScrollableView(value, columns, frozen, headerColumnGroup, footerColumnGroup, totalRecords) {\n return /*#__PURE__*/_react.default.createElement(_ScrollableView.ScrollableView, {\n columns: columns,\n header: this.createTableHeader(value, columns, headerColumnGroup),\n body: this.createTableBody(value, columns, frozen),\n loadingBody: this.createTableLoadingBody(columns),\n frozenBody: this.props.frozenValue ? this.createTableBody(this.props.frozenValue, columns, true) : null,\n footer: this.createTableFooter(columns, footerColumnGroup),\n tableStyle: this.props.tableStyle,\n tableClassName: this.props.tableClassName,\n scrollHeight: this.props.scrollHeight,\n frozen: frozen,\n frozenWidth: this.props.frozenWidth,\n virtualScroll: this.props.virtualScroll,\n virtualRowHeight: this.props.virtualRowHeight,\n rows: this.props.rows,\n totalRecords: totalRecords,\n onVirtualScroll: this.onVirtualScroll,\n loading: this.props.loading\n });\n }\n }, {\n key: \"getColumns\",\n value: function getColumns() {\n var columns = _react.default.Children.toArray(this.props.children);\n\n if (columns && columns.length) {\n if (this.props.reorderableColumns && this.state.columnOrder) {\n var orderedColumns = [];\n\n var _iterator5 = _createForOfIteratorHelper(this.state.columnOrder),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var columnKey = _step5.value;\n var column = this.findColumnByKey(columns, columnKey);\n\n if (column) {\n orderedColumns.push(column);\n }\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n return [].concat(orderedColumns, _toConsumableArray(columns.filter(function (item) {\n return orderedColumns.indexOf(item) < 0;\n })));\n } else {\n return columns;\n }\n }\n\n return null;\n }\n }, {\n key: \"findColumnByKey\",\n value: function findColumnByKey(columns, key) {\n if (columns && columns.length) {\n for (var i = 0; i < columns.length; i++) {\n var child = columns[i];\n\n if (child.props.columnKey === key || child.props.field === key) {\n return child;\n }\n }\n }\n\n return null;\n }\n }, {\n key: \"getTotalRecords\",\n value: function getTotalRecords(data) {\n return this.props.lazy ? this.props.totalRecords : data ? data.length : 0;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n var state = {};\n\n if (!this.props.onPage) {\n state.first = this.props.first;\n state.rows = this.props.rows;\n }\n\n if (!this.props.onSort) {\n state.sortField = this.props.sortField;\n state.sortOrder = this.props.sortOrder;\n state.multiSortMeta = this.props.multiSortMeta;\n }\n\n if (!this.props.onFilter) {\n state.filters = this.props.filters;\n }\n\n this.resetColumnOrder();\n\n if (Object.keys(state).length) {\n this.setState(state);\n }\n }\n }, {\n key: \"resetColumnOrder\",\n value: function resetColumnOrder() {\n var columns = _react.default.Children.toArray(this.props.children);\n\n var columnOrder = [];\n\n var _iterator6 = _createForOfIteratorHelper(columns),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var column = _step6.value;\n columnOrder.push(column.props.columnKey || column.props.field);\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n this.setState({\n columnOrder: columnOrder\n });\n }\n }, {\n key: \"renderLoader\",\n value: function renderLoader() {\n var iconClassName = (0, _ClassNames.classNames)('p-datatable-loading-icon pi-spin', this.props.loadingIcon);\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"p-datatable-loading-overlay p-component-overlay\"\n }, /*#__PURE__*/_react.default.createElement(\"i\", {\n className: iconClassName\n }));\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.isStateful() && this.props.resizableColumns) {\n this.restoreColumnWidths();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (this.isStateful()) {\n this.saveState();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this6 = this;\n\n var value = this.processData();\n var columns = this.getColumns();\n var totalRecords = this.getTotalRecords(value);\n var className = (0, _ClassNames.classNames)('p-datatable p-component', {\n 'p-datatable-resizable': this.props.resizableColumns,\n 'p-datatable-resizable-fit': this.props.resizableColumns && this.props.columnResizeMode === 'fit',\n 'p-datatable-scrollable': this.props.scrollable,\n 'p-datatable-virtual-scrollable': this.props.virtualScroll,\n 'p-datatable-auto-layout': this.props.autoLayout,\n 'p-datatable-hoverable-rows': this.props.rowHover || this.props.selectionMode\n }, this.props.className);\n var paginatorTop = this.props.paginator && this.props.paginatorPosition !== 'bottom' && this.createPaginator('top', totalRecords);\n var paginatorBottom = this.props.paginator && this.props.paginatorPosition !== 'top' && this.createPaginator('bottom', totalRecords);\n\n var headerFacet = this.props.header && /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"p-datatable-header\"\n }, this.props.header);\n\n var footerFacet = this.props.footer && /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"p-datatable-footer\"\n }, this.props.footer);\n\n var resizeHelper = this.props.resizableColumns && /*#__PURE__*/_react.default.createElement(\"div\", {\n ref: function ref(el) {\n _this6.resizerHelper = el;\n },\n className: \"p-column-resizer-helper p-highlight\",\n style: {\n display: 'none'\n }\n });\n\n var tableContent = null;\n\n var resizeIndicatorUp = this.props.reorderableColumns && /*#__PURE__*/_react.default.createElement(\"span\", {\n ref: function ref(el) {\n _this6.reorderIndicatorUp = el;\n },\n className: \"pi pi-arrow-down p-datatable-reorder-indicator-up\",\n style: {\n position: 'absolute',\n display: 'none'\n }\n });\n\n var resizeIndicatorDown = this.props.reorderableColumns && /*#__PURE__*/_react.default.createElement(\"span\", {\n ref: function ref(el) {\n _this6.reorderIndicatorDown = el;\n },\n className: \"pi pi-arrow-up p-datatable-reorder-indicator-down\",\n style: {\n position: 'absolute',\n display: 'none'\n }\n });\n\n var loader;\n\n if (this.props.loading) {\n loader = this.renderLoader();\n }\n\n if (Array.isArray(columns)) {\n if (this.props.scrollable) {\n this.frozenSelectionMode = this.frozenSelectionMode || this.getFrozenSelectionModeInColumn(columns);\n var frozenColumns = this.getFrozenColumns(columns);\n var scrollableColumns = frozenColumns ? this.getScrollableColumns(columns) : columns;\n var frozenView, scrollableView;\n\n if (frozenColumns) {\n frozenView = this.createScrollableView(value, frozenColumns, true, this.props.frozenHeaderColumnGroup, this.props.frozenFooterColumnGroup, totalRecords);\n }\n\n scrollableView = this.createScrollableView(value, scrollableColumns, false, this.props.headerColumnGroup, this.props.footerColumnGroup, totalRecords);\n tableContent = /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"p-datatable-scrollable-wrapper\"\n }, frozenView, scrollableView);\n } else {\n var tableHeader = this.createTableHeader(value, columns, this.props.headerColumnGroup);\n var tableBody = this.createTableBody(value, columns, false);\n var tableFooter = this.createTableFooter(columns, this.props.footerColumnGroup);\n tableContent = /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"p-datatable-wrapper\"\n }, /*#__PURE__*/_react.default.createElement(\"table\", {\n style: this.props.tableStyle,\n role: \"grid\",\n className: this.props.tableClassName,\n ref: function ref(el) {\n _this6.table = el;\n }\n }, tableHeader, tableFooter, tableBody));\n }\n }\n\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n id: this.props.id,\n className: className,\n style: this.props.style,\n ref: function ref(el) {\n _this6.container = el;\n },\n \"data-scrollselectors\": \".p-datatable-scrollable-body, .p-datatable-unfrozen-view .p-datatable-scrollable-body\"\n }, loader, headerFacet, paginatorTop, tableContent, paginatorBottom, footerFacet, resizeHelper, resizeIndicatorUp, resizeIndicatorDown);\n }\n }]);\n\n return DataTable;\n}(_react.Component);\n\nexports.DataTable = DataTable;\n\n_defineProperty(DataTable, \"defaultProps\", {\n id: null,\n value: null,\n header: null,\n footer: null,\n style: null,\n className: null,\n tableStyle: null,\n tableClassName: null,\n paginator: false,\n paginatorPosition: 'bottom',\n alwaysShowPaginator: true,\n paginatorTemplate: 'FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown',\n paginatorLeft: null,\n paginatorRight: null,\n paginatorDropdownAppendTo: null,\n pageLinkSize: 5,\n rowsPerPageOptions: null,\n currentPageReportTemplate: '({currentPage} of {totalPages})',\n first: 0,\n rows: null,\n totalRecords: null,\n lazy: false,\n sortField: null,\n sortOrder: null,\n multiSortMeta: null,\n sortMode: 'single',\n defaultSortOrder: 1,\n removableSort: false,\n emptyMessage: null,\n selectionMode: null,\n selection: null,\n onSelectionChange: null,\n contextMenuSelection: null,\n onContextMenuSelectionChange: null,\n compareSelectionBy: 'deepEquals',\n dataKey: null,\n metaKeySelection: true,\n headerColumnGroup: null,\n footerColumnGroup: null,\n frozenHeaderColumnGroup: null,\n frozenFooterColumnGroup: null,\n rowExpansionTemplate: null,\n expandedRows: null,\n onRowToggle: null,\n resizableColumns: false,\n columnResizeMode: 'fit',\n reorderableColumns: false,\n filters: null,\n globalFilter: null,\n filterLocale: undefined,\n scrollable: false,\n scrollHeight: null,\n virtualScroll: false,\n virtualScrollDelay: 150,\n virtualRowHeight: 28,\n frozenWidth: null,\n frozenValue: null,\n csvSeparator: ',',\n exportFilename: 'download',\n rowGroupMode: null,\n autoLayout: false,\n rowClassName: null,\n rowGroupHeaderTemplate: null,\n rowGroupFooterTemplate: null,\n loading: false,\n loadingIcon: 'pi pi-spinner',\n tabIndex: '0',\n stateKey: null,\n stateStorage: 'session',\n editMode: 'cell',\n expandableRowGroups: false,\n rowHover: false,\n showSelectionElement: null,\n showRowReorderElement: null,\n onColumnResizeEnd: null,\n onSort: null,\n onPage: null,\n onFilter: null,\n onVirtualScroll: null,\n onRowClick: null,\n onRowDoubleClick: null,\n onRowSelect: null,\n onRowUnselect: null,\n onRowExpand: null,\n onRowCollapse: null,\n onContextMenu: null,\n onColReorder: null,\n onRowReorder: null,\n onValueChange: null,\n rowEditorValidator: null,\n onRowEditInit: null,\n onRowEditSave: null,\n onRowEditCancel: null,\n exportFunction: null,\n customSaveState: null,\n customRestoreState: null,\n onStateSave: null,\n onStateRestore: null\n});\n\n_defineProperty(DataTable, \"propTypes\", {\n id: _propTypes.default.string,\n value: _propTypes.default.array,\n header: _propTypes.default.any,\n footer: _propTypes.default.any,\n style: _propTypes.default.object,\n className: _propTypes.default.string,\n tableStyle: _propTypes.default.any,\n tableClassName: _propTypes.default.string,\n paginator: _propTypes.default.bool,\n paginatorPosition: _propTypes.default.string,\n alwaysShowPaginator: _propTypes.default.bool,\n paginatorTemplate: _propTypes.default.string,\n paginatorLeft: _propTypes.default.any,\n paginatorRight: _propTypes.default.any,\n paginatorDropdownAppendTo: _propTypes.default.any,\n pageLinkSize: _propTypes.default.number,\n rowsPerPageOptions: _propTypes.default.array,\n currentPageReportTemplate: _propTypes.default.string,\n first: _propTypes.default.number,\n rows: _propTypes.default.number,\n totalRecords: _propTypes.default.number,\n lazy: _propTypes.default.bool,\n sortField: _propTypes.default.string,\n sortOrder: _propTypes.default.number,\n multiSortMeta: _propTypes.default.array,\n sortMode: _propTypes.default.string,\n defaultSortOrder: _propTypes.default.number,\n removableSort: _propTypes.default.bool,\n emptyMessage: _propTypes.default.any,\n selectionMode: _propTypes.default.string,\n selection: _propTypes.default.any,\n onSelectionChange: _propTypes.default.func,\n compareSelectionBy: _propTypes.default.string,\n dataKey: _propTypes.default.string,\n metaKeySelection: _propTypes.default.bool,\n headerColumnGroup: _propTypes.default.any,\n footerColumnGroup: _propTypes.default.any,\n frozenHeaderColumnGroup: _propTypes.default.any,\n frozenFooterColumnGroup: _propTypes.default.any,\n rowExpansionTemplate: _propTypes.default.func,\n expandedRows: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.object]),\n onRowToggle: _propTypes.default.func,\n resizableColumns: _propTypes.default.bool,\n columnResizeMode: _propTypes.default.string,\n reorderableColumns: _propTypes.default.bool,\n filters: _propTypes.default.object,\n globalFilter: _propTypes.default.any,\n filterLocale: _propTypes.default.string,\n scrollable: _propTypes.default.bool,\n scrollHeight: _propTypes.default.string,\n virtualScroll: _propTypes.default.bool,\n virtualScrollDelay: _propTypes.default.number,\n virtualRowHeight: _propTypes.default.number,\n frozenWidth: _propTypes.default.string,\n frozenValue: _propTypes.default.array,\n csvSeparator: _propTypes.default.string,\n exportFilename: _propTypes.default.string,\n rowGroupMode: _propTypes.default.string,\n autoLayout: _propTypes.default.bool,\n rowClassName: _propTypes.default.func,\n rowGroupHeaderTemplate: _propTypes.default.func,\n rowGroupFooterTemplate: _propTypes.default.func,\n loading: _propTypes.default.bool,\n loadingIcon: _propTypes.default.string,\n tabIndex: _propTypes.default.string,\n stateKey: _propTypes.default.string,\n stateStorage: _propTypes.default.string,\n editMode: _propTypes.default.string,\n expandableRowGroups: _propTypes.default.bool,\n rowHover: _propTypes.default.bool,\n showSelectionElement: _propTypes.default.func,\n showRowReorderElement: _propTypes.default.func,\n onColumnResizeEnd: _propTypes.default.func,\n onSort: _propTypes.default.func,\n onPage: _propTypes.default.func,\n onFilter: _propTypes.default.func,\n onVirtualScroll: _propTypes.default.func,\n onRowClick: _propTypes.default.func,\n onRowDoubleClick: _propTypes.default.func,\n onRowSelect: _propTypes.default.func,\n onRowUnselect: _propTypes.default.func,\n onRowExpand: _propTypes.default.func,\n onRowCollapse: _propTypes.default.func,\n onContextMenu: _propTypes.default.func,\n onColReorder: _propTypes.default.func,\n onRowReorder: _propTypes.default.func,\n onValueChange: _propTypes.default.func,\n rowEditorValidator: _propTypes.default.func,\n onRowEditInit: _propTypes.default.func,\n onRowEditSave: _propTypes.default.func,\n onRowEditCancel: _propTypes.default.func,\n exportFunction: _propTypes.default.func,\n customSaveState: _propTypes.default.func,\n customRestoreState: _propTypes.default.func,\n onStateSave: _propTypes.default.func,\n onStateRestore: _propTypes.default.func\n});","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? prefix + \": \" + provided : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.tip = tip;\nexports.Tooltip = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _ClassNames = require(\"../utils/ClassNames\");\n\nvar _DomHandler = _interopRequireDefault(require(\"../utils/DomHandler\"));\n\nvar _ConnectedOverlayScrollHandler = _interopRequireDefault(require(\"../utils/ConnectedOverlayScrollHandler\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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 _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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 tip(props) {\n var appendTo = props.appendTo || document.body;\n var tooltipWrapper = document.createDocumentFragment();\n\n _DomHandler.default.appendChild(tooltipWrapper, appendTo);\n\n props = _objectSpread(_objectSpread({}, props), props.options);\n\n var tooltipEl = /*#__PURE__*/_react.default.createElement(Tooltip, props);\n\n _reactDom.default.render(tooltipEl, tooltipWrapper);\n\n return {\n destroy: function destroy() {\n _reactDom.default.unmountComponentAtNode(tooltipWrapper);\n },\n updateContent: function updateContent(content) {\n _reactDom.default.render( /*#__PURE__*/_react.default.cloneElement(tooltipEl, {\n content: content\n }), tooltipWrapper);\n }\n };\n}\n\nvar Tooltip = /*#__PURE__*/function (_Component) {\n _inherits(Tooltip, _Component);\n\n var _super = _createSuper(Tooltip);\n\n function Tooltip(props) {\n var _this;\n\n _classCallCheck(this, Tooltip);\n\n _this = _super.call(this, props);\n _this.state = {\n visible: false,\n position: _this.props.position\n };\n _this.appendTo = _this.props.appendTo || document.body;\n _this.show = _this.show.bind(_assertThisInitialized(_this));\n _this.hide = _this.hide.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Tooltip, [{\n key: \"getEvents\",\n value: function getEvents() {\n var _this$props = this.props,\n showEvent = _this$props.showEvent,\n hideEvent = _this$props.hideEvent;\n\n if (this.props.mouseTrack) {\n showEvent = 'mousemove';\n hideEvent = 'mouseleave';\n } else if (this.props.event === 'focus') {\n showEvent = 'focus';\n hideEvent = 'blur';\n }\n\n return {\n showEvent: showEvent,\n hideEvent: hideEvent\n };\n }\n }, {\n key: \"updateText\",\n value: function updateText(target, callback) {\n if (this.tooltipTextEl) {\n var content = this.props.content;\n\n if (target && target.hasAttribute('data-pr-tooltip')) {\n content = target.getAttribute('data-pr-tooltip');\n }\n\n if (content) {\n this.tooltipTextEl.innerHTML = ''; // remove children\n\n this.tooltipTextEl.appendChild(document.createTextNode(content));\n callback();\n } else if (this.props.children) {\n _reactDom.default.unmountComponentAtNode(this.tooltipTextEl);\n\n _reactDom.default.render(this.props.children, this.tooltipTextEl, callback);\n }\n }\n }\n }, {\n key: \"show\",\n value: function show(e) {\n var _this2 = this;\n\n this.currentTarget = e.currentTarget;\n\n var updateTooltipState = function updateTooltipState() {\n _this2.updateText(_this2.currentTarget, function () {\n if (_this2.props.autoZIndex && !_this2.containerEl.style.zIndex) {\n _this2.containerEl.style.zIndex = String(_this2.props.baseZIndex + _DomHandler.default.generateZIndex());\n }\n\n _this2.containerEl.style.left = '';\n _this2.containerEl.style.top = '';\n\n _this2.align(_this2.currentTarget, {\n x: e.pageX,\n y: e.pageY\n });\n });\n };\n\n if (this.state.visible) {\n this.applyDelay('updateDelay', updateTooltipState);\n } else {\n this.sendCallback(this.props.onBeforeShow, {\n originalEvent: e,\n target: this.currentTarget\n });\n this.applyDelay('showDelay', function () {\n _this2.setState({\n visible: true\n }, function () {\n updateTooltipState();\n\n _this2.sendCallback(_this2.props.onShow, {\n originalEvent: e,\n target: _this2.currentTarget\n });\n });\n\n _this2.bindDocumentResizeListener();\n\n _this2.bindScrollListener();\n });\n }\n }\n }, {\n key: \"hide\",\n value: function hide(e) {\n var _this3 = this;\n\n this.clearTimeouts();\n\n if (this.state.visible) {\n this.sendCallback(this.props.onBeforeHide, {\n originalEvent: e,\n target: this.currentTarget\n });\n this.applyDelay('hideDelay', function () {\n _DomHandler.default.removeClass(_this3.containerEl, 'p-tooltip-active');\n\n _this3.setState({\n visible: false,\n position: _this3.props.position\n }, function () {\n if (_this3.tooltipTextEl) {\n _reactDom.default.unmountComponentAtNode(_this3.tooltipTextEl);\n }\n\n _this3.unbindDocumentResizeListener();\n\n _this3.unbindScrollListener();\n\n _this3.currentTarget = null;\n _this3.scrollHandler = null;\n\n _this3.sendCallback(_this3.props.onHide, {\n originalEvent: e,\n target: _this3.currentTarget\n });\n });\n });\n }\n }\n }, {\n key: \"align\",\n value: function align(target, coordinate) {\n var _this4 = this;\n\n var left = 0,\n top = 0;\n\n if (this.props.mouseTrack && coordinate) {\n var container = {\n width: _DomHandler.default.getOuterWidth(this.containerEl),\n height: _DomHandler.default.getOuterHeight(this.containerEl)\n };\n left = coordinate.x;\n top = coordinate.y;\n\n switch (this.state.position) {\n case 'left':\n left -= container.width + this.props.mouseTrackLeft;\n top -= container.height / 2 - this.props.mouseTrackTop;\n break;\n\n case 'right':\n left += this.props.mouseTrackLeft;\n top -= container.height / 2 - this.props.mouseTrackTop;\n break;\n\n case 'top':\n left -= container.width / 2 - this.props.mouseTrackLeft;\n top -= container.height + this.props.mouseTrackTop;\n break;\n\n case 'bottom':\n left -= container.width / 2 - this.props.mouseTrackLeft;\n top += this.props.mouseTrackTop;\n break;\n\n default:\n break;\n }\n\n this.containerEl.style.left = left + 'px';\n this.containerEl.style.top = top + 'px';\n\n _DomHandler.default.addClass(this.containerEl, 'p-tooltip-active');\n } else {\n var pos = _DomHandler.default.findCollisionPosition(this.state.position);\n\n var my = this.props.my || pos.my;\n var at = this.props.at || pos.at;\n\n _DomHandler.default.flipfitCollision(this.containerEl, target, my, at, function (currentPosition) {\n var _currentPosition$at = currentPosition.at,\n x = _currentPosition$at.x,\n y = _currentPosition$at.y;\n var position = _this4.props.at ? x !== 'center' ? x : y : currentPosition.at[\"\".concat(pos.axis)];\n\n _this4.setState({\n position: position\n }, function () {\n return _DomHandler.default.addClass(_this4.containerEl, 'p-tooltip-active');\n });\n });\n }\n }\n }, {\n key: \"bindDocumentResizeListener\",\n value: function bindDocumentResizeListener() {\n var _this5 = this;\n\n this.documentResizeListener = function (e) {\n _this5.hide(e);\n };\n\n window.addEventListener('resize', this.documentResizeListener);\n }\n }, {\n key: \"unbindDocumentResizeListener\",\n value: function unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n }, {\n key: \"bindScrollListener\",\n value: function bindScrollListener() {\n var _this6 = this;\n\n if (!this.scrollHandler) {\n this.scrollHandler = new _ConnectedOverlayScrollHandler.default(this.currentTarget, function (e) {\n if (_this6.state.visible) {\n _this6.hide(e);\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n }, {\n key: \"unbindScrollListener\",\n value: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n }, {\n key: \"bindTargetEvent\",\n value: function bindTargetEvent(target) {\n if (target) {\n var _this$getEvents = this.getEvents(),\n showEvent = _this$getEvents.showEvent,\n hideEvent = _this$getEvents.hideEvent;\n\n target.addEventListener(showEvent, this.show);\n target.addEventListener(hideEvent, this.hide);\n }\n }\n }, {\n key: \"unbindTargetEvent\",\n value: function unbindTargetEvent(target) {\n if (target) {\n var _this$getEvents2 = this.getEvents(),\n showEvent = _this$getEvents2.showEvent,\n hideEvent = _this$getEvents2.hideEvent;\n\n target.removeEventListener(showEvent, this.show);\n target.removeEventListener(hideEvent, this.hide);\n }\n }\n }, {\n key: \"applyDelay\",\n value: function applyDelay(delayProp, callback) {\n this.clearTimeouts();\n var delay = this.props[delayProp];\n\n if (!!delay) {\n this[\"\".concat(delayProp, \"Timeout\")] = setTimeout(function () {\n return callback();\n }, delay);\n } else {\n callback();\n }\n }\n }, {\n key: \"sendCallback\",\n value: function sendCallback(callback) {\n if (callback) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n\n callback.apply(void 0, params);\n }\n }\n }, {\n key: \"clearTimeouts\",\n value: function clearTimeouts() {\n clearTimeout(this.showDelayTimeout);\n clearTimeout(this.updateDelayTimeout);\n clearTimeout(this.hideDelayTimeout);\n }\n }, {\n key: \"loadTargetEvents\",\n value: function loadTargetEvents() {\n var _this7 = this;\n\n if (_DomHandler.default.isElement(this.props.target)) {\n this.bindTargetEvent(this.props.target);\n } else {\n var setEvent = function setEvent(target) {\n var element = _DomHandler.default.find(document, target);\n\n element.forEach(function (el) {\n _this7.bindTargetEvent(el);\n });\n };\n\n if (this.props.target instanceof Array) {\n this.props.target.forEach(function (target) {\n setEvent(target);\n });\n } else {\n setEvent(this.props.target);\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.target) {\n this.loadTargetEvents();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this8 = this;\n\n if (prevProps.target !== this.props.target) {\n this.loadTargetEvents();\n }\n\n if (this.state.visible && prevProps.content !== this.props.content) {\n this.applyDelay('updateDelay', function () {\n _this8.updateText(_this8.currentTarget, function () {\n _this8.align(_this8.currentTarget);\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearTimeouts();\n this.unbindDocumentResizeListener();\n this.unbindTargetEvent();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n }\n }, {\n key: \"renderElement\",\n value: function renderElement() {\n var _this9 = this;\n\n var tooltipClass = (0, _ClassNames.classNames)('p-tooltip p-component', _defineProperty({}, \"p-tooltip-\".concat(this.state.position), true), this.props.className);\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n ref: function ref(el) {\n return _this9.containerEl = el;\n },\n className: tooltipClass,\n style: this.props.style\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"p-tooltip-arrow\"\n }), /*#__PURE__*/_react.default.createElement(\"div\", {\n ref: function ref(el) {\n return _this9.tooltipTextEl = el;\n },\n className: \"p-tooltip-text\"\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n if (this.state.visible) {\n var element = this.renderElement();\n return /*#__PURE__*/_reactDom.default.createPortal(element, this.appendTo);\n }\n\n return null;\n }\n }]);\n\n return Tooltip;\n}(_react.Component);\n\nexports.Tooltip = Tooltip;\n\n_defineProperty(Tooltip, \"defaultProps\", {\n target: null,\n content: null,\n className: null,\n style: null,\n appendTo: null,\n position: 'right',\n my: null,\n at: null,\n event: null,\n showEvent: 'mouseenter',\n hideEvent: 'mouseleave',\n autoZIndex: true,\n baseZIndex: 0,\n mouseTrack: false,\n mouseTrackTop: 5,\n mouseTrackLeft: 5,\n showDelay: 0,\n updateDelay: 0,\n hideDelay: 0,\n onBeforeShow: null,\n onBeforeHide: null,\n onShow: null,\n onHide: null\n});\n\n_defineProperty(Tooltip, \"propTypes\", {\n target: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.string, _propTypes.default.array]),\n content: _propTypes.default.string,\n className: _propTypes.default.string,\n style: _propTypes.default.object,\n appendTo: _propTypes.default.object,\n position: _propTypes.default.string,\n my: _propTypes.default.string,\n at: _propTypes.default.string,\n event: _propTypes.default.string,\n showEvent: _propTypes.default.string,\n hideEvent: _propTypes.default.string,\n autoZIndex: _propTypes.default.bool,\n baseZIndex: _propTypes.default.number,\n mouseTrack: _propTypes.default.bool,\n mouseTrackTop: _propTypes.default.number,\n mouseTrackLeft: _propTypes.default.number,\n onBeforeShow: _propTypes.default.func,\n onBeforeHide: _propTypes.default.func,\n onShow: _propTypes.default.func,\n onHide: _propTypes.default.func\n});","function 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 _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\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 _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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\nimport { Global } from './Global';\nvar stringCache = {\n widthCache: {},\n cacheCount: 0\n};\nvar MAX_CACHE_NUM = 2000;\nvar SPAN_STYLE = {\n position: 'absolute',\n top: '-20000px',\n left: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n whiteSpace: 'pre'\n};\nvar STYLE_LIST = ['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height', 'top', 'left', 'fontSize', 'lineHeight', 'padding', 'margin', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'];\nvar MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\n\nfunction autoCompleteStyle(name, value) {\n if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {\n return \"\".concat(value, \"px\");\n }\n\n return value;\n}\n\nfunction camelToMiddleLine(text) {\n var strs = text.split('');\n var formatStrs = strs.reduce(function (result, entry) {\n if (entry === entry.toUpperCase()) {\n return [].concat(_toConsumableArray(result), ['-', entry.toLowerCase()]);\n }\n\n return [].concat(_toConsumableArray(result), [entry]);\n }, []);\n return formatStrs.join('');\n}\n\nexport var getStyleString = function getStyleString(style) {\n return Object.keys(style).reduce(function (result, s) {\n return \"\".concat(result).concat(camelToMiddleLine(s), \":\").concat(autoCompleteStyle(s, style[s]), \";\");\n }, '');\n};\nexport var getStringSize = function getStringSize(text) {\n var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (text === undefined || text === null || Global.isSsr) {\n return {\n width: 0,\n height: 0\n };\n }\n\n var str = \"\".concat(text);\n var styleString = getStyleString(style);\n var cacheKey = \"\".concat(str, \"-\").concat(styleString);\n\n if (stringCache.widthCache[cacheKey]) {\n return stringCache.widthCache[cacheKey];\n }\n\n try {\n var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n\n if (!measurementSpan) {\n measurementSpan = document.createElement('span');\n measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\n measurementSpan.setAttribute('aria-hidden', 'true');\n document.body.appendChild(measurementSpan);\n } // Need to use CSS Object Model (CSSOM) to be able to comply with Content Security Policy (CSP)\n // https://en.wikipedia.org/wiki/Content_Security_Policy\n\n\n var measurementSpanStyle = _objectSpread(_objectSpread({}, SPAN_STYLE), style);\n\n Object.keys(measurementSpanStyle).map(function (styleKey) {\n measurementSpan.style[styleKey] = measurementSpanStyle[styleKey];\n return styleKey;\n });\n measurementSpan.textContent = str;\n var rect = measurementSpan.getBoundingClientRect();\n var result = {\n width: rect.width,\n height: rect.height\n };\n stringCache.widthCache[cacheKey] = result;\n\n if (++stringCache.cacheCount > MAX_CACHE_NUM) {\n stringCache.cacheCount = 0;\n stringCache.widthCache = {};\n }\n\n return result;\n } catch (e) {\n return {\n width: 0,\n height: 0\n };\n }\n};\nexport var getOffset = function getOffset(el) {\n var html = el.ownerDocument.documentElement;\n var box = {\n top: 0,\n left: 0\n }; // If we don't have gBCR, just use 0,0 rather than error\n // BlackBerry 5, iOS 3 (original iPhone)\n\n if (typeof el.getBoundingClientRect !== 'undefined') {\n box = el.getBoundingClientRect();\n }\n\n return {\n top: box.top + window.pageYOffset - html.clientTop,\n left: box.left + window.pageXOffset - html.clientLeft\n };\n};\n/**\n * Calculate coordinate of cursor in chart\n * @param {Object} event Event object\n * @param {Object} offset The offset of main part in the svg element\n * @return {Object} {chartX, chartY}\n */\n\nexport var calculateChartCoordinate = function calculateChartCoordinate(event, offset) {\n return {\n chartX: Math.round(event.pageX - offset.left),\n chartY: Math.round(event.pageY - offset.top)\n };\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}","'use strict';\n\nmodule.exports = require('./components/radiobutton/RadioButton');","import _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\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 _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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 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 _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\nimport React, { cloneElement, isValidElement, createElement } from 'react';\nimport classNames from 'classnames';\nimport { Text } from './Text';\nimport { findAllByType } from '../util/ReactUtils';\nimport { isNumOrStr, isNumber, isPercent, getPercentValue, uniqueId, mathSign } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { filterProps } from '../util/types';\n\nvar getLabel = function getLabel(props) {\n var value = props.value,\n formatter = props.formatter;\n var label = _isNil(props.children) ? value : props.children;\n\n if (_isFunction(formatter)) {\n return formatter(label);\n }\n\n return label;\n};\n\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\n\nvar renderRadialLabel = function renderRadialLabel(labelProps, label, attrs) {\n var position = labelProps.position,\n viewBox = labelProps.viewBox,\n offset = labelProps.offset,\n className = labelProps.className;\n var _ref = viewBox,\n cx = _ref.cx,\n cy = _ref.cy,\n innerRadius = _ref.innerRadius,\n outerRadius = _ref.outerRadius,\n startAngle = _ref.startAngle,\n endAngle = _ref.endAngle,\n clockWise = _ref.clockWise;\n var radius = (innerRadius + outerRadius) / 2;\n var deltaAngle = getDeltaAngle(startAngle, endAngle);\n var sign = deltaAngle >= 0 ? 1 : -1;\n var labelAngle, direction;\n\n if (position === 'insideStart') {\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n } else if (position === 'insideEnd') {\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n } else if (position === 'end') {\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n }\n\n direction = deltaAngle <= 0 ? direction : !direction;\n var startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n var endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n var path = \"M\".concat(startPoint.x, \",\").concat(startPoint.y, \"\\n A\").concat(radius, \",\").concat(radius, \",0,1,\").concat(direction ? 0 : 1, \",\\n \").concat(endPoint.x, \",\").concat(endPoint.y);\n var id = _isNil(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: classNames('recharts-radial-bar-label', className)\n }), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: id,\n d: path\n })), /*#__PURE__*/React.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\n\nvar getAttrsOfPolarLabel = function getAttrsOfPolarLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var _ref2 = viewBox,\n cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var midAngle = (startAngle + endAngle) / 2;\n\n if (position === 'outside') {\n var _polarToCartesian = polarToCartesian(cx, cy, outerRadius + offset, midAngle),\n _x = _polarToCartesian.x,\n _y = _polarToCartesian.y;\n\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n\n var r = (innerRadius + outerRadius) / 2;\n\n var _polarToCartesian2 = polarToCartesian(cx, cy, r, midAngle),\n x = _polarToCartesian2.x,\n y = _polarToCartesian2.y;\n\n return {\n x: x,\n y: y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\n\nvar getAttrsOfCartesianLabel = function getAttrsOfCartesianLabel(props) {\n var viewBox = props.viewBox,\n parentViewBox = props.parentViewBox,\n offset = props.offset,\n position = props.position;\n var _ref3 = viewBox,\n x = _ref3.x,\n y = _ref3.y,\n width = _ref3.width,\n height = _ref3.height; // Define vertical offsets and position inverts based on the value being positive or negative\n\n var verticalSign = height >= 0 ? 1 : -1;\n var verticalOffset = verticalSign * offset;\n var verticalEnd = verticalSign > 0 ? 'end' : 'start';\n var verticalStart = verticalSign > 0 ? 'start' : 'end'; // Define horizontal offsets and position inverts based on the value being positive or negative\n\n var horizontalSign = width >= 0 ? 1 : -1;\n var horizontalOffset = horizontalSign * offset;\n var horizontalEnd = horizontalSign > 0 ? 'end' : 'start';\n var horizontalStart = horizontalSign > 0 ? 'start' : 'end';\n\n if (position === 'top') {\n var attrs = {\n x: x + width / 2,\n y: y - verticalSign * offset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n };\n return _objectSpread(_objectSpread({}, attrs), parentViewBox ? {\n height: Math.max(y - parentViewBox.y, 0),\n width: width\n } : {});\n }\n\n if (position === 'bottom') {\n var _attrs = {\n x: x + width / 2,\n y: y + height + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n };\n return _objectSpread(_objectSpread({}, _attrs), parentViewBox ? {\n height: Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0),\n width: width\n } : {});\n }\n\n if (position === 'left') {\n var _attrs2 = {\n x: x - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs2), parentViewBox ? {\n width: Math.max(_attrs2.x - parentViewBox.x, 0),\n height: height\n } : {});\n }\n\n if (position === 'right') {\n var _attrs3 = {\n x: x + width + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs3), parentViewBox ? {\n width: Math.max(parentViewBox.x + parentViewBox.width - _attrs3.x, 0),\n height: height\n } : {});\n }\n\n var sizeAttrs = parentViewBox ? {\n width: width,\n height: height\n } : {};\n\n if (position === 'insideLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n\n if (position === 'insideRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n\n if (position === 'insideTop') {\n return _objectSpread({\n x: x + width / 2,\n y: y + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n\n if (position === 'insideBottom') {\n return _objectSpread({\n x: x + width / 2,\n y: y + height - verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n\n if (position === 'insideTopLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n\n if (position === 'insideTopRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n\n if (position === 'insideBottomLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n\n if (position === 'insideBottomRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n\n if (_isObject(position) && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {\n return _objectSpread({\n x: x + getPercentValue(position.x, width),\n y: y + getPercentValue(position.y, height),\n textAnchor: 'end',\n verticalAnchor: 'end'\n }, sizeAttrs);\n }\n\n return _objectSpread({\n x: x + width / 2,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n }, sizeAttrs);\n};\n\nvar isPolar = function isPolar(viewBox) {\n return isNumber(viewBox.cx);\n};\n\nexport function Label(props) {\n var viewBox = props.viewBox,\n position = props.position,\n value = props.value,\n children = props.children,\n content = props.content,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n textBreakAll = props.textBreakAll;\n\n if (!viewBox || _isNil(value) && _isNil(children) && ! /*#__PURE__*/isValidElement(content) && !_isFunction(content)) {\n return null;\n }\n\n if ( /*#__PURE__*/isValidElement(content)) {\n return /*#__PURE__*/cloneElement(content, props);\n }\n\n var label;\n\n if (_isFunction(content)) {\n label = /*#__PURE__*/createElement(content, props);\n\n if ( /*#__PURE__*/isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n\n var isPolarLabel = isPolar(viewBox);\n var attrs = filterProps(props, true);\n\n if (isPolarLabel && (position === 'insideStart' || position === 'insideEnd' || position === 'end')) {\n return renderRadialLabel(props, label, attrs);\n }\n\n var positionAttrs = isPolarLabel ? getAttrsOfPolarLabel(props) : getAttrsOfCartesianLabel(props);\n return /*#__PURE__*/React.createElement(Text, _extends({\n className: classNames('recharts-label', className)\n }, attrs, positionAttrs, {\n breakAll: textBreakAll\n }), label);\n}\nLabel.displayName = 'Label';\nLabel.defaultProps = {\n offset: 5\n};\n\nvar parseViewBox = function parseViewBox(props) {\n var cx = props.cx,\n cy = props.cy,\n angle = props.angle,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n r = props.r,\n radius = props.radius,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n x = props.x,\n y = props.y,\n top = props.top,\n left = props.left,\n width = props.width,\n height = props.height,\n clockWise = props.clockWise,\n labelViewBox = props.labelViewBox;\n\n if (labelViewBox) {\n return labelViewBox;\n }\n\n if (isNumber(width) && isNumber(height)) {\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n }\n\n if (isNumber(top) && isNumber(left)) {\n return {\n x: top,\n y: left,\n width: width,\n height: height\n };\n }\n }\n\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: 0,\n height: 0\n };\n }\n\n if (isNumber(cx) && isNumber(cy)) {\n return {\n cx: cx,\n cy: cy,\n startAngle: startAngle || angle || 0,\n endAngle: endAngle || angle || 0,\n innerRadius: innerRadius || 0,\n outerRadius: outerRadius || radius || r || 0,\n clockWise: clockWise\n };\n }\n\n if (props.viewBox) {\n return props.viewBox;\n }\n\n return {};\n};\n\nvar parseLabel = function parseLabel(label, viewBox) {\n if (!label) {\n return null;\n }\n\n if (label === true) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox\n });\n }\n\n if (isNumOrStr(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox,\n value: label\n });\n }\n\n if ( /*#__PURE__*/isValidElement(label)) {\n if (label.type === Label) {\n return /*#__PURE__*/cloneElement(label, {\n key: 'label-implicit',\n viewBox: viewBox\n });\n }\n\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n\n if (_isFunction(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n\n if (_isObject(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n viewBox: viewBox\n }, label, {\n key: \"label-implicit\"\n }));\n }\n\n return null;\n};\n\nvar renderCallByParent = function renderCallByParent(parentProps, viewBox) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n\n var children = parentProps.children;\n var parentViewBox = parseViewBox(parentProps);\n var explicitChildren = findAllByType(children, Label.displayName).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n viewBox: viewBox || parentViewBox,\n key: \"label-\".concat(index)\n });\n });\n\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n\n var implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);\n return [implicitLabel].concat(_toConsumableArray(explicitChildren));\n};\n\nLabel.parseViewBox = parseViewBox;\nLabel.renderCallByParent = renderCallByParent;","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}","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var parseIsSsrByDefault = function parseIsSsrByDefault() {\n return !(typeof window !== 'undefined' && window.document && window.document.createElement && window.setTimeout);\n};\n\nexport var Global = {\n isSsr: parseIsSsrByDefault(),\n get: function get(key) {\n return Global[key];\n },\n set: function set(key, value) {\n if (typeof key === 'string') {\n Global[key] = value;\n } else {\n var keys = Object.keys(key);\n\n if (keys && keys.length) {\n keys.forEach(function (k) {\n Global[k] = key[k];\n });\n }\n }\n }\n};","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","/* eslint no-console: 0 */\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","import _every from \"lodash/every\";\nimport _mapValues from \"lodash/mapValues\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\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\nimport { getTicksOfScale, parseScale, checkDomainOfScale, getBandSizeOfAxis } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nimport { getPercentValue } from './DataUtils';\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {String} axisType The type of axes, x-axis or y-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\n\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height,\n layout = props.layout,\n children = props.children;\n var ids = Object.keys(axisMap);\n var steps = {\n left: offset.left,\n leftMirror: offset.left,\n right: width - offset.right,\n rightMirror: width - offset.right,\n top: offset.top,\n topMirror: offset.top,\n bottom: height - offset.bottom,\n bottomMirror: height - offset.bottom\n };\n var hasBar = !!findChildByType(children, 'Bar');\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var orientation = axis.orientation,\n domain = axis.domain,\n _axis$padding = axis.padding,\n padding = _axis$padding === void 0 ? {} : _axis$padding,\n mirror = axis.mirror,\n reversed = axis.reversed;\n var offsetKey = \"\".concat(orientation).concat(mirror ? 'Mirror' : '');\n var calculatedPadding, range, x, y, needSpace;\n\n if (axis.type === 'number' && (axis.padding === 'gap' || axis.padding === 'no-gap')) {\n var diff = domain[1] - domain[0];\n var smallestDistanceBetweenValues = Infinity;\n var sortedValues = axis.categoricalDomain.sort();\n sortedValues.forEach(function (value, index) {\n if (index > 0) {\n smallestDistanceBetweenValues = Math.min((value || 0) - (sortedValues[index - 1] || 0), smallestDistanceBetweenValues);\n }\n });\n var smallestDistanceInPercent = smallestDistanceBetweenValues / diff;\n var rangeWidth = axis.layout === 'vertical' ? offset.height : offset.width;\n\n if (axis.padding === 'gap') {\n calculatedPadding = smallestDistanceInPercent * rangeWidth / 2;\n }\n\n if (axis.padding === 'no-gap') {\n var gap = getPercentValue(props.barCategoryGap, smallestDistanceInPercent * rangeWidth);\n var halfBand = smallestDistanceInPercent * rangeWidth / 2;\n calculatedPadding = halfBand - gap - (halfBand - gap) / rangeWidth * gap;\n }\n }\n\n if (axisType === 'xAxis') {\n range = [offset.left + (padding.left || 0) + (calculatedPadding || 0), offset.left + offset.width - (padding.right || 0) - (calculatedPadding || 0)];\n } else if (axisType === 'yAxis') {\n range = layout === 'horizontal' ? [offset.top + offset.height - (padding.bottom || 0), offset.top + (padding.top || 0)] : [offset.top + (padding.top || 0) + (calculatedPadding || 0), offset.top + offset.height - (padding.bottom || 0) - (calculatedPadding || 0)];\n } else {\n range = axis.range;\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n\n var _parseScale = parseScale(axis, chartName, hasBar),\n scale = _parseScale.scale,\n realScaleType = _parseScale.realScaleType;\n\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n\n if (axisType === 'xAxis') {\n needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n x = offset.left;\n y = steps[offsetKey] - needSpace * axis.height;\n } else if (axisType === 'yAxis') {\n needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n x = steps[offsetKey] - needSpace * axis.width;\n y = offset.top;\n }\n\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n realScaleType: realScaleType,\n x: x,\n y: y,\n scale: scale,\n width: axisType === 'xAxis' ? offset.width : axis.width,\n height: axisType === 'yAxis' ? offset.height : axis.height\n });\n\n finalAxis.bandSize = getBandSizeOfAxis(finalAxis, ticks);\n\n if (!axis.hide && axisType === 'xAxis') {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;\n } else if (!axis.hide) {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var rectWithPoints = function rectWithPoints(_ref, _ref2) {\n var x1 = _ref.x,\n y1 = _ref.y;\n var x2 = _ref2.x,\n y2 = _ref2.y;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\n\nexport var rectWithCoords = function rectWithCoords(_ref3) {\n var x1 = _ref3.x1,\n y1 = _ref3.y1,\n x2 = _ref3.x2,\n y2 = _ref3.y2;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\nexport var ScaleHelper = /*#__PURE__*/function () {\n function ScaleHelper(scale) {\n _classCallCheck(this, ScaleHelper);\n\n this.scale = void 0;\n this.scale = scale;\n }\n\n _createClass(ScaleHelper, [{\n key: \"domain\",\n get: function get() {\n return this.scale.domain;\n }\n }, {\n key: \"range\",\n get: function get() {\n return this.scale.range;\n }\n }, {\n key: \"rangeMin\",\n get: function get() {\n return this.range()[0];\n }\n }, {\n key: \"rangeMax\",\n get: function get() {\n return this.range()[1];\n }\n }, {\n key: \"bandwidth\",\n get: function get() {\n return this.scale.bandwidth;\n }\n }, {\n key: \"apply\",\n value: function apply(value) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref4.bandAware,\n position = _ref4.position;\n\n if (value === undefined) {\n return undefined;\n }\n\n if (position) {\n switch (position) {\n case 'start':\n {\n return this.scale(value);\n }\n\n case 'middle':\n {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n\n case 'end':\n {\n var _offset = this.bandwidth ? this.bandwidth() : 0;\n\n return this.scale(value) + _offset;\n }\n\n default:\n {\n return this.scale(value);\n }\n }\n }\n\n if (bandAware) {\n var _offset2 = this.bandwidth ? this.bandwidth() / 2 : 0;\n\n return this.scale(value) + _offset2;\n }\n\n return this.scale(value);\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(value) {\n var range = this.range();\n var first = range[0];\n var last = range[range.length - 1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n }\n }], [{\n key: \"create\",\n value: function create(obj) {\n return new ScaleHelper(obj);\n }\n }]);\n\n return ScaleHelper;\n}();\nScaleHelper.EPS = 1e-4;\nexport var createLabeledScales = function createLabeledScales(options) {\n var scales = Object.keys(options).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, ScaleHelper.create(options[key])));\n }, {});\n return _objectSpread(_objectSpread({}, scales), {}, {\n apply: function apply(coord) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref5.bandAware,\n position = _ref5.position;\n\n return _mapValues(coord, function (value, label) {\n return scales[label].apply(value, {\n bandAware: bandAware,\n position: position\n });\n });\n },\n isInRange: function isInRange(coord) {\n return _every(coord, function (value, label) {\n return scales[label].isInRange(value);\n });\n }\n });\n};","'use strict';\n\nmodule.exports = require('./components/checkbox/Checkbox');","'use strict';\n\nmodule.exports = require('./components/multiselect/MultiSelect');","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","export function shallowEqual(a, b) {\n /* eslint-disable no-restricted-syntax */\n for (var key in a) {\n if ({}.hasOwnProperty.call(a, key) && (!{}.hasOwnProperty.call(b, key) || a[key] !== b[key])) {\n return false;\n }\n }\n\n for (var _key in b) {\n if ({}.hasOwnProperty.call(b, _key) && !{}.hasOwnProperty.call(a, _key)) {\n return false;\n }\n }\n\n return true;\n}","/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported XLSX */\n/*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false */\nvar XLSX = {};\nfunction make_xlsx_lib(XLSX){\nXLSX.version = '0.16.9';\nvar current_codepage = 1200, current_ansi = 1252;\n/*global cptable:true, window */\nif(typeof module !== \"undefined\" && typeof require !== 'undefined') {\n\tif(typeof cptable === 'undefined') {\n\t\tif(typeof global !== 'undefined') global.cptable = require('./dist/cpexcel.js');\n\t\telse if(typeof window !== 'undefined') window.cptable = require('./dist/cpexcel.js');\n\t}\n}\n\nvar VALID_ANSI = [ 874, 932, 936, 949, 950 ];\nfor(var i = 0; i <= 8; ++i) VALID_ANSI.push(1250 + i);\n/* ECMA-376 Part I 18.4.1 charset to codepage mapping */\nvar CS2CP = ({\n0: 1252, /* ANSI */\n1: 65001, /* DEFAULT */\n2: 65001, /* SYMBOL */\n77: 10000, /* MAC */\n128: 932, /* SHIFTJIS */\n129: 949, /* HANGUL */\n130: 1361, /* JOHAB */\n134: 936, /* GB2312 */\n136: 950, /* CHINESEBIG5 */\n161: 1253, /* GREEK */\n162: 1254, /* TURKISH */\n163: 1258, /* VIETNAMESE */\n177: 1255, /* HEBREW */\n178: 1256, /* ARABIC */\n186: 1257, /* BALTIC */\n204: 1251, /* RUSSIAN */\n222: 874, /* THAI */\n238: 1250, /* EASTEUROPE */\n255: 1252, /* OEM */\n69: 6969 /* MISC */\n});\n\nvar set_ansi = function(cp) { if(VALID_ANSI.indexOf(cp) == -1) return; current_ansi = CS2CP[0] = cp; };\nfunction reset_ansi() { set_ansi(1252); }\n\nvar set_cp = function(cp) { current_codepage = cp; set_ansi(cp); };\nfunction reset_cp() { set_cp(1200); reset_ansi(); }\n\nfunction char_codes(data) { var o = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\n\nfunction utf16leread(data) {\n\tvar o = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i) + (data.charCodeAt(2*i+1)<<8));\n\treturn o.join(\"\");\n}\nfunction utf16beread(data) {\n\tvar o = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i+1) + (data.charCodeAt(2*i)<<8));\n\treturn o.join(\"\");\n}\n\nvar debom = function(data) {\n\tvar c1 = data.charCodeAt(0), c2 = data.charCodeAt(1);\n\tif(c1 == 0xFF && c2 == 0xFE) return utf16leread(data.slice(2));\n\tif(c1 == 0xFE && c2 == 0xFF) return utf16beread(data.slice(2));\n\tif(c1 == 0xFEFF) return data.slice(1);\n\treturn data;\n};\n\nvar _getchar = function _gc1(x) { return String.fromCharCode(x); };\nvar _getansi = function _ga1(x) { return String.fromCharCode(x); };\nif(typeof cptable !== 'undefined') {\n\tset_cp = function(cp) { current_codepage = cp; set_ansi(cp); };\n\tdebom = function(data) {\n\t\tif(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return cptable.utils.decode(1200, char_codes(data.slice(2))); }\n\t\treturn data;\n\t};\n\t_getchar = function _gc2(x) {\n\t\tif(current_codepage === 1200) return String.fromCharCode(x);\n\t\treturn cptable.utils.decode(current_codepage, [x&255,x>>8])[0];\n\t};\n\t_getansi = function _ga2(x) {\n\t\treturn cptable.utils.decode(current_ansi, [x])[0];\n\t};\n}\nvar DENSE = null;\nvar DIF_XL = true;\nvar Base64 = (function make_b64(){\n\tvar map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\treturn {\n\t\tencode: function(input) {\n\t\t\tvar o = \"\";\n\t\t\tvar c1=0, c2=0, c3=0, e1=0, e2=0, e3=0, e4=0;\n\t\t\tfor(var i = 0; i < input.length; ) {\n\t\t\t\tc1 = input.charCodeAt(i++);\n\t\t\t\te1 = (c1 >> 2);\n\n\t\t\t\tc2 = input.charCodeAt(i++);\n\t\t\t\te2 = ((c1 & 3) << 4) | (c2 >> 4);\n\n\t\t\t\tc3 = input.charCodeAt(i++);\n\t\t\t\te3 = ((c2 & 15) << 2) | (c3 >> 6);\n\t\t\t\te4 = (c3 & 63);\n\t\t\t\tif (isNaN(c2)) { e3 = e4 = 64; }\n\t\t\t\telse if (isNaN(c3)) { e4 = 64; }\n\t\t\t\to += map.charAt(e1) + map.charAt(e2) + map.charAt(e3) + map.charAt(e4);\n\t\t\t}\n\t\t\treturn o;\n\t\t},\n\t\tdecode: function b64_decode(input) {\n\t\t\tvar o = \"\";\n\t\t\tvar c1=0, c2=0, c3=0, e1=0, e2=0, e3=0, e4=0;\n\t\t\tinput = input.replace(/[^\\w\\+\\/\\=]/g, \"\");\n\t\t\tfor(var i = 0; i < input.length;) {\n\t\t\t\te1 = map.indexOf(input.charAt(i++));\n\t\t\t\te2 = map.indexOf(input.charAt(i++));\n\t\t\t\tc1 = (e1 << 2) | (e2 >> 4);\n\t\t\t\to += String.fromCharCode(c1);\n\n\t\t\t\te3 = map.indexOf(input.charAt(i++));\n\t\t\t\tc2 = ((e2 & 15) << 4) | (e3 >> 2);\n\t\t\t\tif (e3 !== 64) { o += String.fromCharCode(c2); }\n\n\t\t\t\te4 = map.indexOf(input.charAt(i++));\n\t\t\t\tc3 = ((e3 & 3) << 6) | e4;\n\t\t\t\tif (e4 !== 64) { o += String.fromCharCode(c3); }\n\t\t\t}\n\t\t\treturn o;\n\t\t}\n\t};\n})();\nvar has_buf = (typeof Buffer !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && !!process.versions.node);\n\nvar Buffer_from = function(){};\n\nif(typeof Buffer !== 'undefined') {\n\tvar nbfs = !Buffer.from;\n\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\tBuffer_from = nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t// $FlowIgnore\n\tif(!Buffer.alloc) Buffer.alloc = function(n) { return new Buffer(n); };\n\t// $FlowIgnore\n\tif(!Buffer.allocUnsafe) Buffer.allocUnsafe = function(n) { return new Buffer(n); };\n}\n\nfunction new_raw_buf(len) {\n\t/* jshint -W056 */\n\treturn has_buf ? Buffer.alloc(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nfunction new_unsafe_buf(len) {\n\t/* jshint -W056 */\n\treturn has_buf ? Buffer.allocUnsafe(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nvar s2a = function s2a(s) {\n\tif(has_buf) return Buffer_from(s, \"binary\");\n\treturn s.split(\"\").map(function(x){ return x.charCodeAt(0) & 0xff; });\n};\n\nfunction s2ab(s) {\n\tif(typeof ArrayBuffer === 'undefined') return s2a(s);\n\tvar buf = new ArrayBuffer(s.length), view = new Uint8Array(buf);\n\tfor (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;\n\treturn buf;\n}\n\nfunction a2s(data) {\n\tif(Array.isArray(data)) return data.map(function(c) { return String.fromCharCode(c); }).join(\"\");\n\tvar o = []; for(var i = 0; i < data.length; ++i) o[i] = String.fromCharCode(data[i]); return o.join(\"\");\n}\n\nfunction a2u(data) {\n\tif(typeof Uint8Array === 'undefined') throw new Error(\"Unsupported\");\n\treturn new Uint8Array(data);\n}\n\nfunction ab2a(data) {\n\tif(typeof ArrayBuffer == 'undefined') throw new Error(\"Unsupported\");\n\tif(data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));\nvar o = new Array(data.length);\n\tfor(var i = 0; i < data.length; ++i) o[i] = data[i];\n\treturn o;\n}\n\nvar bconcat = function(bufs) { return [].concat.apply([], bufs); };\n\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/g;\n/* ssf.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W041 */\nvar SSF = ({});\nvar make_ssf = function make_ssf(SSF){\nSSF.version = '0.11.2';\nfunction _strrev(x) { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\nfunction fill(c,l) { var o = \"\"; while(o.length < l) o+=c; return o; }\nfunction pad0(v,d){var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad_(v,d){var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\nfunction rpad_(v,d){var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\nfunction pad0r1(v,d){var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad0r2(v,d){var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nvar p2_32 = Math.pow(2,32);\nfunction pad0r(v,d){if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\nfunction isgeneral(s, i) { i = i || 0; return s.length >= 7 + i && (s.charCodeAt(i)|32) === 103 && (s.charCodeAt(i+1)|32) === 101 && (s.charCodeAt(i+2)|32) === 110 && (s.charCodeAt(i+3)|32) === 101 && (s.charCodeAt(i+4)|32) === 114 && (s.charCodeAt(i+5)|32) === 97 && (s.charCodeAt(i+6)|32) === 108; }\nvar days = [\n\t['Sun', 'Sunday'],\n\t['Mon', 'Monday'],\n\t['Tue', 'Tuesday'],\n\t['Wed', 'Wednesday'],\n\t['Thu', 'Thursday'],\n\t['Fri', 'Friday'],\n\t['Sat', 'Saturday']\n];\nvar months = [\n\t['J', 'Jan', 'January'],\n\t['F', 'Feb', 'February'],\n\t['M', 'Mar', 'March'],\n\t['A', 'Apr', 'April'],\n\t['M', 'May', 'May'],\n\t['J', 'Jun', 'June'],\n\t['J', 'Jul', 'July'],\n\t['A', 'Aug', 'August'],\n\t['S', 'Sep', 'September'],\n\t['O', 'Oct', 'October'],\n\t['N', 'Nov', 'November'],\n\t['D', 'Dec', 'December']\n];\nfunction init_table(t) {\n\tt[0]= 'General';\n\tt[1]= '0';\n\tt[2]= '0.00';\n\tt[3]= '#,##0';\n\tt[4]= '#,##0.00';\n\tt[9]= '0%';\n\tt[10]= '0.00%';\n\tt[11]= '0.00E+00';\n\tt[12]= '# ?/?';\n\tt[13]= '# ??/??';\n\tt[14]= 'm/d/yy';\n\tt[15]= 'd-mmm-yy';\n\tt[16]= 'd-mmm';\n\tt[17]= 'mmm-yy';\n\tt[18]= 'h:mm AM/PM';\n\tt[19]= 'h:mm:ss AM/PM';\n\tt[20]= 'h:mm';\n\tt[21]= 'h:mm:ss';\n\tt[22]= 'm/d/yy h:mm';\n\tt[37]= '#,##0 ;(#,##0)';\n\tt[38]= '#,##0 ;[Red](#,##0)';\n\tt[39]= '#,##0.00;(#,##0.00)';\n\tt[40]= '#,##0.00;[Red](#,##0.00)';\n\tt[45]= 'mm:ss';\n\tt[46]= '[h]:mm:ss';\n\tt[47]= 'mmss.0';\n\tt[48]= '##0.0E+0';\n\tt[49]= '@';\n\tt[56]= '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"';\n}\n\nvar table_fmt = {};\ninit_table(table_fmt);\n/* Defaults determined by systematically testing in Excel 2019 */\n\n/* These formats appear to default to other formats in the table */\nvar default_map = [];\nvar defi = 0;\n\n// 5 -> 37 ... 8 -> 40\nfor(defi = 5; defi <= 8; ++defi) default_map[defi] = 32 + defi;\n\n// 23 -> 0 ... 26 -> 0\nfor(defi = 23; defi <= 26; ++defi) default_map[defi] = 0;\n\n// 27 -> 14 ... 31 -> 14\nfor(defi = 27; defi <= 31; ++defi) default_map[defi] = 14;\n// 50 -> 14 ... 58 -> 14\nfor(defi = 50; defi <= 58; ++defi) default_map[defi] = 14;\n\n// 59 -> 1 ... 62 -> 4\nfor(defi = 59; defi <= 62; ++defi) default_map[defi] = defi - 58;\n// 67 -> 9 ... 68 -> 10\nfor(defi = 67; defi <= 68; ++defi) default_map[defi] = defi - 58;\n// 72 -> 14 ... 75 -> 17\nfor(defi = 72; defi <= 75; ++defi) default_map[defi] = defi - 58;\n\n// 69 -> 12 ... 71 -> 14\nfor(defi = 67; defi <= 68; ++defi) default_map[defi] = defi - 57;\n\n// 76 -> 20 ... 78 -> 22\nfor(defi = 76; defi <= 78; ++defi) default_map[defi] = defi - 56;\n\n// 79 -> 45 ... 81 -> 47\nfor(defi = 79; defi <= 81; ++defi) default_map[defi] = defi - 34;\n\n// 82 -> 0 ... 65536 -> 0 (omitted)\n\n/* These formats technically refer to Accounting formats with no equivalent */\nvar default_str = [];\n\n// 5 -- Currency, 0 decimal, black negative\ndefault_str[5] = default_str[63] = '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)';\n// 6 -- Currency, 0 decimal, red negative\ndefault_str[6] = default_str[64] = '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)';\n// 7 -- Currency, 2 decimal, black negative\ndefault_str[7] = default_str[65] = '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)';\n// 8 -- Currency, 2 decimal, red negative\ndefault_str[8] = default_str[66] = '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)';\n\n// 41 -- Accounting, 0 decimal, No Symbol\ndefault_str[41] = '_(* #,##0_);_(* \\\\(#,##0\\\\);_(* \"-\"_);_(@_)';\n// 42 -- Accounting, 0 decimal, $ Symbol\ndefault_str[42] = '_(\"$\"* #,##0_);_(\"$\"* \\\\(#,##0\\\\);_(\"$\"* \"-\"_);_(@_)';\n// 43 -- Accounting, 2 decimal, No Symbol\ndefault_str[43] = '_(* #,##0.00_);_(* \\\\(#,##0.00\\\\);_(* \"-\"??_);_(@_)';\n// 44 -- Accounting, 2 decimal, $ Symbol\ndefault_str[44] = '_(\"$\"* #,##0.00_);_(\"$\"* \\\\(#,##0.00\\\\);_(\"$\"* \"-\"??_);_(@_)';\nfunction frac(x, D, mixed) {\n\tvar sgn = x < 0 ? -1 : 1;\n\tvar B = x * sgn;\n\tvar P_2 = 0, P_1 = 1, P = 0;\n\tvar Q_2 = 1, Q_1 = 0, Q = 0;\n\tvar A = Math.floor(B);\n\twhile(Q_1 < D) {\n\t\tA = Math.floor(B);\n\t\tP = A * P_1 + P_2;\n\t\tQ = A * Q_1 + Q_2;\n\t\tif((B - A) < 0.00000005) break;\n\t\tB = 1 / (B - A);\n\t\tP_2 = P_1; P_1 = P;\n\t\tQ_2 = Q_1; Q_1 = Q;\n\t}\n\tif(Q > D) { if(Q_1 > D) { Q = Q_2; P = P_2; } else { Q = Q_1; P = P_1; } }\n\tif(!mixed) return [0, sgn * P, Q];\n\tvar q = Math.floor(sgn * P/Q);\n\treturn [q, sgn*P - q*Q, Q];\n}\nfunction parse_date_code(v,opts,b2) {\n\tif(v > 2958465 || v < 0) return null;\n\tvar date = (v|0), time = Math.floor(86400 * (v - date)), dow=0;\n\tvar dout=[];\n\tvar out={D:date, T:time, u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};\n\tif(Math.abs(out.u) < 1e-6) out.u = 0;\n\tif(opts && opts.date1904) date += 1462;\n\tif(out.u > 0.9999) {\n\t\tout.u = 0;\n\t\tif(++time == 86400) { out.T = time = 0; ++date; ++out.D; }\n\t}\n\tif(date === 60) {dout = b2 ? [1317,10,29] : [1900,2,29]; dow=3;}\n\telse if(date === 0) {dout = b2 ? [1317,8,29] : [1900,1,0]; dow=6;}\n\telse {\n\t\tif(date > 60) --date;\n\t\t/* 1 = Jan 1 1900 in Gregorian */\n\t\tvar d = new Date(1900, 0, 1);\n\t\td.setDate(d.getDate() + date - 1);\n\t\tdout = [d.getFullYear(), d.getMonth()+1,d.getDate()];\n\t\tdow = d.getDay();\n\t\tif(date < 60) dow = (dow + 6) % 7;\n\t\tif(b2) dow = fix_hijri(d, dout);\n\t}\n\tout.y = dout[0]; out.m = dout[1]; out.d = dout[2];\n\tout.S = time % 60; time = Math.floor(time / 60);\n\tout.M = time % 60; time = Math.floor(time / 60);\n\tout.H = time;\n\tout.q = dow;\n\treturn out;\n}\nSSF.parse_date_code = parse_date_code;\nvar basedate = new Date(1899, 11, 31, 0, 0, 0);\nvar dnthresh = basedate.getTime();\nvar base1904 = new Date(1900, 2, 1, 0, 0, 0);\nfunction datenum_local(v, date1904) {\n\tvar epoch = v.getTime();\n\tif(date1904) epoch -= 1461*24*60*60*1000;\n\telse if(v >= base1904) epoch += 24*60*60*1000;\n\treturn (epoch - (dnthresh + (v.getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000)) / (24 * 60 * 60 * 1000);\n}\n/* The longest 32-bit integer text is \"-4294967296\", exactly 11 chars */\nfunction general_fmt_int(v) { return v.toString(10); }\nSSF._general_int = general_fmt_int;\n\n/* ECMA-376 18.8.30 numFmt*/\n/* Note: `toPrecision` uses standard form when prec > E and E >= -6 */\nvar general_fmt_num = (function make_general_fmt_num() {\n\tvar trailing_zeroes_and_decimal = /(?:\\.0*|(\\.\\d*[1-9])0+)$/;\n\tfunction strip_decimal(o) {\n\t\treturn (o.indexOf(\".\") == -1) ? o : o.replace(trailing_zeroes_and_decimal, \"$1\");\n\t}\n\n\t/* General Exponential always shows 2 digits exp and trims the mantissa */\n\tvar mantissa_zeroes_and_decimal = /(?:\\.0*|(\\.\\d*[1-9])0+)[Ee]/;\n\tvar exp_with_single_digit = /(E[+-])(\\d)$/;\n\tfunction normalize_exp(o) {\n\t\tif(o.indexOf(\"E\") == -1) return o;\n\t\treturn o.replace(mantissa_zeroes_and_decimal,\"$1E\").replace(exp_with_single_digit,\"$10$2\");\n\t}\n\n\t/* exponent >= -9 and <= 9 */\n\tfunction small_exp(v) {\n\t\tvar w = (v<0?12:11);\n\t\tvar o = strip_decimal(v.toFixed(12)); if(o.length <= w) return o;\n\t\to = v.toPrecision(10); if(o.length <= w) return o;\n\t\treturn v.toExponential(5);\n\t}\n\n\t/* exponent >= 11 or <= -10 likely exponential */\n\tfunction large_exp(v) {\n\t\tvar o = strip_decimal(v.toFixed(11));\n\t\treturn (o.length > (v<0?12:11) || o === \"0\" || o === \"-0\") ? v.toPrecision(6) : o;\n\t}\n\n\tfunction general_fmt_num_base(v) {\n\t\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\n\t\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\t\telse if(Math.abs(V) <= 9) o = small_exp(v);\n\t\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\t\telse o = large_exp(v);\n\n\t\treturn strip_decimal(normalize_exp(o.toUpperCase()));\n\t}\n\n\treturn general_fmt_num_base;\n})();\nSSF._general_num = general_fmt_num;\n\n/*\n\t\"General\" rules:\n\t- text is passed through (\"@\")\n\t- booleans are rendered as TRUE/FALSE\n\t- \"up to 11 characters\" displayed for numbers\n\t- Default date format (code 14) used for Dates\n\n\tTODO: technically the display depends on the width of the cell\n*/\nfunction general_fmt(v, opts) {\n\tswitch(typeof v) {\n\t\tcase 'string': return v;\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\n\t\tcase 'number': return (v|0) === v ? v.toString(10) : general_fmt_num(v);\n\t\tcase 'undefined': return \"\";\n\t\tcase 'object':\n\t\t\tif(v == null) return \"\";\n\t\t\tif(v instanceof Date) return format(14, datenum_local(v, opts && opts.date1904), opts);\n\t}\n\tthrow new Error(\"unsupported value in General format: \" + v);\n}\nSSF._general = general_fmt;\nfunction fix_hijri(date, o) {\n /* TODO: properly adjust y/m/d and */\n o[0] -= 581;\n var dow = date.getDay();\n if(date < 60) dow = (dow + 6) % 7;\n return dow;\n}\n//var THAI_DIGITS = \"\\u0E50\\u0E51\\u0E52\\u0E53\\u0E54\\u0E55\\u0E56\\u0E57\\u0E58\\u0E59\".split(\"\");\n/*jshint -W086 */\nfunction write_date(type, fmt, val, ss0) {\n\tvar o=\"\", ss=0, tt=0, y = val.y, out, outl = 0;\n\tswitch(type) {\n\t\tcase 98: /* 'b' buddhist year */\n\t\t\ty = val.y + 543;\n\t\t\t/* falls through */\n\t\tcase 121: /* 'y' year */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = y % 100; outl = 2; break;\n\t\t\tdefault: out = y % 10000; outl = 4; break;\n\t\t} break;\n\t\tcase 109: /* 'm' month */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.m; outl = fmt.length; break;\n\t\t\tcase 3: return months[val.m-1][1];\n\t\t\tcase 5: return months[val.m-1][0];\n\t\t\tdefault: return months[val.m-1][2];\n\t\t} break;\n\t\tcase 100: /* 'd' day */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.d; outl = fmt.length; break;\n\t\t\tcase 3: return days[val.q][0];\n\t\t\tdefault: return days[val.q][1];\n\t\t} break;\n\t\tcase 104: /* 'h' 12-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 72: /* 'H' 24-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.H; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 77: /* 'M' minutes */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.M; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad minute format: ' + fmt;\n\t\t} break;\n\t\tcase 115: /* 's' seconds */\n\t\t\tif(fmt != 's' && fmt != 'ss' && fmt != '.0' && fmt != '.00' && fmt != '.000') throw 'bad second format: ' + fmt;\n\t\t\tif(val.u === 0 && (fmt == \"s\" || fmt == \"ss\")) return pad0(val.S, fmt.length);\nif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\n\t\t\telse tt = ss0 === 1 ? 10 : 1;\n\t\t\tss = Math.round((tt)*(val.S + val.u));\n\t\t\tif(ss >= 60*tt) ss = 0;\n\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\n\t\t\to = pad0(ss,2 + ss0);\n\t\t\tif(fmt === 'ss') return o.substr(0,2);\n\t\t\treturn \".\" + o.substr(2,fmt.length-1);\n\t\tcase 90: /* 'Z' absolute time */\n\t\tswitch(fmt) {\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u); break;\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\n\t\tcase 101: /* 'e' era */\n\t\t\tout = y; outl = 1; break;\n\t}\n\tvar outstr = outl > 0 ? pad0(out, outl) : \"\";\n\treturn outstr;\n}\n/*jshint +W086 */\nfunction commaify(s) {\n\tvar w = 3;\n\tif(s.length <= w) return s;\n\tvar j = (s.length % w), o = s.substr(0,j);\n\tfor(; j!=s.length; j+=w) o+=(o.length > 0 ? \",\" : \"\") + s.substr(j,w);\n\treturn o;\n}\nvar write_num = (function make_write_num(){\nvar pct1 = /%/g;\nfunction write_num_pct(type, fmt, val){\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\nfunction write_num_cm(type, fmt, val){\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\nfunction write_num_exp(fmt, val){\n\tvar o;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(o.indexOf(\"e\") === -1) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\twhile(o.substr(0,2) === \"0.\") {\n\t\t\t\to = o.charAt(0) + o.substr(2,period) + \".\" + o.substr(2+period);\n\t\t\t\to = o.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");\n\t\t\t}\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nvar frac1 = /# (\\?+)( ?)\\/( ?)(\\d+)/;\nfunction write_num_f1(r, aval, sign) {\n\tvar den = parseInt(r[4],10), rr = Math.round(aval * den), base = Math.floor(rr/den);\n\tvar myn = (rr - base*den), myd = den;\n\treturn sign + (base === 0 ? \"\" : \"\"+base) + \" \" + (myn === 0 ? fill(\" \", r[1].length + 1 + r[4].length) : pad_(myn,r[1].length) + r[2] + \"/\" + r[3] + pad0(myd,r[4].length));\n}\nfunction write_num_f2(r, aval, sign) {\n\treturn sign + (aval === 0 ? \"\" : \"\"+aval) + fill(\" \", r[1].length + 2 + r[4].length);\n}\nvar dec1 = /^#*0*\\.([0#]+)/;\nvar closeparen = /\\).*[0#]/;\nvar phone = /\\(###\\) ###\\\\?-####/;\nfunction hashq(str) {\n\tvar o = \"\", cc;\n\tfor(var i = 0; i != str.length; ++i) switch((cc=str.charCodeAt(i))) {\n\t\tcase 35: break;\n\t\tcase 63: o+= \" \"; break;\n\t\tcase 48: o+= \"0\"; break;\n\t\tdefault: o+= String.fromCharCode(cc);\n\t}\n\treturn o;\n}\nfunction rnd(val, d) { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\nfunction dec(val, d) {\n\tvar _frac = val - Math.floor(val), dd = Math.pow(10,d);\n\tif (d < ('' + Math.round(_frac * dd)).length) return 0;\n\treturn Math.round(_frac * dd);\n}\nfunction carry(val, d) {\n\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\nfunction flr(val) {\n\tif(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0));\n\treturn \"\"+Math.floor(val);\n}\nfunction write_num_flt(type, fmt, val) {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_flt('n', ffmt, val);\n\t\treturn '(' + write_num_flt('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_flt(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0r(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = pad0r(val,0); if(o === \"0\") o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f1(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\to = rnd(val, r[1].length).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1])).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + rnd(aval, r[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify(pad0r(aval,0));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(\"\"+(Math.floor(val) + carry(val, r[1].length))) + \".\" + pad0(dec(val, r[1].length),r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_flt(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_flt(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri<o.length?o.charAt(ri++):x==='0'?'0':\"\";}));\n\t}\n\tif(fmt.match(phone)) {\n\t\to = write_num_flt(type, \"##########\", val);\n\t\treturn \"(\" + o.substr(0,3) + \") \" + o.substr(3, 3) + \"-\" + o.substr(6);\n\t}\n\tvar oa = \"\";\n\tif((r = fmt.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(r[4].length,7);\n\t\tff = frac(aval, Math.pow(10,ri)-1, false);\n\t\to = \"\" + sign;\n\t\toa = write_num(\"n\", r[1], ff[1]);\n\t\tif(oa.charAt(oa.length-1) == \" \") oa = oa.substr(0,oa.length-1) + \"0\";\n\t\to += oa + r[2] + \"/\" + r[3];\n\t\toa = rpad_(ff[2],ri);\n\t\tif(oa.length < r[4].length) oa = hashq(r[4].substr(r[4].length-oa.length)) + oa;\n\t\to += oa;\n\t\treturn o;\n\t}\n\tif((r = fmt.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(Math.max(r[1].length, r[4].length),7);\n\t\tff = frac(aval, Math.pow(10,ri)-1, true);\n\t\treturn sign + (ff[0]||(ff[1] ? \"\" : \"0\")) + \" \" + (ff[1] ? pad_(ff[1],ri) + r[2] + \"/\" + r[3] + rpad_(ff[2],ri): fill(\" \", 2*ri+1 + r[2].length + r[3].length));\n\t}\n\tif((r = fmt.match(/^[#0?]+$/))) {\n\t\to = pad0r(val, 0);\n\t\tif(fmt.length <= o.length) return o;\n\t\treturn hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(/^([#0?]+)\\.([#0]+)$/))) {\n\t\to = \"\" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,\"$1\");\n\t\tri = o.indexOf(\".\");\n\t\tvar lres = fmt.indexOf(\".\") - ri, rres = fmt.length - o.length - lres;\n\t\treturn hashq(fmt.substr(0,lres) + o + fmt.substr(fmt.length-rres));\n\t}\n\tif((r = fmt.match(/^00,000\\.([#0]*0)$/))) {\n\t\tri = dec(val, r[1].length);\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(flr(val)).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function($$) { return \"00,\" + ($$.length < 3 ? pad0(0,3-$$.length) : \"\") + $$; }) + \".\" + pad0(ri,r[1].length);\n\t}\n\tswitch(fmt) {\n\t\tcase \"###,##0.00\": return write_num_flt(type, \"#,##0.00\", val);\n\t\tcase \"###,###\":\n\t\tcase \"##,###\":\n\t\tcase \"#,###\": var x = commaify(pad0r(aval,0)); return x !== \"0\" ? sign + x : \"\";\n\t\tcase \"###,###.00\": return write_num_flt(type, \"###,##0.00\",val).replace(/^0\\./,\".\");\n\t\tcase \"#,###.00\": return write_num_flt(type, \"#,##0.00\",val).replace(/^0\\./,\".\");\n\t\tdefault:\n\t}\n\tthrow new Error(\"unsupported format |\" + fmt + \"|\");\n}\nfunction write_num_cm2(type, fmt, val){\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\nfunction write_num_pct2(type, fmt, val){\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\nfunction write_num_exp2(fmt, val){\n\tvar o;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp2(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(!o.match(/[Ee]/)) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nfunction write_num_int(type, fmt, val) {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_int('n', ffmt, val);\n\t\treturn '(' + write_num_int('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_int(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = (\"\"+val); if(val === 0) o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f2(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\no = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1]));\n\t\to = o.replace(/\\.(\\d*)$/,function($$, $1) {\nreturn \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + (\"\"+aval).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify((\"\"+aval));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify((\"\"+val)) + \".\" + fill('0',r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_int(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_int(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri<o.length?o.charAt(ri++):x==='0'?'0':\"\";}));\n\t}\n\tif(fmt.match(phone)) {\n\t\to = write_num_int(type, \"##########\", val);\n\t\treturn \"(\" + o.substr(0,3) + \") \" + o.substr(3, 3) + \"-\" + o.substr(6);\n\t}\n\tvar oa = \"\";\n\tif((r = fmt.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(r[4].length,7);\n\t\tff = frac(aval, Math.pow(10,ri)-1, false);\n\t\to = \"\" + sign;\n\t\toa = write_num(\"n\", r[1], ff[1]);\n\t\tif(oa.charAt(oa.length-1) == \" \") oa = oa.substr(0,oa.length-1) + \"0\";\n\t\to += oa + r[2] + \"/\" + r[3];\n\t\toa = rpad_(ff[2],ri);\n\t\tif(oa.length < r[4].length) oa = hashq(r[4].substr(r[4].length-oa.length)) + oa;\n\t\to += oa;\n\t\treturn o;\n\t}\n\tif((r = fmt.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(Math.max(r[1].length, r[4].length),7);\n\t\tff = frac(aval, Math.pow(10,ri)-1, true);\n\t\treturn sign + (ff[0]||(ff[1] ? \"\" : \"0\")) + \" \" + (ff[1] ? pad_(ff[1],ri) + r[2] + \"/\" + r[3] + rpad_(ff[2],ri): fill(\" \", 2*ri+1 + r[2].length + r[3].length));\n\t}\n\tif((r = fmt.match(/^[#0?]+$/))) {\n\t\to = \"\" + val;\n\t\tif(fmt.length <= o.length) return o;\n\t\treturn hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(/^([#0]+)\\.([#0]+)$/))) {\n\t\to = \"\" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,\"$1\");\n\t\tri = o.indexOf(\".\");\n\t\tvar lres = fmt.indexOf(\".\") - ri, rres = fmt.length - o.length - lres;\n\t\treturn hashq(fmt.substr(0,lres) + o + fmt.substr(fmt.length-rres));\n\t}\n\tif((r = fmt.match(/^00,000\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify(\"\"+val).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function($$) { return \"00,\" + ($$.length < 3 ? pad0(0,3-$$.length) : \"\") + $$; }) + \".\" + pad0(0,r[1].length);\n\t}\n\tswitch(fmt) {\n\t\tcase \"###,###\":\n\t\tcase \"##,###\":\n\t\tcase \"#,###\": var x = commaify(\"\"+aval); return x !== \"0\" ? sign + x : \"\";\n\t\tdefault:\n\t\t\tif(fmt.match(/\\.[0#?]*$/)) return write_num_int(type, fmt.slice(0,fmt.lastIndexOf(\".\")), val) + hashq(fmt.slice(fmt.lastIndexOf(\".\")));\n\t}\n\tthrow new Error(\"unsupported format |\" + fmt + \"|\");\n}\nreturn function write_num(type, fmt, val) {\n\treturn (val|0) === val ? write_num_int(type, fmt, val) : write_num_flt(type, fmt, val);\n};})();\nfunction split_fmt(fmt) {\n\tvar out = [];\n\tvar in_str = false/*, cc*/;\n\tfor(var i = 0, j = 0; i < fmt.length; ++i) switch((/*cc=*/fmt.charCodeAt(i))) {\n\t\tcase 34: /* '\"' */\n\t\t\tin_str = !in_str; break;\n\t\tcase 95: case 42: case 92: /* '_' '*' '\\\\' */\n\t\t\t++i; break;\n\t\tcase 59: /* ';' */\n\t\t\tout[out.length] = fmt.substr(j,i-j);\n\t\t\tj = i+1;\n\t}\n\tout[out.length] = fmt.substr(j);\n\tif(in_str === true) throw new Error(\"Format |\" + fmt + \"| unterminated string \");\n\treturn out;\n}\nSSF._split = split_fmt;\nvar abstime = /\\[[HhMmSs\\u0E0A\\u0E19\\u0E17]*\\]/;\nfunction fmt_is_date(fmt) {\n\tvar i = 0, /*cc = 0,*/ c = \"\", o = \"\";\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': if(isgeneral(fmt, i)) i+= 6; i++; break;\n\t\t\tcase '\"': for(;(/*cc=*/fmt.charCodeAt(++i)) !== 34 && i < fmt.length;){/*empty*/} ++i; break;\n\t\t\tcase '\\\\': i+=2; break;\n\t\t\tcase '_': i+=2; break;\n\t\t\tcase '@': ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") return true;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g': return true;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"AM/PM\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"上午/下午\") return true;\n\t\t\t\t++i; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.match(abstime)) return true;\n\t\t\t\tbreak;\n\t\t\tcase '.':\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\twhile(i < fmt.length && (\"0#?.,E+-%\".indexOf(c=fmt.charAt(++i)) > -1 || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && \"0#\".indexOf(fmt.charAt(i+2))>-1))){/* empty */}\n\t\t\t\tbreak;\n\t\t\tcase '?': while(fmt.charAt(++i) === c){/* empty */} break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break;\n\t\t\tcase '(': case ')': ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\twhile(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1){/* empty */} break;\n\t\t\tcase ' ': ++i; break;\n\t\t\tdefault: ++i; break;\n\t\t}\n\t}\n\treturn false;\n}\nSSF.is_date = fmt_is_date;\nfunction eval_fmt(fmt, v, opts, flen) {\n\tvar out = [], o = \"\", i = 0, c = \"\", lst='t', dt, j, cc;\n\tvar hr='H';\n\t/* Tokenize */\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': /* General */\n\t\t\t\tif(!isgeneral(fmt, i)) throw new Error('unrecognized character ' + c + ' in ' +fmt);\n\t\t\t\tout[out.length] = {t:'G', v:'General'}; i+=7; break;\n\t\t\tcase '\"': /* Literal text */\n\t\t\t\tfor(o=\"\";(cc=fmt.charCodeAt(++i)) !== 34 && i < fmt.length;) o += String.fromCharCode(cc);\n\t\t\t\tout[out.length] = {t:'t', v:o}; ++i; break;\n\t\t\tcase '\\\\': var w = fmt.charAt(++i), t = (w === \"(\" || w === \")\") ? w : 't';\n\t\t\t\tout[out.length] = {t:t, v:w}; ++i; break;\n\t\t\tcase '_': out[out.length] = {t:'t', v:\" \"}; i+=2; break;\n\t\t\tcase '@': /* Text Placeholder */\n\t\t\t\tout[out.length] = {t:'T', v:v}; ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") {\n\t\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts, fmt.charAt(i+1) === \"2\"); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'X', v:fmt.substr(i,2)}; lst = c; i+=2; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\tc = c.toLowerCase();\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g':\n\t\t\t\tif(v < 0) return \"\";\n\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\to = c; while(++i < fmt.length && fmt.charAt(i).toLowerCase() === c) o+=c;\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M';\n\t\t\t\tif(c === 'h') c = hr;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tvar q={t:c, v:c};\n\t\t\t\tif(dt==null) dt=parse_date_code(v, opts);\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") { if(dt!=null) q.v = dt.H >= 12 ? \"P\" : \"A\"; q.t = 'T'; hr='h';i+=3;}\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"AM/PM\") { if(dt!=null) q.v = dt.H >= 12 ? \"PM\" : \"AM\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"上午/下午\") { if(dt!=null) q.v = dt.H >= 12 ? \"下午\" : \"上午\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse { q.t = \"t\"; ++i; }\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\n\t\t\t\tout[out.length] = q; lst = c; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.slice(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\n\t\t\t\tif(o.match(abstime)) {\n\t\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\n\t\t\t\t\tlst = o.charAt(1);\n\t\t\t\t} else if(o.indexOf(\"$\") > -1) {\n\t\t\t\t\to = (o.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\";\n\t\t\t\t\tif(!fmt_is_date(fmt)) out[out.length] = {t:'t',v:o};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t/* Numbers */\n\t\t\tcase '.':\n\t\t\t\tif(dt != null) {\n\t\t\t\t\to = c; while(++i < fmt.length && (c=fmt.charAt(i)) === \"0\") o += c;\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\to = c; while(++i < fmt.length && \"0#?.,E+-%\".indexOf(c=fmt.charAt(i)) > -1) o += c;\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\n\t\t\tcase '?':\n\t\t\t\to = c; while(fmt.charAt(++i) === c) o+=c;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break; // **\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\to = c; while(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1) o+=fmt.charAt(i);\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\n\t\t\tcase '$': out[out.length] = {t:'t', v:'$'}; ++i; break;\n\t\t\tdefault:\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\n\t\t}\n\t}\n\n\t/* Scan for date/time parts */\n\tvar bt = 0, ss0 = 0, ssm;\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\n\t\t\tcase 's':\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) ss0=Math.max(ss0,ssm[0].length-1);\n\t\t\t\tif(bt < 3) bt = 3;\n\t\t\t/* falls through */\n\t\t\tcase 'd': case 'y': case 'M': case 'e': lst=out[i].t; break;\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\n\t\t\tcase 'X': /*if(out[i].v === \"B2\");*/\n\t\t\t\tbreak;\n\t\t\tcase 'Z':\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\n\t\t}\n\t}\n\t/* time rounding depends on presence of minute / second / usec fields */\n\tswitch(bt) {\n\t\tcase 0: break;\n\t\tcase 1:\nif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\n\t\t\tbreak;\n\t\tcase 2:\nif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tbreak;\n\t}\n\n\t/* replace fields */\n\tvar nstr = \"\", jj;\n\tfor(i=0; i < out.length; ++i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\n\t\t\tcase 'X': out[i].v = \"\"; out[i].t = \";\"; break;\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\nout[i].v = write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\n\t\t\t\tout[i].t = 't'; break;\n\t\t\tcase 'n': case '?':\n\t\t\t\tjj = i+1;\n\t\t\t\twhile(out[jj] != null && (\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\n\t\t\t\t\t((c === \" \" || c === \"t\") && out[jj+1] != null && (out[jj+1].t === '?' || out[jj+1].t === \"t\" && out[jj+1].v === '/')) ||\n\t\t\t\t\t(out[i].t === '(' && (c === ' ' || c === 'n' || c === ')')) ||\n\t\t\t\t\t(c === 't' && (out[jj].v === '/' || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?'))\n\t\t\t\t)) {\n\t\t\t\t\tout[i].v += out[jj].v;\n\t\t\t\t\tout[jj] = {v:\"\", t:\";\"}; ++jj;\n\t\t\t\t}\n\t\t\t\tnstr += out[i].v;\n\t\t\t\ti = jj-1; break;\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = general_fmt(v,opts); break;\n\t\t}\n\t}\n\tvar vv = \"\", myv, ostr;\n\tif(nstr.length > 0) {\n\t\tif(nstr.charCodeAt(0) == 40) /* '(' */ {\n\t\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t} else {\n\t\t\tmyv = (v<0 && flen > 1 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t\tif(myv < 0 && out[0] && out[0].t == 't') {\n\t\t\t\tostr = ostr.substr(1);\n\t\t\t\tout[0].v = \"-\" + out[0].v;\n\t\t\t}\n\t\t}\n\t\tjj=ostr.length-1;\n\t\tvar decpt = out.length;\n\t\tfor(i=0; i < out.length; ++i) if(out[i] != null && out[i].t != 't' && out[i].v.indexOf(\".\") > -1) { decpt = i; break; }\n\t\tvar lasti=out.length;\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tif(jj>=out[i].v.length-1) { jj -= out[i].v.length; out[i].v = ostr.substr(jj+1, out[i].v.length); }\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti<out.length) out[lasti].v = ostr.substr(0,jj+1) + out[lasti].v;\n\t\t}\n\t\telse if(decpt !== out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tjj = ostr.indexOf(\".\")-1;\n\t\t\tfor(i=decpt; i>= 0; --i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")-1:out[i].v.length-1;\n\t\t\t\tvv = out[i].v.substr(j+1);\n\t\t\t\tfor(; j>=0; --j) {\n\t\t\t\t\tif(jj>=0 && (out[i].v.charAt(j) === \"0\" || out[i].v.charAt(j) === \"#\")) vv = ostr.charAt(jj--) + vv;\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti<out.length) out[lasti].v = ostr.substr(0,jj+1) + out[lasti].v;\n\t\t\tjj = ostr.indexOf(\".\")+1;\n\t\t\tfor(i=decpt; i<out.length; ++i) {\n\t\t\t\tif(out[i] == null || ('n?('.indexOf(out[i].t) === -1 && i !== decpt)) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")+1:0;\n\t\t\t\tvv = out[i].v.substr(0,j);\n\t\t\t\tfor(; j<out[i].v.length; ++j) {\n\t\t\t\t\tif(jj<ostr.length) vv += ostr.charAt(jj++);\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t}\n\t}\n\tfor(i=0; i<out.length; ++i) if(out[i] != null && 'n?'.indexOf(out[i].t)>-1) {\n\t\tmyv = (flen >1 && v < 0 && i>0 && out[i-1].v === \"-\" ? -v:v);\n\t\tout[i].v = write_num(out[i].t, out[i].v, myv);\n\t\tout[i].t = 't';\n\t}\n\tvar retval = \"\";\n\tfor(i=0; i !== out.length; ++i) if(out[i] != null) retval += out[i].v;\n\treturn retval;\n}\nSSF._eval = eval_fmt;\nvar cfregex = /\\[[=<>]/;\nvar cfregex2 = /\\[(=|>[=]?|<[>=]?)(-?\\d+(?:\\.\\d*)?)\\]/;\nfunction chkcond(v, rr) {\n\tif(rr == null) return false;\n\tvar thresh = parseFloat(rr[2]);\n\tswitch(rr[1]) {\n\t\tcase \"=\": if(v == thresh) return true; break;\n\t\tcase \">\": if(v > thresh) return true; break;\n\t\tcase \"<\": if(v < thresh) return true; break;\n\t\tcase \"<>\": if(v != thresh) return true; break;\n\t\tcase \">=\": if(v >= thresh) return true; break;\n\t\tcase \"<=\": if(v <= thresh) return true; break;\n\t}\n\treturn false;\n}\nfunction choose_fmt(f, v) {\n\tvar fmt = split_fmt(f);\n\tvar l = fmt.length, lat = fmt[l-1].indexOf(\"@\");\n\tif(l<4 && lat>-1) --l;\n\tif(fmt.length > 4) throw new Error(\"cannot find right format for |\" + fmt.join(\"|\") + \"|\");\n\tif(typeof v !== \"number\") return [4, fmt.length === 4 || lat>-1?fmt[fmt.length-1]:\"@\"];\n\tswitch(fmt.length) {\n\t\tcase 1: fmt = lat>-1 ? [\"General\", \"General\", \"General\", fmt[0]] : [fmt[0], fmt[0], fmt[0], \"@\"]; break;\n\t\tcase 2: fmt = lat>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], \"@\"]; break;\n\t\tcase 3: fmt = lat>-1 ? [fmt[0], fmt[1], fmt[0], fmt[2]] : [fmt[0], fmt[1], fmt[2], \"@\"]; break;\n\t\tcase 4: break;\n\t}\n\tvar ff = v > 0 ? fmt[0] : v < 0 ? fmt[1] : fmt[2];\n\tif(fmt[0].indexOf(\"[\") === -1 && fmt[1].indexOf(\"[\") === -1) return [l, ff];\n\tif(fmt[0].match(cfregex) != null || fmt[1].match(cfregex) != null) {\n\t\tvar m1 = fmt[0].match(cfregex2);\n\t\tvar m2 = fmt[1].match(cfregex2);\n\t\treturn chkcond(v, m1) ? [l, fmt[0]] : chkcond(v, m2) ? [l, fmt[1]] : [l, fmt[m1 != null && m2 != null ? 2 : 1]];\n\t}\n\treturn [l, ff];\n}\nfunction format(fmt,v,o) {\n\tif(o == null) o = {};\n\tvar sfmt = \"\";\n\tswitch(typeof fmt) {\n\t\tcase \"string\":\n\t\t\tif(fmt == \"m/d/yy\" && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = fmt;\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tif(fmt == 14 && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = (o.table != null ? (o.table) : table_fmt)[fmt];\n\t\t\tif(sfmt == null) sfmt = (o.table && o.table[default_map[fmt]]) || table_fmt[default_map[fmt]];\n\t\t\tif(sfmt == null) sfmt = default_str[fmt] || \"General\";\n\t\t\tbreak;\n\t}\n\tif(isgeneral(sfmt,0)) return general_fmt(v, o);\n\tif(v instanceof Date) v = datenum_local(v, o.date1904);\n\tvar f = choose_fmt(sfmt, v);\n\tif(isgeneral(f[1])) return general_fmt(v, o);\n\tif(v === true) v = \"TRUE\"; else if(v === false) v = \"FALSE\";\n\telse if(v === \"\" || v == null) return \"\";\n\treturn eval_fmt(f[1], v, o, f[0]);\n}\nfunction load_entry(fmt, idx) {\n\tif(typeof idx != 'number') {\n\t\tidx = +idx || -1;\nfor(var i = 0; i < 0x0188; ++i) {\nif(table_fmt[i] == undefined) { if(idx < 0) idx = i; continue; }\n\t\t\tif(table_fmt[i] == fmt) { idx = i; break; }\n\t\t}\nif(idx < 0) idx = 0x187;\n\t}\ntable_fmt[idx] = fmt;\n\treturn idx;\n}\nSSF.load = load_entry;\nSSF._table = table_fmt;\nSSF.get_table = function get_table() { return table_fmt; };\nSSF.load_table = function load_table(tbl) {\n\tfor(var i=0; i!=0x0188; ++i)\n\t\tif(tbl[i] !== undefined) load_entry(tbl[i], i);\n};\nSSF.init_table = init_table;\nSSF.format = format;\n};\nmake_ssf(SSF);\n/* map from xlml named formats to SSF TODO: localize */\nvar XLMLFormatMap/*{[string]:string}*/ = ({\n\t\"General Number\": \"General\",\n\t\"General Date\": SSF._table[22],\n\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\n\t\"Medium Date\": SSF._table[15],\n\t\"Short Date\": SSF._table[14],\n\t\"Long Time\": SSF._table[19],\n\t\"Medium Time\": SSF._table[18],\n\t\"Short Time\": SSF._table[20],\n\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"Fixed\": SSF._table[2],\n\t\"Standard\": SSF._table[4],\n\t\"Percent\": SSF._table[10],\n\t\"Scientific\": SSF._table[11],\n\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\n\t\"True/False\": '\"True\";\"True\";\"False\";@',\n\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\n});\n\nvar SSFImplicit/*{[number]:string}*/ = ({\n\t\"5\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"6\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"7\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"8\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"23\": 'General', \"24\": 'General', \"25\": 'General', \"26\": 'General',\n\t\"27\": 'm/d/yy', \"28\": 'm/d/yy', \"29\": 'm/d/yy', \"30\": 'm/d/yy', \"31\": 'm/d/yy',\n\t\"32\": 'h:mm:ss', \"33\": 'h:mm:ss', \"34\": 'h:mm:ss', \"35\": 'h:mm:ss',\n\t\"36\": 'm/d/yy',\n\t\"41\": '_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)',\n\t\"42\": '_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)',\n\t\"43\": '_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)',\n\t\"44\": '_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)',\n\t\"50\": 'm/d/yy', \"51\": 'm/d/yy', \"52\": 'm/d/yy', \"53\": 'm/d/yy', \"54\": 'm/d/yy',\n\t\"55\": 'm/d/yy', \"56\": 'm/d/yy', \"57\": 'm/d/yy', \"58\": 'm/d/yy',\n\t\"59\": '0',\n\t\"60\": '0.00',\n\t\"61\": '#,##0',\n\t\"62\": '#,##0.00',\n\t\"63\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"64\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"65\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"66\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"67\": '0%',\n\t\"68\": '0.00%',\n\t\"69\": '# ?/?',\n\t\"70\": '# ??/??',\n\t\"71\": 'm/d/yy',\n\t\"72\": 'm/d/yy',\n\t\"73\": 'd-mmm-yy',\n\t\"74\": 'd-mmm',\n\t\"75\": 'mmm-yy',\n\t\"76\": 'h:mm',\n\t\"77\": 'h:mm:ss',\n\t\"78\": 'm/d/yy h:mm',\n\t\"79\": 'mm:ss',\n\t\"80\": '[h]:mm:ss',\n\t\"81\": 'mmss.0'\n});\n\n/* dateNF parse TODO: move to SSF */\nvar dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;\nfunction dateNF_regex(dateNF) {\n\tvar fmt = typeof dateNF == \"number\" ? SSF._table[dateNF] : dateNF;\n\tfmt = fmt.replace(dateNFregex, \"(\\\\d+)\");\n\treturn new RegExp(\"^\" + fmt + \"$\");\n}\nfunction dateNF_fix(str, dateNF, match) {\n\tvar Y = -1, m = -1, d = -1, H = -1, M = -1, S = -1;\n\t(dateNF.match(dateNFregex)||[]).forEach(function(n, i) {\n\t\tvar v = parseInt(match[i+1], 10);\n\t\tswitch(n.toLowerCase().charAt(0)) {\n\t\t\tcase 'y': Y = v; break; case 'd': d = v; break;\n\t\t\tcase 'h': H = v; break; case 's': S = v; break;\n\t\t\tcase 'm': if(H >= 0) M = v; else m = v; break;\n\t\t}\n\t});\n\tif(S >= 0 && M == -1 && m >= 0) { M = m; m = -1; }\n\tvar datestr = ((\"\" + (Y>=0?Y: new Date().getFullYear())).slice(-4) + \"-\" + (\"00\" + (m>=1?m:1)).slice(-2) + \"-\" + (\"00\" + (d>=1?d:1)).slice(-2));\n\tif(datestr.length == 7) datestr = \"0\" + datestr;\n\tif(datestr.length == 8) datestr = \"20\" + datestr;\n\tvar timestr = ((\"00\" + (H>=0?H:0)).slice(-2) + \":\" + (\"00\" + (M>=0?M:0)).slice(-2) + \":\" + (\"00\" + (S>=0?S:0)).slice(-2));\n\tif(H == -1 && M == -1 && S == -1) return datestr;\n\tif(Y == -1 && m == -1 && d == -1) return timestr;\n\treturn datestr + \"T\" + timestr;\n}\n\nvar DO_NOT_EXPORT_CFB = true;\n/* cfb.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint eqnull:true */\n/*exported CFB */\n/*global Uint8Array:false, Uint16Array:false */\n\n/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32;\n(function (factory) {\n\t/*jshint ignore:start */\n\t/*eslint-disable */\n\tfactory(CRC32 = {});\n\t/*eslint-enable */\n\t/*jshint ignore:end */\n}(function(CRC32) {\nCRC32.version = '1.2.0';\n/* see perf/crc32table.js */\n/*global Int32Array */\nfunction signed_crc_table() {\n\tvar c = 0, table = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T = signed_crc_table();\nfunction crc32_bstr(bstr, seed) {\n\tvar C = seed ^ -1, L = bstr.length - 1;\n\tfor(var i = 0; i < L;) {\n\t\tC = (C>>>8) ^ T[(C^bstr.charCodeAt(i++))&0xFF];\n\t\tC = (C>>>8) ^ T[(C^bstr.charCodeAt(i++))&0xFF];\n\t}\n\tif(i === L) C = (C>>>8) ^ T[(C ^ bstr.charCodeAt(i))&0xFF];\n\treturn C ^ -1;\n}\n\nfunction crc32_buf(buf, seed) {\n\tif(buf.length > 10000) return crc32_buf_8(buf, seed);\n\tvar C = seed ^ -1, L = buf.length - 3;\n\tfor(var i = 0; i < L;) {\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t}\n\twhile(i < L+3) C = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\treturn C ^ -1;\n}\n\nfunction crc32_buf_8(buf, seed) {\n\tvar C = seed ^ -1, L = buf.length - 7;\n\tfor(var i = 0; i < L;) {\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t}\n\twhile(i < L+7) C = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\treturn C ^ -1;\n}\n\nfunction crc32_str(str, seed) {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L=str.length, c, d; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T[(C ^ c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn C ^ -1;\n}\nCRC32.table = T;\nCRC32.bstr = crc32_bstr;\nCRC32.buf = crc32_buf;\nCRC32.str = crc32_str;\n}));\n/* [MS-CFB] v20171201 */\nvar CFB = (function _CFB(){\nvar exports = {};\nexports.version = '1.1.4';\n/* [MS-CFB] 2.6.4 */\nfunction namecmp(l, r) {\n\tvar L = l.split(\"/\"), R = r.split(\"/\");\n\tfor(var i = 0, c = 0, Z = Math.min(L.length, R.length); i < Z; ++i) {\n\t\tif((c = L[i].length - R[i].length)) return c;\n\t\tif(L[i] != R[i]) return L[i] < R[i] ? -1 : 1;\n\t}\n\treturn L.length - R.length;\n}\nfunction dirname(p) {\n\tif(p.charAt(p.length - 1) == \"/\") return (p.slice(0,-1).indexOf(\"/\") === -1) ? p : dirname(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(0, c+1);\n}\n\nfunction filename(p) {\n\tif(p.charAt(p.length - 1) == \"/\") return filename(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(c+1);\n}\n/* -------------------------------------------------------------------------- */\n/* DOS Date format:\n high|YYYYYYYm.mmmddddd.HHHHHMMM.MMMSSSSS|low\n add 1980 to stored year\n stored second should be doubled\n*/\n\n/* write JS date to buf as a DOS date */\nfunction write_dos_date(buf, date) {\n\tif(typeof date === \"string\") date = new Date(date);\n\tvar hms = date.getHours();\n\thms = hms << 6 | date.getMinutes();\n\thms = hms << 5 | (date.getSeconds()>>>1);\n\tbuf.write_shift(2, hms);\n\tvar ymd = (date.getFullYear() - 1980);\n\tymd = ymd << 4 | (date.getMonth()+1);\n\tymd = ymd << 5 | date.getDate();\n\tbuf.write_shift(2, ymd);\n}\n\n/* read four bytes from buf and interpret as a DOS date */\nfunction parse_dos_date(buf) {\n\tvar hms = buf.read_shift(2) & 0xFFFF;\n\tvar ymd = buf.read_shift(2) & 0xFFFF;\n\tvar val = new Date();\n\tvar d = ymd & 0x1F; ymd >>>= 5;\n\tvar m = ymd & 0x0F; ymd >>>= 4;\n\tval.setMilliseconds(0);\n\tval.setFullYear(ymd + 1980);\n\tval.setMonth(m-1);\n\tval.setDate(d);\n\tvar S = hms & 0x1F; hms >>>= 5;\n\tvar M = hms & 0x3F; hms >>>= 6;\n\tval.setHours(hms);\n\tval.setMinutes(M);\n\tval.setSeconds(S<<1);\n\treturn val;\n}\nfunction parse_extra_field(blob) {\n\tprep_blob(blob, 0);\n\tvar o = {};\n\tvar flags = 0;\n\twhile(blob.l <= blob.length - 4) {\n\t\tvar type = blob.read_shift(2);\n\t\tvar sz = blob.read_shift(2), tgt = blob.l + sz;\n\t\tvar p = {};\n\t\tswitch(type) {\n\t\t\t/* UNIX-style Timestamps */\n\t\t\tcase 0x5455: {\n\t\t\t\tflags = blob.read_shift(1);\n\t\t\t\tif(flags & 1) p.mtime = blob.read_shift(4);\n\t\t\t\t/* for some reason, CD flag corresponds to LFH */\n\t\t\t\tif(sz > 5) {\n\t\t\t\t\tif(flags & 2) p.atime = blob.read_shift(4);\n\t\t\t\t\tif(flags & 4) p.ctime = blob.read_shift(4);\n\t\t\t\t}\n\t\t\t\tif(p.mtime) p.mt = new Date(p.mtime*1000);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tblob.l = tgt;\n\t\to[type] = p;\n\t}\n\treturn o;\n}\nvar fs;\nfunction get_fs() { return fs || (fs = require('fs')); }\nfunction parse(file, options) {\nif(file[0] == 0x50 && file[1] == 0x4b) return parse_zip(file, options);\nif(file.length < 512) throw new Error(\"CFB file size \" + file.length + \" < 512\");\nvar mver = 3;\nvar ssz = 512;\nvar nmfs = 0; // number of mini FAT sectors\nvar difat_sec_cnt = 0;\nvar dir_start = 0;\nvar minifat_start = 0;\nvar difat_start = 0;\n\nvar fat_addrs = []; // locations of FAT sectors\n\n/* [MS-CFB] 2.2 Compound File Header */\nvar blob = file.slice(0,512);\nprep_blob(blob, 0);\n\n/* major version */\nvar mv = check_get_mver(blob);\nmver = mv[0];\nswitch(mver) {\n\tcase 3: ssz = 512; break; case 4: ssz = 4096; break;\n\tcase 0: if(mv[1] == 0) return parse_zip(file, options);\n\t/* falls through */\n\tdefault: throw new Error(\"Major Version: Expected 3 or 4 saw \" + mver);\n}\n\n/* reprocess header */\nif(ssz !== 512) { blob = file.slice(0,ssz); prep_blob(blob, 28 /* blob.l */); }\n/* Save header for final object */\nvar header = file.slice(0,ssz);\n\ncheck_shifts(blob, mver);\n\n// Number of Directory Sectors\nvar dir_cnt = blob.read_shift(4, 'i');\nif(mver === 3 && dir_cnt !== 0) throw new Error('# Directory Sectors: Expected 0 saw ' + dir_cnt);\n\n// Number of FAT Sectors\nblob.l += 4;\n\n// First Directory Sector Location\ndir_start = blob.read_shift(4, 'i');\n\n// Transaction Signature\nblob.l += 4;\n\n// Mini Stream Cutoff Size\nblob.chk('00100000', 'Mini Stream Cutoff Size: ');\n\n// First Mini FAT Sector Location\nminifat_start = blob.read_shift(4, 'i');\n\n// Number of Mini FAT Sectors\nnmfs = blob.read_shift(4, 'i');\n\n// First DIFAT sector location\ndifat_start = blob.read_shift(4, 'i');\n\n// Number of DIFAT Sectors\ndifat_sec_cnt = blob.read_shift(4, 'i');\n\n// Grab FAT Sector Locations\nfor(var q = -1, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */\n\tq = blob.read_shift(4, 'i');\n\tif(q<0) break;\n\tfat_addrs[j] = q;\n}\n\n/** Break the file up into sectors */\nvar sectors = sectorify(file, ssz);\n\nsleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);\n\n/** Chains */\nvar sector_list = make_sector_list(sectors, dir_start, fat_addrs, ssz);\n\nsector_list[dir_start].name = \"!Directory\";\nif(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = \"!MiniFAT\";\nsector_list[fat_addrs[0]].name = \"!FAT\";\nsector_list.fat_addrs = fat_addrs;\nsector_list.ssz = ssz;\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nvar files = {}, Paths = [], FileIndex = [], FullPaths = [];\nread_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, minifat_start);\n\nbuild_full_paths(FileIndex, FullPaths, Paths);\nPaths.shift();\n\nvar o = {\n\tFileIndex: FileIndex,\n\tFullPaths: FullPaths\n};\n\n// $FlowIgnore\nif(options && options.raw) o.raw = {header: header, sectors: sectors};\nreturn o;\n} // parse\n\n/* [MS-CFB] 2.2 Compound File Header -- read up to major version */\nfunction check_get_mver(blob) {\n\tif(blob[blob.l] == 0x50 && blob[blob.l + 1] == 0x4b) return [0, 0];\n\t// header signature 8\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\n\n\t// clsid 16\n\t//blob.chk(HEADER_CLSID, 'CLSID: ');\n\tblob.l += 16;\n\n\t// minor version 2\n\tvar mver = blob.read_shift(2, 'u');\n\n\treturn [blob.read_shift(2,'u'), mver];\n}\nfunction check_shifts(blob, mver) {\n\tvar shift = 0x09;\n\n\t// Byte Order\n\t//blob.chk('feff', 'Byte Order: '); // note: some writers put 0xffff\n\tblob.l += 2;\n\n\t// Sector Shift\n\tswitch((shift = blob.read_shift(2))) {\n\t\tcase 0x09: if(mver != 3) throw new Error('Sector Shift: Expected 9 saw ' + shift); break;\n\t\tcase 0x0c: if(mver != 4) throw new Error('Sector Shift: Expected 12 saw ' + shift); break;\n\t\tdefault: throw new Error('Sector Shift: Expected 9 or 12 saw ' + shift);\n\t}\n\n\t// Mini Sector Shift\n\tblob.chk('0600', 'Mini Sector Shift: ');\n\n\t// Reserved\n\tblob.chk('000000000000', 'Reserved: ');\n}\n\n/** Break the file up into sectors */\nfunction sectorify(file, ssz) {\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\n\tvar sectors = [];\n\tfor(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz);\n\tsectors[nsectors-1] = file.slice(nsectors*ssz);\n\treturn sectors;\n}\n\n/* [MS-CFB] 2.6.4 Red-Black Tree */\nfunction build_full_paths(FI, FP, Paths) {\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\n\tvar dad = [], q = [];\n\n\tfor(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; }\n\n\tfor(; j < q.length; ++j) {\n\t\ti = q[j];\n\t\tL = FI[i].L; R = FI[i].R; C = FI[i].C;\n\t\tif(dad[i] === i) {\n\t\t\tif(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L];\n\t\t\tif(R !== -1 && dad[R] !== R) dad[i] = dad[R];\n\t\t}\n\t\tif(C !== -1 /*NOSTREAM*/) dad[C] = i;\n\t\tif(L !== -1 && i != dad[i]) { dad[L] = dad[i]; if(q.lastIndexOf(L) < j) q.push(L); }\n\t\tif(R !== -1 && i != dad[i]) { dad[R] = dad[i]; if(q.lastIndexOf(R) < j) q.push(R); }\n\t}\n\tfor(i=1; i < pl; ++i) if(dad[i] === i) {\n\t\tif(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];\n\t\telse if(L !== -1 && dad[L] !== L) dad[i] = dad[L];\n\t}\n\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type === 0 /* unknown */) continue;\n\t\tj = i;\n\t\tif(j != dad[j]) do {\n\t\t\tj = dad[j];\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\n\t\t} while (j !== 0 && -1 !== dad[j] && j != dad[j]);\n\t\tdad[i] = -1;\n\t}\n\n\tFP[0] += \"/\";\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type !== 2 /* stream */) FP[i] += \"/\";\n\t}\n}\n\nfunction get_mfat_entry(entry, payload, mini) {\n\tvar start = entry.start, size = entry.size;\n\t//return (payload.slice(start*MSSZ, start*MSSZ + size));\n\tvar o = [];\n\tvar idx = start;\n\twhile(mini && size > 0 && idx >= 0) {\n\t\to.push(payload.slice(idx * MSSZ, idx * MSSZ + MSSZ));\n\t\tsize -= MSSZ;\n\t\tidx = __readInt32LE(mini, idx * 4);\n\t}\n\tif(o.length === 0) return (new_buf(0));\n\treturn (bconcat(o).slice(0, entry.size));\n}\n\n/** Chase down the rest of the DIFAT chain to build a comprehensive list\n DIFAT chains by storing the next sector number as the last 32 bits */\nfunction sleuth_fat(idx, cnt, sectors, ssz, fat_addrs) {\n\tvar q = ENDOFCHAIN;\n\tif(idx === ENDOFCHAIN) {\n\t\tif(cnt !== 0) throw new Error(\"DIFAT chain shorter than expected\");\n\t} else if(idx !== -1 /*FREESECT*/) {\n\t\tvar sector = sectors[idx], m = (ssz>>>2)-1;\n\t\tif(!sector) return;\n\t\tfor(var i = 0; i < m; ++i) {\n\t\t\tif((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break;\n\t\t\tfat_addrs.push(q);\n\t\t}\n\t\tsleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs);\n\t}\n}\n\n/** Follow the linked list of sectors for a given starting point */\nfunction get_sector_list(sectors, start, fat_addrs, ssz, chkd) {\n\tvar buf = [], buf_chain = [];\n\tif(!chkd) chkd = [];\n\tvar modulus = ssz - 1, j = 0, jj = 0;\n\tfor(j=start; j>=0;) {\n\t\tchkd[j] = true;\n\t\tbuf[buf.length] = j;\n\t\tbuf_chain.push(sectors[j]);\n\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\tjj = ((j*4) & modulus);\n\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\tif(!sectors[addr]) break;\n\t\tj = __readInt32LE(sectors[addr], jj);\n\t}\n\treturn {nodes: buf, data:__toBuffer([buf_chain])};\n}\n\n/** Chase down the sector linked lists */\nfunction make_sector_list(sectors, dir_start, fat_addrs, ssz) {\n\tvar sl = sectors.length, sector_list = ([]);\n\tvar chkd = [], buf = [], buf_chain = [];\n\tvar modulus = ssz - 1, i=0, j=0, k=0, jj=0;\n\tfor(i=0; i < sl; ++i) {\n\t\tbuf = ([]);\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\n\t\tif(chkd[k]) continue;\n\t\tbuf_chain = [];\n\t\tvar seen = [];\n\t\tfor(j=k; j>=0;) {\n\t\t\tseen[j] = true;\n\t\t\tchkd[j] = true;\n\t\t\tbuf[buf.length] = j;\n\t\t\tbuf_chain.push(sectors[j]);\n\t\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\t\tjj = ((j*4) & modulus);\n\t\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\t\tif(!sectors[addr]) break;\n\t\t\tj = __readInt32LE(sectors[addr], jj);\n\t\t\tif(seen[j]) break;\n\t\t}\n\t\tsector_list[k] = ({nodes: buf, data:__toBuffer([buf_chain])});\n\t}\n\treturn sector_list;\n}\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nfunction read_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, mini) {\n\tvar minifat_store = 0, pl = (Paths.length?2:0);\n\tvar sector = sector_list[dir_start].data;\n\tvar i = 0, namelen = 0, name;\n\tfor(; i < sector.length; i+= 128) {\n\t\tvar blob = sector.slice(i, i+128);\n\t\tprep_blob(blob, 64);\n\t\tnamelen = blob.read_shift(2);\n\t\tname = __utf16le(blob,0,namelen-pl);\n\t\tPaths.push(name);\n\t\tvar o = ({\n\t\t\tname: name,\n\t\t\ttype: blob.read_shift(1),\n\t\t\tcolor: blob.read_shift(1),\n\t\t\tL: blob.read_shift(4, 'i'),\n\t\t\tR: blob.read_shift(4, 'i'),\n\t\t\tC: blob.read_shift(4, 'i'),\n\t\t\tclsid: blob.read_shift(16),\n\t\t\tstate: blob.read_shift(4, 'i'),\n\t\t\tstart: 0,\n\t\t\tsize: 0\n\t\t});\n\t\tvar ctime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(ctime !== 0) o.ct = read_date(blob, blob.l-8);\n\t\tvar mtime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(mtime !== 0) o.mt = read_date(blob, blob.l-8);\n\t\to.start = blob.read_shift(4, 'i');\n\t\to.size = blob.read_shift(4, 'i');\n\t\tif(o.size < 0 && o.start < 0) { o.size = o.type = 0; o.start = ENDOFCHAIN; o.name = \"\"; }\n\t\tif(o.type === 5) { /* root */\n\t\t\tminifat_store = o.start;\n\t\t\tif(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = \"!StreamData\";\n\t\t\t/*minifat_size = o.size;*/\n\t\t} else if(o.size >= 4096 /* MSCSZ */) {\n\t\t\to.storage = 'fat';\n\t\t\tif(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz);\n\t\t\tsector_list[o.start].name = o.name;\n\t\t\to.content = (sector_list[o.start].data.slice(0,o.size));\n\t\t} else {\n\t\t\to.storage = 'minifat';\n\t\t\tif(o.size < 0) o.size = 0;\n\t\t\telse if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN && sector_list[minifat_store]) {\n\t\t\t\to.content = get_mfat_entry(o, sector_list[minifat_store].data, (sector_list[mini]||{}).data);\n\t\t\t}\n\t\t}\n\t\tif(o.content) prep_blob(o.content, 0);\n\t\tfiles[name] = o;\n\t\tFileIndex.push(o);\n\t}\n}\n\nfunction read_date(blob, offset) {\n\treturn new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000);\n}\n\nfunction read_file(filename, options) {\n\tget_fs();\n\treturn parse(fs.readFileSync(filename), options);\n}\n\nfunction read(blob, options) {\n\tswitch(options && options.type || \"base64\") {\n\t\tcase \"file\": return read_file(blob, options);\n\t\tcase \"base64\": return parse(s2a(Base64.decode(blob)), options);\n\t\tcase \"binary\": return parse(s2a(blob), options);\n\t}\n\treturn parse(blob, options);\n}\n\nfunction init_cfb(cfb, opts) {\n\tvar o = opts || {}, root = o.root || \"Root Entry\";\n\tif(!cfb.FullPaths) cfb.FullPaths = [];\n\tif(!cfb.FileIndex) cfb.FileIndex = [];\n\tif(cfb.FullPaths.length !== cfb.FileIndex.length) throw new Error(\"inconsistent CFB structure\");\n\tif(cfb.FullPaths.length === 0) {\n\t\tcfb.FullPaths[0] = root + \"/\";\n\t\tcfb.FileIndex[0] = ({ name: root, type: 5 });\n\t}\n\tif(o.CLSID) cfb.FileIndex[0].clsid = o.CLSID;\n\tseed_cfb(cfb);\n}\nfunction seed_cfb(cfb) {\n\tvar nm = \"\\u0001Sh33tJ5\";\n\tif(CFB.find(cfb, \"/\" + nm)) return;\n\tvar p = new_buf(4); p[0] = 55; p[1] = p[3] = 50; p[2] = 54;\n\tcfb.FileIndex.push(({ name: nm, type: 2, content:p, size:4, L:69, R:69, C:69 }));\n\tcfb.FullPaths.push(cfb.FullPaths[0] + nm);\n\trebuild_cfb(cfb);\n}\nfunction rebuild_cfb(cfb, f) {\n\tinit_cfb(cfb);\n\tvar gc = false, s = false;\n\tfor(var i = cfb.FullPaths.length - 1; i >= 0; --i) {\n\t\tvar _file = cfb.FileIndex[i];\n\t\tswitch(_file.type) {\n\t\t\tcase 0:\n\t\t\t\tif(s) gc = true;\n\t\t\t\telse { cfb.FileIndex.pop(); cfb.FullPaths.pop(); }\n\t\t\t\tbreak;\n\t\t\tcase 1: case 2: case 5:\n\t\t\t\ts = true;\n\t\t\t\tif(isNaN(_file.R * _file.L * _file.C)) gc = true;\n\t\t\t\tif(_file.R > -1 && _file.L > -1 && _file.R == _file.L) gc = true;\n\t\t\t\tbreak;\n\t\t\tdefault: gc = true; break;\n\t\t}\n\t}\n\tif(!gc && !f) return;\n\n\tvar now = new Date(1987, 1, 19), j = 0;\n\tvar data = [];\n\tfor(i = 0; i < cfb.FullPaths.length; ++i) {\n\t\tif(cfb.FileIndex[i].type === 0) continue;\n\t\tdata.push([cfb.FullPaths[i], cfb.FileIndex[i]]);\n\t}\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar dad = dirname(data[i][0]);\n\t\ts = false;\n\t\tfor(j = 0; j < data.length; ++j) if(data[j][0] === dad) s = true;\n\t\tif(!s) data.push([dad, ({\n\t\t\tname: filename(dad).replace(\"/\",\"\"),\n\t\t\ttype: 1,\n\t\t\tclsid: HEADER_CLSID,\n\t\t\tct: now, mt: now,\n\t\t\tcontent: null\n\t\t})]);\n\t}\n\n\tdata.sort(function(x,y) { return namecmp(x[0], y[0]); });\n\tcfb.FullPaths = []; cfb.FileIndex = [];\n\tfor(i = 0; i < data.length; ++i) { cfb.FullPaths[i] = data[i][0]; cfb.FileIndex[i] = data[i][1]; }\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar elt = cfb.FileIndex[i];\n\t\tvar nm = cfb.FullPaths[i];\n\n\t\telt.name = filename(nm).replace(\"/\",\"\");\n\t\telt.L = elt.R = elt.C = -(elt.color = 1);\n\t\telt.size = elt.content ? elt.content.length : 0;\n\t\telt.start = 0;\n\t\telt.clsid = (elt.clsid || HEADER_CLSID);\n\t\tif(i === 0) {\n\t\t\telt.C = data.length > 1 ? 1 : -1;\n\t\t\telt.size = 0;\n\t\t\telt.type = 5;\n\t\t} else if(nm.slice(-1) == \"/\") {\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==nm) break;\n\t\t\telt.C = j >= data.length ? -1 : j;\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==dirname(nm)) break;\n\t\t\telt.R = j >= data.length ? -1 : j;\n\t\t\telt.type = 1;\n\t\t} else {\n\t\t\tif(dirname(cfb.FullPaths[i+1]||\"\") == dirname(nm)) elt.R = i + 1;\n\t\t\telt.type = 2;\n\t\t}\n\t}\n\n}\n\nfunction _write(cfb, options) {\n\tvar _opts = options || {};\n\trebuild_cfb(cfb);\n\tif(_opts.fileType == 'zip') return write_zip(cfb, _opts);\n\tvar L = (function(cfb){\n\t\tvar mini_size = 0, fat_size = 0;\n\t\tfor(var i = 0; i < cfb.FileIndex.length; ++i) {\n\t\t\tvar file = cfb.FileIndex[i];\n\t\t\tif(!file.content) continue;\nvar flen = file.content.length;\n\t\t\tif(flen > 0){\n\t\t\t\tif(flen < 0x1000) mini_size += (flen + 0x3F) >> 6;\n\t\t\t\telse fat_size += (flen + 0x01FF) >> 9;\n\t\t\t}\n\t\t}\n\t\tvar dir_cnt = (cfb.FullPaths.length +3) >> 2;\n\t\tvar mini_cnt = (mini_size + 7) >> 3;\n\t\tvar mfat_cnt = (mini_size + 0x7F) >> 7;\n\t\tvar fat_base = mini_cnt + fat_size + dir_cnt + mfat_cnt;\n\t\tvar fat_cnt = (fat_base + 0x7F) >> 7;\n\t\tvar difat_cnt = fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\twhile(((fat_base + fat_cnt + difat_cnt + 0x7F) >> 7) > fat_cnt) difat_cnt = ++fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\tvar L = [1, difat_cnt, fat_cnt, mfat_cnt, dir_cnt, fat_size, mini_size, 0];\n\t\tcfb.FileIndex[0].size = mini_size << 6;\n\t\tL[7] = (cfb.FileIndex[0].start=L[0]+L[1]+L[2]+L[3]+L[4]+L[5])+((L[6]+7) >> 3);\n\t\treturn L;\n\t})(cfb);\n\tvar o = new_buf(L[7] << 9);\n\tvar i = 0, T = 0;\n\t{\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(1, HEADER_SIG[i]);\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(2, 0);\n\t\to.write_shift(2, 0x003E);\n\t\to.write_shift(2, 0x0003);\n\t\to.write_shift(2, 0xFFFE);\n\t\to.write_shift(2, 0x0009);\n\t\to.write_shift(2, 0x0006);\n\t\tfor(i = 0; i < 3; ++i) o.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, L[2]);\n\t\to.write_shift(4, L[0] + L[1] + L[2] + L[3] - 1);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, 1<<12);\n\t\to.write_shift(4, L[3] ? L[0] + L[1] + L[2] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[3]);\n\t\to.write_shift(-4, L[1] ? L[0] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[1]);\n\t\tfor(i = 0; i < 109; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t}\n\tif(L[1]) {\n\t\tfor(T = 0; T < L[1]; ++T) {\n\t\t\tfor(; i < 236 + T * 127; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t\t\to.write_shift(-4, T === L[1] - 1 ? ENDOFCHAIN : T + 1);\n\t\t}\n\t}\n\tvar chainit = function(w) {\n\t\tfor(T += w; i<T-1; ++i) o.write_shift(-4, i+1);\n\t\tif(w) { ++i; o.write_shift(-4, ENDOFCHAIN); }\n\t};\n\tT = i = 0;\n\tfor(T+=L[1]; i<T; ++i) o.write_shift(-4, consts.DIFSECT);\n\tfor(T+=L[2]; i<T; ++i) o.write_shift(-4, consts.FATSECT);\n\tchainit(L[3]);\n\tchainit(L[4]);\n\tvar j = 0, flen = 0;\n\tvar file = cfb.FileIndex[0];\n\tfor(; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\nflen = file.content.length;\n\t\tif(flen < 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x01FF) >> 9);\n\t}\n\tchainit((L[6] + 7) >> 3);\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tT = i = 0;\n\tfor(j = 0; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\nflen = file.content.length;\n\t\tif(!flen || flen >= 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x3F) >> 6);\n\t}\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tfor(i = 0; i < L[4]<<2; ++i) {\n\t\tvar nm = cfb.FullPaths[i];\n\t\tif(!nm || nm.length === 0) {\n\t\t\tfor(j = 0; j < 17; ++j) o.write_shift(4, 0);\n\t\t\tfor(j = 0; j < 3; ++j) o.write_shift(4, -1);\n\t\t\tfor(j = 0; j < 12; ++j) o.write_shift(4, 0);\n\t\t\tcontinue;\n\t\t}\n\t\tfile = cfb.FileIndex[i];\n\t\tif(i === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;\n\t\tvar _nm = (i === 0 && _opts.root) || file.name;\n\t\tflen = 2*(_nm.length+1);\n\t\to.write_shift(64, _nm, \"utf16le\");\n\t\to.write_shift(2, flen);\n\t\to.write_shift(1, file.type);\n\t\to.write_shift(1, file.color);\n\t\to.write_shift(-4, file.L);\n\t\to.write_shift(-4, file.R);\n\t\to.write_shift(-4, file.C);\n\t\tif(!file.clsid) for(j = 0; j < 4; ++j) o.write_shift(4, 0);\n\t\telse o.write_shift(16, file.clsid, \"hex\");\n\t\to.write_shift(4, file.state || 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, file.start);\n\t\to.write_shift(4, file.size); o.write_shift(4, 0);\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\nif(file.size >= 0x1000) {\n\t\t\to.l = (file.start+1) << 9;\n\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\tfor(; j & 0x1FF; ++j) o.write_shift(1, 0);\n\t\t}\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\nif(file.size > 0 && file.size < 0x1000) {\n\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\tfor(; j & 0x3F; ++j) o.write_shift(1, 0);\n\t\t}\n\t}\n\twhile(o.l < o.length) o.write_shift(1, 0);\n\treturn o;\n}\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\nfunction find(cfb, path) {\n\tvar UCFullPaths = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });\n\tvar UCPaths = UCFullPaths.map(function(x) { var y = x.split(\"/\"); return y[y.length - (x.slice(-1) == \"/\" ? 2 : 1)]; });\n\tvar k = false;\n\tif(path.charCodeAt(0) === 47 /* \"/\" */) { k = true; path = UCFullPaths[0].slice(0, -1) + path; }\n\telse k = path.indexOf(\"/\") !== -1;\n\tvar UCPath = path.toUpperCase();\n\tvar w = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);\n\tif(w !== -1) return cfb.FileIndex[w];\n\n\tvar m = !UCPath.match(chr1);\n\tUCPath = UCPath.replace(chr0,'');\n\tif(m) UCPath = UCPath.replace(chr1,'!');\n\tfor(w = 0; w < UCFullPaths.length; ++w) {\n\t\tif((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t\tif((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t}\n\treturn null;\n}\n/** CFB Constants */\nvar MSSZ = 64; /* Mini Sector Size = 1<<6 */\n//var MSCSZ = 4096; /* Mini Stream Cutoff Size */\n/* 2.1 Compound File Sector Numbers and Types */\nvar ENDOFCHAIN = -2;\n/* 2.2 Compound File Header */\nvar HEADER_SIGNATURE = 'd0cf11e0a1b11ae1';\nvar HEADER_SIG = [0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1];\nvar HEADER_CLSID = '00000000000000000000000000000000';\nvar consts = {\n\t/* 2.1 Compund File Sector Numbers and Types */\n\tMAXREGSECT: -6,\n\tDIFSECT: -4,\n\tFATSECT: -3,\n\tENDOFCHAIN: ENDOFCHAIN,\n\tFREESECT: -1,\n\t/* 2.2 Compound File Header */\n\tHEADER_SIGNATURE: HEADER_SIGNATURE,\n\tHEADER_MINOR_VERSION: '3e00',\n\tMAXREGSID: -6,\n\tNOSTREAM: -1,\n\tHEADER_CLSID: HEADER_CLSID,\n\t/* 2.6.1 Compound File Directory Entry */\n\tEntryTypes: ['unknown','storage','stream','lockbytes','property','root']\n};\n\nfunction write_file(cfb, filename, options) {\n\tget_fs();\n\tvar o = _write(cfb, options);\nfs.writeFileSync(filename, o);\n}\n\nfunction a2s(o) {\n\tvar out = new Array(o.length);\n\tfor(var i = 0; i < o.length; ++i) out[i] = String.fromCharCode(o[i]);\n\treturn out.join(\"\");\n}\n\nfunction write(cfb, options) {\n\tvar o = _write(cfb, options);\n\tswitch(options && options.type) {\n\t\tcase \"file\": get_fs(); fs.writeFileSync(options.filename, (o)); return o;\n\t\tcase \"binary\": return a2s(o);\n\t\tcase \"base64\": return Base64.encode(a2s(o));\n\t}\n\treturn o;\n}\n/* node < 8.1 zlib does not expose bytesRead, so default to pure JS */\nvar _zlib;\nfunction use_zlib(zlib) { try {\n\tvar InflateRaw = zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tInflRaw._processChunk(new Uint8Array([3, 0]), InflRaw._finishFlushFlag);\n\tif(InflRaw.bytesRead) _zlib = zlib;\n\telse throw new Error(\"zlib does not expose bytesRead\");\n} catch(e) {console.error(\"cannot use native zlib: \" + (e.message || e)); } }\n\nfunction _inflateRawSync(payload, usz) {\n\tif(!_zlib) return _inflate(payload, usz);\n\tvar InflateRaw = _zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tvar out = InflRaw._processChunk(payload.slice(payload.l), InflRaw._finishFlushFlag);\n\tpayload.l += InflRaw.bytesRead;\n\treturn out;\n}\n\nfunction _deflateRawSync(payload) {\n\treturn _zlib ? _zlib.deflateRawSync(payload) : _deflate(payload);\n}\nvar CLEN_ORDER = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n/* LEN_ID = [ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285 ]; */\nvar LEN_LN = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13 , 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258 ];\n\n/* DST_ID = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 ]; */\nvar DST_LN = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ];\n\nfunction bit_swap_8(n) { var t = (((((n<<1)|(n<<11)) & 0x22110) | (((n<<5)|(n<<15)) & 0x88440))); return ((t>>16) | (t>>8) |t)&0xFF; }\n\nvar use_typed_arrays = typeof Uint8Array !== 'undefined';\n\nvar bitswap8 = use_typed_arrays ? new Uint8Array(1<<8) : [];\nfor(var q = 0; q < (1<<8); ++q) bitswap8[q] = bit_swap_8(q);\n\nfunction bit_swap_n(n, b) {\n\tvar rev = bitswap8[n & 0xFF];\n\tif(b <= 8) return rev >>> (8-b);\n\trev = (rev << 8) | bitswap8[(n>>8)&0xFF];\n\tif(b <= 16) return rev >>> (16-b);\n\trev = (rev << 8) | bitswap8[(n>>16)&0xFF];\n\treturn rev >>> (24-b);\n}\n\n/* helpers for unaligned bit reads */\nfunction read_bits_2(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 6 ? 0 : buf[h+1]<<8))>>>w)& 0x03; }\nfunction read_bits_3(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 5 ? 0 : buf[h+1]<<8))>>>w)& 0x07; }\nfunction read_bits_4(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 4 ? 0 : buf[h+1]<<8))>>>w)& 0x0F; }\nfunction read_bits_5(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 3 ? 0 : buf[h+1]<<8))>>>w)& 0x1F; }\nfunction read_bits_7(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 1 ? 0 : buf[h+1]<<8))>>>w)& 0x7F; }\n\n/* works up to n = 3 * 8 + 1 = 25 */\nfunction read_bits_n(buf, bl, n) {\n\tvar w = (bl&7), h = (bl>>>3), f = ((1<<n)-1);\n\tvar v = buf[h] >>> w;\n\tif(n < 8 - w) return v & f;\n\tv |= buf[h+1]<<(8-w);\n\tif(n < 16 - w) return v & f;\n\tv |= buf[h+2]<<(16-w);\n\tif(n < 24 - w) return v & f;\n\tv |= buf[h+3]<<(24-w);\n\treturn v & f;\n}\n\n/* until ArrayBuffer#realloc is a thing, fake a realloc */\nfunction realloc(b, sz) {\n\tvar L = b.length, M = 2*L > sz ? 2*L : sz + 5, i = 0;\n\tif(L >= sz) return b;\n\tif(has_buf) {\n\t\tvar o = new_unsafe_buf(M);\n\t\t// $FlowIgnore\n\t\tif(b.copy) b.copy(o);\n\t\telse for(; i < b.length; ++i) o[i] = b[i];\n\t\treturn o;\n\t} else if(use_typed_arrays) {\n\t\tvar a = new Uint8Array(M);\n\t\tif(a.set) a.set(b);\n\t\telse for(; i < b.length; ++i) a[i] = b[i];\n\t\treturn a;\n\t}\n\tb.length = M;\n\treturn b;\n}\n\n/* zero-filled arrays for older browsers */\nfunction zero_fill_array(n) {\n\tvar o = new Array(n);\n\tfor(var i = 0; i < n; ++i) o[i] = 0;\n\treturn o;\n}var _deflate = (function() {\nvar _deflateRaw = (function() {\n\treturn function deflateRaw(data, out) {\n\t\tvar boff = 0;\n\t\twhile(boff < data.length) {\n\t\t\tvar L = Math.min(0xFFFF, data.length - boff);\n\t\t\tvar h = boff + L == data.length;\n\t\t\t/* TODO: this is only type 0 stored */\n\t\t\tout.write_shift(1, +h);\n\t\t\tout.write_shift(2, L);\n\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t}\n\t\treturn out.l;\n\t};\n})();\n\nreturn function(data) {\n\tvar buf = new_buf(50+Math.floor(data.length*1.1));\n\tvar off = _deflateRaw(data, buf);\n\treturn buf.slice(0, off);\n};\n})();\n/* modified inflate function also moves original read head */\n\n/* build tree (used for literals and lengths) */\nfunction build_tree(clens, cmap, MAX) {\n\tvar maxlen = 1, w = 0, i = 0, j = 0, ccode = 0, L = clens.length;\n\n\tvar bl_count = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\n\tfor(i = 0; i < 32; ++i) bl_count[i] = 0;\n\n\tfor(i = L; i < MAX; ++i) clens[i] = 0;\n\tL = clens.length;\n\n\tvar ctree = use_typed_arrays ? new Uint16Array(L) : zero_fill_array(L); // []\n\n\t/* build code tree */\n\tfor(i = 0; i < L; ++i) {\n\t\tbl_count[(w = clens[i])]++;\n\t\tif(maxlen < w) maxlen = w;\n\t\tctree[i] = 0;\n\t}\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) bl_count[i+16] = (ccode = (ccode + bl_count[i-1])<<1);\n\tfor(i = 0; i < L; ++i) {\n\t\tccode = clens[i];\n\t\tif(ccode != 0) ctree[i] = bl_count[ccode+16]++;\n\t}\n\n\t/* cmap[maxlen + 4 bits] = (off&15) + (lit<<4) reverse mapping */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bit_swap_n(ctree[i], maxlen)>>(maxlen-cleni);\n\t\t\tfor(j = (1<<(maxlen + 4 - cleni)) - 1; j>=0; --j)\n\t\t\t\tcmap[ccode|(j<<cleni)] = (cleni&15) | (i<<4);\n\t\t}\n\t}\n\treturn maxlen;\n}\n\nvar fix_lmap = use_typed_arrays ? new Uint16Array(512) : zero_fill_array(512);\nvar fix_dmap = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\nif(!use_typed_arrays) {\n\tfor(var i = 0; i < 512; ++i) fix_lmap[i] = 0;\n\tfor(i = 0; i < 32; ++i) fix_dmap[i] = 0;\n}\n(function() {\n\tvar dlens = [];\n\tvar i = 0;\n\tfor(;i<32; i++) dlens.push(5);\n\tbuild_tree(dlens, fix_dmap, 32);\n\n\tvar clens = [];\n\ti = 0;\n\tfor(; i<=143; i++) clens.push(8);\n\tfor(; i<=255; i++) clens.push(9);\n\tfor(; i<=279; i++) clens.push(7);\n\tfor(; i<=287; i++) clens.push(8);\n\tbuild_tree(clens, fix_lmap, 288);\n})();\n\nvar dyn_lmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_dmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_cmap = use_typed_arrays ? new Uint16Array(128) : zero_fill_array(128);\nvar dyn_len_1 = 1, dyn_len_2 = 1;\n\n/* 5.5.3 Expanding Huffman Codes */\nfunction dyn(data, boff) {\n\t/* nomenclature from RFC1951 refers to bit values; these are offset by the implicit constant */\n\tvar _HLIT = read_bits_5(data, boff) + 257; boff += 5;\n\tvar _HDIST = read_bits_5(data, boff) + 1; boff += 5;\n\tvar _HCLEN = read_bits_4(data, boff) + 4; boff += 4;\n\tvar w = 0;\n\n\t/* grab and store code lengths */\n\tvar clens = use_typed_arrays ? new Uint8Array(19) : zero_fill_array(19);\n\tvar ctree = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n\tvar maxlen = 1;\n\tvar bl_count = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar next_code = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar L = clens.length; /* 19 */\n\tfor(var i = 0; i < _HCLEN; ++i) {\n\t\tclens[CLEN_ORDER[i]] = w = read_bits_3(data, boff);\n\t\tif(maxlen < w) maxlen = w;\n\t\tbl_count[w]++;\n\t\tboff += 3;\n\t}\n\n\t/* build code tree */\n\tvar ccode = 0;\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) next_code[i] = ccode = (ccode + bl_count[i-1])<<1;\n\tfor(i = 0; i < L; ++i) if((ccode = clens[i]) != 0) ctree[i] = next_code[ccode]++;\n\t/* cmap[7 bits from stream] = (off&7) + (lit<<3) */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bitswap8[ctree[i]]>>(8-cleni);\n\t\t\tfor(var j = (1<<(7-cleni))-1; j>=0; --j) dyn_cmap[ccode|(j<<cleni)] = (cleni&7) | (i<<3);\n\t\t}\n\t}\n\n\t/* read literal and dist codes at once */\n\tvar hcodes = [];\n\tmaxlen = 1;\n\tfor(; hcodes.length < _HLIT + _HDIST;) {\n\t\tccode = dyn_cmap[read_bits_7(data, boff)];\n\t\tboff += ccode & 7;\n\t\tswitch((ccode >>>= 3)) {\n\t\t\tcase 16:\n\t\t\t\tw = 3 + read_bits_2(data, boff); boff += 2;\n\t\t\t\tccode = hcodes[hcodes.length - 1];\n\t\t\t\twhile(w-- > 0) hcodes.push(ccode);\n\t\t\t\tbreak;\n\t\t\tcase 17:\n\t\t\t\tw = 3 + read_bits_3(data, boff); boff += 3;\n\t\t\t\twhile(w-- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tcase 18:\n\t\t\t\tw = 11 + read_bits_7(data, boff); boff += 7;\n\t\t\t\twhile(w -- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\thcodes.push(ccode);\n\t\t\t\tif(maxlen < ccode) maxlen = ccode;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/* build literal / length trees */\n\tvar h1 = hcodes.slice(0, _HLIT), h2 = hcodes.slice(_HLIT);\n\tfor(i = _HLIT; i < 286; ++i) h1[i] = 0;\n\tfor(i = _HDIST; i < 30; ++i) h2[i] = 0;\n\tdyn_len_1 = build_tree(h1, dyn_lmap, 286);\n\tdyn_len_2 = build_tree(h2, dyn_dmap, 30);\n\treturn boff;\n}\n\n/* return [ data, bytesRead ] */\nfunction inflate(data, usz) {\n\t/* shortcircuit for empty buffer [0x03, 0x00] */\n\tif(data[0] == 3 && !(data[1] & 0x3)) { return [new_raw_buf(usz), 2]; }\n\n\t/* bit offset */\n\tvar boff = 0;\n\n\t/* header includes final bit and type bits */\n\tvar header = 0;\n\n\tvar outbuf = new_unsafe_buf(usz ? usz : (1<<18));\n\tvar woff = 0;\n\tvar OL = outbuf.length>>>0;\n\tvar max_len_1 = 0, max_len_2 = 0;\n\n\twhile((header&1) == 0) {\n\t\theader = read_bits_3(data, boff); boff += 3;\n\t\tif((header >>> 1) == 0) {\n\t\t\t/* Stored block */\n\t\t\tif(boff & 7) boff += 8 - (boff&7);\n\t\t\t/* 2 bytes sz, 2 bytes bit inverse */\n\t\t\tvar sz = data[boff>>>3] | data[(boff>>>3)+1]<<8;\n\t\t\tboff += 32;\n\t\t\t/* push sz bytes */\n\t\t\tif(!usz && OL < woff + sz) { outbuf = realloc(outbuf, woff + sz); OL = outbuf.length; }\n\t\t\tif(typeof data.copy === 'function') {\n\t\t\t\t// $FlowIgnore\n\t\t\t\tdata.copy(outbuf, woff, boff>>>3, (boff>>>3)+sz);\n\t\t\t\twoff += sz; boff += 8*sz;\n\t\t\t} else while(sz-- > 0) { outbuf[woff++] = data[boff>>>3]; boff += 8; }\n\t\t\tcontinue;\n\t\t} else if((header >>> 1) == 1) {\n\t\t\t/* Fixed Huffman */\n\t\t\tmax_len_1 = 9; max_len_2 = 5;\n\t\t} else {\n\t\t\t/* Dynamic Huffman */\n\t\t\tboff = dyn(data, boff);\n\t\t\tmax_len_1 = dyn_len_1; max_len_2 = dyn_len_2;\n\t\t}\n\t\tif(!usz && (OL < woff + 32767)) { outbuf = realloc(outbuf, woff + 32767); OL = outbuf.length; }\n\t\tfor(;;) { // while(true) is apparently out of vogue in modern JS circles\n\t\t\t/* ingest code and move read head */\n\t\t\tvar bits = read_bits_n(data, boff, max_len_1);\n\t\t\tvar code = (header>>>1) == 1 ? fix_lmap[bits] : dyn_lmap[bits];\n\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t/* 0-255 are literals, 256 is end of block token, 257+ are copy tokens */\n\t\t\tif(((code>>>8)&0xFF) === 0) outbuf[woff++] = code;\n\t\t\telse if(code == 256) break;\n\t\t\telse {\n\t\t\t\tcode -= 257;\n\t\t\t\tvar len_eb = (code < 8) ? 0 : ((code-4)>>2); if(len_eb > 5) len_eb = 0;\n\t\t\t\tvar tgt = woff + LEN_LN[code];\n\t\t\t\t/* length extra bits */\n\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\ttgt += read_bits_n(data, boff, len_eb);\n\t\t\t\t\tboff += len_eb;\n\t\t\t\t}\n\n\t\t\t\t/* dist code */\n\t\t\t\tbits = read_bits_n(data, boff, max_len_2);\n\t\t\t\tcode = (header>>>1) == 1 ? fix_dmap[bits] : dyn_dmap[bits];\n\t\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t\tvar dst_eb = (code < 4 ? 0 : (code-2)>>1);\n\t\t\t\tvar dst = DST_LN[code];\n\t\t\t\t/* dist extra bits */\n\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\tdst += read_bits_n(data, boff, dst_eb);\n\t\t\t\t\tboff += dst_eb;\n\t\t\t\t}\n\n\t\t\t\t/* in the common case, manual byte copy is faster than TA set / Buffer copy */\n\t\t\t\tif(!usz && OL < tgt) { outbuf = realloc(outbuf, tgt); OL = outbuf.length; }\n\t\t\t\twhile(woff < tgt) { outbuf[woff] = outbuf[woff - dst]; ++woff; }\n\t\t\t}\n\t\t}\n\t}\n\treturn [usz ? outbuf : outbuf.slice(0, woff), (boff+7)>>>3];\n}\n\nfunction _inflate(payload, usz) {\n\tvar data = payload.slice(payload.l||0);\n\tvar out = inflate(data, usz);\n\tpayload.l += out[1];\n\treturn out[0];\n}\n\nfunction warn_or_throw(wrn, msg) {\n\tif(wrn) { if(typeof console !== 'undefined') console.error(msg); }\n\telse throw new Error(msg);\n}\n\nfunction parse_zip(file, options) {\n\tvar blob = file;\n\tprep_blob(blob, 0);\n\n\tvar FileIndex = [], FullPaths = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o, { root: options.root });\n\n\t/* find end of central directory, start just after signature */\n\tvar i = blob.length - 4;\n\twhile((blob[i] != 0x50 || blob[i+1] != 0x4b || blob[i+2] != 0x05 || blob[i+3] != 0x06) && i >= 0) --i;\n\tblob.l = i + 4;\n\n\t/* parse end of central directory */\n\tblob.l += 4;\n\tvar fcnt = blob.read_shift(2);\n\tblob.l += 6;\n\tvar start_cd = blob.read_shift(4);\n\n\t/* parse central directory */\n\tblob.l = start_cd;\n\n\tfor(i = 0; i < fcnt; ++i) {\n\t\t/* trust local file header instead of CD entry */\n\t\tblob.l += 20;\n\t\tvar csz = blob.read_shift(4);\n\t\tvar usz = blob.read_shift(4);\n\t\tvar namelen = blob.read_shift(2);\n\t\tvar efsz = blob.read_shift(2);\n\t\tvar fcsz = blob.read_shift(2);\n\t\tblob.l += 8;\n\t\tvar offset = blob.read_shift(4);\n\t\tvar EF = parse_extra_field(blob.slice(blob.l+namelen, blob.l+namelen+efsz));\n\t\tblob.l += namelen + efsz + fcsz;\n\n\t\tvar L = blob.l;\n\t\tblob.l = offset + 4;\n\t\tparse_local_file(blob, csz, usz, o, EF);\n\t\tblob.l = L;\n\t}\n\n\treturn o;\n}\n\n\n/* head starts just after local file header signature */\nfunction parse_local_file(blob, csz, usz, o, EF) {\n\t/* [local file header] */\n\tblob.l += 2;\n\tvar flags = blob.read_shift(2);\n\tvar meth = blob.read_shift(2);\n\tvar date = parse_dos_date(blob);\n\n\tif(flags & 0x2041) throw new Error(\"Unsupported ZIP encryption\");\n\tvar crc32 = blob.read_shift(4);\n\tvar _csz = blob.read_shift(4);\n\tvar _usz = blob.read_shift(4);\n\n\tvar namelen = blob.read_shift(2);\n\tvar efsz = blob.read_shift(2);\n\n\t// TODO: flags & (1<<11) // UTF8\n\tvar name = \"\"; for(var i = 0; i < namelen; ++i) name += String.fromCharCode(blob[blob.l++]);\n\tif(efsz) {\n\t\tvar ef = parse_extra_field(blob.slice(blob.l, blob.l + efsz));\n\t\tif((ef[0x5455]||{}).mt) date = ef[0x5455].mt;\n\t\tif(((EF||{})[0x5455]||{}).mt) date = EF[0x5455].mt;\n\t}\n\tblob.l += efsz;\n\n\t/* [encryption header] */\n\n\t/* [file data] */\n\tvar data = blob.slice(blob.l, blob.l + _csz);\n\tswitch(meth) {\n\t\tcase 8: data = _inflateRawSync(blob, _usz); break;\n\t\tcase 0: break;\n\t\tdefault: throw new Error(\"Unsupported ZIP Compression method \" + meth);\n\t}\n\n\t/* [data descriptor] */\n\tvar wrn = false;\n\tif(flags & 8) {\n\t\tcrc32 = blob.read_shift(4);\n\t\tif(crc32 == 0x08074b50) { crc32 = blob.read_shift(4); wrn = true; }\n\t\t_csz = blob.read_shift(4);\n\t\t_usz = blob.read_shift(4);\n\t}\n\n\tif(_csz != csz) warn_or_throw(wrn, \"Bad compressed size: \" + csz + \" != \" + _csz);\n\tif(_usz != usz) warn_or_throw(wrn, \"Bad uncompressed size: \" + usz + \" != \" + _usz);\n\tvar _crc32 = CRC32.buf(data, 0);\n\tif((crc32>>0) != (_crc32>>0)) warn_or_throw(wrn, \"Bad CRC32 checksum: \" + crc32 + \" != \" + _crc32);\n\tcfb_add(o, name, data, {unsafe: true, mt: date});\n}\nfunction write_zip(cfb, options) {\n\tvar _opts = options || {};\n\tvar out = [], cdirs = [];\n\tvar o = new_buf(1);\n\tvar method = (_opts.compression ? 8 : 0), flags = 0;\n\tvar desc = false;\n\tif(desc) flags |= 8;\n\tvar i = 0, j = 0;\n\n\tvar start_cd = 0, fcnt = 0;\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tvar crcs = [];\n\tvar sz_cd = 0;\n\n\tfor(i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length); fi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\t\tvar start = start_cd;\n\n\t\t/* TODO: CP437 filename */\n\t\tvar namebuf = new_buf(fp.length);\n\t\tfor(j = 0; j < fp.length; ++j) namebuf.write_shift(1, fp.charCodeAt(j) & 0x7F);\n\t\tnamebuf = namebuf.slice(0, namebuf.l);\n\t\tcrcs[fcnt] = CRC32.buf(fi.content, 0);\n\n\t\tvar outbuf = fi.content;\n\t\tif(method == 8) outbuf = _deflateRawSync(outbuf);\n\n\t\t/* local file header */\n\t\to = new_buf(30);\n\t\to.write_shift(4, 0x04034b50);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\t/* TODO: last mod file time/date */\n\t\tif(fi.mt) write_dos_date(o, fi.mt);\n\t\telse o.write_shift(4, 0);\n\t\to.write_shift(-4, (flags & 8) ? 0 : crcs[fcnt]);\n\t\to.write_shift(4, (flags & 8) ? 0 : outbuf.length);\n\t\to.write_shift(4, (flags & 8) ? 0 : fi.content.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\n\t\tstart_cd += o.length;\n\t\tout.push(o);\n\t\tstart_cd += namebuf.length;\n\t\tout.push(namebuf);\n\n\t\t/* TODO: encryption header ? */\n\t\tstart_cd += outbuf.length;\n\t\tout.push(outbuf);\n\n\t\t/* data descriptor */\n\t\tif(flags & 8) {\n\t\t\to = new_buf(12);\n\t\t\to.write_shift(-4, crcs[fcnt]);\n\t\t\to.write_shift(4, outbuf.length);\n\t\t\to.write_shift(4, fi.content.length);\n\t\t\tstart_cd += o.l;\n\t\t\tout.push(o);\n\t\t}\n\n\t\t/* central directory */\n\t\to = new_buf(46);\n\t\to.write_shift(4, 0x02014b50);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\to.write_shift(4, 0); /* TODO: last mod file time/date */\n\t\to.write_shift(-4, crcs[fcnt]);\n\n\t\to.write_shift(4, outbuf.length);\n\t\to.write_shift(4, fi.content.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, start);\n\n\t\tsz_cd += o.l;\n\t\tcdirs.push(o);\n\t\tsz_cd += namebuf.length;\n\t\tcdirs.push(namebuf);\n\t\t++fcnt;\n\t}\n\n\t/* end of central directory */\n\to = new_buf(22);\n\to.write_shift(4, 0x06054b50);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, fcnt);\n\to.write_shift(2, fcnt);\n\to.write_shift(4, sz_cd);\n\to.write_shift(4, start_cd);\n\to.write_shift(2, 0);\n\n\treturn bconcat(([bconcat((out)), bconcat(cdirs), o]));\n}\nfunction cfb_new(opts) {\n\tvar o = ({});\n\tinit_cfb(o, opts);\n\treturn o;\n}\n\nfunction cfb_add(cfb, name, content, opts) {\n\tvar unsafe = opts && opts.unsafe;\n\tif(!unsafe) init_cfb(cfb);\n\tvar file = !unsafe && CFB.find(cfb, name);\n\tif(!file) {\n\t\tvar fpath = cfb.FullPaths[0];\n\t\tif(name.slice(0, fpath.length) == fpath) fpath = name;\n\t\telse {\n\t\t\tif(fpath.slice(-1) != \"/\") fpath += \"/\";\n\t\t\tfpath = (fpath + name).replace(\"//\",\"/\");\n\t\t}\n\t\tfile = ({name: filename(name), type: 2});\n\t\tcfb.FileIndex.push(file);\n\t\tcfb.FullPaths.push(fpath);\n\t\tif(!unsafe) CFB.utils.cfb_gc(cfb);\n\t}\nfile.content = (content);\n\tfile.size = content ? content.length : 0;\n\tif(opts) {\n\t\tif(opts.CLSID) file.clsid = opts.CLSID;\n\t\tif(opts.mt) file.mt = opts.mt;\n\t\tif(opts.ct) file.ct = opts.ct;\n\t}\n\treturn file;\n}\n\nfunction cfb_del(cfb, name) {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex.splice(j, 1);\n\t\tcfb.FullPaths.splice(j, 1);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_mov(cfb, old_name, new_name) {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, old_name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex[j].name = filename(new_name);\n\t\tcfb.FullPaths[j] = new_name;\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_gc(cfb) { rebuild_cfb(cfb, true); }\n\nexports.find = find;\nexports.read = read;\nexports.parse = parse;\nexports.write = write;\nexports.writeFile = write_file;\nexports.utils = {\n\tcfb_new: cfb_new,\n\tcfb_add: cfb_add,\n\tcfb_del: cfb_del,\n\tcfb_mov: cfb_mov,\n\tcfb_gc: cfb_gc,\n\tReadShift: ReadShift,\n\tCheckField: CheckField,\n\tprep_blob: prep_blob,\n\tbconcat: bconcat,\n\tuse_zlib: use_zlib,\n\t_deflateRaw: _deflate,\n\t_inflateRaw: _inflate,\n\tconsts: consts\n};\n\nreturn exports;\n})();\n\nif(typeof require !== 'undefined' && typeof module !== 'undefined' && typeof DO_NOT_EXPORT_CFB === 'undefined') { module.exports = CFB; }\nvar _fs;\nif(typeof require !== 'undefined') try { _fs = require('fs'); } catch(e) {}\n\n/* normalize data for blob ctor */\nfunction blobify(data) {\n\tif(typeof data === \"string\") return s2ab(data);\n\tif(Array.isArray(data)) return a2u(data);\n\treturn data;\n}\n/* write or download file */\nfunction write_dl(fname, payload, enc) {\n\t/*global IE_SaveFile, Blob, navigator, saveAs, document, File, chrome */\n\tif(typeof _fs !== 'undefined' && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);\n\tvar data = (enc == \"utf8\") ? utf8write(payload) : payload;\nif(typeof IE_SaveFile !== 'undefined') return IE_SaveFile(data, fname);\n\tif(typeof Blob !== 'undefined') {\n\t\tvar blob = new Blob([blobify(data)], {type:\"application/octet-stream\"});\nif(typeof navigator !== 'undefined' && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);\nif(typeof saveAs !== 'undefined') return saveAs(blob, fname);\n\t\tif(typeof URL !== 'undefined' && typeof document !== 'undefined' && document.createElement && URL.createObjectURL) {\n\t\t\tvar url = URL.createObjectURL(blob);\nif(typeof chrome === 'object' && typeof (chrome.downloads||{}).download == \"function\") {\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn chrome.downloads.download({ url: url, filename: fname, saveAs: true});\n\t\t\t}\n\t\t\tvar a = document.createElement(\"a\");\n\t\t\tif(a.download != null) {\na.download = fname; a.href = url; document.body.appendChild(a); a.click();\ndocument.body.removeChild(a);\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn url;\n\t\t\t}\n\t\t}\n\t}\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar out = File(fname); out.open(\"w\"); out.encoding = \"binary\";\n\t\tif(Array.isArray(payload)) payload = a2s(payload);\n\t\tout.write(payload); out.close(); return payload;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"cannot save file \" + fname);\n}\n\n/* read binary data from file */\nfunction read_binary(path) {\n\tif(typeof _fs !== 'undefined') return _fs.readFileSync(path);\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar infile = File(path); infile.open(\"r\"); infile.encoding = \"binary\";\n\t\tvar data = infile.read(); infile.close();\n\t\treturn data;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"Cannot access file \" + path);\n}\nfunction keys(o) {\n\tvar ks = Object.keys(o), o2 = [];\n\tfor(var i = 0; i < ks.length; ++i) if(Object.prototype.hasOwnProperty.call(o, ks[i])) o2.push(ks[i]);\n\treturn o2;\n}\n\nfunction evert_key(obj, key) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) if(o[obj[K[i]][key]] == null) o[obj[K[i]][key]] = K[i];\n\treturn o;\n}\n\nfunction evert(obj) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];\n\treturn o;\n}\n\nfunction evert_num(obj) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);\n\treturn o;\n}\n\nfunction evert_arr(obj) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) {\n\t\tif(o[obj[K[i]]] == null) o[obj[K[i]]] = [];\n\t\to[obj[K[i]]].push(K[i]);\n\t}\n\treturn o;\n}\n\nvar basedate = new Date(1899, 11, 30, 0, 0, 0); // 2209161600000\nfunction datenum(v, date1904) {\n\tvar epoch = v.getTime();\n\tif(date1904) epoch -= 1462*24*60*60*1000;\n\tvar dnthresh = basedate.getTime() + (v.getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000;\n\treturn (epoch - dnthresh) / (24 * 60 * 60 * 1000);\n}\nvar refdate = new Date();\nvar dnthresh = basedate.getTime() + (refdate.getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000;\nvar refoffset = refdate.getTimezoneOffset();\nfunction numdate(v) {\n\tvar out = new Date();\n\tout.setTime(v * 24 * 60 * 60 * 1000 + dnthresh);\n\tif (out.getTimezoneOffset() !== refoffset) {\n\t\tout.setTime(out.getTime() + (out.getTimezoneOffset() - refoffset) * 60000);\n\t}\n\treturn out;\n}\n\n/* ISO 8601 Duration */\nfunction parse_isodur(s) {\n\tvar sec = 0, mt = 0, time = false;\n\tvar m = s.match(/P([0-9\\.]+Y)?([0-9\\.]+M)?([0-9\\.]+D)?T([0-9\\.]+H)?([0-9\\.]+M)?([0-9\\.]+S)?/);\n\tif(!m) throw new Error(\"|\" + s + \"| is not an ISO8601 Duration\");\n\tfor(var i = 1; i != m.length; ++i) {\n\t\tif(!m[i]) continue;\n\t\tmt = 1;\n\t\tif(i > 3) time = true;\n\t\tswitch(m[i].slice(m[i].length-1)) {\n\t\t\tcase 'Y':\n\t\t\t\tthrow new Error(\"Unsupported ISO Duration Field: \" + m[i].slice(m[i].length-1));\n\t\t\tcase 'D': mt *= 24;\n\t\t\t\t/* falls through */\n\t\t\tcase 'H': mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M':\n\t\t\t\tif(!time) throw new Error(\"Unsupported ISO Duration Field: M\");\n\t\t\t\telse mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'S': break;\n\t\t}\n\t\tsec += mt * parseInt(m[i], 10);\n\t}\n\treturn sec;\n}\n\nvar good_pd_date = new Date('2017-02-19T19:06:09.000Z');\nif(isNaN(good_pd_date.getFullYear())) good_pd_date = new Date('2/19/17');\nvar good_pd = good_pd_date.getFullYear() == 2017;\n/* parses a date as a local date */\nfunction parseDate(str, fixdate) {\n\tvar d = new Date(str);\n\tif(good_pd) {\nif(fixdate > 0) d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1000);\n\t\telse if(fixdate < 0) d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\n\t\treturn d;\n\t}\n\tif(str instanceof Date) return str;\n\tif(good_pd_date.getFullYear() == 1917 && !isNaN(d.getFullYear())) {\n\t\tvar s = d.getFullYear();\n\t\tif(str.indexOf(\"\" + s) > -1) return d;\n\t\td.setFullYear(d.getFullYear() + 100); return d;\n\t}\n\tvar n = str.match(/\\d+/g)||[\"2017\",\"2\",\"19\",\"0\",\"0\",\"0\"];\n\tvar out = new Date(+n[0], +n[1] - 1, +n[2], (+n[3]||0), (+n[4]||0), (+n[5]||0));\n\tif(str.indexOf(\"Z\") > -1) out = new Date(out.getTime() - out.getTimezoneOffset() * 60 * 1000);\n\treturn out;\n}\n\nfunction cc2str(arr) {\n\tvar o = \"\";\n\tfor(var i = 0; i != arr.length; ++i) o += String.fromCharCode(arr[i]);\n\treturn o;\n}\n\nfunction dup(o) {\n\tif(typeof JSON != 'undefined' && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));\n\tif(typeof o != 'object' || o == null) return o;\n\tif(o instanceof Date) return new Date(o.getTime());\n\tvar out = {};\n\tfor(var k in o) if(Object.prototype.hasOwnProperty.call(o, k)) out[k] = dup(o[k]);\n\treturn out;\n}\n\nfunction fill(c,l) { var o = \"\"; while(o.length < l) o+=c; return o; }\n\n/* TODO: stress test */\nfunction fuzzynum(s) {\n\tvar v = Number(s);\n\tif(!isNaN(v)) return v;\n\tif(!/\\d/.test(s)) return v;\n\tvar wt = 1;\n\tvar ss = s.replace(/([\\d]),([\\d])/g,\"$1$2\").replace(/[$]/g,\"\").replace(/[%]/g, function() { wt *= 100; return \"\";});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\tss = ss.replace(/[(](.*)[)]/,function($$, $1) { wt = -wt; return $1;});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\treturn v;\n}\nfunction fuzzydate(s) {\n\tvar o = new Date(s), n = new Date(NaN);\n\tvar y = o.getYear(), m = o.getMonth(), d = o.getDate();\n\tif(isNaN(d)) return n;\n\tif(y < 0 || y > 8099) return n;\n\tif((m > 0 || d > 1) && y != 101) return o;\n\tif(s.toLowerCase().match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) return o;\n\tif(s.match(/[^-0-9:,\\/\\\\]/)) return n;\n\treturn o;\n}\n\nvar safe_split_regex = \"abacaba\".split(/(:?b)/i).length == 5;\nfunction split_regex(str, re, def) {\n\tif(safe_split_regex || typeof re == \"string\") return str.split(re);\n\tvar p = str.split(re), o = [p[0]];\n\tfor(var i = 1; i < p.length; ++i) { o.push(def); o.push(p[i]); }\n\treturn o;\n}\nfunction getdatastr(data) {\n\tif(!data) return null;\n\tif(data.data) return debom(data.data);\n\tif(data.asNodeBuffer && has_buf) return debom(data.asNodeBuffer().toString('binary'));\n\tif(data.asBinary) return debom(data.asBinary());\n\tif(data._data && data._data.getContent) return debom(cc2str(Array.prototype.slice.call(data._data.getContent(),0)));\n\tif(data.content && data.type) return debom(cc2str(data.content));\n\treturn null;\n}\n\nfunction getdatabin(data) {\n\tif(!data) return null;\n\tif(data.data) return char_codes(data.data);\n\tif(data.asNodeBuffer && has_buf) return data.asNodeBuffer();\n\tif(data._data && data._data.getContent) {\n\t\tvar o = data._data.getContent();\n\t\tif(typeof o == \"string\") return char_codes(o);\n\t\treturn Array.prototype.slice.call(o);\n\t}\n\tif(data.content && data.type) return data.content;\n\treturn null;\n}\n\nfunction getdata(data) { return (data && data.name.slice(-4) === \".bin\") ? getdatabin(data) : getdatastr(data); }\n\n/* Part 2 Section 10.1.2 \"Mapping Content Types\" Names are case-insensitive */\n/* OASIS does not comment on filename case sensitivity */\nfunction safegetzipfile(zip, file) {\n\tvar k = zip.FullPaths || keys(zip.files);\n\tvar f = file.toLowerCase(), g = f.replace(/\\//g,'\\\\');\n\tfor(var i=0; i<k.length; ++i) {\n\t\tvar n = k[i].toLowerCase();\n\t\tif(f == n || g == n) return zip.files[k[i]];\n\t}\n\treturn null;\n}\n\nfunction getzipfile(zip, file) {\n\tvar o = safegetzipfile(zip, file);\n\tif(o == null) throw new Error(\"Cannot find file \" + file + \" in zip\");\n\treturn o;\n}\n\nfunction getzipdata(zip, file, safe) {\n\tif(!safe) return getdata(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipdata(zip, file); } catch(e) { return null; }\n}\n\nfunction getzipstr(zip, file, safe) {\n\tif(!safe) return getdatastr(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipstr(zip, file); } catch(e) { return null; }\n}\n\nfunction zipentries(zip) {\n\tvar k = zip.FullPaths || keys(zip.files), o = [];\n\tfor(var i = 0; i < k.length; ++i) if(k[i].slice(-1) != '/') o.push(k[i]);\n\treturn o.sort();\n}\n\nfunction zip_add_file(zip, path, content) {\n\tif(zip.FullPaths) CFB.utils.cfb_add(zip, path, content);\n\telse zip.file(path, content);\n}\n\nvar jszip;\n/*global JSZipSync:true */\nif(typeof JSZipSync !== 'undefined') jszip = JSZipSync;\nif(typeof exports !== 'undefined') {\n\tif(typeof module !== 'undefined' && module.exports) {\n\t\tif(typeof jszip === 'undefined') jszip = require('./jszip.js');\n\t}\n}\n\nfunction zip_new() {\n\tif(!jszip) return CFB.utils.cfb_new();\n\treturn new jszip();\n}\n\nfunction zip_read(d, o) {\n\tvar zip;\n\tif(jszip) switch(o.type) {\n\t\tcase \"base64\": zip = new jszip(d, { base64:true }); break;\n\t\tcase \"binary\": case \"array\": zip = new jszip(d, { base64:false }); break;\n\t\tcase \"buffer\": zip = new jszip(d); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\telse switch(o.type) {\n\t\tcase \"base64\": zip = CFB.read(d, { type: \"base64\" }); break;\n\t\tcase \"binary\": zip = CFB.read(d, { type: \"binary\" }); break;\n\t\tcase \"buffer\": case \"array\": zip = CFB.read(d, { type: \"buffer\" }); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn zip;\n}\n\nfunction resolve_path(path, base) {\n\tif(path.charAt(0) == \"/\") return path.slice(1);\n\tvar result = base.split('/');\n\tif(base.slice(-1) != \"/\") result.pop(); // folder path\n\tvar target = path.split('/');\n\twhile (target.length !== 0) {\n\t\tvar step = target.shift();\n\t\tif (step === '..') result.pop();\n\t\telse if (step !== '.') result.push(step);\n\t}\n\treturn result.join('/');\n}\nvar XML_HEADER = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\\r\\n';\nvar attregexg=/([^\"\\s?>\\/]+)\\s*=\\s*((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:')|([^'\">\\s]+))/g;\nvar tagregex=/<[\\/\\?]?[a-zA-Z0-9:_-]+(?:\\s+[^\"\\s?>\\/]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^'\">\\s=]+))*\\s?[\\/\\?]?>/mg;\n\nif(!(XML_HEADER.match(tagregex))) tagregex = /<[^>]*>/g;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag, skip_root, skip_LC) {\n\tvar z = ({});\n\tvar eq = 0, c = 0;\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\n\tif(!skip_root) z[0] = tag.slice(0, eq);\n\tif(eq === tag.length) return z;\n\tvar m = tag.match(attregexg), j=0, v=\"\", i=0, q=\"\", cc=\"\", quot = 1;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\tcc = m[i];\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\n\t\tq = cc.slice(0,c).trim();\n\t\twhile(cc.charCodeAt(c+1) == 32) ++c;\n\t\tquot = ((eq=cc.charCodeAt(c+1)) == 34 || eq == 39) ? 1 : 0;\n\t\tv = cc.slice(c+1+quot, cc.length-quot);\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\n\t\tif(j===q.length) {\n\t\t\tif(q.indexOf(\"_\") > 0) q = q.slice(0, q.indexOf(\"_\")); // from ods\n\t\t\tz[q] = v;\n\t\t\tif(!skip_LC) z[q.toLowerCase()] = v;\n\t\t}\n\t\telse {\n\t\t\tvar k = (j===5 && q.slice(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.slice(j+1);\n\t\t\tif(z[k] && q.slice(j-3,j) == \"ext\") continue; // from ods\n\t\t\tz[k] = v;\n\t\t\tif(!skip_LC) z[k.toLowerCase()] = v;\n\t\t}\n\t}\n\treturn z;\n}\nfunction strip_ns(x) { return x.replace(nsregex2, \"<$1\"); }\n\nvar encodings = {\n\t'"': '\"',\n\t''': \"'\",\n\t'>': '>',\n\t'<': '<',\n\t'&': '&'\n};\nvar rencoding = evert(encodings);\n//var rencstr = \"&<>'\\\"\".split(\"\");\n\n// TODO: CP remap (need to read file version to determine OS)\nvar unescapexml = (function() {\n\t/* 22.4.2.4 bstr (Basic String) */\n\tvar encregex = /&(?:quot|apos|gt|lt|amp|#x?([\\da-fA-F]+));/ig, coderegex = /_x([\\da-fA-F]{4})_/ig;\n\treturn function unescapexml(text) {\n\t\tvar s = text + '', i = s.indexOf(\"<![CDATA[\");\n\t\tif(i == -1) return s.replace(encregex, function($$, $1) { return encodings[$$]||String.fromCharCode(parseInt($1,$$.indexOf(\"x\")>-1?16:10))||$$; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));});\n\t\tvar j = s.indexOf(\"]]>\");\n\t\treturn unescapexml(s.slice(0, i)) + s.slice(i+9,j) + unescapexml(s.slice(j+3));\n\t};\n})();\n\nvar decregex=/[&<>'\"]/g, charegex = /[\\u0000-\\u0008\\u000b-\\u001f]/g;\nfunction escapexml(text){\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return \"_x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \"_\";});\n}\nfunction escapexmltag(text){ return escapexml(text).replace(/ /g,\"_x0020_\"); }\n\nvar htmlcharegex = /[\\u0000-\\u001f]/g;\nfunction escapehtml(text){\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(/\\n/g, \"<br/>\").replace(htmlcharegex,function(s) { return \"&#x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \";\"; });\n}\n\nfunction escapexlml(text){\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(htmlcharegex,function(s) { return \"&#x\" + (s.charCodeAt(0).toString(16)).toUpperCase() + \";\"; });\n}\n\n/* TODO: handle codepages */\nvar xlml_fixstr = (function() {\n\tvar entregex = /&#(\\d+);/g;\n\tfunction entrepl($$,$1) { return String.fromCharCode(parseInt($1,10)); }\n\treturn function xlml_fixstr(str) { return str.replace(entregex,entrepl); };\n})();\nvar xlml_unfixstr = (function() {\n\treturn function xlml_unfixstr(str) { return str.replace(/(\\r\\n|[\\r\\n])/g,\"\\ \"); };\n})();\n\nfunction parsexmlbool(value) {\n\tswitch(value) {\n\t\tcase 1: case true: case '1': case 'true': case 'TRUE': return true;\n\t\t/* case '0': case 'false': case 'FALSE':*/\n\t\tdefault: return false;\n\t}\n}\n\nvar utf8read = function utf8reada(orig) {\n\tvar out = \"\", i = 0, c = 0, d = 0, e = 0, f = 0, w = 0;\n\twhile (i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tif (c < 128) { out += String.fromCharCode(c); continue; }\n\t\td = orig.charCodeAt(i++);\n\t\tif (c>191 && c<224) { f = ((c & 31) << 6); f |= (d & 63); out += String.fromCharCode(f); continue; }\n\t\te = orig.charCodeAt(i++);\n\t\tif (c < 240) { out += String.fromCharCode(((c & 15) << 12) | ((d & 63) << 6) | (e & 63)); continue; }\n\t\tf = orig.charCodeAt(i++);\n\t\tw = (((c & 7) << 18) | ((d & 63) << 12) | ((e & 63) << 6) | (f & 63))-65536;\n\t\tout += String.fromCharCode(0xD800 + ((w>>>10)&1023));\n\t\tout += String.fromCharCode(0xDC00 + (w&1023));\n\t}\n\treturn out;\n};\n\nvar utf8write = function(orig) {\n\tvar out = [], i = 0, c = 0, d = 0;\n\twhile(i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tswitch(true) {\n\t\t\tcase c < 128: out.push(String.fromCharCode(c)); break;\n\t\t\tcase c < 2048:\n\t\t\t\tout.push(String.fromCharCode(192 + (c >> 6)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t\t\tbreak;\n\t\t\tcase c >= 55296 && c < 57344:\n\t\t\t\tc -= 55296; d = orig.charCodeAt(i++) - 56320 + (c<<10);\n\t\t\t\tout.push(String.fromCharCode(240 + ((d >>18) & 7)));\n\t\t\t\tout.push(String.fromCharCode(144 + ((d >>12) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((d >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (d & 63)));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tout.push(String.fromCharCode(224 + (c >> 12)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((c >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t}\n\t}\n\treturn out.join(\"\");\n};\n\nif(has_buf) {\n\tvar utf8readb = function utf8readb(data) {\n\t\tvar out = Buffer.alloc(2*data.length), w, i, j = 1, k = 0, ww=0, c;\n\t\tfor(i = 0; i < data.length; i+=j) {\n\t\t\tj = 1;\n\t\t\tif((c=data.charCodeAt(i)) < 128) w = c;\n\t\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\n\t\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\n\t\t\telse { j = 4;\n\t\t\t\tw = (c & 7)*262144+(data.charCodeAt(i+1)&63)*4096+(data.charCodeAt(i+2)&63)*64+(data.charCodeAt(i+3)&63);\n\t\t\t\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\n\t\t\t}\n\t\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\n\t\t\tout[k++] = w%256; out[k++] = w>>>8;\n\t\t}\n\t\treturn out.slice(0,k).toString('ucs2');\n\t};\n\tvar corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\n\tif(utf8read(corpus) == utf8readb(corpus)) utf8read = utf8readb;\n\tvar utf8readc = function utf8readc(data) { return Buffer_from(data, 'binary').toString('utf8'); };\n\tif(utf8read(corpus) == utf8readc(corpus)) utf8read = utf8readc;\n\n\tutf8write = function(data) { return Buffer_from(data, 'utf8').toString(\"binary\"); };\n}\n\n// matches <foo>...</foo> extracts content\nvar matchtag = (function() {\n\tvar mtcache = ({});\n\treturn function matchtag(f,g) {\n\t\tvar t = f+\"|\"+(g||\"\");\n\t\tif(mtcache[t]) return mtcache[t];\n\t\treturn (mtcache[t] = new RegExp('<(?:\\\\w+:)?'+f+'(?: xml:space=\"preserve\")?(?:[^>]*)>([\\\\s\\\\S]*?)</(?:\\\\w+:)?'+f+'>',((g||\"\"))));\n\t};\n})();\n\nvar htmldecode = (function() {\n\tvar entities = [\n\t\t['nbsp', ' '], ['middot', '·'],\n\t\t['quot', '\"'], ['apos', \"'\"], ['gt', '>'], ['lt', '<'], ['amp', '&']\n\t].map(function(x) { return [new RegExp('&' + x[0] + ';', \"ig\"), x[1]]; });\n\treturn function htmldecode(str) {\n\t\tvar o = str\n\t\t\t\t// Remove new lines and spaces from start of content\n\t\t\t\t.replace(/^[\\t\\n\\r ]+/, \"\")\n\t\t\t\t// Remove new lines and spaces from end of content\n\t\t\t\t.replace(/[\\t\\n\\r ]+$/,\"\")\n\t\t\t\t// Added line which removes any white space characters after and before html tags\n\t\t\t\t.replace(/>\\s+/g,\">\").replace(/\\s+</g,\"<\")\n\t\t\t\t// Replace remaining new lines and spaces with space\n\t\t\t\t.replace(/[\\t\\n\\r ]+/g, \" \")\n\t\t\t\t// Replace <br> tags with new lines\n\t\t\t\t.replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\")\n\t\t\t\t// Strip HTML elements\n\t\t\t\t.replace(/<[^>]*>/g,\"\");\n\t\tfor(var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);\n\t\treturn o;\n\t};\n})();\n\nvar vtregex = (function(){ var vt_cache = {};\n\treturn function vt_regex(bt) {\n\t\tif(vt_cache[bt] !== undefined) return vt_cache[bt];\n\t\treturn (vt_cache[bt] = new RegExp(\"<(?:vt:)?\" + bt + \">([\\\\s\\\\S]*?)</(?:vt:)?\" + bt + \">\", 'g') );\n};})();\nvar vtvregex = /<\\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^>]*)>([\\s\\S]*)</;\nfunction parseVector(data, opts) {\n\tvar h = parsexmltag(data);\n\n\tvar matches = data.match(vtregex(h.baseType))||[];\n\tvar res = [];\n\tif(matches.length != h.size) {\n\t\tif(opts.WTF) throw new Error(\"unexpected vector length \" + matches.length + \" != \" + h.size);\n\t\treturn res;\n\t}\n\tmatches.forEach(function(x) {\n\t\tvar v = x.replace(vtvregex,\"\").match(vtmregex);\n\t\tif(v) res.push({v:utf8read(v[2]), t:v[1]});\n\t});\n\treturn res;\n}\n\nvar wtregex = /(^\\s|\\s$|\\n)/;\nfunction writetag(f,g) { return '<' + f + (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '</' + f + '>'; }\n\nfunction wxt_helper(h) { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\nfunction writextag(f,g,h) { return '<' + f + ((h != null) ? wxt_helper(h) : \"\") + ((g != null) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '</' + f : \"/\") + '>';}\n\nfunction write_w3cdtf(d, t) { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } return \"\"; }\n\nfunction write_vt(s, xlsx) {\n\tswitch(typeof s) {\n\t\tcase 'string':\n\t\t\tvar o = writextag('vt:lpwstr', escapexml(s));\n\t\t\tif(xlsx) o = o.replace(/"/g, \"_x0022_\");\n\t\t\treturn o;\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', escapexml(String(s)));\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\n\t}\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\n\tthrow new Error(\"Unable to serialize \" + s);\n}\n\nvar XMLNS = ({\n\t'dc': 'http://purl.org/dc/elements/1.1/',\n\t'dcterms': 'http://purl.org/dc/terms/',\n\t'dcmitype': 'http://purl.org/dc/dcmitype/',\n\t'mx': 'http://schemas.microsoft.com/office/mac/excel/2008/main',\n\t'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n\t'sjs': 'http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties',\n\t'vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\n\t'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t'xsd': 'http://www.w3.org/2001/XMLSchema'\n});\n\nXMLNS.main = [\n\t'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n\t'http://purl.oclc.org/ooxml/spreadsheetml/main',\n\t'http://schemas.microsoft.com/office/excel/2006/main',\n\t'http://schemas.microsoft.com/office/excel/2006/2'\n];\n\nvar XLMLNS = ({\n\t'o': 'urn:schemas-microsoft-com:office:office',\n\t'x': 'urn:schemas-microsoft-com:office:excel',\n\t'ss': 'urn:schemas-microsoft-com:office:spreadsheet',\n\t'dt': 'uuid:C2F41010-65B3-11d1-A29F-00AA00C14882',\n\t'mv': 'http://macVmlSchemaUri',\n\t'v': 'urn:schemas-microsoft-com:vml',\n\t'html': 'http://www.w3.org/TR/REC-html40'\n});\nfunction read_double_le(b, idx) {\n\tvar s = 1 - 2 * (b[idx + 7] >>> 7);\n\tvar e = ((b[idx + 7] & 0x7f) << 4) + ((b[idx + 6] >>> 4) & 0x0f);\n\tvar m = (b[idx+6]&0x0f);\n\tfor(var i = 5; i >= 0; --i) m = m * 256 + b[idx + i];\n\tif(e == 0x7ff) return m == 0 ? (s * Infinity) : NaN;\n\tif(e == 0) e = -1022;\n\telse { e -= 1023; m += Math.pow(2,52); }\n\treturn s * Math.pow(2, e - 52) * m;\n}\n\nfunction write_double_le(b, v, idx) {\n\tvar bs = ((((v < 0) || (1/v == -Infinity)) ? 1 : 0) << 7), e = 0, m = 0;\n\tvar av = bs ? (-v) : v;\n\tif(!isFinite(av)) { e = 0x7ff; m = isNaN(v) ? 0x6969 : 0; }\n\telse if(av == 0) e = m = 0;\n\telse {\n\t\te = Math.floor(Math.log(av) / Math.LN2);\n\t\tm = av * Math.pow(2, 52 - e);\n\t\tif((e <= -1023) && (!isFinite(m) || (m < Math.pow(2,52)))) { e = -1022; }\n\t\telse { m -= Math.pow(2,52); e+=1023; }\n\t}\n\tfor(var i = 0; i <= 5; ++i, m/=256) b[idx + i] = m & 0xff;\n\tb[idx + 6] = ((e & 0x0f) << 4) | (m & 0xf);\n\tb[idx + 7] = (e >> 4) | bs;\n}\n\nvar __toBuffer = function(bufs) { var x=[],w=10240; for(var i=0;i<bufs[0].length;++i) if(bufs[0][i]) for(var j=0,L=bufs[0][i].length;j<L;j+=w) x.push.apply(x, bufs[0][i].slice(j,j+w)); return x; };\nvar ___toBuffer = __toBuffer;\nvar __utf16le = function(b,s,e) { var ss=[]; for(var i=s; i<e; i+=2) ss.push(String.fromCharCode(__readUInt16LE(b,i))); return ss.join(\"\").replace(chr0,''); };\nvar ___utf16le = __utf16le;\nvar __hexlify = function(b,s,l) { var ss=[]; for(var i=s; i<s+l; ++i) ss.push((\"0\" + b[i].toString(16)).slice(-2)); return ss.join(\"\"); };\nvar ___hexlify = __hexlify;\nvar __utf8 = function(b,s,e) { var ss=[]; for(var i=s; i<e; i++) ss.push(String.fromCharCode(__readUInt8(b,i))); return ss.join(\"\"); };\nvar ___utf8 = __utf8;\nvar __lpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar ___lpstr = __lpstr;\nvar __cpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar ___cpstr = __cpstr;\nvar __lpwstr = function(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar ___lpwstr = __lpwstr;\nvar __lpp4, ___lpp4;\n__lpp4 = ___lpp4 = function lpp4_(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf16le(b, i+4,i+4+len) : \"\";};\nvar __8lpp4 = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len) : \"\";};\nvar ___8lpp4 = __8lpp4;\nvar __double, ___double;\n__double = ___double = function(b, idx) { return read_double_le(b, idx);};\nvar is_buf = function is_buf_a(a) { return Array.isArray(a); };\n\nif(has_buf) {\n\t__utf16le = function(b,s,e) { if(!Buffer.isBuffer(b)) return ___utf16le(b,s,e); return b.toString('utf16le',s,e).replace(chr0,'')/*.replace(chr1,'!')*/; };\n\t__hexlify = function(b,s,l) { return Buffer.isBuffer(b) ? b.toString('hex',s,s+l) : ___hexlify(b,s,l); };\n\t__lpstr = function lpstr_b(b, i) { if(!Buffer.isBuffer(b)) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__cpstr = function cpstr_b(b, i) { if(!Buffer.isBuffer(b)) return ___cpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__lpwstr = function lpwstr_b(b, i) { if(!Buffer.isBuffer(b)) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);};\n\t__lpp4 = function lpp4_b(b, i) { if(!Buffer.isBuffer(b)) return ___lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len);};\n\t__8lpp4 = function lpp4_8b(b, i) { if(!Buffer.isBuffer(b)) return ___8lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf8',i+4,i+4+len);};\n\t__utf8 = function utf8_b(b, s, e) { return (Buffer.isBuffer(b)) ? b.toString('utf8',s,e) : ___utf8(b,s,e); };\n\t__toBuffer = function(bufs) { return (bufs[0].length > 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0]) : ___toBuffer(bufs);};\n\tbconcat = function(bufs) { return Buffer.isBuffer(bufs[0]) ? Buffer.concat(bufs) : [].concat.apply([], bufs); };\n\t__double = function double_(b, i) { if(Buffer.isBuffer(b)) return b.readDoubleLE(i); return ___double(b,i); };\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a); };\n}\n\n/* from js-xls */\nif(typeof cptable !== 'undefined') {\n\t__utf16le = function(b,s,e) { return cptable.utils.decode(1200, b.slice(s,e)).replace(chr0, ''); };\n\t__utf8 = function(b,s,e) { return cptable.utils.decode(65001, b.slice(s,e)); };\n\t__lpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(current_ansi, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__cpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__lpwstr = function(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : \"\";};\n\t__lpp4 = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(1200, b.slice(i+4,i+4+len)) : \"\";};\n\t__8lpp4 = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(65001, b.slice(i+4,i+4+len)) : \"\";};\n}\n\nvar __readUInt8 = function(b, idx) { return b[idx]; };\nvar __readUInt16LE = function(b, idx) { return (b[idx+1]*(1<<8))+b[idx]; };\nvar __readInt16LE = function(b, idx) { var u = (b[idx+1]*(1<<8))+b[idx]; return (u < 0x8000) ? u : ((0xffff - u + 1) * -1); };\nvar __readUInt32LE = function(b, idx) { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\nvar __readInt32LE = function(b, idx) { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\nvar __readInt32BE = function(b, idx) { return (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3]; };\n\nfunction ReadShift(size, t) {\n\tvar o=\"\", oI, oR, oo=[], w, vv, i, loc;\n\tswitch(t) {\n\t\tcase 'dbcs':\n\t\t\tloc = this.l;\n\t\t\tif(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\n\t\t\telse for(i = 0; i < size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\n\t\t\tsize *= 2;\n\t\t\tbreak;\n\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\n\n\t\tcase 'wstr':\n\t\t\tif(typeof cptable !== 'undefined') o = cptable.utils.decode(current_codepage, this.slice(this.l, this.l+2*size));\n\t\t\telse return ReadShift.call(this, size, 'dbcs');\n\t\t\tsize = 2 * size; break;\n\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\n\t\tcase 'lpstr-ansi': o = __lpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\tcase 'lpstr-cp': o = __cpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 4 + 2 * __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OFFCRYPTO] 2.1.2 Length-Prefixed Padded Unicode String (UNICODE-LP-P4) */\n\t\tcase 'lpp4': size = 4 + __readUInt32LE(this, this.l); o = __lpp4(this, this.l); if(size & 0x02) size += 2; break;\n\t\t/* [MS-OFFCRYPTO] 2.1.3 Length-Prefixed UTF-8 String (UTF-8-LP-P4) */\n\t\tcase '8lpp4': size = 4 + __readUInt32LE(this, this.l); o = __8lpp4(this, this.l); if(size & 0x03) size += 4 - (size & 0x03); break;\n\n\t\tcase 'cstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w));\n\t\t\to = oo.join(\"\"); break;\n\t\tcase '_wstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;}\n\t\t\tsize+=2; o = oo.join(\"\"); break;\n\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i < size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt16LE(this, loc)));\n\t\t\t\tloc+=2;\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\n\n\t\tcase 'cpstr':\n\t\t\tif(typeof cptable !== 'undefined') {\n\t\t\t\to = cptable.utils.decode(current_codepage, this.slice(this.l, this.l + size));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t/* falls through */\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt8(this, loc)));\n\t\t\t\tloc+=1;\n\t\t\t} o = oo.join(\"\"); break;\n\n\t\tdefault:\n\tswitch(size) {\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\n\t\tcase 4: case -4:\n\t\t\tif(t === 'i' || ((this[this.l+3] & 0x80)===0)) { oI = ((size > 0) ? __readInt32LE : __readInt32BE)(this, this.l); this.l += 4; return oI; }\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; } return oR;\n\t\tcase 8: case -8:\n\t\t\tif(t === 'f') {\n\t\t\t\tif(size == 8) oR = __double(this, this.l);\n\t\t\t\telse oR = __double([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]], 0);\n\t\t\t\tthis.l += 8; return oR;\n\t\t\t} else size = 8;\n\t\t/* falls through */\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\n\t}}\n\tthis.l+=size; return o;\n}\n\nvar __writeUInt32LE = function(b, val, idx) { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); b[idx+2] = ((val >>> 16) & 0xFF); b[idx+3] = ((val >>> 24) & 0xFF); };\nvar __writeInt32LE = function(b, val, idx) { b[idx] = (val & 0xFF); b[idx+1] = ((val >> 8) & 0xFF); b[idx+2] = ((val >> 16) & 0xFF); b[idx+3] = ((val >> 24) & 0xFF); };\nvar __writeUInt16LE = function(b, val, idx) { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); };\n\nfunction WriteShift(t, val, f) {\n\tvar size = 0, i = 0;\n\tif(f === 'dbcs') {\nfor(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else if(f === 'sbcs') {\n\t\tif(typeof cptable !== 'undefined' && current_ansi == 874) {\n\t\t\t/* TODO: use tables directly, don't encode */\nfor(i = 0; i != val.length; ++i) {\n\t\t\t\tvar cppayload = cptable.utils.encode(current_ansi, val.charAt(i));\n\t\t\t\tthis[this.l + i] = cppayload[0];\n\t\t\t}\n\t\t} else {\nval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\nfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\n\t\t}\n\t\tsize = val.length;\n\t} else if(f === 'hex') {\n\t\tfor(; i < t; ++i) {\nthis[this.l++] = (parseInt(val.slice(2*i, 2*i+2), 16)||0);\n\t\t} return this;\n\t} else if(f === 'utf16le') {\nvar end = Math.min(this.l + t, this.length);\n\t\t\tfor(i = 0; i < Math.min(val.length, t); ++i) {\n\t\t\t\tvar cc = val.charCodeAt(i);\n\t\t\t\tthis[this.l++] = (cc & 0xff);\n\t\t\t\tthis[this.l++] = (cc >> 8);\n\t\t\t}\n\t\t\twhile(this.l < end) this[this.l++] = 0;\n\t\t\treturn this;\n\t} else switch(t) {\n\t\tcase 1: size = 1; this[this.l] = val&0xFF; break;\n\t\tcase 2: size = 2; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; break;\n\t\tcase 3: size = 3; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; val >>>= 8; this[this.l+2] = val&0xFF; break;\n\t\tcase 4: size = 4; __writeUInt32LE(this, val, this.l); break;\n\t\tcase 8: size = 8; if(f === 'f') { write_double_le(this, val, this.l); break; }\n\t\t/* falls through */\n\t\tcase 16: break;\n\t\tcase -4: size = 4; __writeInt32LE(this, val, this.l); break;\n\t}\n\tthis.l += size; return this;\n}\n\nfunction CheckField(hexstr, fld) {\n\tvar m = __hexlify(this,this.l,hexstr.length>>1);\n\tif(m !== hexstr) throw new Error(fld + 'Expected ' + hexstr + ' saw ' + m);\n\tthis.l += hexstr.length>>1;\n}\n\nfunction prep_blob(blob, pos) {\n\tblob.l = pos;\n\tblob.read_shift = ReadShift;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n}\n\nfunction parsenoop(blob, length) { blob.l += length; }\n\nfunction new_buf(sz) {\n\tvar o = new_raw_buf(sz);\n\tprep_blob(o, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.4 Record */\nfunction recordhopper(data, cb, opts) {\n\tif(!data) return;\n\tvar tmpbyte, cntbyte, length;\n\tprep_blob(data, data.l || 0);\n\tvar L = data.length, RT = 0, tgt = 0;\n\twhile(data.l < L) {\n\t\tRT = data.read_shift(1);\n\t\tif(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);\n\t\tvar R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF];\n\t\ttmpbyte = data.read_shift(1);\n\t\tlength = tmpbyte & 0x7F;\n\t\tfor(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);\n\t\ttgt = data.l + length;\n\t\tvar d = (R.f||parsenoop)(data, length, opts);\n\t\tdata.l = tgt;\n\t\tif(cb(d, R.n, RT)) return;\n\t}\n}\n\n/* control buffer usage for fixed-length buffers */\nfunction buf_array() {\n\tvar bufs = [], blksz = has_buf ? 256 : 2048;\n\tvar newblk = function ba_newblk(sz) {\n\t\tvar o = (new_buf(sz));\n\t\tprep_blob(o, 0);\n\t\treturn o;\n\t};\n\n\tvar curbuf = newblk(blksz);\n\n\tvar endbuf = function ba_endbuf() {\n\t\tif(!curbuf) return;\n\t\tif(curbuf.length > curbuf.l) { curbuf = curbuf.slice(0, curbuf.l); curbuf.l = curbuf.length; }\n\t\tif(curbuf.length > 0) bufs.push(curbuf);\n\t\tcurbuf = null;\n\t};\n\n\tvar next = function ba_next(sz) {\n\t\tif(curbuf && (sz < (curbuf.length - curbuf.l))) return curbuf;\n\t\tendbuf();\n\t\treturn (curbuf = newblk(Math.max(sz+1, blksz)));\n\t};\n\n\tvar end = function ba_end() {\n\t\tendbuf();\n\t\treturn __toBuffer([bufs]);\n\t};\n\n\tvar push = function ba_push(buf) { endbuf(); curbuf = buf; if(curbuf.l == null) curbuf.l = curbuf.length; next(blksz); };\n\n\treturn ({ next:next, push:push, end:end, _bufs:bufs });\n}\n\nfunction write_record(ba, type, payload, length) {\n\tvar t = +XLSBRE[type], l;\n\tif(isNaN(t)) return; // TODO: throw something here?\n\tif(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0;\n\tl = 1 + (t >= 0x80 ? 1 : 0) + 1/* + length*/;\n\tif(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l;\n\tvar o = ba.next(l);\n\tif(t <= 0x7F) o.write_shift(1, t);\n\telse {\n\t\to.write_shift(1, (t & 0x7F) + 0x80);\n\t\to.write_shift(1, (t >> 7));\n\t}\n\tfor(var i = 0; i != 4; ++i) {\n\t\tif(length >= 0x80) { o.write_shift(1, (length & 0x7F)+0x80); length >>= 7; }\n\t\telse { o.write_shift(1, length); break; }\n\t}\n\tif(length > 0 && is_buf(payload)) ba.push(payload);\n}\n/* XLS ranges enforced */\nfunction shift_cell_xls(cell, tgt, opts) {\n\tvar out = dup(cell);\n\tif(tgt.s) {\n\t\tif(out.cRel) out.c += tgt.s.c;\n\t\tif(out.rRel) out.r += tgt.s.r;\n\t} else {\n\t\tif(out.cRel) out.c += tgt.c;\n\t\tif(out.rRel) out.r += tgt.r;\n\t}\n\tif(!opts || opts.biff < 12) {\n\t\twhile(out.c >= 0x100) out.c -= 0x100;\n\t\twhile(out.r >= 0x10000) out.r -= 0x10000;\n\t}\n\treturn out;\n}\n\nfunction shift_range_xls(cell, range, opts) {\n\tvar out = dup(cell);\n\tout.s = shift_cell_xls(out.s, range.s, opts);\n\tout.e = shift_cell_xls(out.e, range.s, opts);\n\treturn out;\n}\n\nfunction encode_cell_xls(c, biff) {\n\tif(c.cRel && c.c < 0) { c = dup(c); while(c.c < 0) c.c += (biff > 8) ? 0x4000 : 0x100; }\n\tif(c.rRel && c.r < 0) { c = dup(c); while(c.r < 0) c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\n\tvar s = encode_cell(c);\n\tif(!c.cRel && c.cRel != null) s = fix_col(s);\n\tif(!c.rRel && c.rRel != null) s = fix_row(s);\n\treturn s;\n}\n\nfunction encode_range_xls(r, opts) {\n\tif(r.s.r == 0 && !r.s.rRel) {\n\t\tif(r.e.r == (opts.biff >= 12 ? 0xFFFFF : (opts.biff >= 8 ? 0x10000 : 0x4000)) && !r.e.rRel) {\n\t\t\treturn (r.s.cRel ? \"\" : \"$\") + encode_col(r.s.c) + \":\" + (r.e.cRel ? \"\" : \"$\") + encode_col(r.e.c);\n\t\t}\n\t}\n\tif(r.s.c == 0 && !r.s.cRel) {\n\t\tif(r.e.c == (opts.biff >= 12 ? 0x3FFF : 0xFF) && !r.e.cRel) {\n\t\t\treturn (r.s.rRel ? \"\" : \"$\") + encode_row(r.s.r) + \":\" + (r.e.rRel ? \"\" : \"$\") + encode_row(r.e.r);\n\t\t}\n\t}\n\treturn encode_cell_xls(r.s, opts.biff) + \":\" + encode_cell_xls(r.e, opts.biff);\n}\nvar OFFCRYPTO = {};\n\nvar make_offcrypto = function(O, _crypto) {\n\tvar crypto;\n\tif(typeof _crypto !== 'undefined') crypto = _crypto;\n\telse if(typeof require !== 'undefined') {\n\t\ttry { crypto = require('crypto'); }\n\t\tcatch(e) { crypto = null; }\n\t}\n\n\tO.rc4 = function(key, data) {\n\t\tvar S = new Array(256);\n\t\tvar c = 0, i = 0, j = 0, t = 0;\n\t\tfor(i = 0; i != 256; ++i) S[i] = i;\n\t\tfor(i = 0; i != 256; ++i) {\n\t\t\tj = (j + S[i] + (key[i%key.length]).charCodeAt(0))&255;\n\t\t\tt = S[i]; S[i] = S[j]; S[j] = t;\n\t\t}\n\t\t// $FlowIgnore\n\t\ti = j = 0; var out = new_raw_buf(data.length);\n\t\tfor(c = 0; c != data.length; ++c) {\n\t\t\ti = (i + 1)&255;\n\t\t\tj = (j + S[i])%256;\n\t\t\tt = S[i]; S[i] = S[j]; S[j] = t;\n\t\t\tout[c] = (data[c] ^ S[(S[i]+S[j])&255]);\n\t\t}\n\t\treturn out;\n\t};\n\n\tO.md5 = function(hex) {\n\t\tif(!crypto) throw new Error(\"Unsupported crypto\");\n\t\treturn crypto.createHash('md5').update(hex).digest('hex');\n\t};\n};\n/*global crypto:true */\nmake_offcrypto(OFFCRYPTO, typeof crypto !== \"undefined\" ? crypto : undefined);\n\nfunction decode_row(rowstr) { return parseInt(unfix_row(rowstr),10) - 1; }\nfunction encode_row(row) { return \"\" + (row + 1); }\nfunction fix_row(cstr) { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\nfunction unfix_row(cstr) { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\n\nfunction decode_col(colstr) { var c = unfix_col(colstr), d = 0, i = 0; for(; i !== c.length; ++i) d = 26*d + c.charCodeAt(i) - 64; return d - 1; }\nfunction encode_col(col) { if(col < 0) throw new Error(\"invalid column \" + col); var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\nfunction fix_col(cstr) { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\nfunction unfix_col(cstr) { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\n\nfunction split_cell(cstr) { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\n//function decode_cell(cstr) { var splt = split_cell(cstr); return { c:decode_col(splt[0]), r:decode_row(splt[1]) }; }\nfunction decode_cell(cstr) {\n\tvar R = 0, C = 0;\n\tfor(var i = 0; i < cstr.length; ++i) {\n\t\tvar cc = cstr.charCodeAt(i);\n\t\tif(cc >= 48 && cc <= 57) R = 10 * R + (cc - 48);\n\t\telse if(cc >= 65 && cc <= 90) C = 26 * C + (cc - 64);\n\t}\n\treturn { c: C - 1, r:R - 1 };\n}\n//function encode_cell(cell) { return encode_col(cell.c) + encode_row(cell.r); }\nfunction encode_cell(cell) {\n\tvar col = cell.c + 1;\n\tvar s=\"\";\n\tfor(; col; col=((col-1)/26)|0) s = String.fromCharCode(((col-1)%26) + 65) + s;\n\treturn s + (cell.r + 1);\n}\nfunction decode_range(range) {\n\tvar idx = range.indexOf(\":\");\n\tif(idx == -1) return { s: decode_cell(range), e: decode_cell(range) };\n\treturn { s: decode_cell(range.slice(0, idx)), e: decode_cell(range.slice(idx + 1)) };\n}\nfunction encode_range(cs,ce) {\n\tif(typeof ce === 'undefined' || typeof ce === 'number') {\nreturn encode_range(cs.s, cs.e);\n\t}\nif(typeof cs !== 'string') cs = encode_cell((cs));\n\tif(typeof ce !== 'string') ce = encode_cell((ce));\nreturn cs == ce ? cs : cs + \":\" + ce;\n}\n\nfunction safe_decode_range(range) {\n\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\tvar idx = 0, i = 0, cc = 0;\n\tvar len = range.length;\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.s.c = --idx;\n\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.s.r = --idx;\n\n\tif(i === len || range.charCodeAt(++i) === 58) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.e.c = --idx;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.e.r = --idx;\n\treturn o;\n}\n\nfunction safe_format_cell(cell, v) {\n\tvar q = (cell.t == 'd' && v instanceof Date);\n\tif(cell.z != null) try { return (cell.w = SSF.format(cell.z, q ? datenum(v) : v)); } catch(e) { }\n\ttry { return (cell.w = SSF.format((cell.XF||{}).numFmtId||(q ? 14 : 0), q ? datenum(v) : v)); } catch(e) { return ''+v; }\n}\n\nfunction format_cell(cell, v, o) {\n\tif(cell == null || cell.t == null || cell.t == 'z') return \"\";\n\tif(cell.w !== undefined) return cell.w;\n\tif(cell.t == 'd' && !cell.z && o && o.dateNF) cell.z = o.dateNF;\n\tif(v == undefined) return safe_format_cell(cell, cell.v);\n\treturn safe_format_cell(cell, v);\n}\n\nfunction sheet_to_workbook(sheet, opts) {\n\tvar n = opts && opts.sheet ? opts.sheet : \"Sheet1\";\n\tvar sheets = {}; sheets[n] = sheet;\n\treturn { SheetNames: [n], Sheets: sheets };\n}\n\nfunction sheet_add_aoa(_ws, data, opts) {\n\tvar o = opts || {};\n\tvar dense = _ws ? Array.isArray(_ws) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar ws = _ws || (dense ? ([]) : ({}));\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t\tif(!ws[\"!ref\"]) ws[\"!ref\"] = \"A1:A1\";\n\t}\n\tvar range = ({s: {c:10000000, r:10000000}, e: {c:0, r:0}});\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.s.c = _range.s.c;\n\t\trange.s.r = _range.s.r;\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) range.e.r = _R = _range.e.r + 1;\n\t}\n\tfor(var R = 0; R != data.length; ++R) {\n\t\tif(!data[R]) continue;\n\t\tif(!Array.isArray(data[R])) throw new Error(\"aoa_to_sheet expects an array of arrays\");\n\t\tfor(var C = 0; C != data[R].length; ++C) {\n\t\t\tif(typeof data[R][C] === 'undefined') continue;\n\t\t\tvar cell = ({v: data[R][C] });\n\t\t\tvar __R = _R + R, __C = _C + C;\n\t\t\tif(range.s.r > __R) range.s.r = __R;\n\t\t\tif(range.s.c > __C) range.s.c = __C;\n\t\t\tif(range.e.r < __R) range.e.r = __R;\n\t\t\tif(range.e.c < __C) range.e.c = __C;\n\t\t\tif(data[R][C] && typeof data[R][C] === 'object' && !Array.isArray(data[R][C]) && !(data[R][C] instanceof Date)) cell = data[R][C];\n\t\t\telse {\n\t\t\t\tif(Array.isArray(cell.v)) { cell.f = data[R][C][1]; cell.v = cell.v[0]; }\n\t\t\t\tif(cell.v === null) { if(cell.f) cell.t = 'n'; else if(!o.sheetStubs) continue; else cell.t = 'z'; }\n\t\t\t\telse if(typeof cell.v === 'number') cell.t = 'n';\n\t\t\t\telse if(typeof cell.v === 'boolean') cell.t = 'b';\n\t\t\t\telse if(cell.v instanceof Date) {\n\t\t\t\t\tcell.z = o.dateNF || SSF._table[14];\n\t\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.w = SSF.format(cell.z, datenum(cell.v)); }\n\t\t\t\t\telse { cell.t = 'n'; cell.v = datenum(cell.v); cell.w = SSF.format(cell.z, cell.v); }\n\t\t\t\t}\n\t\t\t\telse cell.t = 's';\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tif(!ws[__R]) ws[__R] = [];\n\t\t\t\tif(ws[__R][__C] && ws[__R][__C].z) cell.z = ws[__R][__C].z;\n\t\t\t\tws[__R][__C] = cell;\n\t\t\t} else {\n\t\t\t\tvar cell_ref = encode_cell(({c:__C,r:__R}));\n\t\t\t\tif(ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;\n\t\t\t\tws[cell_ref] = cell;\n\t\t\t}\n\t\t}\n\t}\n\tif(range.s.c < 10000000) ws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction aoa_to_sheet(data, opts) { return sheet_add_aoa(null, data, opts); }\n\nfunction write_UInt32LE(x, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(4, x);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.168 */\nfunction parse_XLWideString(data) {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLWideString(data, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(4 + 2 * data.length); }\n\to.write_shift(4, data.length);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.91 */\n//function parse_LPWideString(data) {\n//\tvar cchCharacters = data.read_shift(2);\n//\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, \"utf16le\");\n//}\n\n/* [MS-XLSB] 2.5.143 */\nfunction parse_StrRun(data) {\n\treturn { ich: data.read_shift(2), ifnt: data.read_shift(2) };\n}\nfunction write_StrRun(run, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(2, run.ich || 0);\n\to.write_shift(2, run.ifnt || 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.121 */\nfunction parse_RichStr(data, length) {\n\tvar start = data.l;\n\tvar flags = data.read_shift(1);\n\tvar str = parse_XLWideString(data);\n\tvar rgsStrRun = [];\n\tvar z = ({ t: str, h: str });\n\tif ((flags & 1) !== 0) { /* fRichStr */\n\t\t/* TODO: formatted string */\n\t\tvar dwSizeStrRun = data.read_shift(4);\n\t\tfor (var i = 0; i != dwSizeStrRun; ++i) rgsStrRun.push(parse_StrRun(data));\n\t\tz.r = rgsStrRun;\n\t}\n\telse z.r = [{ ich: 0, ifnt: 0 }];\n\t//if((flags & 2) !== 0) { /* fExtStr */\n\t//\t/* TODO: phonetic string */\n\t//}\n\tdata.l = start + length;\n\treturn z;\n}\nfunction write_RichStr(str, o) {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(15 + 4 * str.t.length); }\n\to.write_shift(1, 0);\n\twrite_XLWideString(str.t, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n/* [MS-XLSB] 2.4.328 BrtCommentText (RichStr w/1 run) */\nvar parse_BrtCommentText = parse_RichStr;\nfunction write_BrtCommentText(str, o) {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(23 + 4 * str.t.length); }\n\to.write_shift(1, 1);\n\twrite_XLWideString(str.t, o);\n\to.write_shift(4, 1);\n\twrite_StrRun({ ich: 0, ifnt: 0 }, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.9 */\nfunction parse_XLSBCell(data) {\n\tvar col = data.read_shift(4);\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) << 16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c: col, iStyleRef: iStyleRef };\n}\nfunction write_XLSBCell(cell, o) {\n\tif (o == null) o = new_buf(8);\n\to.write_shift(-4, cell.c);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.5.21 */\nvar parse_XLSBCodeName = parse_XLWideString;\nvar write_XLSBCodeName = write_XLWideString;\n\n/* [MS-XLSB] 2.5.166 */\nfunction parse_XLNullableWideString(data) {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 || cchCharacters === 0xFFFFFFFF ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLNullableWideString(data, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(127); }\n\to.write_shift(4, data.length > 0 ? data.length : 0xFFFFFFFF);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.165 */\nvar parse_XLNameWideString = parse_XLWideString;\n//var write_XLNameWideString = write_XLWideString;\n\n/* [MS-XLSB] 2.5.114 */\nvar parse_RelID = parse_XLNullableWideString;\nvar write_RelID = write_XLNullableWideString;\n\n\n/* [MS-XLS] 2.5.217 ; [MS-XLSB] 2.5.122 */\nfunction parse_RkNumber(data) {\n\tvar b = data.slice(data.l, data.l + 4);\n\tvar fX100 = (b[0] & 1), fInt = (b[0] & 2);\n\tdata.l += 4;\n\tb[0] &= 0xFC; // b[0] &= ~3;\n\tvar RK = fInt === 0 ? __double([0, 0, 0, 0, b[0], b[1], b[2], b[3]], 0) : __readInt32LE(b, 0) >> 2;\n\treturn fX100 ? (RK / 100) : RK;\n}\nfunction write_RkNumber(data, o) {\n\tif (o == null) o = new_buf(4);\n\tvar fX100 = 0, fInt = 0, d100 = data * 100;\n\tif ((data == (data | 0)) && (data >= -(1 << 29)) && (data < (1 << 29))) { fInt = 1; }\n\telse if ((d100 == (d100 | 0)) && (d100 >= -(1 << 29)) && (d100 < (1 << 29))) { fInt = 1; fX100 = 1; }\n\tif (fInt) o.write_shift(-4, ((fX100 ? d100 : data) << 2) + (fX100 + 2));\n\telse throw new Error(\"unsupported RkNumber \" + data); // TODO\n}\n\n\n/* [MS-XLSB] 2.5.117 RfX */\nfunction parse_RfX(data ) {\n\tvar cell = ({ s: {}, e: {} });\n\tcell.s.r = data.read_shift(4);\n\tcell.e.r = data.read_shift(4);\n\tcell.s.c = data.read_shift(4);\n\tcell.e.c = data.read_shift(4);\n\treturn cell;\n}\nfunction write_RfX(r, o) {\n\tif (!o) o = new_buf(16);\n\to.write_shift(4, r.s.r);\n\to.write_shift(4, r.e.r);\n\to.write_shift(4, r.s.c);\n\to.write_shift(4, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.153 UncheckedRfX */\nvar parse_UncheckedRfX = parse_RfX;\nvar write_UncheckedRfX = write_RfX;\n\n/* [MS-XLSB] 2.5.155 UncheckedSqRfX */\n//function parse_UncheckedSqRfX(data) {\n//\tvar cnt = data.read_shift(4);\n//\tvar out = [];\n//\tfor(var i = 0; i < cnt; ++i) {\n//\t\tvar rng = parse_UncheckedRfX(data);\n//\t\tout.push(encode_range(rng));\n//\t}\n//\treturn out.join(\",\");\n//}\n//function write_UncheckedSqRfX(sqrfx) {\n//\tvar parts = sqrfx.split(/\\s*,\\s*/);\n//\tvar o = new_buf(4); o.write_shift(4, parts.length);\n//\tvar out = [o];\n//\tparts.forEach(function(rng) {\n//\t\tout.push(write_UncheckedRfX(safe_decode_range(rng)));\n//\t});\n//\treturn bconcat(out);\n//}\n\n/* [MS-XLS] 2.5.342 ; [MS-XLSB] 2.5.171 */\n/* TODO: error checking, NaN and Infinity values are not valid Xnum */\nfunction parse_Xnum(data) { return data.read_shift(8, 'f'); }\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, data, 'f'); }\n\n/* [MS-XLSB] 2.4.324 BrtColor */\nfunction parse_BrtColor(data) {\n\tvar out = {};\n\tvar d = data.read_shift(1);\n\n\t//var fValidRGB = d & 1;\n\tvar xColorType = d >>> 1;\n\n\tvar index = data.read_shift(1);\n\tvar nTS = data.read_shift(2, 'i');\n\tvar bR = data.read_shift(1);\n\tvar bG = data.read_shift(1);\n\tvar bB = data.read_shift(1);\n\tdata.l++; //var bAlpha = data.read_shift(1);\n\n\tswitch (xColorType) {\n\t\tcase 0: out.auto = 1; break;\n\t\tcase 1:\n\t\t\tout.index = index;\n\t\t\tvar icv = XLSIcv[index];\n\t\t\t/* automatic pseudo index 81 */\n\t\t\tif (icv) out.rgb = rgb2Hex(icv);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/* if(!fValidRGB) throw new Error(\"invalid\"); */\n\t\t\tout.rgb = rgb2Hex([bR, bG, bB]);\n\t\t\tbreak;\n\t\tcase 3: out.theme = index; break;\n\t}\n\tif (nTS != 0) out.tint = nTS > 0 ? nTS / 32767 : nTS / 32768;\n\n\treturn out;\n}\nfunction write_BrtColor(color, o) {\n\tif (!o) o = new_buf(8);\n\tif (!color || color.auto) { o.write_shift(4, 0); o.write_shift(4, 0); return o; }\n\tif (color.index != null) {\n\t\to.write_shift(1, 0x02);\n\t\to.write_shift(1, color.index);\n\t} else if (color.theme != null) {\n\t\to.write_shift(1, 0x06);\n\t\to.write_shift(1, color.theme);\n\t} else {\n\t\to.write_shift(1, 0x05);\n\t\to.write_shift(1, 0);\n\t}\n\tvar nTS = color.tint || 0;\n\tif (nTS > 0) nTS *= 32767;\n\telse if (nTS < 0) nTS *= 32768;\n\to.write_shift(2, nTS);\n\tif (!color.rgb || color.theme != null) {\n\t\to.write_shift(2, 0);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(1, 0);\n\t} else {\n\t\tvar rgb = (color.rgb || 'FFFFFF');\n\t\tif (typeof rgb == 'number') rgb = (\"000000\" + rgb.toString(16)).slice(-6);\n\t\to.write_shift(1, parseInt(rgb.slice(0, 2), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(2, 4), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(4, 6), 16));\n\t\to.write_shift(1, 0xFF);\n\t}\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.52 */\nfunction parse_FontFlags(data) {\n\tvar d = data.read_shift(1);\n\tdata.l++;\n\tvar out = {\n\t\tfBold: d & 0x01,\n\t\tfItalic: d & 0x02,\n\t\tfUnderline: d & 0x04,\n\t\tfStrikeout: d & 0x08,\n\t\tfOutline: d & 0x10,\n\t\tfShadow: d & 0x20,\n\t\tfCondense: d & 0x40,\n\t\tfExtend: d & 0x80\n\t};\n\treturn out;\n}\nfunction write_FontFlags(font, o) {\n\tif (!o) o = new_buf(2);\n\tvar grbit =\n\t\t(font.italic ? 0x02 : 0) |\n\t\t(font.strike ? 0x08 : 0) |\n\t\t(font.outline ? 0x10 : 0) |\n\t\t(font.shadow ? 0x20 : 0) |\n\t\t(font.condense ? 0x40 : 0) |\n\t\t(font.extend ? 0x80 : 0);\n\to.write_shift(1, grbit);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-OLEDS] 2.3.1 and 2.3.2 */\nfunction parse_ClipboardFormatOrString(o, w) {\n\t// $FlowIgnore\n\tvar ClipFmt = { 2: \"BITMAP\", 3: \"METAFILEPICT\", 8: \"DIB\", 14: \"ENHMETAFILE\" };\n\tvar m = o.read_shift(4);\n\tswitch (m) {\n\t\tcase 0x00000000: return \"\";\n\t\tcase 0xffffffff: case 0xfffffffe: return ClipFmt[o.read_shift(4)] || \"\";\n\t}\n\tif (m > 0x190) throw new Error(\"Unsupported Clipboard: \" + m.toString(16));\n\to.l -= 4;\n\treturn o.read_shift(0, w == 1 ? \"lpstr\" : \"lpwstr\");\n}\nfunction parse_ClipboardFormatOrAnsiString(o) { return parse_ClipboardFormatOrString(o, 1); }\nfunction parse_ClipboardFormatOrUnicodeString(o) { return parse_ClipboardFormatOrString(o, 2); }\n\n/* [MS-OLEPS] 2.2 PropertyType */\n//var VT_EMPTY = 0x0000;\n//var VT_NULL = 0x0001;\nvar VT_I2 = 0x0002;\nvar VT_I4 = 0x0003;\n//var VT_R4 = 0x0004;\n//var VT_R8 = 0x0005;\n//var VT_CY = 0x0006;\n//var VT_DATE = 0x0007;\n//var VT_BSTR = 0x0008;\n//var VT_ERROR = 0x000A;\nvar VT_BOOL = 0x000B;\nvar VT_VARIANT = 0x000C;\n//var VT_DECIMAL = 0x000E;\n//var VT_I1 = 0x0010;\n//var VT_UI1 = 0x0011;\n//var VT_UI2 = 0x0012;\nvar VT_UI4 = 0x0013;\n//var VT_I8 = 0x0014;\n//var VT_UI8 = 0x0015;\n//var VT_INT = 0x0016;\n//var VT_UINT = 0x0017;\nvar VT_LPSTR = 0x001E;\n//var VT_LPWSTR = 0x001F;\nvar VT_FILETIME = 0x0040;\nvar VT_BLOB = 0x0041;\n//var VT_STREAM = 0x0042;\n//var VT_STORAGE = 0x0043;\n//var VT_STREAMED_Object = 0x0044;\n//var VT_STORED_Object = 0x0045;\n//var VT_BLOB_Object = 0x0046;\nvar VT_CF = 0x0047;\n//var VT_CLSID = 0x0048;\n//var VT_VERSIONED_STREAM = 0x0049;\nvar VT_VECTOR = 0x1000;\n//var VT_ARRAY = 0x2000;\n\nvar VT_STRING = 0x0050; // 2.3.3.1.11 VtString\nvar VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString\nvar VT_CUSTOM = [VT_STRING, VT_USTR];\n\n/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */\nvar DocSummaryPIDDSI = {\n0x01: { n: 'CodePage', t: VT_I2 },\n0x02: { n: 'Category', t: VT_STRING },\n0x03: { n: 'PresentationFormat', t: VT_STRING },\n0x04: { n: 'ByteCount', t: VT_I4 },\n0x05: { n: 'LineCount', t: VT_I4 },\n0x06: { n: 'ParagraphCount', t: VT_I4 },\n0x07: { n: 'SlideCount', t: VT_I4 },\n0x08: { n: 'NoteCount', t: VT_I4 },\n0x09: { n: 'HiddenCount', t: VT_I4 },\n0x0a: { n: 'MultimediaClipCount', t: VT_I4 },\n0x0b: { n: 'ScaleCrop', t: VT_BOOL },\n0x0c: { n: 'HeadingPairs', t: VT_VECTOR | VT_VARIANT },\n0x0d: { n: 'TitlesOfParts', t: VT_VECTOR | VT_LPSTR },\n0x0e: { n: 'Manager', t: VT_STRING },\n0x0f: { n: 'Company', t: VT_STRING },\n0x10: { n: 'LinksUpToDate', t: VT_BOOL },\n0x11: { n: 'CharacterCount', t: VT_I4 },\n0x13: { n: 'SharedDoc', t: VT_BOOL },\n0x16: { n: 'HyperlinksChanged', t: VT_BOOL },\n0x17: { n: 'AppVersion', t: VT_I4, p: 'version' },\n0x18: { n: 'DigSig', t: VT_BLOB },\n0x1A: { n: 'ContentType', t: VT_STRING },\n0x1B: { n: 'ContentStatus', t: VT_STRING },\n0x1C: { n: 'Language', t: VT_STRING },\n0x1D: { n: 'Version', t: VT_STRING },\n0xFF: {}\n};\n\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\nvar SummaryPIDSI = {\n0x01: { n: 'CodePage', t: VT_I2 },\n0x02: { n: 'Title', t: VT_STRING },\n0x03: { n: 'Subject', t: VT_STRING },\n0x04: { n: 'Author', t: VT_STRING },\n0x05: { n: 'Keywords', t: VT_STRING },\n0x06: { n: 'Comments', t: VT_STRING },\n0x07: { n: 'Template', t: VT_STRING },\n0x08: { n: 'LastAuthor', t: VT_STRING },\n0x09: { n: 'RevNumber', t: VT_STRING },\n0x0A: { n: 'EditTime', t: VT_FILETIME },\n0x0B: { n: 'LastPrinted', t: VT_FILETIME },\n0x0C: { n: 'CreatedDate', t: VT_FILETIME },\n0x0D: { n: 'ModifiedDate', t: VT_FILETIME },\n0x0E: { n: 'PageCount', t: VT_I4 },\n0x0F: { n: 'WordCount', t: VT_I4 },\n0x10: { n: 'CharCount', t: VT_I4 },\n0x11: { n: 'Thumbnail', t: VT_CF },\n0x12: { n: 'Application', t: VT_STRING },\n0x13: { n: 'DocSecurity', t: VT_I4 },\n0xFF: {}\n};\n\n/* [MS-OLEPS] 2.18 */\nvar SpecialProperties = {\n0x80000000: { n: 'Locale', t: VT_UI4 },\n0x80000003: { n: 'Behavior', t: VT_UI4 },\n0x72627262: {}\n};\n\n(function() {\n\tfor(var y in SpecialProperties) if(Object.prototype.hasOwnProperty.call(SpecialProperties, y))\n\tDocSummaryPIDDSI[y] = SummaryPIDSI[y] = SpecialProperties[y];\n})();\n\nvar DocSummaryRE = evert_key(DocSummaryPIDDSI, \"n\");\nvar SummaryRE = evert_key(SummaryPIDSI, \"n\");\n\n/* [MS-XLS] 2.4.63 Country/Region codes */\nvar CountryEnum = {\n0x0001: \"US\", // United States\n0x0002: \"CA\", // Canada\n0x0003: \"\", // Latin America (except Brazil)\n0x0007: \"RU\", // Russia\n0x0014: \"EG\", // Egypt\n0x001E: \"GR\", // Greece\n0x001F: \"NL\", // Netherlands\n0x0020: \"BE\", // Belgium\n0x0021: \"FR\", // France\n0x0022: \"ES\", // Spain\n0x0024: \"HU\", // Hungary\n0x0027: \"IT\", // Italy\n0x0029: \"CH\", // Switzerland\n0x002B: \"AT\", // Austria\n0x002C: \"GB\", // United Kingdom\n0x002D: \"DK\", // Denmark\n0x002E: \"SE\", // Sweden\n0x002F: \"NO\", // Norway\n0x0030: \"PL\", // Poland\n0x0031: \"DE\", // Germany\n0x0034: \"MX\", // Mexico\n0x0037: \"BR\", // Brazil\n0x003d: \"AU\", // Australia\n0x0040: \"NZ\", // New Zealand\n0x0042: \"TH\", // Thailand\n0x0051: \"JP\", // Japan\n0x0052: \"KR\", // Korea\n0x0054: \"VN\", // Viet Nam\n0x0056: \"CN\", // China\n0x005A: \"TR\", // Turkey\n0x0069: \"JS\", // Ramastan\n0x00D5: \"DZ\", // Algeria\n0x00D8: \"MA\", // Morocco\n0x00DA: \"LY\", // Libya\n0x015F: \"PT\", // Portugal\n0x0162: \"IS\", // Iceland\n0x0166: \"FI\", // Finland\n0x01A4: \"CZ\", // Czech Republic\n0x0376: \"TW\", // Taiwan\n0x03C1: \"LB\", // Lebanon\n0x03C2: \"JO\", // Jordan\n0x03C3: \"SY\", // Syria\n0x03C4: \"IQ\", // Iraq\n0x03C5: \"KW\", // Kuwait\n0x03C6: \"SA\", // Saudi Arabia\n0x03CB: \"AE\", // United Arab Emirates\n0x03CC: \"IL\", // Israel\n0x03CE: \"QA\", // Qatar\n0x03D5: \"IR\", // Iran\n0xFFFF: \"US\" // United States\n};\n\n/* [MS-XLS] 2.5.127 */\nvar XLSFillPattern = [\n\tnull,\n\t'solid',\n\t'mediumGray',\n\t'darkGray',\n\t'lightGray',\n\t'darkHorizontal',\n\t'darkVertical',\n\t'darkDown',\n\t'darkUp',\n\t'darkGrid',\n\t'darkTrellis',\n\t'lightHorizontal',\n\t'lightVertical',\n\t'lightDown',\n\t'lightUp',\n\t'lightGrid',\n\t'lightTrellis',\n\t'gray125',\n\t'gray0625'\n];\n\nfunction rgbify(arr) { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); }\n\n/* [MS-XLS] 2.5.161 */\n/* [MS-XLSB] 2.5.75 Icv */\nvar _XLSIcv = rgbify([\n\t/* Color Constants */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t/* Overridable Defaults */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t0x800000,\n\t0x008000,\n\t0x000080,\n\t0x808000,\n\t0x800080,\n\t0x008080,\n\t0xC0C0C0,\n\t0x808080,\n\t0x9999FF,\n\t0x993366,\n\t0xFFFFCC,\n\t0xCCFFFF,\n\t0x660066,\n\t0xFF8080,\n\t0x0066CC,\n\t0xCCCCFF,\n\n\t0x000080,\n\t0xFF00FF,\n\t0xFFFF00,\n\t0x00FFFF,\n\t0x800080,\n\t0x800000,\n\t0x008080,\n\t0x0000FF,\n\t0x00CCFF,\n\t0xCCFFFF,\n\t0xCCFFCC,\n\t0xFFFF99,\n\t0x99CCFF,\n\t0xFF99CC,\n\t0xCC99FF,\n\t0xFFCC99,\n\n\t0x3366FF,\n\t0x33CCCC,\n\t0x99CC00,\n\t0xFFCC00,\n\t0xFF9900,\n\t0xFF6600,\n\t0x666699,\n\t0x969696,\n\t0x003366,\n\t0x339966,\n\t0x003300,\n\t0x333300,\n\t0x993300,\n\t0x993366,\n\t0x333399,\n\t0x333333,\n\n\t/* Other entries to appease BIFF8/12 */\n\t0xFFFFFF, /* 0x40 icvForeground ?? */\n\t0x000000, /* 0x41 icvBackground ?? */\n\t0x000000, /* 0x42 icvFrame ?? */\n\t0x000000, /* 0x43 icv3D ?? */\n\t0x000000, /* 0x44 icv3DText ?? */\n\t0x000000, /* 0x45 icv3DHilite ?? */\n\t0x000000, /* 0x46 icv3DShadow ?? */\n\t0x000000, /* 0x47 icvHilite ?? */\n\t0x000000, /* 0x48 icvCtlText ?? */\n\t0x000000, /* 0x49 icvCtlScrl ?? */\n\t0x000000, /* 0x4A icvCtlInv ?? */\n\t0x000000, /* 0x4B icvCtlBody ?? */\n\t0x000000, /* 0x4C icvCtlFrame ?? */\n\t0x000000, /* 0x4D icvCtlFore ?? */\n\t0x000000, /* 0x4E icvCtlBack ?? */\n\t0x000000, /* 0x4F icvCtlNeutral */\n\t0x000000, /* 0x50 icvInfoBk ?? */\n\t0x000000 /* 0x51 icvInfoText ?? */\n]);\nvar XLSIcv = dup(_XLSIcv);\n\n/* [MS-XLSB] 2.5.97.2 */\nvar BErr = {\n0x00: \"#NULL!\",\n0x07: \"#DIV/0!\",\n0x0F: \"#VALUE!\",\n0x17: \"#REF!\",\n0x1D: \"#NAME?\",\n0x24: \"#NUM!\",\n0x2A: \"#N/A\",\n0x2B: \"#GETTING_DATA\",\n0xFF: \"#WTF?\"\n};\nvar RBErr = evert_num(BErr);\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\n/* 12.3 Part Summary <SpreadsheetML> */\n/* 14.2 Part Summary <DrawingML> */\n/* [MS-XLSX] 2.1 Part Enumerations ; [MS-XLSB] 2.1.7 Part Enumeration */\nvar ct2type/*{[string]:string}*/ = ({\n\t/* Workbook */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": \"workbooks\",\n\n\t/* Worksheet */\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\n\n\t/* Macrosheet */\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\n\n\t/* File Properties */\n\t\"application/vnd.openxmlformats-package.core-properties+xml\": \"coreprops\",\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\": \"custprops\",\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\": \"extprops\",\n\n\t/* Custom Data Properties */\n\t\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty\": \"TODO\",\n\n\t/* PivotTable */\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\n\n\t/* Chart Objects */\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\n\n\t/* Chart Colors */\n\t\"application/vnd.ms-office.chartcolorstyle+xml\": \"TODO\",\n\n\t/* Chart Style */\n\t\"application/vnd.ms-office.chartstyle+xml\": \"TODO\",\n\n\t/* Chart Advanced */\n\t\"application/vnd.ms-office.chartex+xml\": \"TODO\",\n\n\t/* Calculation Chain */\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\n\n\t/* Printer Settings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\n\n\t/* ActiveX */\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\n\n\t/* Custom Toolbars */\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\n\n\t/* External Data Connections */\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\n\n\t/* External Links */\n\t\"application/vnd.ms-excel.externalLink\": \"links\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"links\",\n\n\t/* Metadata */\n\t\"application/vnd.ms-excel.sheetMetadata\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"TODO\",\n\n\t/* PivotCache */\n\t\"application/vnd.ms-excel.pivotCacheDefinition\": \"TODO\",\n\t\"application/vnd.ms-excel.pivotCacheRecords\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\": \"TODO\",\n\n\t/* Query Table */\n\t\"application/vnd.ms-excel.queryTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\": \"TODO\",\n\n\t/* Shared Workbook */\n\t\"application/vnd.ms-excel.userNames\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionHeaders\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionLog\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\": \"TODO\",\n\n\t/* Single Cell Table */\n\t\"application/vnd.ms-excel.tableSingleCells\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\": \"TODO\",\n\n\t/* Slicer */\n\t\"application/vnd.ms-excel.slicer\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache\": \"TODO\",\n\t\"application/vnd.ms-excel.slicer+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache+xml\": \"TODO\",\n\n\t/* Sort Map */\n\t\"application/vnd.ms-excel.wsSortMap\": \"TODO\",\n\n\t/* Table */\n\t\"application/vnd.ms-excel.table\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": \"TODO\",\n\n\t/* Themes */\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\": \"themes\",\n\n\t/* Theme Override */\n\t\"application/vnd.openxmlformats-officedocument.themeOverride+xml\": \"TODO\",\n\n\t/* Timeline */\n\t\"application/vnd.ms-excel.Timeline+xml\": \"TODO\", /* verify */\n\t\"application/vnd.ms-excel.TimelineCache+xml\": \"TODO\", /* verify */\n\n\t/* VBA */\n\t\"application/vnd.ms-office.vbaProject\": \"vba\",\n\t\"application/vnd.ms-office.vbaProjectSignature\": \"vba\",\n\n\t/* Volatile Dependencies */\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\n\n\t/* Control Properties */\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\n\n\t/* Data Model */\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\n\n\t/* Survey */\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\n\n\t/* Drawing */\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"drawings\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\n\n\t/* VML */\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\n\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\n\n\t/* Image */\n\t\"image/png\": \"TODO\",\n\n\t\"sheet\": \"js\"\n});\n\nvar CT_LIST = (function(){\n\tvar o = {\n\t\tworkbooks: {\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",\n\t\t\txlsm: \"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",\n\t\t\txlam: \"application/vnd.ms-excel.addin.macroEnabled.main+xml\",\n\t\t\txltx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"\n\t\t},\n\t\tstrs: { /* Shared Strings */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sharedStrings\"\n\t\t},\n\t\tcomments: { /* Comments */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.comments\"\n\t\t},\n\t\tsheets: { /* Worksheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.worksheet\"\n\t\t},\n\t\tcharts: { /* Chartsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.chartsheet\"\n\t\t},\n\t\tdialogs: { /* Dialogsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.dialogsheet\"\n\t\t},\n\t\tmacros: { /* Macrosheet (Excel 4.0 Macros) */\n\t\t\txlsx: \"application/vnd.ms-excel.macrosheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.macrosheet\"\n\t\t},\n\t\tstyles: { /* Styles */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.styles\"\n\t\t}\n\t};\n\tkeys(o).forEach(function(k) { [\"xlsm\", \"xlam\"].forEach(function(v) { if(!o[k][v]) o[k][v] = o[k].xlsx; }); });\n\tkeys(o).forEach(function(k){ keys(o[k]).forEach(function(v) { ct2type[o[k][v]] = k; }); });\n\treturn o;\n})();\n\nvar type2ct/*{[string]:Array<string>}*/ = evert_arr(ct2type);\n\nXMLNS.CT = 'http://schemas.openxmlformats.org/package/2006/content-types';\n\nfunction new_ct() {\n\treturn ({\n\t\tworkbooks:[], sheets:[], charts:[], dialogs:[], macros:[],\n\t\trels:[], strs:[], comments:[], links:[],\n\t\tcoreprops:[], extprops:[], custprops:[], themes:[], styles:[],\n\t\tcalcchains:[], vba: [], drawings: [],\n\t\tTODO:[], xmlns: \"\" });\n}\n\nfunction parse_ct(data) {\n\tvar ct = new_ct();\n\tif(!data || !data.match) return ct;\n\tvar ctext = {};\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0].replace(nsregex,\"<\")) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<Types': ct.xmlns = y['xmlns' + (y[0].match(/<(\\w+):/)||[\"\",\"\"])[1] ]; break;\n\t\t\tcase '<Default': ctext[y.Extension] = y.ContentType; break;\n\t\t\tcase '<Override':\n\t\t\t\tif(ct[ct2type[y.ContentType]] !== undefined) ct[ct2type[y.ContentType]].push(y.PartName);\n\t\t\t\tbreak;\n\t\t}\n\t});\n\tif(ct.xmlns !== XMLNS.CT) throw new Error(\"Unknown Namespace: \" + ct.xmlns);\n\tct.calcchain = ct.calcchains.length > 0 ? ct.calcchains[0] : \"\";\n\tct.sst = ct.strs.length > 0 ? ct.strs[0] : \"\";\n\tct.style = ct.styles.length > 0 ? ct.styles[0] : \"\";\n\tct.defaults = ctext;\n\tdelete ct.calcchains;\n\treturn ct;\n}\n\nvar CTYPE_XML_ROOT = writextag('Types', null, {\n\t'xmlns': XMLNS.CT,\n\t'xmlns:xsd': XMLNS.xsd,\n\t'xmlns:xsi': XMLNS.xsi\n});\n\nvar CTYPE_DEFAULTS = [\n\t['xml', 'application/xml'],\n\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\n\t['vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing'],\n\t['data', 'application/vnd.openxmlformats-officedocument.model+data'],\n\t/* from test files */\n\t['bmp', 'image/bmp'],\n\t['png', 'image/png'],\n\t['gif', 'image/gif'],\n\t['emf', 'image/x-emf'],\n\t['wmf', 'image/x-wmf'],\n\t['jpg', 'image/jpeg'], ['jpeg', 'image/jpeg'],\n\t['tif', 'image/tiff'], ['tiff', 'image/tiff'],\n\t['pdf', 'application/pdf'],\n\t['rels', type2ct.rels[0]]\n].map(function(x) {\n\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\n});\n\nfunction write_ct(ct, opts) {\n\tvar o = [], v;\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (CTYPE_XML_ROOT);\n\to = o.concat(CTYPE_DEFAULTS);\n\n\t/* only write first instance */\n\tvar f1 = function(w) {\n\t\tif(ct[w] && ct[w].length > 0) {\n\t\t\tv = ct[w][0];\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType || 'xlsx']\n\t\t\t}));\n\t\t}\n\t};\n\n\t/* book type-specific */\n\tvar f2 = function(w) {\n\t\t(ct[w]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType || 'xlsx']\n\t\t\t}));\n\t\t});\n\t};\n\n\t/* standard type */\n\tvar f3 = function(t) {\n\t\t(ct[t]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': type2ct[t][0]\n\t\t\t}));\n\t\t});\n\t};\n\n\tf1('workbooks');\n\tf2('sheets');\n\tf2('charts');\n\tf3('themes');\n\t['strs', 'styles'].forEach(f1);\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\n\tf3('vba');\n\tf3('comments');\n\tf3('drawings');\n\tif(o.length>2){ o[o.length] = ('</Types>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 9.3 Relationships */\nvar RELS = ({\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tHLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",\n\tVML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",\n\tXPATH: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",\n\tXMISS: \"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",\n\tXLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink\",\n\tCXML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml\",\n\tCXMLP: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps\",\n\tVBA: \"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"\n});\n\n/* 9.3.3 Representing Relationships */\nfunction get_rels_path(file) {\n\tvar n = file.lastIndexOf(\"/\");\n\treturn file.slice(0,n+1) + '_rels/' + file.slice(n+1) + \".rels\";\n}\n\nfunction parse_rels(data, currentFilePath) {\n\tvar rels = {\"!id\":{}};\n\tif (!data) return rels;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar hash = {};\n\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\t/* 9.3.2.2 OPC_Relationships */\n\t\tif (y[0] === '<Relationship') {\n\t\t\tvar rel = {}; rel.Type = y.Type; rel.Target = y.Target; rel.Id = y.Id; rel.TargetMode = y.TargetMode;\n\t\t\tvar canonictarget = y.TargetMode === 'External' ? y.Target : resolve_path(y.Target, currentFilePath);\n\t\t\trels[canonictarget] = rel;\n\t\t\thash[y.Id] = rel;\n\t\t}\n\t});\n\trels[\"!id\"] = hash;\n\treturn rels;\n}\n\nXMLNS.RELS = 'http://schemas.openxmlformats.org/package/2006/relationships';\n\nvar RELS_ROOT = writextag('Relationships', null, {\n\t//'xmlns:ns0': XMLNS.RELS,\n\t'xmlns': XMLNS.RELS\n});\n\n/* TODO */\nfunction write_rels(rels) {\n\tvar o = [XML_HEADER, RELS_ROOT];\n\tkeys(rels['!id']).forEach(function(rid) {\n\t\to[o.length] = (writextag('Relationship', null, rels['!id'][rid]));\n\t});\n\tif(o.length>2){ o[o.length] = ('</Relationships>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\nvar RELS_EXTERN = [RELS.HLINK, RELS.XPATH, RELS.XMISS];\nfunction add_rels(rels, rId, f, type, relobj, targetmode) {\n\tif(!relobj) relobj = {};\n\tif(!rels['!id']) rels['!id'] = {};\n\tif(rId < 0) for(rId = 1; rels['!id']['rId' + rId]; ++rId){/* empty */}\n\trelobj.Id = 'rId' + rId;\n\trelobj.Type = type;\n\trelobj.Target = f;\n\tif(targetmode) relobj.TargetMode = targetmode;\n\telse if(RELS_EXTERN.indexOf(relobj.Type) > -1) relobj.TargetMode = \"External\";\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\n\trels['!id'][relobj.Id] = relobj;\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\n\treturn rId;\n}\n/* Open Document Format for Office Applications (OpenDocument) Version 1.2 */\n/* Part 3 Section 4 Manifest File */\nvar CT_ODS = \"application/vnd.oasis.opendocument.spreadsheet\";\nfunction parse_manifest(d, opts) {\n\tvar str = xlml_normalize(d);\n\tvar Rn;\n\tvar FEtag;\n\twhile((Rn = xlmlregex.exec(str))) switch(Rn[3]) {\n\t\tcase 'manifest': break; // 4.2 <manifest:manifest>\n\t\tcase 'file-entry': // 4.3 <manifest:file-entry>\n\t\t\tFEtag = parsexmltag(Rn[0], false);\n\t\t\tif(FEtag.path == '/' && FEtag.type !== CT_ODS) throw new Error(\"This OpenDocument is not a spreadsheet\");\n\t\t\tbreak;\n\t\tcase 'encryption-data': // 4.4 <manifest:encryption-data>\n\t\tcase 'algorithm': // 4.5 <manifest:algorithm>\n\t\tcase 'start-key-generation': // 4.6 <manifest:start-key-generation>\n\t\tcase 'key-derivation': // 4.7 <manifest:key-derivation>\n\t\t\tthrow new Error(\"Unsupported ODS Encryption\");\n\t\tdefault: if(opts && opts.WTF) throw Rn;\n\t}\n}\n\nfunction write_manifest(manifest) {\n\tvar o = [XML_HEADER];\n\to.push('<manifest:manifest xmlns:manifest=\"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0\" manifest:version=\"1.2\">\\n');\n\to.push(' <manifest:file-entry manifest:full-path=\"/\" manifest:version=\"1.2\" manifest:media-type=\"application/vnd.oasis.opendocument.spreadsheet\"/>\\n');\n\tfor(var i = 0; i < manifest.length; ++i) o.push(' <manifest:file-entry manifest:full-path=\"' + manifest[i][0] + '\" manifest:media-type=\"' + manifest[i][1] + '\"/>\\n');\n\to.push('</manifest:manifest>');\n\treturn o.join(\"\");\n}\n\n/* Part 3 Section 6 Metadata Manifest File */\nfunction write_rdf_type(file, res, tag) {\n\treturn [\n\t\t' <rdf:Description rdf:about=\"' + file + '\">\\n',\n\t\t' <rdf:type rdf:resource=\"http://docs.oasis-open.org/ns/office/1.2/meta/' + (tag || \"odf\") + '#' + res + '\"/>\\n',\n\t\t' </rdf:Description>\\n'\n\t].join(\"\");\n}\nfunction write_rdf_has(base, file) {\n\treturn [\n\t\t' <rdf:Description rdf:about=\"' + base + '\">\\n',\n\t\t' <ns0:hasPart xmlns:ns0=\"http://docs.oasis-open.org/ns/office/1.2/meta/pkg#\" rdf:resource=\"' + file + '\"/>\\n',\n\t\t' </rdf:Description>\\n'\n\t].join(\"\");\n}\nfunction write_rdf(rdf) {\n\tvar o = [XML_HEADER];\n\to.push('<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\\n');\n\tfor(var i = 0; i != rdf.length; ++i) {\n\t\to.push(write_rdf_type(rdf[i][0], rdf[i][1]));\n\t\to.push(write_rdf_has(\"\",rdf[i][0]));\n\t}\n\to.push(write_rdf_type(\"\",\"Document\", \"pkg\"));\n\to.push('</rdf:RDF>');\n\treturn o.join(\"\");\n}\n/* TODO: pull properties */\nvar write_meta_ods = (function() {\n\tvar payload = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><office:document-meta xmlns:office=\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\" xmlns:meta=\"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" office:version=\"1.2\"><office:meta><meta:generator>Sheet' + 'JS ' + XLSX.version + '</meta:generator></office:meta></office:document-meta>';\n\treturn function wmo() {\n\t\treturn payload;\n\t};\n})();\n\n/* ECMA-376 Part II 11.1 Core Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar CORE_PROPS = [\n\t[\"cp:category\", \"Category\"],\n\t[\"cp:contentStatus\", \"ContentStatus\"],\n\t[\"cp:keywords\", \"Keywords\"],\n\t[\"cp:lastModifiedBy\", \"LastAuthor\"],\n\t[\"cp:lastPrinted\", \"LastPrinted\"],\n\t[\"cp:revision\", \"RevNumber\"],\n\t[\"cp:version\", \"Version\"],\n\t[\"dc:creator\", \"Author\"],\n\t[\"dc:description\", \"Comments\"],\n\t[\"dc:identifier\", \"Identifier\"],\n\t[\"dc:language\", \"Language\"],\n\t[\"dc:subject\", \"Subject\"],\n\t[\"dc:title\", \"Title\"],\n\t[\"dcterms:created\", \"CreatedDate\", 'date'],\n\t[\"dcterms:modified\", \"ModifiedDate\", 'date']\n];\n\nXMLNS.CORE_PROPS = \"http://schemas.openxmlformats.org/package/2006/metadata/core-properties\";\nRELS.CORE_PROPS = 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties';\n\nvar CORE_PROPS_REGEX = (function() {\n\tvar r = new Array(CORE_PROPS.length);\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar g = \"(?:\"+ f[0].slice(0,f[0].indexOf(\":\")) +\":)\"+ f[0].slice(f[0].indexOf(\":\")+1);\n\t\tr[i] = new RegExp(\"<\" + g + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + g + \">\");\n\t}\n\treturn r;\n})();\n\nfunction parse_core_props(data) {\n\tvar p = {};\n\tdata = utf8read(data);\n\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i], cur = data.match(CORE_PROPS_REGEX[i]);\n\t\tif(cur != null && cur.length > 0) p[f[1]] = unescapexml(cur[1]);\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = parseDate(p[f[1]]);\n\t}\n\n\treturn p;\n}\n\nvar CORE_PROPS_XML_ROOT = writextag('cp:coreProperties', null, {\n\t//'xmlns': XMLNS.CORE_PROPS,\n\t'xmlns:cp': XMLNS.CORE_PROPS,\n\t'xmlns:dc': XMLNS.dc,\n\t'xmlns:dcterms': XMLNS.dcterms,\n\t'xmlns:dcmitype': XMLNS.dcmitype,\n\t'xmlns:xsi': XMLNS.xsi\n});\n\nfunction cp_doit(f, g, h, o, p) {\n\tif(p[f] != null || g == null || g === \"\") return;\n\tp[f] = g;\n\tg = escapexml(g);\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\n}\n\nfunction write_core_props(cp, _opts) {\n\tvar opts = _opts || {};\n\tvar o = [XML_HEADER, CORE_PROPS_XML_ROOT], p = {};\n\tif(!cp && !opts.Props) return o.join(\"\");\n\n\tif(cp) {\n\t\tif(cp.CreatedDate != null) cp_doit(\"dcterms:created\", typeof cp.CreatedDate === \"string\" ? cp.CreatedDate : write_w3cdtf(cp.CreatedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t\tif(cp.ModifiedDate != null) cp_doit(\"dcterms:modified\", typeof cp.ModifiedDate === \"string\" ? cp.ModifiedDate : write_w3cdtf(cp.ModifiedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t}\n\n\tfor(var i = 0; i != CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar v = opts.Props && opts.Props[f[1]] != null ? opts.Props[f[1]] : cp ? cp[f[1]] : null;\n\t\tif(v === true) v = \"1\";\n\t\telse if(v === false) v = \"0\";\n\t\telse if(typeof v == \"number\") v = String(v);\n\t\tif(v != null) cp_doit(f[0], v, null, o, p);\n\t}\n\tif(o.length>2){ o[o.length] = ('</cp:coreProperties>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.3 Extended File Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar EXT_PROPS = [\n\t[\"Application\", \"Application\", \"string\"],\n\t[\"AppVersion\", \"AppVersion\", \"string\"],\n\t[\"Company\", \"Company\", \"string\"],\n\t[\"DocSecurity\", \"DocSecurity\", \"string\"],\n\t[\"Manager\", \"Manager\", \"string\"],\n\t[\"HyperlinksChanged\", \"HyperlinksChanged\", \"bool\"],\n\t[\"SharedDoc\", \"SharedDoc\", \"bool\"],\n\t[\"LinksUpToDate\", \"LinksUpToDate\", \"bool\"],\n\t[\"ScaleCrop\", \"ScaleCrop\", \"bool\"],\n\t[\"HeadingPairs\", \"HeadingPairs\", \"raw\"],\n\t[\"TitlesOfParts\", \"TitlesOfParts\", \"raw\"]\n];\n\nXMLNS.EXT_PROPS = \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\";\nRELS.EXT_PROPS = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties';\n\nvar PseudoPropsPairs = [\n\t\"Worksheets\", \"SheetNames\",\n\t\"NamedRanges\", \"DefinedNames\",\n\t\"Chartsheets\", \"ChartNames\"\n];\nfunction load_props_pairs(HP, TOP, props, opts) {\n\tvar v = [];\n\tif(typeof HP == \"string\") v = parseVector(HP, opts);\n\telse for(var j = 0; j < HP.length; ++j) v = v.concat(HP[j].map(function(hp) { return {v:hp}; }));\n\tvar parts = (typeof TOP == \"string\") ? parseVector(TOP, opts).map(function (x) { return x.v; }) : TOP;\n\tvar idx = 0, len = 0;\n\tif(parts.length > 0) for(var i = 0; i !== v.length; i += 2) {\n\t\tlen = +(v[i+1].v);\n\t\tswitch(v[i].v) {\n\t\t\tcase \"Worksheets\":\n\t\t\tcase \"工作表\":\n\t\t\tcase \"Листы\":\n\t\t\tcase \"أوراق العمل\":\n\t\t\tcase \"ワークシート\":\n\t\t\tcase \"גליונות עבודה\":\n\t\t\tcase \"Arbeitsblätter\":\n\t\t\tcase \"Çalışma Sayfaları\":\n\t\t\tcase \"Feuilles de calcul\":\n\t\t\tcase \"Fogli di lavoro\":\n\t\t\tcase \"Folhas de cálculo\":\n\t\t\tcase \"Planilhas\":\n\t\t\tcase \"Regneark\":\n\t\t\tcase \"Hojas de cálculo\":\n\t\t\tcase \"Werkbladen\":\n\t\t\t\tprops.Worksheets = len;\n\t\t\t\tprops.SheetNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Named Ranges\":\n\t\t\tcase \"Rangos con nombre\":\n\t\t\tcase \"名前付き一覧\":\n\t\t\tcase \"Benannte Bereiche\":\n\t\t\tcase \"Navngivne områder\":\n\t\t\t\tprops.NamedRanges = len;\n\t\t\t\tprops.DefinedNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Charts\":\n\t\t\tcase \"Diagramme\":\n\t\t\t\tprops.Chartsheets = len;\n\t\t\t\tprops.ChartNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\t\t}\n\t\tidx += len;\n\t}\n}\n\nfunction parse_ext_props(data, p, opts) {\n\tvar q = {}; if(!p) p = {};\n\tdata = utf8read(data);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tvar xml = (data.match(matchtag(f[0]))||[])[1];\n\t\tswitch(f[2]) {\n\t\t\tcase \"string\": if(xml) p[f[1]] = unescapexml(xml); break;\n\t\t\tcase \"bool\": p[f[1]] = xml === \"true\"; break;\n\t\t\tcase \"raw\":\n\t\t\t\tvar cur = data.match(new RegExp(\"<\" + f[0] + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + f[0] + \">\"));\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif(q.HeadingPairs && q.TitlesOfParts) load_props_pairs(q.HeadingPairs, q.TitlesOfParts, p, opts);\n\n\treturn p;\n}\n\nvar EXT_PROPS_XML_ROOT = writextag('Properties', null, {\n\t'xmlns': XMLNS.EXT_PROPS,\n\t'xmlns:vt': XMLNS.vt\n});\n\nfunction write_ext_props(cp) {\n\tvar o = [], W = writextag;\n\tif(!cp) cp = {};\n\tcp.Application = \"SheetJS\";\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (EXT_PROPS_XML_ROOT);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tif(cp[f[1]] === undefined) return;\n\t\tvar v;\n\t\tswitch(f[2]) {\n\t\t\tcase 'string': v = escapexml(String(cp[f[1]])); break;\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\n\t\t}\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\n\t});\n\n\t/* TODO: HeadingPairs, TitlesOfParts */\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', '<vt:lpstr>Worksheets</vt:lpstr>')+W('vt:variant', W('vt:i4', String(cp.Worksheets))), {size:2, baseType:\"variant\"})));\n\to[o.length] = (W('TitlesOfParts', W('vt:vector', cp.SheetNames.map(function(s) { return \"<vt:lpstr>\" + escapexml(s) + \"</vt:lpstr>\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\n\tif(o.length>2){ o[o.length] = ('</Properties>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.2 Custom File Properties Part */\nXMLNS.CUST_PROPS = \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\";\nRELS.CUST_PROPS = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties';\n\nvar custregex = /<[^>]+>[^<]*/g;\nfunction parse_cust_props(data, opts) {\n\tvar p = {}, name = \"\";\n\tvar m = data.match(custregex);\n\tif(m) for(var i = 0; i != m.length; ++i) {\n\t\tvar x = m[i], y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<Properties': break;\n\t\t\tcase '<property': name = unescapexml(y.name); break;\n\t\t\tcase '</property>': name = null; break;\n\t\t\tdefault: if (x.indexOf('<vt:') === 0) {\n\t\t\t\tvar toks = x.split('>');\n\t\t\t\tvar type = toks[0].slice(4), text = toks[1];\n\t\t\t\t/* 22.4.2.32 (CT_Variant). Omit the binary types from 22.4 (Variant Types) */\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase 'lpstr': case 'bstr': case 'lpwstr':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\tp[name] = parsexmlbool(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'i1': case 'i2': case 'i4': case 'i8': case 'int': case 'uint':\n\t\t\t\t\t\tp[name] = parseInt(text, 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'r4': case 'r8': case 'decimal':\n\t\t\t\t\t\tp[name] = parseFloat(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'filetime': case 'date':\n\t\t\t\t\t\tp[name] = parseDate(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'cy': case 'error':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif(type.slice(-1) == '/') break;\n\t\t\t\t\t\tif(opts.WTF && typeof console !== 'undefined') console.warn('Unexpected', x, type, toks);\n\t\t\t\t}\n\t\t\t} else if(x.slice(0,2) === \"</\") {/* empty */\n\t\t\t} else if(opts.WTF) throw new Error(x);\n\t\t}\n\t}\n\treturn p;\n}\n\nvar CUST_PROPS_XML_ROOT = writextag('Properties', null, {\n\t'xmlns': XMLNS.CUST_PROPS,\n\t'xmlns:vt': XMLNS.vt\n});\n\nfunction write_cust_props(cp) {\n\tvar o = [XML_HEADER, CUST_PROPS_XML_ROOT];\n\tif(!cp) return o.join(\"\");\n\tvar pid = 1;\n\tkeys(cp).forEach(function custprop(k) { ++pid;\n\t\to[o.length] = (writextag('property', write_vt(cp[k], true), {\n\t\t\t'fmtid': '{D5CDD505-2E9C-101B-9397-08002B2CF9AE}',\n\t\t\t'pid': pid,\n\t\t\t'name': escapexml(k)\n\t\t}));\n\t});\n\tif(o.length>2){ o[o.length] = '</Properties>'; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* Common Name -> XLML Name */\nvar XLMLDocPropsMap = {\n\tTitle: 'Title',\n\tSubject: 'Subject',\n\tAuthor: 'Author',\n\tKeywords: 'Keywords',\n\tComments: 'Description',\n\tLastAuthor: 'LastAuthor',\n\tRevNumber: 'Revision',\n\tApplication: 'AppName',\n\t/* TotalTime: 'TotalTime', */\n\tLastPrinted: 'LastPrinted',\n\tCreatedDate: 'Created',\n\tModifiedDate: 'LastSaved',\n\t/* Pages */\n\t/* Words */\n\t/* Characters */\n\tCategory: 'Category',\n\t/* PresentationFormat */\n\tManager: 'Manager',\n\tCompany: 'Company',\n\t/* Guid */\n\t/* HyperlinkBase */\n\t/* Bytes */\n\t/* Lines */\n\t/* Paragraphs */\n\t/* CharactersWithSpaces */\n\tAppVersion: 'Version',\n\n\tContentStatus: 'ContentStatus', /* NOTE: missing from schema */\n\tIdentifier: 'Identifier', /* NOTE: missing from schema */\n\tLanguage: 'Language' /* NOTE: missing from schema */\n};\nvar evert_XLMLDPM = evert(XLMLDocPropsMap);\n\nfunction xlml_set_prop(Props, tag, val) {\n\ttag = evert_XLMLDPM[tag] || tag;\n\tProps[tag] = val;\n}\n\nfunction xlml_write_docprops(Props, opts) {\n\tvar o = [];\n\tkeys(XLMLDocPropsMap).map(function(m) {\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(CORE_PROPS[i][1] == m) return CORE_PROPS[i];\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(EXT_PROPS[i][1] == m) return EXT_PROPS[i];\n\t\tthrow m;\n\t}).forEach(function(p) {\n\t\tif(Props[p[1]] == null) return;\n\t\tvar m = opts && opts.Props && opts.Props[p[1]] != null ? opts.Props[p[1]] : Props[p[1]];\n\t\tswitch(p[2]) {\n\t\t\tcase 'date': m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"Z\"); break;\n\t\t}\n\t\tif(typeof m == 'number') m = String(m);\n\t\telse if(m === true || m === false) { m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"\");\n\t\to.push(writetag(XLMLDocPropsMap[p[1]] || p[1], m));\n\t});\n\treturn writextag('DocumentProperties', o.join(\"\"), {xmlns:XLMLNS.o });\n}\nfunction xlml_write_custprops(Props, Custprops) {\n\tvar BLACKLIST = [\"Worksheets\",\"SheetNames\"];\n\tvar T = 'CustomDocumentProperties';\n\tvar o = [];\n\tif(Props) keys(Props).forEach(function(k) {\nif(!Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(k == CORE_PROPS[i][1]) return;\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(k == EXT_PROPS[i][1]) return;\n\t\tfor(i = 0; i < BLACKLIST.length; ++i) if(k == BLACKLIST[i]) return;\n\n\t\tvar m = Props[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\tif(Custprops) keys(Custprops).forEach(function(k) {\nif(!Object.prototype.hasOwnProperty.call(Custprops, k)) return;\n\t\tif(Props && Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tvar m = Custprops[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) { t = \"dateTime.tz\"; m = m.toISOString(); }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\treturn '<' + T + ' xmlns=\"' + XLMLNS.o + '\">' + o.join(\"\") + '</' + T + '>';\n}\n/* [MS-DTYP] 2.3.3 FILETIME */\n/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */\n/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */\nfunction parse_FILETIME(blob) {\n\tvar dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4);\n\treturn new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\\.000/,\"\");\n}\nfunction write_FILETIME(time) {\n\tvar date = (typeof time == \"string\") ? new Date(Date.parse(time)) : time;\n\tvar t = date.getTime() / 1000 + 11644473600;\n\tvar l = t % Math.pow(2,32), h = (t - l) / Math.pow(2,32);\n\tl *= 1e7; h *= 1e7;\n\tvar w = (l / Math.pow(2,32)) | 0;\n\tif(w > 0) { l = l % Math.pow(2,32); h += w; }\n\tvar o = new_buf(8); o.write_shift(4, l); o.write_shift(4, h); return o;\n}\n\n/* [MS-OSHARED] 2.3.3.1.4 Lpstr */\nfunction parse_lpstr(blob, type, pad) {\n\tvar start = blob.l;\n\tvar str = blob.read_shift(0, 'lpstr-cp');\n\tif(pad) while((blob.l - start) & 3) ++blob.l;\n\treturn str;\n}\n\n/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */\nfunction parse_lpwstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpwstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.11 VtString */\n/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */\nfunction parse_VtStringBase(blob, stringType, pad) {\n\tif(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob);\n\treturn parse_lpstr(blob, stringType, pad);\n}\n\nfunction parse_VtString(blob, t, pad) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); }\nfunction parse_VtUnalignedString(blob, t) { if(!t) throw new Error(\"VtUnalignedString must have positive length\"); return parse_VtStringBase(blob, t, 0); }\n\n/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */\nfunction parse_VtVecUnalignedLpstrValue(blob) {\n\tvar length = blob.read_shift(4);\n\tvar ret = [];\n\tfor(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr-cp').replace(chr0,'');\n\treturn ret;\n}\n\n/* [MS-OSHARED] 2.3.3.1.10 VtVecUnalignedLpstr */\nfunction parse_VtVecUnalignedLpstr(blob) {\n\treturn parse_VtVecUnalignedLpstrValue(blob);\n}\n\n/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */\nfunction parse_VtHeadingPair(blob) {\n\tvar headingString = parse_TypedPropertyValue(blob, VT_USTR);\n\tvar headerParts = parse_TypedPropertyValue(blob, VT_I4);\n\treturn [headingString, headerParts];\n}\n\n/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */\nfunction parse_VtVecHeadingPairValue(blob) {\n\tvar cElements = blob.read_shift(4);\n\tvar out = [];\n\tfor(var i = 0; i != cElements / 2; ++i) out.push(parse_VtHeadingPair(blob));\n\treturn out;\n}\n\n/* [MS-OSHARED] 2.3.3.1.15 VtVecHeadingPair */\nfunction parse_VtVecHeadingPair(blob) {\n\t// NOTE: When invoked, wType & padding were already consumed\n\treturn parse_VtVecHeadingPairValue(blob);\n}\n\n/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */\nfunction parse_dictionary(blob,CodePage) {\n\tvar cnt = blob.read_shift(4);\n\tvar dict = ({});\n\tfor(var j = 0; j != cnt; ++j) {\n\t\tvar pid = blob.read_shift(4);\n\t\tvar len = blob.read_shift(4);\n\t\tdict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!');\n\t\tif(CodePage === 0x4B0 && (len % 2)) blob.l += 2;\n\t}\n\tif(blob.l & 3) blob.l = (blob.l>>2+1)<<2;\n\treturn dict;\n}\n\n/* [MS-OLEPS] 2.9 BLOB */\nfunction parse_BLOB(blob) {\n\tvar size = blob.read_shift(4);\n\tvar bytes = blob.slice(blob.l,blob.l+size);\n\tblob.l += size;\n\tif((size & 3) > 0) blob.l += (4 - (size & 3)) & 3;\n\treturn bytes;\n}\n\n/* [MS-OLEPS] 2.11 ClipboardData */\nfunction parse_ClipboardData(blob) {\n\t// TODO\n\tvar o = {};\n\to.Size = blob.read_shift(4);\n\t//o.Format = blob.read_shift(4);\n\tblob.l += o.Size + 3 - (o.Size - 1) % 4;\n\treturn o;\n}\n\n/* [MS-OLEPS] 2.15 TypedPropertyValue */\nfunction parse_TypedPropertyValue(blob, type, _opts) {\n\tvar t = blob.read_shift(2), ret, opts = _opts||{};\n\tblob.l += 2;\n\tif(type !== VT_VARIANT)\n\tif(t !== type && VT_CUSTOM.indexOf(type)===-1) throw new Error('Expected type ' + type + ' saw ' + t);\n\tswitch(type === VT_VARIANT ? t : type) {\n\t\tcase 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret;\n\t\tcase 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret;\n\t\tcase 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0;\n\t\tcase 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret;\n\t\tcase 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,'');\n\t\tcase 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob);\n\t\tcase 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob);\n\t\tcase 0x41 /*VT_BLOB*/: return parse_BLOB(blob);\n\t\tcase 0x47 /*VT_CF*/: return parse_ClipboardData(blob);\n\t\tcase 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw).replace(chr0,'');\n\t\tcase 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t/*, 4*/).replace(chr0,'');\n\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPair(blob);\n\t\tcase 0x101E /*VT_LPSTR*/: return parse_VtVecUnalignedLpstr(blob);\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + t);\n\t}\n}\nfunction write_TypedPropertyValue(type, value) {\n\tvar o = new_buf(4), p = new_buf(4);\n\to.write_shift(4, type == 0x50 ? 0x1F : type);\n\tswitch(type) {\n\t\tcase 0x03 /*VT_I4*/: p.write_shift(-4, value); break;\n\t\tcase 0x05 /*VT_I4*/: p = new_buf(8); p.write_shift(8, value, 'f'); break;\n\t\tcase 0x0B /*VT_BOOL*/: p.write_shift(4, value ? 0x01 : 0x00); break;\n\t\tcase 0x40 /*VT_FILETIME*/: p = write_FILETIME(value); break;\n\t\tcase 0x1F /*VT_LPWSTR*/:\n\t\tcase 0x50 /*VT_STRING*/:\np = new_buf(4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tp.write_shift(4, value.length + 1);\n\t\t\tp.write_shift(0, value, \"dbcs\");\n\t\t\twhile(p.l != p.length) p.write_shift(1, 0);\n\t\t\tbreak;\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + value);\n\t}\n\treturn bconcat([o, p]);\n}\n\n/* [MS-OLEPS] 2.20 PropertySet */\nfunction parse_PropertySet(blob, PIDSI) {\n\tvar start_addr = blob.l;\n\tvar size = blob.read_shift(4);\n\tvar NumProps = blob.read_shift(4);\n\tvar Props = [], i = 0;\n\tvar CodePage = 0;\n\tvar Dictionary = -1, DictObj = ({});\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tvar PropID = blob.read_shift(4);\n\t\tvar Offset = blob.read_shift(4);\n\t\tProps[i] = [PropID, Offset + start_addr];\n\t}\n\tProps.sort(function(x,y) { return x[1] - y[1]; });\n\tvar PropH = {};\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tif(blob.l !== Props[i][1]) {\n\t\t\tvar fail = true;\n\t\t\tif(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) {\n\t\t\t\tcase 0x02 /*VT_I2*/: if(blob.l+2 === Props[i][1]) { blob.l+=2; fail = false; } break;\n\t\t\t\tcase 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t}\n\t\t\tif((!PIDSI||i==0) && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; }\n\t\t\tif(fail) throw new Error(\"Read Error: Expected address \" + Props[i][1] + ' at ' + blob.l + ' :' + i);\n\t\t}\n\t\tif(PIDSI) {\n\t\t\tvar piddsi = PIDSI[Props[i][0]];\n\t\t\tPropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true});\n\t\t\tif(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + \".\" + (\"0000\" + String(PropH[piddsi.n] & 0xFFFF)).slice(-4);\n\t\t\tif(piddsi.n == \"CodePage\") switch(PropH[piddsi.n]) {\n\t\t\t\tcase 0: PropH[piddsi.n] = 1252;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 874:\n\t\t\t\tcase 932:\n\t\t\t\tcase 936:\n\t\t\t\tcase 949:\n\t\t\t\tcase 950:\n\t\t\t\tcase 1250:\n\t\t\t\tcase 1251:\n\t\t\t\tcase 1253:\n\t\t\t\tcase 1254:\n\t\t\t\tcase 1255:\n\t\t\t\tcase 1256:\n\t\t\t\tcase 1257:\n\t\t\t\tcase 1258:\n\t\t\t\tcase 10000:\n\t\t\t\tcase 1200:\n\t\t\t\tcase 1201:\n\t\t\t\tcase 1252:\n\t\t\t\tcase 65000: case -536:\n\t\t\t\tcase 65001: case -535:\n\t\t\t\t\tset_cp(CodePage = (PropH[piddsi.n]>>>0) & 0xFFFF); break;\n\t\t\t\tdefault: throw new Error(\"Unsupported CodePage: \" + PropH[piddsi.n]);\n\t\t\t}\n\t\t} else {\n\t\t\tif(Props[i][0] === 0x1) {\n\t\t\t\tCodePage = PropH.CodePage = (parse_TypedPropertyValue(blob, VT_I2));\n\t\t\t\tset_cp(CodePage);\n\t\t\t\tif(Dictionary !== -1) {\n\t\t\t\t\tvar oldpos = blob.l;\n\t\t\t\t\tblob.l = Props[Dictionary][1];\n\t\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t\t\tblob.l = oldpos;\n\t\t\t\t}\n\t\t\t} else if(Props[i][0] === 0) {\n\t\t\t\tif(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; }\n\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t} else {\n\t\t\t\tvar name = DictObj[Props[i][0]];\n\t\t\t\tvar val;\n\t\t\t\t/* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */\n\t\t\t\tswitch(blob[blob.l]) {\n\t\t\t\t\tcase 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break;\n\t\t\t\t\tcase 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break;\n\t\t\t\t\tcase 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break;\n\t\t\t\t\tcase 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break;\n\t\t\t\t\tcase 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break;\n\t\t\t\t\tcase 0x40 /*VT_FILETIME*/: blob.l += 4; val = parseDate(parse_FILETIME(blob)); break;\n\t\t\t\t\tdefault: throw new Error(\"unparsed value: \" + blob[blob.l]);\n\t\t\t\t}\n\t\t\t\tPropH[name] = val;\n\t\t\t}\n\t\t}\n\t}\n\tblob.l = start_addr + size; /* step ahead to skip padding */\n\treturn PropH;\n}\nvar XLSPSSkip = [ \"CodePage\", \"Thumbnail\", \"_PID_LINKBASE\", \"_PID_HLINKS\", \"SystemIdentifier\", \"FMTID\" ].concat(PseudoPropsPairs);\nfunction guess_property_type(val) {\n\tswitch(typeof val) {\n\t\tcase \"boolean\": return 0x0B;\n\t\tcase \"number\": return ((val|0)==val) ? 0x03 : 0x05;\n\t\tcase \"string\": return 0x1F;\n\t\tcase \"object\": if(val instanceof Date) return 0x40; break;\n\t}\n\treturn -1;\n}\nfunction write_PropertySet(entries, RE, PIDSI) {\n\tvar hdr = new_buf(8), piao = [], prop = [];\n\tvar sz = 8, i = 0;\n\n\tvar pr = new_buf(8), pio = new_buf(8);\n\tpr.write_shift(4, 0x0002);\n\tpr.write_shift(4, 0x04B0);\n\tpio.write_shift(4, 0x0001);\n\tprop.push(pr); piao.push(pio);\n\tsz += 8 + pr.length;\n\n\tif(!RE) {\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, 0);\n\t\tpiao.unshift(pio);\n\n\t\tvar bufs = [new_buf(4)];\n\t\tbufs[0].write_shift(4, entries.length);\n\t\tfor(i = 0; i < entries.length; ++i) {\n\t\t\tvar value = entries[i][0];\n\t\t\tpr = new_buf(4 + 4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tpr.write_shift(4, i+2);\n\t\t\tpr.write_shift(4, value.length + 1);\n\t\t\tpr.write_shift(0, value, \"dbcs\");\n\t\t\twhile(pr.l != pr.length) pr.write_shift(1, 0);\n\t\t\tbufs.push(pr);\n\t\t}\n\t\tpr = bconcat(bufs);\n\t\tprop.unshift(pr);\n\t\tsz += 8 + pr.length;\n\t}\n\n\tfor(i = 0; i < entries.length; ++i) {\n\t\tif(RE && !RE[entries[i][0]]) continue;\n\t\tif(XLSPSSkip.indexOf(entries[i][0]) > -1) continue;\n\t\tif(entries[i][1] == null) continue;\n\n\t\tvar val = entries[i][1], idx = 0;\n\t\tif(RE) {\n\t\t\tidx = +RE[entries[i][0]];\n\t\t\tvar pinfo = (PIDSI)[idx];\n\t\t\tif(pinfo.p == \"version\" && typeof val == \"string\") {\nvar arr = val.split(\".\");\n\t\t\t\tval = ((+arr[0])<<16) + ((+arr[1])||0);\n\t\t\t}\n\t\t\tpr = write_TypedPropertyValue(pinfo.t, val);\n\t\t} else {\n\t\t\tvar T = guess_property_type(val);\n\t\t\tif(T == -1) { T = 0x1F; val = String(val); }\n\t\t\tpr = write_TypedPropertyValue(T, val);\n\t\t}\n\t\tprop.push(pr);\n\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, !RE ? 2+i : idx);\n\t\tpiao.push(pio);\n\n\t\tsz += 8 + pr.length;\n\t}\n\n\tvar w = 8 * (prop.length + 1);\n\tfor(i = 0; i < prop.length; ++i) { piao[i].write_shift(4, w); w += prop[i].length; }\n\thdr.write_shift(4, sz);\n\thdr.write_shift(4, prop.length);\n\treturn bconcat([hdr].concat(piao).concat(prop));\n}\n\n/* [MS-OLEPS] 2.21 PropertySetStream */\nfunction parse_PropertySetStream(file, PIDSI, clsid) {\n\tvar blob = file.content;\n\tif(!blob) return ({});\n\tprep_blob(blob, 0);\n\n\tvar NumSets, FMTID0, FMTID1, Offset0, Offset1 = 0;\n\tblob.chk('feff', 'Byte Order: ');\n\n\t/*var vers = */blob.read_shift(2); // TODO: check version\n\tvar SystemIdentifier = blob.read_shift(4);\n\tvar CLSID = blob.read_shift(16);\n\tif(CLSID !== CFB.utils.consts.HEADER_CLSID && CLSID !== clsid) throw new Error(\"Bad PropertySet CLSID \" + CLSID);\n\tNumSets = blob.read_shift(4);\n\tif(NumSets !== 1 && NumSets !== 2) throw new Error(\"Unrecognized #Sets: \" + NumSets);\n\tFMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4);\n\n\tif(NumSets === 1 && Offset0 !== blob.l) throw new Error(\"Length mismatch: \" + Offset0 + \" !== \" + blob.l);\n\telse if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); }\n\tvar PSet0 = parse_PropertySet(blob, PIDSI);\n\n\tvar rval = ({ SystemIdentifier: SystemIdentifier });\n\tfor(var y in PSet0) rval[y] = PSet0[y];\n\t//rval.blob = blob;\n\trval.FMTID = FMTID0;\n\t//rval.PSet0 = PSet0;\n\tif(NumSets === 1) return rval;\n\tif(Offset1 - blob.l == 2) blob.l += 2;\n\tif(blob.l !== Offset1) throw new Error(\"Length mismatch 2: \" + blob.l + \" !== \" + Offset1);\n\tvar PSet1;\n\ttry { PSet1 = parse_PropertySet(blob, null); } catch(e) {/* empty */}\n\tfor(y in PSet1) rval[y] = PSet1[y];\n\trval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1\n\treturn rval;\n}\nfunction write_PropertySetStream(entries, clsid, RE, PIDSI, entries2, clsid2) {\n\tvar hdr = new_buf(entries2 ? 68 : 48);\n\tvar bufs = [hdr];\n\thdr.write_shift(2, 0xFFFE);\n\thdr.write_shift(2, 0x0000); /* TODO: type 1 props */\n\thdr.write_shift(4, 0x32363237);\n\thdr.write_shift(16, CFB.utils.consts.HEADER_CLSID, \"hex\");\n\thdr.write_shift(4, (entries2 ? 2 : 1));\n\thdr.write_shift(16, clsid, \"hex\");\n\thdr.write_shift(4, (entries2 ? 68 : 48));\n\tvar ps0 = write_PropertySet(entries, RE, PIDSI);\n\tbufs.push(ps0);\n\n\tif(entries2) {\n\t\tvar ps1 = write_PropertySet(entries2, null, null);\n\t\thdr.write_shift(16, clsid2, \"hex\");\n\t\thdr.write_shift(4, 68 + ps0.length);\n\t\tbufs.push(ps1);\n\t}\n\treturn bconcat(bufs);\n}\n\nfunction parsenoop2(blob, length) { blob.read_shift(length); return null; }\nfunction writezeroes(n, o) { if(!o) o=new_buf(n); for(var j=0; j<n; ++j) o.write_shift(1, 0); return o; }\n\nfunction parslurp(blob, length, cb) {\n\tvar arr = [], target = blob.l + length;\n\twhile(blob.l < target) arr.push(cb(blob, target - blob.l));\n\tif(target !== blob.l) throw new Error(\"Slurp error\");\n\treturn arr;\n}\n\nfunction parsebool(blob, length) { return blob.read_shift(length) === 0x1; }\nfunction writebool(v, o) { if(!o) o=new_buf(2); o.write_shift(2, +!!v); return o; }\n\nfunction parseuint16(blob) { return blob.read_shift(2, 'u'); }\nfunction writeuint16(v, o) { if(!o) o=new_buf(2); o.write_shift(2, v); return o; }\nfunction parseuint16a(blob, length) { return parslurp(blob,length,parseuint16);}\n\n/* --- 2.5 Structures --- */\n\n/* [MS-XLS] 2.5.10 Bes (boolean or error) */\nfunction parse_Bes(blob) {\n\tvar v = blob.read_shift(1), t = blob.read_shift(1);\n\treturn t === 0x01 ? v : v === 0x01;\n}\nfunction write_Bes(v, t, o) {\n\tif(!o) o = new_buf(2);\n\to.write_shift(1, +v);\n\to.write_shift(1, ((t == 'e') ? 1 : 0));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.240 ShortXLUnicodeString */\nfunction parse_ShortXLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff >= 12 ? 2 : 1);\n\tvar encoding = 'sbcs-cont';\n\tvar cp = current_codepage;\n\tif(opts && opts.biff >= 8) current_codepage = 1200;\n\tif(!opts || opts.biff == 8 ) {\n\t\tvar fHighByte = blob.read_shift(1);\n\t\tif(fHighByte) { encoding = 'dbcs-cont'; }\n\t} else if(opts.biff == 12) {\n\t\tencoding = 'wstr';\n\t}\n\tif(opts.biff >= 2 && opts.biff <= 5) encoding = 'cpstr';\n\tvar o = cch ? blob.read_shift(cch, encoding) : \"\";\n\tcurrent_codepage = cp;\n\treturn o;\n}\n\n/* 2.5.293 XLUnicodeRichExtendedString */\nfunction parse_XLUnicodeRichExtendedString(blob) {\n\tvar cp = current_codepage;\n\tcurrent_codepage = 1200;\n\tvar cch = blob.read_shift(2), flags = blob.read_shift(1);\n\tvar /*fHighByte = flags & 0x1,*/ fExtSt = flags & 0x4, fRichSt = flags & 0x8;\n\tvar width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs\n\tvar cRun = 0, cbExtRst;\n\tvar z = {};\n\tif(fRichSt) cRun = blob.read_shift(2);\n\tif(fExtSt) cbExtRst = blob.read_shift(4);\n\tvar encoding = width == 2 ? 'dbcs-cont' : 'sbcs-cont';\n\tvar msg = cch === 0 ? \"\" : blob.read_shift(cch, encoding);\n\tif(fRichSt) blob.l += 4 * cRun; //TODO: parse this\n\tif(fExtSt) blob.l += cbExtRst; //TODO: parse this\n\tz.t = msg;\n\tif(!fRichSt) { z.raw = \"<t>\" + z.t + \"</t>\"; z.r = z.t; }\n\tcurrent_codepage = cp;\n\treturn z;\n}\nfunction write_XLUnicodeRichExtendedString(xlstr) {\n\tvar str = (xlstr.t||\"\"), nfmts = 1;\n\n\tvar hdr = new_buf(3 + (nfmts > 1 ? 2 : 0));\n\thdr.write_shift(2, str.length);\n\thdr.write_shift(1, (nfmts > 1 ? 0x08 : 0x00) | 0x01);\n\tif(nfmts > 1) hdr.write_shift(2, nfmts);\n\n\tvar otext = new_buf(2 * str.length);\n\totext.write_shift(2 * str.length, str, 'utf16le');\n\n\tvar out = [hdr, otext];\n\n\treturn bconcat(out);\n}\n\n/* 2.5.296 XLUnicodeStringNoCch */\nfunction parse_XLUnicodeStringNoCch(blob, cch, opts) {\n\tvar retval;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return blob.read_shift(cch, 'cpstr');\n\t\tif(opts.biff >= 12) return blob.read_shift(cch, 'dbcs-cont');\n\t}\n\tvar fHighByte = blob.read_shift(1);\n\tif(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); }\n\telse { retval = blob.read_shift(cch, 'dbcs-cont'); }\n\treturn retval;\n}\n\n/* 2.5.294 XLUnicodeString */\nfunction parse_XLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn parse_XLUnicodeStringNoCch(blob, cch, opts);\n}\n/* BIFF5 override */\nfunction parse_XLUnicodeString2(blob, length, opts) {\n\tif(opts.biff > 5) return parse_XLUnicodeString(blob, length, opts);\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, (opts.biff <= 4 || !blob.lens ) ? 'cpstr' : 'sbcs-cont');\n}\n/* TODO: BIFF5 and lower, codepage awareness */\nfunction write_XLUnicodeString(str, opts, o) {\n\tif(!o) o = new_buf(3 + 2 * str.length);\n\to.write_shift(2, str.length);\n\to.write_shift(1, 1);\n\to.write_shift(31, str, 'utf16le');\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.61 ControlInfo */\nfunction parse_ControlInfo(blob) {\n\tvar flags = blob.read_shift(1);\n\tblob.l++;\n\tvar accel = blob.read_shift(2);\n\tblob.l += 2;\n\treturn [flags, accel];\n}\n\n/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */\nfunction parse_URLMoniker(blob) {\n\tvar len = blob.read_shift(4), start = blob.l;\n\tvar extra = false;\n\tif(len > 24) {\n\t\t/* look ahead */\n\t\tblob.l += len - 24;\n\t\tif(blob.read_shift(16) === \"795881f43b1d7f48af2c825dc4852763\") extra = true;\n\t\tblob.l = start;\n\t}\n\tvar url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,\"\");\n\tif(extra) blob.l += 24;\n\treturn url;\n}\n\n/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */\nfunction parse_FileMoniker(blob) {\n\tblob.l += 2; //var cAnti = blob.read_shift(2);\n\tvar ansiPath = blob.read_shift(0, 'lpstr-ansi');\n\tblob.l += 2; //var endServer = blob.read_shift(2);\n\tif(blob.read_shift(2) != 0xDEAD) throw new Error(\"Bad FileMoniker\");\n\tvar sz = blob.read_shift(4);\n\tif(sz === 0) return ansiPath.replace(/\\\\/g,\"/\");\n\tvar bytes = blob.read_shift(4);\n\tif(blob.read_shift(2) != 3) throw new Error(\"Bad FileMoniker\");\n\tvar unicodePath = blob.read_shift(bytes>>1, 'utf16le').replace(chr0,\"\");\n\treturn unicodePath;\n}\n\n/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */\nfunction parse_HyperlinkMoniker(blob, length) {\n\tvar clsid = blob.read_shift(16); length -= 16;\n\tswitch(clsid) {\n\t\tcase \"e0c9ea79f9bace118c8200aa004ba90b\": return parse_URLMoniker(blob, length);\n\t\tcase \"0303000000000000c000000000000046\": return parse_FileMoniker(blob, length);\n\t\tdefault: throw new Error(\"Unsupported Moniker \" + clsid);\n\t}\n}\n\n/* [MS-OSHARED] 2.3.7.9 HyperlinkString */\nfunction parse_HyperlinkString(blob) {\n\tvar len = blob.read_shift(4);\n\tvar o = len > 0 ? blob.read_shift(len, 'utf16le').replace(chr0, \"\") : \"\";\n\treturn o;\n}\n\n/* [MS-OSHARED] 2.3.7.1 Hyperlink Object */\nfunction parse_Hyperlink(blob, length) {\n\tvar end = blob.l + length;\n\tvar sVer = blob.read_shift(4);\n\tif(sVer !== 2) throw new Error(\"Unrecognized streamVersion: \" + sVer);\n\tvar flags = blob.read_shift(2);\n\tblob.l += 2;\n\tvar displayName, targetFrameName, moniker, oleMoniker, Loc=\"\", guid, fileTime;\n\tif(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);\n\tif(flags & 0x0008) Loc = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0020) guid = blob.read_shift(16);\n\tif(flags & 0x0040) fileTime = parse_FILETIME(blob/*, 8*/);\n\tblob.l = end;\n\tvar target = targetFrameName||moniker||oleMoniker||\"\";\n\tif(target && Loc) target+=\"#\"+Loc;\n\tif(!target) target = \"#\" + Loc;\n\tvar out = ({Target:target});\n\tif(guid) out.guid = guid;\n\tif(fileTime) out.time = fileTime;\n\tif(displayName) out.Tooltip = displayName;\n\treturn out;\n}\nfunction write_Hyperlink(hl) {\n\tvar out = new_buf(512), i = 0;\n\tvar Target = hl.Target;\n\tvar F = Target.indexOf(\"#\") > -1 ? 0x1f : 0x17;\n\tswitch(Target.charAt(0)) { case \"#\": F=0x1c; break; case \".\": F&=~2; break; }\n\tout.write_shift(4,2); out.write_shift(4, F);\n\tvar data = [8,6815827,6619237,4849780,83]; for(i = 0; i < data.length; ++i) out.write_shift(4, data[i]);\n\tif(F == 0x1C) {\n\t\tTarget = Target.slice(1);\n\t\tout.write_shift(4, Target.length + 1);\n\t\tfor(i = 0; i < Target.length; ++i) out.write_shift(2, Target.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t} else if(F & 0x02) {\n\t\tdata = \"e0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tout.write_shift(4, 2*(Target.length + 1));\n\t\tfor(i = 0; i < Target.length; ++i) out.write_shift(2, Target.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t} else {\n\t\tdata = \"03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar P = 0;\n\t\twhile(Target.slice(P*3,P*3+3)==\"../\"||Target.slice(P*3,P*3+3)==\"..\\\\\") ++P;\n\t\tout.write_shift(2, P);\n\t\tout.write_shift(4, Target.length + 1);\n\t\tfor(i = 0; i < Target.length; ++i) out.write_shift(1, Target.charCodeAt(i) & 0xFF);\n\t\tout.write_shift(1, 0);\n\t\tout.write_shift(2, 0xFFFF);\n\t\tout.write_shift(2, 0xDEAD);\n\t\tfor(i = 0; i < 6; ++i) out.write_shift(4, 0);\n\t}\n\treturn out.slice(0, out.l);\n}\n\n/* 2.5.178 LongRGBA */\nfunction parse_LongRGBA(blob) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; }\n\n/* 2.5.177 LongRGB */\nfunction parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; }\n\n\n/* [MS-XLS] 2.5.19 */\nfunction parse_XLSCell(blob) {\n\tvar rw = blob.read_shift(2); // 0-indexed\n\tvar col = blob.read_shift(2);\n\tvar ixfe = blob.read_shift(2);\n\treturn ({r:rw, c:col, ixfe:ixfe});\n}\nfunction write_XLSCell(R, C, ixfe, o) {\n\tif(!o) o = new_buf(6);\n\to.write_shift(2, R);\n\to.write_shift(2, C);\n\to.write_shift(2, ixfe||0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.134 */\nfunction parse_frtHeader(blob) {\n\tvar rt = blob.read_shift(2);\n\tvar flags = blob.read_shift(2); // TODO: parse these flags\n\tblob.l += 8;\n\treturn {type: rt, flags: flags};\n}\n\n\n\nfunction parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? \"\" : parse_XLUnicodeString2(blob, length, opts); }\n\n/* [MS-XLS] 2.5.344 */\nfunction parse_XTI(blob, length, opts) {\n\tvar w = opts.biff > 8 ? 4 : 2;\n\tvar iSupBook = blob.read_shift(w), itabFirst = blob.read_shift(w,'i'), itabLast = blob.read_shift(w,'i');\n\treturn [iSupBook, itabFirst, itabLast];\n}\n\n/* [MS-XLS] 2.5.218 */\nfunction parse_RkRec(blob) {\n\tvar ixfe = blob.read_shift(2);\n\tvar RK = parse_RkNumber(blob);\n\treturn [ixfe, RK];\n}\n\n/* [MS-XLS] 2.5.1 */\nfunction parse_AddinUdf(blob, length, opts) {\n\tblob.l += 4; length -= 4;\n\tvar l = blob.l + length;\n\tvar udfName = parse_ShortXLUnicodeString(blob, length, opts);\n\tvar cb = blob.read_shift(2);\n\tl -= blob.l;\n\tif(cb !== l) throw new Error(\"Malformed AddinUdf: padding = \" + l + \" != \" + cb);\n\tblob.l += cb;\n\treturn udfName;\n}\n\n/* [MS-XLS] 2.5.209 TODO: Check sizes */\nfunction parse_Ref8U(blob) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(2);\n\tvar colLast = blob.read_shift(2);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\nfunction write_Ref8U(r, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(2, r.s.r);\n\to.write_shift(2, r.e.r);\n\to.write_shift(2, r.s.c);\n\to.write_shift(2, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.211 */\nfunction parse_RefU(blob) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(1);\n\tvar colLast = blob.read_shift(1);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* [MS-XLS] 2.5.207 */\nvar parse_Ref = parse_RefU;\n\n/* [MS-XLS] 2.5.143 */\nfunction parse_FtCmo(blob) {\n\tblob.l += 4;\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tblob.l+=12;\n\treturn [id, ot, flags];\n}\n\n/* [MS-XLS] 2.5.149 */\nfunction parse_FtNts(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.l += 16; // GUID TODO\n\tout.fSharedNote = blob.read_shift(2);\n\tblob.l += 4;\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.142 */\nfunction parse_FtCf(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.cf = blob.read_shift(2);\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.140 - 2.5.154 and friends */\nfunction parse_FtSkip(blob) { blob.l += 2; blob.l += blob.read_shift(2); }\nvar FtTab = {\n0x00: parse_FtSkip, /* FtEnd */\n0x04: parse_FtSkip, /* FtMacro */\n0x05: parse_FtSkip, /* FtButton */\n0x06: parse_FtSkip, /* FtGmo */\n0x07: parse_FtCf, /* FtCf */\n0x08: parse_FtSkip, /* FtPioGrbit */\n0x09: parse_FtSkip, /* FtPictFmla */\n0x0A: parse_FtSkip, /* FtCbls */\n0x0B: parse_FtSkip, /* FtRbo */\n0x0C: parse_FtSkip, /* FtSbs */\n0x0D: parse_FtNts, /* FtNts */\n0x0E: parse_FtSkip, /* FtSbsFmla */\n0x0F: parse_FtSkip, /* FtGboData */\n0x10: parse_FtSkip, /* FtEdoData */\n0x11: parse_FtSkip, /* FtRboData */\n0x12: parse_FtSkip, /* FtCblsData */\n0x13: parse_FtSkip, /* FtLbsData */\n0x14: parse_FtSkip, /* FtCblsFmla */\n0x15: parse_FtCmo\n};\nfunction parse_FtArray(blob, length) {\n\tvar tgt = blob.l + length;\n\tvar fts = [];\n\twhile(blob.l < tgt) {\n\t\tvar ft = blob.read_shift(2);\n\t\tblob.l-=2;\n\t\ttry {\n\t\t\tfts.push(FtTab[ft](blob, tgt - blob.l));\n\t\t} catch(e) { blob.l = tgt; return fts; }\n\t}\n\tif(blob.l != tgt) blob.l = tgt; //throw new Error(\"bad Object Ft-sequence\");\n\treturn fts;\n}\n\n/* --- 2.4 Records --- */\n\n/* [MS-XLS] 2.4.21 */\nfunction parse_BOF(blob, length) {\n\tvar o = {BIFFVer:0, dt:0};\n\to.BIFFVer = blob.read_shift(2); length -= 2;\n\tif(length >= 2) { o.dt = blob.read_shift(2); blob.l -= 2; }\n\tswitch(o.BIFFVer) {\n\t\tcase 0x0600: /* BIFF8 */\n\t\tcase 0x0500: /* BIFF5 */\n\t\tcase 0x0400: /* BIFF4 */\n\t\tcase 0x0300: /* BIFF3 */\n\t\tcase 0x0200: /* BIFF2 */\n\t\tcase 0x0002: case 0x0007: /* BIFF2 */\n\t\t\tbreak;\n\t\tdefault: if(length > 6) throw new Error(\"Unexpected BIFF Ver \" + o.BIFFVer);\n\t}\n\n\tblob.read_shift(length);\n\treturn o;\n}\nfunction write_BOF(wb, t, o) {\n\tvar h = 0x0600, w = 16;\n\tswitch(o.bookType) {\n\t\tcase 'biff8': break;\n\t\tcase 'biff5': h = 0x0500; w = 8; break;\n\t\tcase 'biff4': h = 0x0004; w = 6; break;\n\t\tcase 'biff3': h = 0x0003; w = 6; break;\n\t\tcase 'biff2': h = 0x0002; w = 4; break;\n\t\tcase 'xla': break;\n\t\tdefault: throw new Error(\"unsupported BIFF version\");\n\t}\n\tvar out = new_buf(w);\n\tout.write_shift(2, h);\n\tout.write_shift(2, t);\n\tif(w > 4) out.write_shift(2, 0x7262);\n\tif(w > 6) out.write_shift(2, 0x07CD);\n\tif(w > 8) {\n\t\tout.write_shift(2, 0xC009);\n\t\tout.write_shift(2, 0x0001);\n\t\tout.write_shift(2, 0x0706);\n\t\tout.write_shift(2, 0x0000);\n\t}\n\treturn out;\n}\n\n\n/* [MS-XLS] 2.4.146 */\nfunction parse_InterfaceHdr(blob, length) {\n\tif(length === 0) return 0x04b0;\n\tif((blob.read_shift(2))!==0x04b0){/* empty */}\n\treturn 0x04b0;\n}\n\n\n/* [MS-XLS] 2.4.349 */\nfunction parse_WriteAccess(blob, length, opts) {\n\tif(opts.enc) { blob.l += length; return \"\"; }\n\tvar l = blob.l;\n\t// TODO: make sure XLUnicodeString doesnt overrun\n\tvar UserName = parse_XLUnicodeString2(blob, 0, opts);\n\tblob.read_shift(length + l - blob.l);\n\treturn UserName;\n}\nfunction write_WriteAccess(s, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(b8 ? 112 : 54);\n\to.write_shift(opts.biff == 8 ? 2 : 1, 7);\n\tif(b8) o.write_shift(1, 0);\n\to.write_shift(4, 0x33336853);\n\to.write_shift(4, (0x00534A74 | (b8 ? 0 : 0x20000000)));\n\twhile(o.l < o.length) o.write_shift(1, (b8 ? 0 : 32));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.351 */\nfunction parse_WsBool(blob, length, opts) {\n\tvar flags = opts && opts.biff == 8 || length == 2 ? blob.read_shift(2) : (blob.l += length, 0);\n\treturn { fDialog: flags & 0x10 };\n}\n\n/* [MS-XLS] 2.4.28 */\nfunction parse_BoundSheet8(blob, length, opts) {\n\tvar pos = blob.read_shift(4);\n\tvar hidden = blob.read_shift(1) & 0x03;\n\tvar dt = blob.read_shift(1);\n\tswitch(dt) {\n\t\tcase 0: dt = 'Worksheet'; break;\n\t\tcase 1: dt = 'Macrosheet'; break;\n\t\tcase 2: dt = 'Chartsheet'; break;\n\t\tcase 6: dt = 'VBAModule'; break;\n\t}\n\tvar name = parse_ShortXLUnicodeString(blob, 0, opts);\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { pos:pos, hs:hidden, dt:dt, name:name };\n}\nfunction write_BoundSheet8(data, opts) {\n\tvar w = (!opts || opts.biff >= 8 ? 2 : 1);\n\tvar o = new_buf(8 + w * data.name.length);\n\to.write_shift(4, data.pos);\n\to.write_shift(1, data.hs || 0);\n\to.write_shift(1, data.dt);\n\to.write_shift(1, data.name.length);\n\tif(opts.biff >= 8) o.write_shift(1, 1);\n\to.write_shift(w * data.name.length, data.name, opts.biff < 8 ? 'sbcs' : 'utf16le');\n\tvar out = o.slice(0, o.l);\n\tout.l = o.l; return out;\n}\n\n/* [MS-XLS] 2.4.265 TODO */\nfunction parse_SST(blob, length) {\n\tvar end = blob.l + length;\n\tvar cnt = blob.read_shift(4);\n\tvar ucnt = blob.read_shift(4);\n\tvar strs = ([]);\n\tfor(var i = 0; i != ucnt && blob.l < end; ++i) {\n\t\tstrs.push(parse_XLUnicodeRichExtendedString(blob));\n\t}\n\tstrs.Count = cnt; strs.Unique = ucnt;\n\treturn strs;\n}\nfunction write_SST(sst, opts) {\n\tvar header = new_buf(8);\n\theader.write_shift(4, sst.Count);\n\theader.write_shift(4, sst.Unique);\n\tvar strs = [];\n\tfor(var j = 0; j < sst.length; ++j) strs[j] = write_XLUnicodeRichExtendedString(sst[j], opts);\n\tvar o = bconcat([header].concat(strs));\no.parts = [header.length].concat(strs.map(function(str) { return str.length; }));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.107 */\nfunction parse_ExtSST(blob, length) {\n\tvar extsst = {};\n\textsst.dsst = blob.read_shift(2);\n\tblob.l += length-2;\n\treturn extsst;\n}\n\n\n/* [MS-XLS] 2.4.221 TODO: check BIFF2-4 */\nfunction parse_Row(blob) {\n\tvar z = ({});\n\tz.r = blob.read_shift(2);\n\tz.c = blob.read_shift(2);\n\tz.cnt = blob.read_shift(2) - z.c;\n\tvar miyRw = blob.read_shift(2);\n\tblob.l += 4; // reserved(2), unused(2)\n\tvar flags = blob.read_shift(1); // various flags\n\tblob.l += 3; // reserved(8), ixfe(12), flags(4)\n\tif(flags & 0x07) z.level = flags & 0x07;\n\t// collapsed: flags & 0x10\n\tif(flags & 0x20) z.hidden = true;\n\tif(flags & 0x40) z.hpt = miyRw / 20;\n\treturn z;\n}\n\n\n/* [MS-XLS] 2.4.125 */\nfunction parse_ForceFullCalculation(blob) {\n\tvar header = parse_frtHeader(blob);\n\tif(header.type != 0x08A3) throw new Error(\"Invalid Future Record \" + header.type);\n\tvar fullcalc = blob.read_shift(4);\n\treturn fullcalc !== 0x0;\n}\n\n\n\n\n\n/* [MS-XLS] 2.4.215 rt */\nfunction parse_RecalcId(blob) {\n\tblob.read_shift(2);\n\treturn blob.read_shift(4);\n}\n\n/* [MS-XLS] 2.4.87 */\nfunction parse_DefaultRowHeight(blob, length, opts) {\n\tvar f = 0;\n\tif(!(opts && opts.biff == 2)) {\n\t\tf = blob.read_shift(2);\n\t}\n\tvar miyRw = blob.read_shift(2);\n\tif((opts && opts.biff == 2)) {\n\t\tf = 1 - (miyRw >> 15); miyRw &= 0x7fff;\n\t}\n\tvar fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3};\n\treturn [fl, miyRw];\n}\n\n/* [MS-XLS] 2.4.345 TODO */\nfunction parse_Window1(blob) {\n\tvar xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2);\n\tvar ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2);\n\treturn { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur,\n\t\tFirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio };\n}\nfunction write_Window1() {\n\tvar o = new_buf(18);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0x7260);\n\to.write_shift(2, 0x44c0);\n\to.write_shift(2, 0x38);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 1);\n\to.write_shift(2, 0x01f4);\n\treturn o;\n}\n/* [MS-XLS] 2.4.346 TODO */\nfunction parse_Window2(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff < 5) return {};\n\tvar f = blob.read_shift(2);\n\treturn { RTL: f & 0x40 };\n}\nfunction write_Window2(view) {\n\tvar o = new_buf(18), f = 0x6b6;\n\tif(view && view.RTL) f |= 0x40;\n\to.write_shift(2, f);\n\to.write_shift(4, 0);\n\to.write_shift(4, 64);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.189 TODO */\nfunction parse_Pane(/*blob, length, opts*/) {\n}\n\n/* [MS-XLS] 2.4.122 TODO */\nfunction parse_Font(blob, length, opts) {\n\tvar o = {\n\t\tdyHeight: blob.read_shift(2),\n\t\tfl: blob.read_shift(2)\n\t};\n\tswitch((opts && opts.biff) || 8) {\n\t\tcase 2: break;\n\t\tcase 3: case 4: blob.l += 2; break;\n\t\tdefault: blob.l += 10; break;\n\t}\n\to.name = parse_ShortXLUnicodeString(blob, 0, opts);\n\treturn o;\n}\nfunction write_Font(data, opts) {\n\tvar name = data.name || \"Arial\";\n\tvar b5 = (opts && (opts.biff == 5)), w = (b5 ? (15 + name.length) : (16 + 2 * name.length));\n\tvar o = new_buf(w);\n\to.write_shift(2, (data.sz || 12) * 20);\n\to.write_shift(4, 0);\n\to.write_shift(2, 400);\n\to.write_shift(4, 0);\n\to.write_shift(2, 0);\n\to.write_shift(1, name.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * name.length, name, (b5 ? \"sbcs\" : \"utf16le\"));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.149 */\nfunction parse_LabelSst(blob) {\n\tvar cell = parse_XLSCell(blob);\n\tcell.isst = blob.read_shift(4);\n\treturn cell;\n}\nfunction write_LabelSst(R, C, v, os ) {\n\tvar o = new_buf(10);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(4, v);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.148 */\nfunction parse_Label(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) blob.l++;\n\tvar str = parse_XLUnicodeString(blob, target - blob.l, opts);\n\tcell.val = str;\n\treturn cell;\n}\nfunction write_Label(R, C, v, os, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(6 + 2 + (+b8) + (1 + b8) * v.length);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(2, v.length);\n\tif(b8) o.write_shift(1, 1);\n\to.write_shift((1 + b8) * v.length, v, b8 ? 'utf16le' : 'sbcs');\n\treturn o;\n}\n\n\n/* [MS-XLS] 2.4.126 Number Formats */\nfunction parse_Format(blob, length, opts) {\n\tvar numFmtId = blob.read_shift(2);\n\tvar fmtstr = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [numFmtId, fmtstr];\n}\nfunction write_Format(i, f, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? (3 + f.length) : (5 + 2 * f.length));\n\to.write_shift(2, i);\n\to.write_shift((b5 ? 1 : 2), f.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * f.length, f, (b5 ? 'sbcs' : 'utf16le'));\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(out.l == null) out.l = out.length;\n\treturn out;\n}\nvar parse_BIFF2Format = parse_XLUnicodeString2;\n\n/* [MS-XLS] 2.4.90 */\nfunction parse_Dimensions(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar r = blob.read_shift(w), R = blob.read_shift(w);\n\tvar c = blob.read_shift(2), C = blob.read_shift(2);\n\tblob.l = end;\n\treturn {s: {r:r, c:c}, e: {r:R, c:C}};\n}\nfunction write_Dimensions(range, opts) {\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar o = new_buf(2*w + 6);\n\to.write_shift(w, range.s.r);\n\to.write_shift(w, range.e.r + 1);\n\to.write_shift(2, range.s.c);\n\to.write_shift(2, range.e.c + 1);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.220 */\nfunction parse_RK(blob) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrec = parse_RkRec(blob);\n\treturn {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]};\n}\n\n/* [MS-XLS] 2.4.175 */\nfunction parse_MulRk(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrecs = [];\n\twhile(blob.l < target) rkrecs.push(parse_RkRec(blob));\n\tif(blob.l !== target) throw new Error(\"MulRK read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(rkrecs.length != lastcol - col + 1) throw new Error(\"MulRK length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, rkrec:rkrecs};\n}\n/* [MS-XLS] 2.4.174 */\nfunction parse_MulBlank(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar ixfes = [];\n\twhile(blob.l < target) ixfes.push(blob.read_shift(2));\n\tif(blob.l !== target) throw new Error(\"MulBlank read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(ixfes.length != lastcol - col + 1) throw new Error(\"MulBlank length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, ixfe:ixfes};\n}\n\n/* [MS-XLS] 2.5.20 2.5.249 TODO: interpret values here */\nfunction parse_CellStyleXF(blob, length, style, opts) {\n\tvar o = {};\n\tvar a = blob.read_shift(4), b = blob.read_shift(4);\n\tvar c = blob.read_shift(4), d = blob.read_shift(2);\n\to.patternType = XLSFillPattern[c >> 26];\n\n\tif(!opts.cellStyles) return o;\n\to.alc = a & 0x07;\n\to.fWrap = (a >> 3) & 0x01;\n\to.alcV = (a >> 4) & 0x07;\n\to.fJustLast = (a >> 7) & 0x01;\n\to.trot = (a >> 8) & 0xFF;\n\to.cIndent = (a >> 16) & 0x0F;\n\to.fShrinkToFit = (a >> 20) & 0x01;\n\to.iReadOrder = (a >> 22) & 0x02;\n\to.fAtrNum = (a >> 26) & 0x01;\n\to.fAtrFnt = (a >> 27) & 0x01;\n\to.fAtrAlc = (a >> 28) & 0x01;\n\to.fAtrBdr = (a >> 29) & 0x01;\n\to.fAtrPat = (a >> 30) & 0x01;\n\to.fAtrProt = (a >> 31) & 0x01;\n\n\to.dgLeft = b & 0x0F;\n\to.dgRight = (b >> 4) & 0x0F;\n\to.dgTop = (b >> 8) & 0x0F;\n\to.dgBottom = (b >> 12) & 0x0F;\n\to.icvLeft = (b >> 16) & 0x7F;\n\to.icvRight = (b >> 23) & 0x7F;\n\to.grbitDiag = (b >> 30) & 0x03;\n\n\to.icvTop = c & 0x7F;\n\to.icvBottom = (c >> 7) & 0x7F;\n\to.icvDiag = (c >> 14) & 0x7F;\n\to.dgDiag = (c >> 21) & 0x0F;\n\n\to.icvFore = d & 0x7F;\n\to.icvBack = (d >> 7) & 0x7F;\n\to.fsxButton = (d >> 14) & 0x01;\n\treturn o;\n}\n//function parse_CellXF(blob, length, opts) {return parse_CellStyleXF(blob,length,0, opts);}\n//function parse_StyleXF(blob, length, opts) {return parse_CellStyleXF(blob,length,1, opts);}\n\n/* [MS-XLS] 2.4.353 TODO: actually do this right */\nfunction parse_XF(blob, length, opts) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(2); o.numFmtId = blob.read_shift(2); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\tlength -= 6;\n\to.data = parse_CellStyleXF(blob, length, o.fStyle, opts);\n\treturn o;\n}\nfunction write_XF(data, ixfeP, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? 16 : 20);\n\to.write_shift(2, 0);\n\tif(data.style) {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, 0xFFF4);\n\t} else {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, (ixfeP<<4));\n\t}\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\tif(!b5) o.write_shift(4, 0);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.134 */\nfunction parse_Guts(blob) {\n\tblob.l += 4;\n\tvar out = [blob.read_shift(2), blob.read_shift(2)];\n\tif(out[0] !== 0) out[0]--;\n\tif(out[1] !== 0) out[1]--;\n\tif(out[0] > 7 || out[1] > 7) throw new Error(\"Bad Gutters: \" + out.join(\"|\"));\n\treturn out;\n}\nfunction write_Guts(guts) {\n\tvar o = new_buf(8);\n\to.write_shift(4, 0);\n\to.write_shift(2, guts[0] ? guts[0] + 1 : 0);\n\to.write_shift(2, guts[1] ? guts[1] + 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.24 */\nfunction parse_BoolErr(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\nfunction write_BoolErr(R, C, v, os, opts, t) {\n\tvar o = new_buf(8);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Bes(v, t, o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.180 Number */\nfunction parse_Number(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar xnum = parse_Xnum(blob, 8);\n\tcell.val = xnum;\n\treturn cell;\n}\nfunction write_Number(R, C, v, os) {\n\tvar o = new_buf(14);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Xnum(v, o);\n\treturn o;\n}\n\nvar parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136\n\n/* [MS-XLS] 2.4.271 */\nfunction parse_SupBook(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar ctab = blob.read_shift(2);\n\tvar cch = blob.read_shift(2);\n\topts.sbcch = cch;\n\tif(cch == 0x0401 || cch == 0x3A01) return [cch, ctab];\n\tif(cch < 0x01 || cch >0xff) throw new Error(\"Unexpected SupBook type: \"+cch);\n\tvar virtPath = parse_XLUnicodeStringNoCch(blob, cch);\n\t/* TODO: 2.5.277 Virtual Path */\n\tvar rgst = [];\n\twhile(end > blob.l) rgst.push(parse_XLUnicodeString(blob));\n\treturn [cch, ctab, virtPath, rgst];\n}\n\n/* [MS-XLS] 2.4.105 TODO */\nfunction parse_ExternName(blob, length, opts) {\n\tvar flags = blob.read_shift(2);\n\tvar body;\n\tvar o = ({\n\t\tfBuiltIn: flags & 0x01,\n\t\tfWantAdvise: (flags >>> 1) & 0x01,\n\t\tfWantPict: (flags >>> 2) & 0x01,\n\t\tfOle: (flags >>> 3) & 0x01,\n\t\tfOleLink: (flags >>> 4) & 0x01,\n\t\tcf: (flags >>> 5) & 0x3FF,\n\t\tfIcon: flags >>> 15 & 0x01\n\t});\n\tif(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2, opts);\n\t//else throw new Error(\"unsupported SupBook cch: \" + opts.sbcch);\n\to.body = body || blob.read_shift(length-2);\n\tif(typeof body === \"string\") o.Name = body;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.150 TODO */\nvar XLSLblBuiltIn = [\n\t\"_xlnm.Consolidate_Area\",\n\t\"_xlnm.Auto_Open\",\n\t\"_xlnm.Auto_Close\",\n\t\"_xlnm.Extract\",\n\t\"_xlnm.Database\",\n\t\"_xlnm.Criteria\",\n\t\"_xlnm.Print_Area\",\n\t\"_xlnm.Print_Titles\",\n\t\"_xlnm.Recorder\",\n\t\"_xlnm.Data_Form\",\n\t\"_xlnm.Auto_Activate\",\n\t\"_xlnm.Auto_Deactivate\",\n\t\"_xlnm.Sheet_Title\",\n\t\"_xlnm._FilterDatabase\"\n];\nfunction parse_Lbl(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar flags = blob.read_shift(2);\n\tvar chKey = blob.read_shift(1);\n\tvar cch = blob.read_shift(1);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar itab = 0;\n\tif(!opts || opts.biff >= 5) {\n\t\tif(opts.biff != 5) blob.l += 2;\n\t\titab = blob.read_shift(2);\n\t\tif(opts.biff == 5) blob.l += 2;\n\t\tblob.l += 4;\n\t}\n\tvar name = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tif(flags & 0x20) name = XLSLblBuiltIn[name.charCodeAt(0)];\n\tvar npflen = target - blob.l; if(opts && opts.biff == 2) --npflen;\n\tvar rgce = target == blob.l || cce === 0 ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);\n\treturn {\n\t\tchKey: chKey,\n\t\tName: name,\n\t\titab: itab,\n\t\trgce: rgce\n\t};\n}\n\n/* [MS-XLS] 2.4.106 TODO: verify filename encoding */\nfunction parse_ExternSheet(blob, length, opts) {\n\tif(opts.biff < 8) return parse_BIFF5ExternSheet(blob, length, opts);\n\tvar o = [], target = blob.l + length, len = blob.read_shift(opts.biff > 8 ? 4 : 2);\n\twhile(len-- !== 0) o.push(parse_XTI(blob, opts.biff > 8 ? 12 : 6, opts));\n\t\t// [iSupBook, itabFirst, itabLast];\n\tif(blob.l != target) throw new Error(\"Bad ExternSheet: \" + blob.l + \" != \" + target);\n\treturn o;\n}\nfunction parse_BIFF5ExternSheet(blob, length, opts) {\n\tif(blob[blob.l + 1] == 0x03) blob[blob.l]++;\n\tvar o = parse_ShortXLUnicodeString(blob, length, opts);\n\treturn o.charCodeAt(0) == 0x03 ? o.slice(1) : o;\n}\n\n/* [MS-XLS] 2.4.176 TODO: check older biff */\nfunction parse_NameCmt(blob, length, opts) {\n\tif(opts.biff < 8) { blob.l += length; return; }\n\tvar cchName = blob.read_shift(2);\n\tvar cchComment = blob.read_shift(2);\n\tvar name = parse_XLUnicodeStringNoCch(blob, cchName, opts);\n\tvar comment = parse_XLUnicodeStringNoCch(blob, cchComment, opts);\n\treturn [name, comment];\n}\n\n/* [MS-XLS] 2.4.260 */\nfunction parse_ShrFmla(blob, length, opts) {\n\tvar ref = parse_RefU(blob, 6);\n\tblob.l++;\n\tvar cUse = blob.read_shift(1);\n\tlength -= 8;\n\treturn [parse_SharedParsedFormula(blob, length, opts), cUse, ref];\n}\n\n/* [MS-XLS] 2.4.4 TODO */\nfunction parse_Array(blob, length, opts) {\n\tvar ref = parse_Ref(blob, 6);\n\t/* TODO: fAlwaysCalc */\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l ++; length -= 7; break;\n\t\tcase 3: case 4: blob.l += 2; length -= 8; break;\n\t\tdefault: blob.l += 6; length -= 12;\n\t}\n\treturn [ref, parse_ArrayParsedFormula(blob, length, opts, ref)];\n}\n\n/* [MS-XLS] 2.4.173 */\nfunction parse_MTRSettings(blob) {\n\tvar fMTREnabled = blob.read_shift(4) !== 0x00;\n\tvar fUserSetThreadCount = blob.read_shift(4) !== 0x00;\n\tvar cUserThreadCount = blob.read_shift(4);\n\treturn [fMTREnabled, fUserSetThreadCount, cUserThreadCount];\n}\n\n/* [MS-XLS] 2.5.186 TODO: BIFF5 */\nfunction parse_NoteSh(blob, length, opts) {\n\tif(opts.biff < 8) return;\n\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), idObj = blob.read_shift(2);\n\tvar stAuthor = parse_XLUnicodeString2(blob, 0, opts);\n\tif(opts.biff < 8) blob.read_shift(1);\n\treturn [{r:row,c:col}, stAuthor, idObj, flags];\n}\n\n/* [MS-XLS] 2.4.179 */\nfunction parse_Note(blob, length, opts) {\n\t/* TODO: Support revisions */\n\treturn parse_NoteSh(blob, length, opts);\n}\n\n/* [MS-XLS] 2.4.168 */\nfunction parse_MergeCells(blob, length) {\n\tvar merges = [];\n\tvar cmcs = blob.read_shift(2);\n\twhile (cmcs--) merges.push(parse_Ref8U(blob,length));\n\treturn merges;\n}\nfunction write_MergeCells(merges) {\n\tvar o = new_buf(2 + merges.length * 8);\n\to.write_shift(2, merges.length);\n\tfor(var i = 0; i < merges.length; ++i) write_Ref8U(merges[i], o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.181 TODO: parse all the things! */\nfunction parse_Obj(blob, length, opts) {\n\tif(opts && opts.biff < 8) return parse_BIFF5Obj(blob, length, opts);\n\tvar cmo = parse_FtCmo(blob, 22); // id, ot, flags\n\tvar fts = parse_FtArray(blob, length-22, cmo[1]);\n\treturn { cmo: cmo, ft:fts };\n}\n/* from older spec */\nvar parse_BIFF5OT = [];\nparse_BIFF5OT[0x08] = function(blob, length) {\n\tvar tgt = blob.l + length;\n\tblob.l += 10; // todo\n\tvar cf = blob.read_shift(2);\n\tblob.l += 4;\n\tblob.l += 2; //var cbPictFmla = blob.read_shift(2);\n\tblob.l += 2;\n\tblob.l += 2; //var grbit = blob.read_shift(2);\n\tblob.l += 4;\n\tvar cchName = blob.read_shift(1);\n\tblob.l += cchName; // TODO: stName\n\tblob.l = tgt; // TODO: fmla\n\treturn { fmt:cf };\n};\n\nfunction parse_BIFF5Obj(blob, length, opts) {\n\tblob.l += 4; //var cnt = blob.read_shift(4);\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar grbit = blob.read_shift(2);\n\tblob.l += 2; //var colL = blob.read_shift(2);\n\tblob.l += 2; //var dxL = blob.read_shift(2);\n\tblob.l += 2; //var rwT = blob.read_shift(2);\n\tblob.l += 2; //var dyT = blob.read_shift(2);\n\tblob.l += 2; //var colR = blob.read_shift(2);\n\tblob.l += 2; //var dxR = blob.read_shift(2);\n\tblob.l += 2; //var rwB = blob.read_shift(2);\n\tblob.l += 2; //var dyB = blob.read_shift(2);\n\tblob.l += 2; //var cbMacro = blob.read_shift(2);\n\tblob.l += 6;\n\tlength -= 36;\n\tvar fts = [];\n\tfts.push((parse_BIFF5OT[ot]||parsenoop)(blob, length, opts));\n\treturn { cmo: [id, ot, grbit], ft:fts };\n}\n\n/* [MS-XLS] 2.4.329 TODO: parse properly */\nfunction parse_TxO(blob, length, opts) {\n\tvar s = blob.l;\n\tvar texts = \"\";\ntry {\n\tblob.l += 4;\n\tvar ot = (opts.lastobj||{cmo:[0,0]}).cmo[1];\n\tvar controlInfo; // eslint-disable-line no-unused-vars\n\tif([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6;\n\telse controlInfo = parse_ControlInfo(blob, 6, opts);\n\tvar cchText = blob.read_shift(2);\n\t/*var cbRuns = */blob.read_shift(2);\n\t/*var ifntEmpty = */parseuint16(blob, 2);\n\tvar len = blob.read_shift(2);\n\tblob.l += len;\n\t//var fmla = parse_ObjFmla(blob, s + length - blob.l);\n\n\tfor(var i = 1; i < blob.lens.length-1; ++i) {\n\t\tif(blob.l-s != blob.lens[i]) throw new Error(\"TxO: bad continue record\");\n\t\tvar hdr = blob[blob.l];\n\t\tvar t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1);\n\t\ttexts += t;\n\t\tif(texts.length >= (hdr ? cchText : 2*cchText)) break;\n\t}\n\tif(texts.length !== cchText && texts.length !== cchText*2) {\n\t\tthrow new Error(\"cchText: \" + cchText + \" != \" + texts.length);\n\t}\n\n\tblob.l = s + length;\n\t/* [MS-XLS] 2.5.272 TxORuns */\n//\tvar rgTxoRuns = [];\n//\tfor(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8;\n//\tvar cchText2 = blob.read_shift(2);\n//\tif(cchText2 !== cchText) throw new Error(\"TxOLastRun mismatch: \" + cchText2 + \" \" + cchText);\n//\tblob.l += 6;\n//\tif(s + length != blob.l) throw new Error(\"TxO \" + (s + length) + \", at \" + blob.l);\n\treturn { t: texts };\n} catch(e) { blob.l = s + length; return { t: texts }; }\n}\n\n/* [MS-XLS] 2.4.140 */\nfunction parse_HLink(blob, length) {\n\tvar ref = parse_Ref8U(blob, 8);\n\tblob.l += 16; /* CLSID */\n\tvar hlink = parse_Hyperlink(blob, length-24);\n\treturn [ref, hlink];\n}\nfunction write_HLink(hl) {\n\tvar O = new_buf(24);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tvar clsid = \"d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\tfor(var i = 0; i < 16; ++i) O.write_shift(1, parseInt(clsid[i], 16));\n\treturn bconcat([O, write_Hyperlink(hl[1])]);\n}\n\n\n/* [MS-XLS] 2.4.141 */\nfunction parse_HLinkTooltip(blob, length) {\n\tblob.read_shift(2);\n\tvar ref = parse_Ref8U(blob, 8);\n\tvar wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont');\n\twzTooltip = wzTooltip.replace(chr0,\"\");\n\treturn [ref, wzTooltip];\n}\nfunction write_HLinkTooltip(hl) {\n\tvar TT = hl[1].Tooltip;\n\tvar O = new_buf(10 + 2 * (TT.length + 1));\n\tO.write_shift(2, 0x0800);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tfor(var i = 0; i < TT.length; ++i) O.write_shift(2, TT.charCodeAt(i));\n\tO.write_shift(2, 0);\n\treturn O;\n}\n\n/* [MS-XLS] 2.4.63 */\nfunction parse_Country(blob) {\n\tvar o = [0,0], d;\n\td = blob.read_shift(2); o[0] = CountryEnum[d] || d;\n\td = blob.read_shift(2); o[1] = CountryEnum[d] || d;\n\treturn o;\n}\nfunction write_Country(o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(2, 0x01);\n\to.write_shift(2, 0x01);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.50 ClrtClient */\nfunction parse_ClrtClient(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.188 */\nfunction parse_Palette(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.354 */\nfunction parse_XFCRC(blob) {\n\tblob.l += 2;\n\tvar o = {cxfs:0, crc:0};\n\to.cxfs = blob.read_shift(2);\n\to.crc = blob.read_shift(4);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.53 TODO: parse flags */\n/* [MS-XLSB] 2.4.323 TODO: parse flags */\nfunction parse_ColInfo(blob, length, opts) {\n\tif(!opts.cellStyles) return parsenoop(blob, length);\n\tvar w = opts && opts.biff >= 12 ? 4 : 2;\n\tvar colFirst = blob.read_shift(w);\n\tvar colLast = blob.read_shift(w);\n\tvar coldx = blob.read_shift(w);\n\tvar ixfe = blob.read_shift(w);\n\tvar flags = blob.read_shift(2);\n\tif(w == 2) blob.l += 2;\n\tvar o = ({s:colFirst, e:colLast, w:coldx, ixfe:ixfe, flags:flags});\n\tif(opts.biff >= 5 || !opts.biff) o.level = (flags >> 8) & 0x7;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.257 */\nfunction parse_Setup(blob, length) {\n\tvar o = {};\n\tif(length < 32) return o;\n\tblob.l += 16;\n\to.header = parse_Xnum(blob, 8);\n\to.footer = parse_Xnum(blob, 8);\n\tblob.l += 2;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.261 */\nfunction parse_ShtProps(blob, length, opts) {\n\tvar def = {area:false};\n\tif(opts.biff != 5) { blob.l += length; return def; }\n\tvar d = blob.read_shift(1); blob.l += 3;\n\tif((d & 0x10)) def.area = true;\n\treturn def;\n}\n\n/* [MS-XLS] 2.4.241 */\nfunction write_RRTabId(n) {\n\tvar out = new_buf(2 * n);\n\tfor(var i = 0; i < n; ++i) out.write_shift(2, i+1);\n\treturn out;\n}\n\nvar parse_Blank = parse_XLSCell; /* [MS-XLS] 2.4.20 Just the cell */\nvar parse_Scl = parseuint16a; /* [MS-XLS] 2.4.247 num, den */\nvar parse_String = parse_XLUnicodeString; /* [MS-XLS] 2.4.268 */\n\n/* --- Specific to versions before BIFF8 --- */\nfunction parse_ImData(blob) {\n\tvar cf = blob.read_shift(2);\n\tvar env = blob.read_shift(2);\n\tvar lcb = blob.read_shift(4);\n\tvar o = {fmt:cf, env:env, len:lcb, data:blob.slice(blob.l,blob.l+lcb)};\n\tblob.l += lcb;\n\treturn o;\n}\n\n/* BIFF2_??? where ??? is the name from [XLS] */\nfunction parse_BIFF2STR(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar str = parse_XLUnicodeString2(blob, length-7, opts);\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF2NUM(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = parse_Xnum(blob, 8);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2NUM(r, c, val) {\n\tvar out = new_buf(15);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(8, val, 'f');\n\treturn out;\n}\n\nfunction parse_BIFF2INT(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = blob.read_shift(2);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2INT(r, c, val) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(2, val);\n\treturn out;\n}\n\nfunction parse_BIFF2STRING(blob) {\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, 'sbcs-cont');\n}\n\n/* TODO: convert to BIFF8 font struct */\nfunction parse_BIFF2FONTXTRA(blob, length) {\n\tblob.l += 6; // unknown\n\tblob.l += 2; // font weight \"bls\"\n\tblob.l += 1; // charset\n\tblob.l += 3; // unknown\n\tblob.l += 1; // font family\n\tblob.l += length - 13;\n}\n\n/* TODO: parse rich text runs */\nfunction parse_RString(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar cch = blob.read_shift(2);\n\tvar str = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tblob.l = end;\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n/* from js-harb (C) 2014-present SheetJS */\nvar DBF = (function() {\nvar dbf_codepage_map = {\n\t/* Code Pages Supported by Visual FoxPro */\n0x01: 437, 0x02: 850,\n0x03: 1252, 0x04: 10000,\n0x64: 852, 0x65: 866,\n0x66: 865, 0x67: 861,\n0x68: 895, 0x69: 620,\n0x6A: 737, 0x6B: 857,\n0x78: 950, 0x79: 949,\n0x7A: 936, 0x7B: 932,\n0x7C: 874, 0x7D: 1255,\n0x7E: 1256, 0x96: 10007,\n0x97: 10029, 0x98: 10006,\n0xC8: 1250, 0xC9: 1251,\n0xCA: 1254, 0xCB: 1253,\n\n\t/* shapefile DBF extension */\n0x00: 20127, 0x08: 865,\n0x09: 437, 0x0A: 850,\n0x0B: 437, 0x0D: 437,\n0x0E: 850, 0x0F: 437,\n0x10: 850, 0x11: 437,\n0x12: 850, 0x13: 932,\n0x14: 850, 0x15: 437,\n0x16: 850, 0x17: 865,\n0x18: 437, 0x19: 437,\n0x1A: 850, 0x1B: 437,\n0x1C: 863, 0x1D: 850,\n0x1F: 852, 0x22: 852,\n0x23: 852, 0x24: 860,\n0x25: 850, 0x26: 866,\n0x37: 850, 0x40: 852,\n0x4D: 936, 0x4E: 949,\n0x4F: 950, 0x50: 874,\n0x57: 1252, 0x58: 1252,\n0x59: 1252,\n\n0xFF: 16969\n};\nvar dbf_reverse_map = evert({\n0x01: 437, 0x02: 850,\n0x03: 1252, 0x04: 10000,\n0x64: 852, 0x65: 866,\n0x66: 865, 0x67: 861,\n0x68: 895, 0x69: 620,\n0x6A: 737, 0x6B: 857,\n0x78: 950, 0x79: 949,\n0x7A: 936, 0x7B: 932,\n0x7C: 874, 0x7D: 1255,\n0x7E: 1256, 0x96: 10007,\n0x97: 10029, 0x98: 10006,\n0xC8: 1250, 0xC9: 1251,\n0xCA: 1254, 0xCB: 1253,\n0x00: 20127\n});\nvar DBF_SUPPORTED_VERSIONS = [0x02, 0x03, 0x30, 0x31, 0x83, 0x8B, 0x8C, 0xF5];\n/* TODO: find an actual specification */\nfunction dbf_to_aoa(buf, opts) {\n\tvar out = [];\n\t/* TODO: browser based */\n\tvar d = (new_raw_buf(1));\n\tswitch(opts.type) {\n\t\tcase 'base64': d = s2a(Base64.decode(buf)); break;\n\t\tcase 'binary': d = s2a(buf); break;\n\t\tcase 'buffer':\n\t\tcase 'array': d = buf; break;\n\t}\n\tprep_blob(d, 0);\n\t/* header */\n\tvar ft = d.read_shift(1);\n\tvar memo = false;\n\tvar vfp = false, l7 = false;\n\tswitch(ft) {\n\t\tcase 0x02: case 0x03: break;\n\t\tcase 0x30: vfp = true; memo = true; break;\n\t\tcase 0x31: vfp = true; break;\n\t\tcase 0x83: memo = true; break;\n\t\tcase 0x8B: memo = true; break;\n\t\tcase 0x8C: memo = true; l7 = true; break;\n\t\tcase 0xF5: memo = true; break;\n\t\tdefault: throw new Error(\"DBF Unsupported Version: \" + ft.toString(16));\n\t}\n\tvar /*filedate = new Date(),*/ nrow = 0, fpos = 0;\n\tif(ft == 0x02) nrow = d.read_shift(2);\n\t/*filedate = new Date(d.read_shift(1) + 1900, d.read_shift(1) - 1, d.read_shift(1));*/d.l += 3;\n\tif(ft != 0x02) nrow = d.read_shift(4);\n\tif(ft != 0x02) fpos = d.read_shift(2);\n\tvar rlen = d.read_shift(2);\n\n\tvar /*flags = 0,*/ current_cp = 1252;\n\tif(ft != 0x02) {\n\td.l+=16;\n\t/*flags = */d.read_shift(1);\n\t//if(memo && ((flags & 0x02) === 0)) throw new Error(\"DBF Flags \" + flags.toString(16) + \" ft \" + ft.toString(16));\n\n\t/* codepage present in FoxPro */\n\tif(d[d.l] !== 0) current_cp = dbf_codepage_map[d[d.l]];\n\td.l+=1;\n\n\td.l+=2;\n\t}\n\tif(l7) d.l += 36;\nvar fields = [], field = ({});\n\tvar hend = fpos - 10 - (vfp ? 264 : 0), ww = l7 ? 32 : 11;\n\twhile(ft == 0x02 ? d.l < d.length && d[d.l] != 0x0d: d.l < hend) {\n\t\tfield = ({});\n\t\tfield.name = cptable.utils.decode(current_cp, d.slice(d.l, d.l+ww)).replace(/[\\u0000\\r\\n].*$/g,\"\");\n\t\td.l += ww;\n\t\tfield.type = String.fromCharCode(d.read_shift(1));\n\t\tif(ft != 0x02 && !l7) field.offset = d.read_shift(4);\n\t\tfield.len = d.read_shift(1);\n\t\tif(ft == 0x02) field.offset = d.read_shift(2);\n\t\tfield.dec = d.read_shift(1);\n\t\tif(field.name.length) fields.push(field);\n\t\tif(ft != 0x02) d.l += l7 ? 13 : 14;\n\t\tswitch(field.type) {\n\t\t\tcase 'B': // VFP Double\n\t\t\t\tif((!vfp || field.len != 8) && opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'G': // General\n\t\t\tcase 'P': // Picture\n\t\t\t\tif(opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'C': // character\n\t\t\tcase 'D': // date\n\t\t\tcase 'F': // floating point\n\t\t\tcase 'I': // long\n\t\t\tcase 'L': // boolean\n\t\t\tcase 'M': // memo\n\t\t\tcase 'N': // number\n\t\t\tcase 'O': // double\n\t\t\tcase 'T': // datetime\n\t\t\tcase 'Y': // currency\n\t\t\tcase '0': // VFP _NullFlags\n\t\t\tcase '@': // timestamp\n\t\t\tcase '+': // autoincrement\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error('Unknown Field Type: ' + field.type);\n\t\t}\n\t}\n\tif(d[d.l] !== 0x0D) d.l = fpos-1;\n\telse if(ft == 0x02) d.l = 0x209;\n\tif(ft != 0x02) {\n\t\tif(d.read_shift(1) !== 0x0D) throw new Error(\"DBF Terminator not found \" + d.l + \" \" + d[d.l]);\n\t\td.l = fpos;\n\t}\n\t/* data */\n\tvar R = 0, C = 0;\n\tout[0] = [];\n\tfor(C = 0; C != fields.length; ++C) out[0][C] = fields[C].name;\n\twhile(nrow-- > 0) {\n\t\tif(d[d.l] === 0x2A) { d.l+=rlen; continue; }\n\t\t++d.l;\n\t\tout[++R] = []; C = 0;\n\t\tfor(C = 0; C != fields.length; ++C) {\n\t\t\tvar dd = d.slice(d.l, d.l+fields[C].len); d.l+=fields[C].len;\n\t\t\tprep_blob(dd, 0);\n\t\t\tvar s = cptable.utils.decode(current_cp, dd);\n\t\t\tswitch(fields[C].type) {\n\t\t\t\tcase 'C':\n\t\t\t\t\tout[R][C] = cptable.utils.decode(current_cp, dd);\n\t\t\t\t\tout[R][C] = out[R][C].trim();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(s.length === 8) out[R][C] = new Date(+s.slice(0,4), +s.slice(4,6)-1, +s.slice(6,8));\n\t\t\t\t\telse out[R][C] = s;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'F': out[R][C] = parseFloat(s.trim()); break;\n\t\t\t\tcase '+': case 'I': out[R][C] = l7 ? dd.read_shift(-4, 'i') ^ 0x80000000 : dd.read_shift(4, 'i'); break;\n\t\t\t\tcase 'L': switch(s.toUpperCase()) {\n\t\t\t\t\tcase 'Y': case 'T': out[R][C] = true; break;\n\t\t\t\t\tcase 'N': case 'F': out[R][C] = false; break;\n\t\t\t\t\tcase ' ': case '?': out[R][C] = false; break; /* NOTE: technically uninitialized */\n\t\t\t\t\tdefault: throw new Error(\"DBF Unrecognized L:|\" + s + \"|\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'M': /* TODO: handle memo files */\n\t\t\t\t\tif(!memo) throw new Error(\"DBF Unexpected MEMO for type \" + ft.toString(16));\n\t\t\t\t\tout[R][C] = \"##MEMO##\" + (l7 ? parseInt(s.trim(), 10): dd.read_shift(4));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'N': out[R][C] = +s.replace(/\\u0000/g,\"\").trim(); break;\n\t\t\t\tcase '@': out[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400); break;\n\t\t\t\tcase 'T': out[R][C] = new Date((dd.read_shift(4) - 0x253D8C) * 0x5265C00 + dd.read_shift(4)); break;\n\t\t\t\tcase 'Y': out[R][C] = dd.read_shift(4,'i')/1e4; break;\n\t\t\t\tcase 'O': out[R][C] = -dd.read_shift(-8, 'f'); break;\n\t\t\t\tcase 'B': if(vfp && fields[C].len == 8) { out[R][C] = dd.read_shift(8,'f'); break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'G': case 'P': dd.l += fields[C].len; break;\n\t\t\t\tcase '0':\n\t\t\t\t\tif(fields[C].name === '_NullFlags') break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: throw new Error(\"DBF Unsupported data type \" + fields[C].type);\n\t\t\t}\n\t\t}\n\t}\n\tif(ft != 0x02) if(d.l < d.length && d[d.l++] != 0x1A) throw new Error(\"DBF EOF Marker missing \" + (d.l-1) + \" of \" + d.length + \" \" + d[d.l-1].toString(16));\n\tif(opts && opts.sheetRows) out = out.slice(0, opts.sheetRows);\n\treturn out;\n}\n\nfunction dbf_to_sheet(buf, opts) {\n\tvar o = opts || {};\n\tif(!o.dateNF) o.dateNF = \"yyyymmdd\";\n\treturn aoa_to_sheet(dbf_to_aoa(buf, o), o);\n}\n\nfunction dbf_to_workbook(buf, opts) {\n\ttry { return sheet_to_workbook(dbf_to_sheet(buf, opts), opts); }\n\tcatch(e) { if(opts && opts.WTF) throw e; }\n\treturn ({SheetNames:[],Sheets:{}});\n}\n\nvar _RLEN = { 'B': 8, 'C': 250, 'L': 1, 'D': 8, '?': 0, '': 0 };\nfunction sheet_to_dbf(ws, opts) {\n\tvar o = opts || {};\n\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\tif(o.type == \"string\") throw new Error(\"Cannot write DBF to JS string\");\n\tvar ba = buf_array();\n\tvar aoa = sheet_to_json(ws, {header:1, raw:true, cellDates:true});\n\tvar headers = aoa[0], data = aoa.slice(1);\n\tvar i = 0, j = 0, hcnt = 0, rlen = 1;\n\tfor(i = 0; i < headers.length; ++i) {\n\t\tif(i == null) continue;\n\t\t++hcnt;\n\t\tif(typeof headers[i] === 'number') headers[i] = headers[i].toString(10);\n\t\tif(typeof headers[i] !== 'string') throw new Error(\"DBF Invalid column name \" + headers[i] + \" |\" + (typeof headers[i]) + \"|\");\n\t\tif(headers.indexOf(headers[i]) !== i) for(j=0; j<1024;++j)\n\t\t\tif(headers.indexOf(headers[i] + \"_\" + j) == -1) { headers[i] += \"_\" + j; break; }\n\t}\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar coltypes = [];\n\tfor(i = 0; i <= range.e.c - range.s.c; ++i) {\n\t\tvar col = [];\n\t\tfor(j=0; j < data.length; ++j) {\n\t\t\tif(data[j][i] != null) col.push(data[j][i]);\n\t\t}\n\t\tif(col.length == 0 || headers[i] == null) { coltypes[i] = '?'; continue; }\n\t\tvar guess = '', _guess = '';\n\t\tfor(j = 0; j < col.length; ++j) {\n\t\t\tswitch(typeof col[j]) {\n\t\t\t\t/* TODO: check if L2 compat is desired */\n\t\t\t\tcase 'number': _guess = 'B'; break;\n\t\t\t\tcase 'string': _guess = 'C'; break;\n\t\t\t\tcase 'boolean': _guess = 'L'; break;\n\t\t\t\tcase 'object': _guess = col[j] instanceof Date ? 'D' : 'C'; break;\n\t\t\t\tdefault: _guess = 'C';\n\t\t\t}\n\t\t\tguess = guess && guess != _guess ? 'C' : _guess;\n\t\t\tif(guess == 'C') break;\n\t\t}\n\t\trlen += _RLEN[guess] || 0;\n\t\tcoltypes[i] = guess;\n\t}\n\n\tvar h = ba.next(32);\n\th.write_shift(4, 0x13021130);\n\th.write_shift(4, data.length);\n\th.write_shift(2, 296 + 32 * hcnt);\n\th.write_shift(2, rlen);\n\tfor(i=0; i < 4; ++i) h.write_shift(4, 0);\n\th.write_shift(4, 0x00000000 | ((+dbf_reverse_map[current_ansi] || 0x03)<<8));\n\n\tfor(i = 0, j = 0; i < headers.length; ++i) {\n\t\tif(headers[i] == null) continue;\n\t\tvar hf = ba.next(32);\n\t\tvar _f = (headers[i].slice(-10) + \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\").slice(0, 11);\n\t\thf.write_shift(1, _f, \"sbcs\");\n\t\thf.write_shift(1, coltypes[i] == '?' ? 'C' : coltypes[i], \"sbcs\");\n\t\thf.write_shift(4, j);\n\t\thf.write_shift(1, _RLEN[coltypes[i]] || 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(1, 0x02);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(4, 0);\n\t\tj += _RLEN[coltypes[i]] || 0;\n\t}\n\n\tvar hb = ba.next(264);\n\thb.write_shift(4, 0x0000000D);\n\tfor(i=0; i < 65;++i) hb.write_shift(4, 0x00000000);\n\tfor(i=0; i < data.length; ++i) {\n\t\tvar rout = ba.next(rlen);\n\t\trout.write_shift(1, 0);\n\t\tfor(j=0; j<headers.length; ++j) {\n\t\t\tif(headers[j] == null) continue;\n\t\t\tswitch(coltypes[j]) {\n\t\t\t\tcase 'L': rout.write_shift(1, data[i][j] == null ? 0x3F : data[i][j] ? 0x54 : 0x46); break;\n\t\t\t\tcase 'B': rout.write_shift(8, data[i][j]||0, 'f'); break;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(!data[i][j]) rout.write_shift(8, \"00000000\", \"sbcs\");\n\t\t\t\t\telse {\n\t\t\t\t\t\trout.write_shift(4, (\"0000\"+data[i][j].getFullYear()).slice(-4), \"sbcs\");\n\t\t\t\t\t\trout.write_shift(2, (\"00\"+(data[i][j].getMonth()+1)).slice(-2), \"sbcs\");\n\t\t\t\t\t\trout.write_shift(2, (\"00\"+data[i][j].getDate()).slice(-2), \"sbcs\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'C':\n\t\t\t\t\tvar _s = String(data[i][j]||\"\");\n\t\t\t\t\trout.write_shift(1, _s, \"sbcs\");\n\t\t\t\t\tfor(hcnt=0; hcnt < 250-_s.length; ++hcnt) rout.write_shift(1, 0x20); break;\n\t\t\t}\n\t\t}\n\t\t// data\n\t}\n\tba.next(1).write_shift(1, 0x1A);\n\treturn ba.end();\n}\n\treturn {\n\t\tversions: DBF_SUPPORTED_VERSIONS,\n\t\tto_workbook: dbf_to_workbook,\n\t\tto_sheet: dbf_to_sheet,\n\t\tfrom_sheet: sheet_to_dbf\n\t};\n})();\n\nvar SYLK = (function() {\n\t/* TODO: stress test sequences */\n\tvar sylk_escapes = ({\n\t\tAA:'À', BA:'Á', CA:'Â', DA:195, HA:'Ä', JA:197,\n\t\tAE:'È', BE:'É', CE:'Ê', HE:'Ë',\n\t\tAI:'Ì', BI:'Í', CI:'Î', HI:'Ï',\n\t\tAO:'Ò', BO:'Ó', CO:'Ô', DO:213, HO:'Ö',\n\t\tAU:'Ù', BU:'Ú', CU:'Û', HU:'Ü',\n\t\tAa:'à', Ba:'á', Ca:'â', Da:227, Ha:'ä', Ja:229,\n\t\tAe:'è', Be:'é', Ce:'ê', He:'ë',\n\t\tAi:'ì', Bi:'í', Ci:'î', Hi:'ï',\n\t\tAo:'ò', Bo:'ó', Co:'ô', Do:245, Ho:'ö',\n\t\tAu:'ù', Bu:'ú', Cu:'û', Hu:'ü',\n\t\tKC:'Ç', Kc:'ç', q:'æ', z:'œ', a:'Æ', j:'Œ',\n\t\tDN:209, Dn:241, Hy:255,\n\t\tS:169, c:170, R:174, B:180,\n0:176, 1:177, 2:178,\n3:179, 5:181, 6:182,\n7:183, Q:185, k:186, b:208, i:216, l:222, s:240, y:248,\n\t\t\"!\":161, '\"':162, \"#\":163, \"(\":164, \"%\":165, \"'\":167, \"H \":168,\n\t\t\"+\":171, \";\":187, \"<\":188, \"=\":189, \">\":190, \"?\":191, \"{\":223\n\t});\n\tvar sylk_char_regex = new RegExp(\"\\u001BN(\" + keys(sylk_escapes).join(\"|\").replace(/\\|\\|\\|/, \"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\") + \"|\\\\|)\", \"gm\");\n\tvar sylk_char_fn = function(_, $1){ var o = sylk_escapes[$1]; return typeof o == \"number\" ? _getansi(o) : o; };\n\tvar decode_sylk_char = function($$, $1, $2) { var newcc = (($1.charCodeAt(0) - 0x20)<<4) | ($2.charCodeAt(0) - 0x30); return newcc == 59 ? $$ : _getansi(newcc); };\n\tsylk_escapes[\"|\"] = 254;\n\t/* TODO: find an actual specification */\n\tfunction sylk_to_aoa(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return sylk_to_aoa_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return sylk_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return sylk_to_aoa_str(d.toString('binary'), opts);\n\t\t\tcase 'array': return sylk_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction sylk_to_aoa_str(str, opts) {\n\t\tvar records = str.split(/[\\n\\r]+/), R = -1, C = -1, ri = 0, rj = 0, arr = [];\n\t\tvar formats = [];\n\t\tvar next_cell_format = null;\n\t\tvar sht = {}, rowinfo = [], colinfo = [], cw = [];\n\t\tvar Mval = 0, j;\n\t\tif(+opts.codepage >= 0) set_cp(+opts.codepage);\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tMval = 0;\n\t\t\tvar rstr=records[ri].trim().replace(/\\x1B([\\x20-\\x2F])([\\x30-\\x3F])/g, decode_sylk_char).replace(sylk_char_regex, sylk_char_fn);\n\t\t\tvar record=rstr.replace(/;;/g, \"\\u0000\").split(\";\").map(function(x) { return x.replace(/\\u0000/g, \";\"); });\n\t\t\tvar RT=record[0], val;\n\t\t\tif(rstr.length > 0) switch(RT) {\n\t\t\tcase 'ID': break; /* header */\n\t\t\tcase 'E': break; /* EOF */\n\t\t\tcase 'B': break; /* dimensions */\n\t\t\tcase 'O': break; /* options? */\n\t\t\tcase 'P':\n\t\t\t\tif(record[1].charAt(0) == 'P')\n\t\t\t\t\tformats.push(rstr.slice(3).replace(/;;/g, \";\"));\n\t\t\t\tbreak;\n\t\t\tcase 'C':\n\t\t\tvar C_seen_K = false, C_seen_X = false;\n\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\n\t\t\t\tcase 'X': C = parseInt(record[rj].slice(1))-1; C_seen_X = true; break;\n\t\t\t\tcase 'Y':\n\t\t\t\t\tR = parseInt(record[rj].slice(1))-1; if(!C_seen_X) C = 0;\n\t\t\t\t\tfor(j = arr.length; j <= R; ++j) arr[j] = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'K':\n\t\t\t\t\tval = record[rj].slice(1);\n\t\t\t\t\tif(val.charAt(0) === '\"') val = val.slice(1,val.length - 1);\n\t\t\t\t\telse if(val === 'TRUE') val = true;\n\t\t\t\t\telse if(val === 'FALSE') val = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(val))) {\n\t\t\t\t\t\tval = fuzzynum(val);\n\t\t\t\t\t\tif(next_cell_format !== null && SSF.is_date(next_cell_format)) val = numdate(val);\n\t\t\t\t\t} else if(!isNaN(fuzzydate(val).getDate())) {\n\t\t\t\t\t\tval = parseDate(val);\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof cptable !== 'undefined' && typeof val == \"string\" && ((opts||{}).type != \"string\") && (opts||{}).codepage) val = cptable.utils.decode(opts.codepage, val);\n\t\t\t\t\tC_seen_K = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'E':\n\t\t\t\t\tvar formula = rc_to_a1(record[rj].slice(1), {r:R,c:C});\n\t\t\t\t\tarr[R][C] = [arr[R][C], formula];\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(C_seen_K) { arr[R][C] = val; next_cell_format = null; }\n\t\t\tbreak;\n\t\t\tcase 'F':\n\t\t\tvar F_seen = 0;\n\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\n\t\t\t\tcase 'X': C = parseInt(record[rj].slice(1))-1; ++F_seen; break;\n\t\t\t\tcase 'Y':\n\t\t\t\t\tR = parseInt(record[rj].slice(1))-1; /*C = 0;*/\n\t\t\t\t\tfor(j = arr.length; j <= R; ++j) arr[j] = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'M': Mval = parseInt(record[rj].slice(1)) / 20; break;\n\t\t\t\tcase 'F': break; /* ??? */\n\t\t\t\tcase 'G': break; /* hide grid */\n\t\t\t\tcase 'P':\n\t\t\t\t\tnext_cell_format = formats[parseInt(record[rj].slice(1))];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'S': break; /* cell style */\n\t\t\t\tcase 'D': break; /* column */\n\t\t\t\tcase 'N': break; /* font */\n\t\t\t\tcase 'W':\n\t\t\t\t\tcw = record[rj].slice(1).split(\" \");\n\t\t\t\t\tfor(j = parseInt(cw[0], 10); j <= parseInt(cw[1], 10); ++j) {\n\t\t\t\t\t\tMval = parseInt(cw[2], 10);\n\t\t\t\t\t\tcolinfo[j-1] = Mval === 0 ? {hidden:true}: {wch:Mval}; process_col(colinfo[j-1]);\n\t\t\t\t\t} break;\n\t\t\t\tcase 'C': /* default column format */\n\t\t\t\t\tC = parseInt(record[rj].slice(1))-1;\n\t\t\t\t\tif(!colinfo[C]) colinfo[C] = {};\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'R': /* row properties */\n\t\t\t\t\tR = parseInt(record[rj].slice(1))-1;\n\t\t\t\t\tif(!rowinfo[R]) rowinfo[R] = {};\n\t\t\t\t\tif(Mval > 0) { rowinfo[R].hpt = Mval; rowinfo[R].hpx = pt2px(Mval); }\n\t\t\t\t\telse if(Mval === 0) rowinfo[R].hidden = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(F_seen < 1) next_cell_format = null; break;\n\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t}\n\t\tif(rowinfo.length > 0) sht['!rows'] = rowinfo;\n\t\tif(colinfo.length > 0) sht['!cols'] = colinfo;\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn [arr, sht];\n\t}\n\n\tfunction sylk_to_sheet(d, opts) {\n\t\tvar aoasht = sylk_to_aoa(d, opts);\n\t\tvar aoa = aoasht[0], ws = aoasht[1];\n\t\tvar o = aoa_to_sheet(aoa, opts);\n\t\tkeys(ws).forEach(function(k) { o[k] = ws[k]; });\n\t\treturn o;\n\t}\n\n\tfunction sylk_to_workbook(d, opts) { return sheet_to_workbook(sylk_to_sheet(d, opts), opts); }\n\n\tfunction write_ws_cell_sylk(cell, ws, R, C) {\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";K\";\n\t\tswitch(cell.t) {\n\t\t\tcase 'n':\n\t\t\t\to += (cell.v||0);\n\t\t\t\tif(cell.f && !cell.F) o += \";E\" + a1_to_rc(cell.f, {r:R, c:C}); break;\n\t\t\tcase 'b': o += cell.v ? \"TRUE\" : \"FALSE\"; break;\n\t\t\tcase 'e': o += cell.w || cell.v; break;\n\t\t\tcase 'd': o += '\"' + (cell.w || cell.v) + '\"'; break;\n\t\t\tcase 's': o += '\"' + cell.v.replace(/\"/g,\"\") + '\"'; break;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction write_ws_cols_sylk(out, cols) {\n\t\tcols.forEach(function(col, i) {\n\t\t\tvar rec = \"F;W\" + (i+1) + \" \" + (i+1) + \" \";\n\t\t\tif(col.hidden) rec += \"0\";\n\t\t\telse {\n\t\t\t\tif(typeof col.width == 'number') col.wpx = width2px(col.width);\n\t\t\t\tif(typeof col.wpx == 'number') col.wch = px2char(col.wpx);\n\t\t\t\tif(typeof col.wch == 'number') rec += Math.round(col.wch);\n\t\t\t}\n\t\t\tif(rec.charAt(rec.length - 1) != \" \") out.push(rec);\n\t\t});\n\t}\n\n\tfunction write_ws_rows_sylk(out, rows) {\n\t\trows.forEach(function(row, i) {\n\t\t\tvar rec = \"F;\";\n\t\t\tif(row.hidden) rec += \"M0;\";\n\t\t\telse if(row.hpt) rec += \"M\" + 20 * row.hpt + \";\";\n\t\t\telse if(row.hpx) rec += \"M\" + 20 * px2pt(row.hpx) + \";\";\n\t\t\tif(rec.length > 2) out.push(rec + \"R\" + (i+1));\n\t\t});\n\t}\n\n\tfunction sheet_to_sylk(ws, opts) {\n\t\tvar preamble = [\"ID;PWXL;N;E\"], o = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tvar RS = \"\\r\\n\";\n\n\t\tpreamble.push(\"P;PGeneral\");\n\t\tpreamble.push(\"F;P0;DG0G8;M255\");\n\t\tif(ws['!cols']) write_ws_cols_sylk(preamble, ws['!cols']);\n\t\tif(ws['!rows']) write_ws_rows_sylk(preamble, ws['!rows']);\n\n\t\tpreamble.push(\"B;Y\" + (r.e.r - r.s.r + 1) + \";X\" + (r.e.c - r.s.c + 1) + \";D\" + [r.s.c,r.s.r,r.e.c,r.e.r].join(\" \"));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || (cell.v == null && (!cell.f || cell.F))) continue;\n\t\t\t\to.push(write_ws_cell_sylk(cell, ws, R, C, opts));\n\t\t\t}\n\t\t}\n\t\treturn preamble.join(RS) + RS + o.join(RS) + RS + \"E\" + RS;\n\t}\n\n\treturn {\n\t\tto_workbook: sylk_to_workbook,\n\t\tto_sheet: sylk_to_sheet,\n\t\tfrom_sheet: sheet_to_sylk\n\t};\n})();\n\nvar DIF = (function() {\n\tfunction dif_to_aoa(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return dif_to_aoa_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return dif_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return dif_to_aoa_str(d.toString('binary'), opts);\n\t\t\tcase 'array': return dif_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction dif_to_aoa_str(str, opts) {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tif (records[ri].trim() === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\tif (R < 0) continue;\n\t\t\tvar metadata = records[ri].trim().split(\",\");\n\t\t\tvar type = metadata[0], value = metadata[1];\n\t\t\t++ri;\n\t\t\tvar data = records[ri].trim();\n\t\t\tswitch (+type) {\n\t\t\t\tcase -1:\n\t\t\t\t\tif (data === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\t\t\telse if (data !== 'EOD') throw new Error(\"Unrecognized DIF special command \" + data);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tif(data === 'TRUE') arr[R][C] = true;\n\t\t\t\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(value))) arr[R][C] = fuzzynum(value);\n\t\t\t\t\telse if(!isNaN(fuzzydate(value).getDate())) arr[R][C] = parseDate(value);\n\t\t\t\t\telse arr[R][C] = value;\n\t\t\t\t\t++C; break;\n\t\t\t\tcase 1:\n\t\t\t\t\tdata = data.slice(1,data.length-1);\n\t\t\t\t\tarr[R][C++] = data !== '' ? data : null;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (data === 'EOD') break;\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction dif_to_sheet(str, opts) { return aoa_to_sheet(dif_to_aoa(str, opts), opts); }\n\tfunction dif_to_workbook(str, opts) { return sheet_to_workbook(dif_to_sheet(str, opts), opts); }\n\n\tvar sheet_to_dif = (function() {\n\t\tvar push_field = function pf(o, topic, v, n, s) {\n\t\t\to.push(topic);\n\t\t\to.push(v + \",\" + n);\n\t\t\to.push('\"' + s.replace(/\"/g,'\"\"') + '\"');\n\t\t};\n\t\tvar push_value = function po(o, type, v, s) {\n\t\t\to.push(type + \",\" + v);\n\t\t\to.push(type == 1 ? '\"' + s.replace(/\"/g,'\"\"') + '\"' : s);\n\t\t};\n\t\treturn function sheet_to_dif(ws) {\n\t\t\tvar o = [];\n\t\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tpush_field(o, \"TABLE\", 0, 1, \"sheetjs\");\n\t\t\tpush_field(o, \"VECTORS\", 0, r.e.r - r.s.r + 1,\"\");\n\t\t\tpush_field(o, \"TUPLES\", 0, r.e.c - r.s.c + 1,\"\");\n\t\t\tpush_field(o, \"DATA\", 0, 0,\"\");\n\t\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\t\tpush_value(o, -1, 0, \"BOT\");\n\t\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\t\tif(!cell) { push_value(o, 1, 0, \"\"); continue;}\n\t\t\t\t\tswitch(cell.t) {\n\t\t\t\t\t\tcase 'n':\n\t\t\t\t\t\t\tvar val = DIF_XL ? cell.w : cell.v;\n\t\t\t\t\t\t\tif(!val && cell.v != null) val = cell.v;\n\t\t\t\t\t\t\tif(val == null) {\n\t\t\t\t\t\t\t\tif(DIF_XL && cell.f && !cell.F) push_value(o, 1, 0, \"=\" + cell.f);\n\t\t\t\t\t\t\t\telse push_value(o, 1, 0, \"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse push_value(o, 0, val, \"V\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\tpush_value(o, 0, cell.v ? 1 : 0, cell.v ? \"TRUE\" : \"FALSE\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 's':\n\t\t\t\t\t\t\tpush_value(o, 1, 0, (!DIF_XL || isNaN(cell.v)) ? cell.v : '=\"' + cell.v + '\"');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'd':\n\t\t\t\t\t\t\tif(!cell.w) cell.w = SSF.format(cell.z || SSF._table[14], datenum(parseDate(cell.v)));\n\t\t\t\t\t\t\tif(DIF_XL) push_value(o, 0, cell.w, \"V\");\n\t\t\t\t\t\t\telse push_value(o, 1, 0, cell.w);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault: push_value(o, 1, 0, \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tpush_value(o, -1, 0, \"EOD\");\n\t\t\tvar RS = \"\\r\\n\";\n\t\t\tvar oo = o.join(RS);\n\t\t\t//while((oo.length & 0x7F) != 0) oo += \"\\0\";\n\t\t\treturn oo;\n\t\t};\n\t})();\n\treturn {\n\t\tto_workbook: dif_to_workbook,\n\t\tto_sheet: dif_to_sheet,\n\t\tfrom_sheet: sheet_to_dif\n\t};\n})();\n\nvar ETH = (function() {\n\tfunction decode(s) { return s.replace(/\\\\b/g,\"\\\\\").replace(/\\\\c/g,\":\").replace(/\\\\n/g,\"\\n\"); }\n\tfunction encode(s) { return s.replace(/\\\\/g, \"\\\\b\").replace(/:/g, \"\\\\c\").replace(/\\n/g,\"\\\\n\"); }\n\n\tfunction eth_to_aoa(str, opts) {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tvar record = records[ri].trim().split(\":\");\n\t\t\tif(record[0] !== 'cell') continue;\n\t\t\tvar addr = decode_cell(record[1]);\n\t\t\tif(arr.length <= addr.r) for(R = arr.length; R <= addr.r; ++R) if(!arr[R]) arr[R] = [];\n\t\t\tR = addr.r; C = addr.c;\n\t\t\tswitch(record[2]) {\n\t\t\t\tcase 't': arr[R][C] = decode(record[3]); break;\n\t\t\t\tcase 'v': arr[R][C] = +record[3]; break;\n\t\t\t\tcase 'vtf': var _f = record[record.length - 1];\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'vtc':\n\t\t\t\t\tswitch(record[3]) {\n\t\t\t\t\t\tcase 'nl': arr[R][C] = +record[4] ? true : false; break;\n\t\t\t\t\t\tdefault: arr[R][C] = +record[4]; break;\n\t\t\t\t\t}\n\t\t\t\t\tif(record[2] == 'vtf') arr[R][C] = [arr[R][C], _f];\n\t\t\t}\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction eth_to_sheet(d, opts) { return aoa_to_sheet(eth_to_aoa(d, opts), opts); }\n\tfunction eth_to_workbook(d, opts) { return sheet_to_workbook(eth_to_sheet(d, opts), opts); }\n\n\tvar header = [\n\t\t\"socialcalc:version:1.5\",\n\t\t\"MIME-Version: 1.0\",\n\t\t\"Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave\"\n\t].join(\"\\n\");\n\n\tvar sep = [\n\t\t\"--SocialCalcSpreadsheetControlSave\",\n\t\t\"Content-type: text/plain; charset=UTF-8\"\n\t].join(\"\\n\") + \"\\n\";\n\n\t/* TODO: the other parts */\n\tvar meta = [\n\t\t\"# SocialCalc Spreadsheet Control Save\",\n\t\t\"part:sheet\"\n\t].join(\"\\n\");\n\n\tvar end = \"--SocialCalcSpreadsheetControlSave--\";\n\n\tfunction sheet_to_eth_data(ws) {\n\t\tif(!ws || !ws['!ref']) return \"\";\n\t\tvar o = [], oo = [], cell, coord = \"\";\n\t\tvar r = decode_range(ws['!ref']);\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcoord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null || cell.t === 'z') continue;\n\t\t\t\too = [\"cell\", coord, 't'];\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 's': case 'str': oo.push(encode(cell.v)); break;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(!cell.f) { oo[2]='v'; oo[3]=cell.v; }\n\t\t\t\t\t\telse { oo[2]='vtf'; oo[3]='n'; oo[4]=cell.v; oo[5]=encode(cell.f); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\too[2] = 'vt'+(cell.f?'f':'c'); oo[3]='nl'; oo[4]=cell.v?\"1\":\"0\";\n\t\t\t\t\t\too[5] = encode(cell.f||(cell.v?'TRUE':'FALSE'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tvar t = datenum(parseDate(cell.v));\n\t\t\t\t\t\too[2] = 'vtc'; oo[3] = 'nd'; oo[4] = \"\"+t;\n\t\t\t\t\t\too[5] = cell.w || SSF.format(cell.z || SSF._table[14], t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'e': continue;\n\t\t\t\t}\n\t\t\t\to.push(oo.join(\":\"));\n\t\t\t}\n\t\t}\n\t\to.push(\"sheet:c:\" + (r.e.c-r.s.c+1) + \":r:\" + (r.e.r-r.s.r+1) + \":tvf:1\");\n\t\to.push(\"valueformat:1:text-wiki\");\n\t\t//o.push(\"copiedfrom:\" + ws['!ref']); // clipboard only\n\t\treturn o.join(\"\\n\");\n\t}\n\n\tfunction sheet_to_eth(ws) {\n\t\treturn [header, sep, meta, sep, sheet_to_eth_data(ws), end].join(\"\\n\");\n\t\t// return [\"version:1.5\", sheet_to_eth_data(ws)].join(\"\\n\"); // clipboard form\n\t}\n\n\treturn {\n\t\tto_workbook: eth_to_workbook,\n\t\tto_sheet: eth_to_sheet,\n\t\tfrom_sheet: sheet_to_eth\n\t};\n})();\n\nvar PRN = (function() {\n\tfunction set_text_arr(data, arr, R, C, o) {\n\t\tif(o.raw) arr[R][C] = data;\n\t\telse if(data === 'TRUE') arr[R][C] = true;\n\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\telse if(data === \"\"){/* empty */}\n\t\telse if(!isNaN(fuzzynum(data))) arr[R][C] = fuzzynum(data);\n\t\telse if(!isNaN(fuzzydate(data).getDate())) arr[R][C] = parseDate(data);\n\t\telse arr[R][C] = data;\n\t}\n\n\tfunction prn_to_aoa_str(f, opts) {\n\t\tvar o = opts || {};\n\t\tvar arr = ([]);\n\t\tif(!f || f.length === 0) return arr;\n\t\tvar lines = f.split(/[\\r\\n]/);\n\t\tvar L = lines.length - 1;\n\t\twhile(L >= 0 && lines[L].length === 0) --L;\n\t\tvar start = 10, idx = 0;\n\t\tvar R = 0;\n\t\tfor(; R <= L; ++R) {\n\t\t\tidx = lines[R].indexOf(\" \");\n\t\t\tif(idx == -1) idx = lines[R].length; else idx++;\n\t\t\tstart = Math.max(start, idx);\n\t\t}\n\t\tfor(R = 0; R <= L; ++R) {\n\t\t\tarr[R] = [];\n\t\t\t/* TODO: confirm that widths are always 10 */\n\t\t\tvar C = 0;\n\t\t\tset_text_arr(lines[R].slice(0, start).trim(), arr, R, C, o);\n\t\t\tfor(C = 1; C <= (lines[R].length - start)/10 + 1; ++C)\n\t\t\t\tset_text_arr(lines[R].slice(start+(C-1)*10,start+C*10).trim(),arr,R,C,o);\n\t\t}\n\t\tif(o.sheetRows) arr = arr.slice(0, o.sheetRows);\n\t\treturn arr;\n\t}\n\n\t// List of accepted CSV separators\n\tvar guess_seps = {\n0x2C: ',',\n0x09: \"\\t\",\n0x3B: ';'\n\t};\n\n\t// CSV separator weights to be used in case of equal numbers\n\tvar guess_sep_weights = {\n0x2C: 3,\n0x09: 2,\n0x3B: 1\n\t};\n\n\tfunction guess_sep(str) {\n\t\tvar cnt = {}, instr = false, end = 0, cc = 0;\n\t\tfor(;end < str.length;++end) {\n\t\t\tif((cc=str.charCodeAt(end)) == 0x22) instr = !instr;\n\t\t\telse if(!instr && cc in guess_seps) cnt[cc] = (cnt[cc]||0)+1;\n\t\t}\n\n\t\tcc = [];\n\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\tcc.push([ cnt[end], end ]);\n\t\t}\n\n\t\tif ( !cc.length ) {\n\t\t\tcnt = guess_sep_weights;\n\t\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\t\tcc.push([ cnt[end], end ]);\n\t\t\t}\n\t\t}\n\n\t\tcc.sort(function(a, b) { return a[0] - b[0] || guess_sep_weights[a[1]] - guess_sep_weights[b[1]]; });\n\n\t\treturn guess_seps[cc.pop()[1]];\n\t}\n\n\tfunction dsv_to_sheet_str(str, opts) {\n\t\tvar o = opts || {};\n\t\tvar sep = \"\";\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar ws = o.dense ? ([]) : ({});\n\t\tvar range = ({s: {c:0, r:0}, e: {c:0, r:0}});\n\n\t\tif(str.slice(0,4) == \"sep=\") {\n\t\t\t// If the line ends in \\r\\n\n\t\t\tif(str.charCodeAt(5) == 13 && str.charCodeAt(6) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(7);\n\t\t\t}\n\t\t\t// If line ends in \\r OR \\n\n\t\t\telse if(str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10 ) {\n\t\t\t\t//\n\t\t\t\tsep = str.charAt(4); str = str.slice(6);\n\t\t\t}\n\t\t}\n\t\telse sep = guess_sep(str.slice(0,1024));\n\t\tvar R = 0, C = 0, v = 0;\n\t\tvar start = 0, end = 0, sepcc = sep.charCodeAt(0), instr = false, cc=0;\n\t\tstr = str.replace(/\\r\\n/mg, \"\\n\");\n\t\tvar _re = o.dateNF != null ? dateNF_regex(o.dateNF) : null;\n\t\tfunction finish_cell() {\n\t\t\tvar s = str.slice(start, end);\n\t\t\tvar cell = ({});\n\t\t\tif(s.charAt(0) == '\"' && s.charAt(s.length - 1) == '\"') s = s.slice(1,-1).replace(/\"\"/g,'\"');\n\t\t\tif(s.length === 0) cell.t = 'z';\n\t\t\telse if(o.raw) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.trim().length === 0) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.charCodeAt(0) == 0x3D) {\n\t\t\t\tif(s.charCodeAt(1) == 0x22 && s.charCodeAt(s.length - 1) == 0x22) { cell.t = 's'; cell.v = s.slice(2,-1).replace(/\"\"/g,'\"'); }\n\t\t\t\telse if(fuzzyfmla(s)) { cell.t = 'n'; cell.f = s.slice(1); }\n\t\t\t\telse { cell.t = 's'; cell.v = s; } }\n\t\t\telse if(s == \"TRUE\") { cell.t = 'b'; cell.v = true; }\n\t\t\telse if(s == \"FALSE\") { cell.t = 'b'; cell.v = false; }\n\t\t\telse if(!isNaN(v = fuzzynum(s))) { cell.t = 'n'; if(o.cellText !== false) cell.w = s; cell.v = v; }\n\t\t\telse if(!isNaN(fuzzydate(s).getDate()) || _re && s.match(_re)) {\n\t\t\t\tcell.z = o.dateNF || SSF._table[14];\n\t\t\t\tvar k = 0;\n\t\t\t\tif(_re && s.match(_re)){ s=dateNF_fix(s, o.dateNF, (s.match(_re)||[])); k=1; }\n\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.v = parseDate(s, k); }\n\t\t\t\telse { cell.t = 'n'; cell.v = datenum(parseDate(s, k)); }\n\t\t\t\tif(o.cellText !== false) cell.w = SSF.format(cell.z, cell.v instanceof Date ? datenum(cell.v):cell.v);\n\t\t\t\tif(!o.cellNF) delete cell.z;\n\t\t\t} else {\n\t\t\t\tcell.t = 's';\n\t\t\t\tcell.v = s;\n\t\t\t}\n\t\t\tif(cell.t == 'z'){}\n\t\t\telse if(o.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = cell; }\n\t\t\telse ws[encode_cell({c:C,r:R})] = cell;\n\t\t\tstart = end+1;\n\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\tif(cc == sepcc) ++C; else { C = 0; ++R; if(o.sheetRows && o.sheetRows <= R) return true; }\n\t\t}\n\t\touter: for(;end < str.length;++end) switch((cc=str.charCodeAt(end))) {\n\t\t\tcase 0x22: instr = !instr; break;\n\t\t\tcase sepcc: case 0x0a: case 0x0d: if(!instr && finish_cell()) break outer; break;\n\t\t\tdefault: break;\n\t\t}\n\t\tif(end - start > 0) finish_cell();\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction prn_to_sheet_str(str, opts) {\n\t\tif(!(opts && opts.PRN)) return dsv_to_sheet_str(str, opts);\n\t\tif(str.slice(0,4) == \"sep=\") return dsv_to_sheet_str(str, opts);\n\t\tif(str.indexOf(\"\\t\") >= 0 || str.indexOf(\",\") >= 0 || str.indexOf(\";\") >= 0) return dsv_to_sheet_str(str, opts);\n\t\treturn aoa_to_sheet(prn_to_aoa_str(str, opts), opts);\n\t}\n\n\tfunction prn_to_sheet(d, opts) {\n\t\tvar str = \"\", bytes = opts.type == 'string' ? [0,0,0,0] : firstbyte(d, opts);\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': str = Base64.decode(d); break;\n\t\t\tcase 'binary': str = d; break;\n\t\t\tcase 'buffer':\n\t\t\t\tif(opts.codepage == 65001) str = d.toString('utf8');\n\t\t\t\telse if(opts.codepage && typeof cptable !== 'undefined') str = cptable.utils.decode(opts.codepage, d);\n\t\t\t\telse str = d.toString('binary');\n\t\t\t\tbreak;\n\t\t\tcase 'array': str = cc2str(d); break;\n\t\t\tcase 'string': str = d; break;\n\t\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t\t}\n\t\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str.slice(3));\n\t\telse if((opts.type == 'binary') && typeof cptable !== 'undefined' && opts.codepage) str = cptable.utils.decode(opts.codepage, cptable.utils.encode(1252,str));\n\t\tif(str.slice(0,19) == \"socialcalc:version:\") return ETH.to_sheet(opts.type == 'string' ? str : utf8read(str), opts);\n\t\treturn prn_to_sheet_str(str, opts);\n\t}\n\n\tfunction prn_to_workbook(d, opts) { return sheet_to_workbook(prn_to_sheet(d, opts), opts); }\n\n\tfunction sheet_to_prn(ws) {\n\t\tvar o = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar oo = [];\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null) { oo.push(\" \"); continue; }\n\t\t\t\tvar w = (cell.w || (format_cell(cell), cell.w) || \"\").slice(0,10);\n\t\t\t\twhile(w.length < 10) w += \" \";\n\t\t\t\too.push(w + (C === 0 ? \" \" : \"\"));\n\t\t\t}\n\t\t\to.push(oo.join(\"\"));\n\t\t}\n\t\treturn o.join(\"\\n\");\n\t}\n\n\treturn {\n\t\tto_workbook: prn_to_workbook,\n\t\tto_sheet: prn_to_sheet,\n\t\tfrom_sheet: sheet_to_prn\n\t};\n})();\n\n/* Excel defaults to SYLK but warns if data is not valid */\nfunction read_wb_ID(d, opts) {\n\tvar o = opts || {}, OLD_WTF = !!o.WTF; o.WTF = true;\n\ttry {\n\t\tvar out = SYLK.to_workbook(d, o);\n\t\to.WTF = OLD_WTF;\n\t\treturn out;\n\t} catch(e) {\n\t\to.WTF = OLD_WTF;\n\t\tif(!e.message.match(/SYLK bad record ID/) && OLD_WTF) throw e;\n\t\treturn PRN.to_workbook(d, opts);\n\t}\n}\n\nvar WK_ = (function() {\n\tfunction lotushopper(data, cb, opts) {\n\t\tif(!data) return;\n\t\tprep_blob(data, data.l || 0);\n\t\tvar Enum = opts.Enum || WK1Enum;\n\t\twhile(data.l < data.length) {\n\t\t\tvar RT = data.read_shift(2);\n\t\t\tvar R = Enum[RT] || Enum[0xFF];\n\t\t\tvar length = data.read_shift(2);\n\t\t\tvar tgt = data.l + length;\n\t\t\tvar d = (R.f||parsenoop)(data, length, opts);\n\t\t\tdata.l = tgt;\n\t\t\tif(cb(d, R.n, RT)) return;\n\t\t}\n\t}\n\n\tfunction lotus_to_workbook(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return lotus_to_workbook_buf(s2a(Base64.decode(d)), opts);\n\t\t\tcase 'binary': return lotus_to_workbook_buf(s2a(d), opts);\n\t\t\tcase 'buffer':\n\t\t\tcase 'array': return lotus_to_workbook_buf(d, opts);\n\t\t}\n\t\tthrow \"Unsupported type \" + opts.type;\n\t}\n\n\tfunction lotus_to_workbook_buf(d, opts) {\n\t\tif(!d) return d;\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s = ((o.dense ? [] : {})), n = \"Sheet1\", sidx = 0;\n\t\tvar sheets = {}, snames = [n];\n\n\t\tvar refguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\tvar sheetRows = o.sheetRows || 0;\n\n\t\tif(d[2] == 0x02) o.Enum = WK1Enum;\n\t\telse if(d[2] == 0x1a) o.Enum = WK3Enum;\n\t\telse if(d[2] == 0x0e) { o.Enum = WK3Enum; o.qpro = true; d.l = 0; }\n\t\telse throw new Error(\"Unrecognized LOTUS BOF \" + d[2]);\n\t\tlotushopper(d, function(val, Rn, RT) {\n\t\t\tif(d[2] == 0x02) switch(RT) {\n\t\t\t\tcase 0x00:\n\t\t\t\t\to.vers = val;\n\t\t\t\t\tif(val >= 0x1000) o.qpro = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x06: refguess = val; break; /* RANGE */\n\t\t\t\tcase 0x0F: /* LABEL */\n\t\t\t\t\tif(!o.qpro) val[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x0D: /* INTEGER */\n\t\t\t\tcase 0x0E: /* NUMBER */\n\t\t\t\tcase 0x10: /* FORMULA */\n\t\t\t\tcase 0x33: /* STRING */\n\t\t\t\t\t/* TODO: actual translation of the format code */\n\t\t\t\t\tif(RT == 0x0E && (val[2] & 0x70) == 0x70 && (val[2] & 0x0F) > 1 && (val[2] & 0x0F) < 15) {\n\t\t\t\t\t\tval[1].z = o.dateNF || SSF._table[14];\n\t\t\t\t\t\tif(o.cellDates) { val[1].t = 'd'; val[1].v = numdate(val[1].v); }\n\t\t\t\t\t}\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tbreak;\n\t\t\t} else switch(RT) {\n\t\t\t\tcase 0x16: /* LABEL16 */\n\t\t\t\t\tval[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x17: /* NUMBER17 */\n\t\t\t\tcase 0x18: /* NUMBER18 */\n\t\t\t\tcase 0x19: /* FORMULA19 */\n\t\t\t\tcase 0x25: /* NUMBER25 */\n\t\t\t\tcase 0x27: /* NUMBER27 */\n\t\t\t\tcase 0x28: /* FORMULA28 */\n\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\tsidx = val[3]; n = \"Sheet\" + (sidx + 1);\n\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t}\n\t\t\t\t\tif(sheetRows > 0 && val[0].r >= sheetRows) break;\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tif(refguess.e.c < val[0].c) refguess.e.c = val[0].c;\n\t\t\t\t\tif(refguess.e.r < val[0].r) refguess.e.r = val[0].r;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: break;\n\t\t\t}\n\t\t}, o);\n\n\t\ts[\"!ref\"] = encode_range(refguess);\n\t\tsheets[n] = s;\n\t\treturn { SheetNames: snames, Sheets:sheets };\n\t}\n\n\tfunction parse_RANGE(blob) {\n\t\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\t\to.s.c = blob.read_shift(2);\n\t\to.s.r = blob.read_shift(2);\n\t\to.e.c = blob.read_shift(2);\n\t\to.e.r = blob.read_shift(2);\n\t\tif(o.s.c == 0xFFFF) o.s.c = o.e.c = o.s.r = o.e.r = 0;\n\t\treturn o;\n\t}\n\n\tfunction parse_cell(blob, length, opts) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\tif(opts.qpro && opts.vers != 0x5120) {\n\t\t\to[0].c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to[0].r = blob.read_shift(2);\n\t\t\tblob.l+=2;\n\t\t} else {\n\t\t\to[2] = blob.read_shift(1);\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif(opts.vers == 0x5120) {\n\t\t\tblob.l++;\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\tif(opts.qpro) blob.l++;\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\n\tfunction parse_INTEGER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(2, 'i');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\t/* TODO: formula */\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\tif(opts.qpro) blob.l = tgt;\n\t\telse {\n\t\t\tvar flen = blob.read_shift(2);\n\t\t\tblob.l += flen;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction parse_cell_3(blob) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\to[0].r = blob.read_shift(2); o[3] = blob[blob.l++]; o[0].c = blob[blob.l++];\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL_16(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].t = 's';\n\t\to[1].v = blob.read_shift(length - 4, 'cstr');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_18(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].v = blob.read_shift(2);\n\t\tvar v = o[1].v >> 1;\n\t\t/* TODO: figure out all of the corner cases */\n\t\tif(o[1].v & 0x1) {\n\t\t\tswitch(v & 0x07) {\n\t\t\t\tcase 1: v = (v >> 3) * 500; break;\n\t\t\t\tcase 2: v = (v >> 3) / 20; break;\n\t\t\t\tcase 4: v = (v >> 3) / 2000; break;\n\t\t\t\tcase 6: v = (v >> 3) / 16; break;\n\t\t\t\tcase 7: v = (v >> 3) / 64; break;\n\t\t\t\tdefault: throw \"unknown NUMBER_18 encoding \" + (v & 0x07);\n\t\t\t}\n\t\t}\n\t\to[1].v = v;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_17(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\tvar v2 = blob.read_shift(4);\n\t\tvar e = blob.read_shift(2);\n\t\tif(e == 0xFFFF) { o[1].v = 0; return o; }\n\t\tvar s = e & 0x8000; e = (e&0x7FFF) - 16446;\n\t\to[1].v = (s*2 - 1) * ((e > 0 ? (v2 << e) : (v2 >>> -e)) + (e > -32 ? (v1 << (e + 32)) : (v1 >>> -(e + 32))));\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_19(blob, length) {\n\t\tvar o = parse_NUMBER_17(blob, 14);\n\t\tblob.l += length - 14; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_25(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\to[1].v = v1 >> 6;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_27(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(8,'f');\n\t\to[1].v = v1;\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_28(blob, length) {\n\t\tvar o = parse_NUMBER_27(blob, 14);\n\t\tblob.l += length - 10; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tvar WK1Enum = {\n0x0000: { n:\"BOF\", f:parseuint16 },\n0x0001: { n:\"EOF\" },\n0x0002: { n:\"CALCMODE\" },\n0x0003: { n:\"CALCORDER\" },\n0x0004: { n:\"SPLIT\" },\n0x0005: { n:\"SYNC\" },\n0x0006: { n:\"RANGE\", f:parse_RANGE },\n0x0007: { n:\"WINDOW1\" },\n0x0008: { n:\"COLW1\" },\n0x0009: { n:\"WINTWO\" },\n0x000A: { n:\"COLW2\" },\n0x000B: { n:\"NAME\" },\n0x000C: { n:\"BLANK\" },\n0x000D: { n:\"INTEGER\", f:parse_INTEGER },\n0x000E: { n:\"NUMBER\", f:parse_NUMBER },\n0x000F: { n:\"LABEL\", f:parse_LABEL },\n0x0010: { n:\"FORMULA\", f:parse_FORMULA },\n0x0018: { n:\"TABLE\" },\n0x0019: { n:\"ORANGE\" },\n0x001A: { n:\"PRANGE\" },\n0x001B: { n:\"SRANGE\" },\n0x001C: { n:\"FRANGE\" },\n0x001D: { n:\"KRANGE1\" },\n0x0020: { n:\"HRANGE\" },\n0x0023: { n:\"KRANGE2\" },\n0x0024: { n:\"PROTEC\" },\n0x0025: { n:\"FOOTER\" },\n0x0026: { n:\"HEADER\" },\n0x0027: { n:\"SETUP\" },\n0x0028: { n:\"MARGINS\" },\n0x0029: { n:\"LABELFMT\" },\n0x002A: { n:\"TITLES\" },\n0x002B: { n:\"SHEETJS\" },\n0x002D: { n:\"GRAPH\" },\n0x002E: { n:\"NGRAPH\" },\n0x002F: { n:\"CALCCOUNT\" },\n0x0030: { n:\"UNFORMATTED\" },\n0x0031: { n:\"CURSORW12\" },\n0x0032: { n:\"WINDOW\" },\n0x0033: { n:\"STRING\", f:parse_LABEL },\n0x0037: { n:\"PASSWORD\" },\n0x0038: { n:\"LOCKED\" },\n0x003C: { n:\"QUERY\" },\n0x003D: { n:\"QUERYNAME\" },\n0x003E: { n:\"PRINT\" },\n0x003F: { n:\"PRINTNAME\" },\n0x0040: { n:\"GRAPH2\" },\n0x0041: { n:\"GRAPHNAME\" },\n0x0042: { n:\"ZOOM\" },\n0x0043: { n:\"SYMSPLIT\" },\n0x0044: { n:\"NSROWS\" },\n0x0045: { n:\"NSCOLS\" },\n0x0046: { n:\"RULER\" },\n0x0047: { n:\"NNAME\" },\n0x0048: { n:\"ACOMM\" },\n0x0049: { n:\"AMACRO\" },\n0x004A: { n:\"PARSE\" },\n0x00FF: { n:\"\", f:parsenoop }\n\t};\n\n\tvar WK3Enum = {\n0x0000: { n:\"BOF\" },\n0x0001: { n:\"EOF\" },\n0x0003: { n:\"??\" },\n0x0004: { n:\"??\" },\n0x0005: { n:\"??\" },\n0x0006: { n:\"??\" },\n0x0007: { n:\"??\" },\n0x0009: { n:\"??\" },\n0x000a: { n:\"??\" },\n0x000b: { n:\"??\" },\n0x000c: { n:\"??\" },\n0x000e: { n:\"??\" },\n0x000f: { n:\"??\" },\n0x0010: { n:\"??\" },\n0x0011: { n:\"??\" },\n0x0012: { n:\"??\" },\n0x0013: { n:\"??\" },\n0x0015: { n:\"??\" },\n0x0016: { n:\"LABEL16\", f:parse_LABEL_16},\n0x0017: { n:\"NUMBER17\", f:parse_NUMBER_17 },\n0x0018: { n:\"NUMBER18\", f:parse_NUMBER_18 },\n0x0019: { n:\"FORMULA19\", f:parse_FORMULA_19},\n0x001a: { n:\"??\" },\n0x001b: { n:\"??\" },\n0x001c: { n:\"??\" },\n0x001d: { n:\"??\" },\n0x001e: { n:\"??\" },\n0x001f: { n:\"??\" },\n0x0021: { n:\"??\" },\n0x0025: { n:\"NUMBER25\", f:parse_NUMBER_25 },\n0x0027: { n:\"NUMBER27\", f:parse_NUMBER_27 },\n0x0028: { n:\"FORMULA28\", f:parse_FORMULA_28 },\n0x00FF: { n:\"\", f:parsenoop }\n\t};\n\treturn {\n\t\tto_workbook: lotus_to_workbook\n\t};\n})();\n/* 18.4.7 rPr CT_RPrElt */\nfunction parse_rpr(rpr) {\n\tvar font = {}, m = rpr.match(tagregex), i = 0;\n\tvar pass = false;\n\tif(m) for(;i!=m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(y[0].replace(/\\w*:/g,\"\")) {\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<condense': break;\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<extend': break;\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<shadow':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<shadow>':\n\t\t\tcase '<shadow/>': font.shadow = 1; break;\n\t\t\tcase '</shadow>': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\tcase '<charset':\n\t\t\t\tif(y.val == '1') break;\n\t\t\t\tfont.cp = CS2CP[parseInt(y.val, 10)];\n\t\t\t\tbreak;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty TODO */\n\t\t\tcase '<outline':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<outline>':\n\t\t\tcase '<outline/>': font.outline = 1; break;\n\t\t\tcase '</outline>': break;\n\n\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\tcase '<rFont': font.name = y.val; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '<sz': font.sz = y.val; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '<strike':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<strike>':\n\t\t\tcase '<strike/>': font.strike = 1; break;\n\t\t\tcase '</strike>': break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '<u':\n\t\t\t\tif(!y.val) break;\n\t\t\t\tswitch(y.val) {\n\t\t\t\t\tcase 'double': font.uval = \"double\"; break;\n\t\t\t\t\tcase 'singleAccounting': font.uval = \"single-accounting\"; break;\n\t\t\t\t\tcase 'doubleAccounting': font.uval = \"double-accounting\"; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '<u>':\n\t\t\tcase '<u/>': font.u = 1; break;\n\t\t\tcase '</u>': break;\n\n\t\t\t/* 18.8.2 b */\n\t\t\tcase '<b':\n\t\t\t\tif(y.val == '0') break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<b>':\n\t\t\tcase '<b/>': font.b = 1; break;\n\t\t\tcase '</b>': break;\n\n\t\t\t/* 18.8.26 i */\n\t\t\tcase '<i':\n\t\t\t\tif(y.val == '0') break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<i>':\n\t\t\tcase '<i/>': font.i = 1; break;\n\t\t\tcase '</i>': break;\n\n\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\tcase '<color':\n\t\t\t\tif(y.rgb) font.color = y.rgb.slice(2,8);\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.18 family ST_FontFamily */\n\t\t\tcase '<family': font.family = y.val; break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty TODO */\n\t\t\tcase '<vertAlign': font.valign = y.val; break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme TODO */\n\t\t\tcase '<scheme': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = (function() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o = ({t:'s', v:unescapexml(t[1])});\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of <r> tags */\nvar rs_to_html = (function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('<span style=\"' + style.join(\"\") + '\">');\n\n\t\tif(font.b) { intro.push(\"<b>\"); outro.push(\"</b>\"); }\n\t\tif(font.i) { intro.push(\"<i>\"); outro.push(\"</i>\"); }\n\t\tif(font.strike) { intro.push(\"<s>\"); outro.push(\"</s>\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"</\" + align + \">\"); }\n\n\t\toutro.push(\"</span>\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'<br/>') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r>/;\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return { t: \"\" };\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"));\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")));\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data, opts) {\n\tvar s = ([]), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(sst) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nRELS.SST = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\";\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst, opts) {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS.main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s = sst[i];\n\t\tvar sitag = \"<si>\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"<t\";\n\t\t\tif(!s.t) s.t = \"\";\n\t\t\tif(s.t.match(straywsregex)) sitag += ' xml:space=\"preserve\"';\n\t\t\tsitag += \">\" + escapexml(s.t) + \"</t>\";\n\t\t}\n\t\tsitag += \"</si>\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = ('</sst>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts) {\n\tvar s = ([]);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* 'BrtBeginSst' */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* 'BrtSSTItem' */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* 'BrtEndSst' */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R_n.indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if(R_n.indexOf(\"End\") > 0){/* empty */}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginSst\", write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, \"BrtSSTItem\", write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, \"BrtEndSst\");\n\treturn ba.end();\n}\nfunction _JS2ANSI(str) {\n\tif(typeof cptable !== 'undefined') return cptable.utils.encode(current_ansi, str);\n\tvar o = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length) {\n\tvar o = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\nif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5 EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt() { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<encryption': case '</encryption>': break;\n\t\t\tcase '<keyData': KeyData.forEach(function(k) { o[k] = y[k]; }); break;\n\t\t\tcase '<dataIntegrity': o.encryptedHmacKey = y.encryptedHmacKey; o.encryptedHmacValue = y.encryptedHmacValue; break;\n\t\t\tcase '<keyEncryptors>': case '<keyEncryptors': o.encs = []; break;\n\t\t\tcase '</keyEncryptors>': break;\n\n\t\t\tcase '<keyEncryptor': o.uri = y.uri; break;\n\t\t\tcase '</keyEncryptor>': break;\n\t\t\tcase '<encryptedKey': o.encs.push(y); break;\n\t\t\tdefault: throw y[0];\n\t\t}\n\t});\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.5.1 RC4 CryptoAPI Encryption Header */\nfunction parse_RC4CryptoHeader(blob, length) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4); length -= 4;\n\tif(vers.Minor != 2) throw new Error('unrecognized minor version code: ' + vers.Minor);\n\tif(vers.Major > 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = (function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) });\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nvar RTF = (function() {\n\tfunction rtf_to_sheet(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return rtf_to_sheet_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return rtf_to_sheet_str(d, opts);\n\t\t\tcase 'buffer': return rtf_to_sheet_str(d.toString('binary'), opts);\n\t\t\tcase 'array': return rtf_to_sheet_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\n\tfunction rtf_to_sheet_str(str, opts) {\n\t\tvar o = opts || {};\n\t\tvar ws = o.dense ? ([]) : ({});\n\t\tvar range = ({s: {c:0, r:0}, e: {c:0, r:0}});\n\n\t\t// TODO: parse\n\t\tif(!str.match(/\\\\trowd/)) throw new Error(\"RTF missing table\");\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction rtf_to_workbook(d, opts) { return sheet_to_workbook(rtf_to_sheet(d, opts), opts); }\n\n\t/* TODO: this is a stub */\n\tfunction sheet_to_rtf(ws) {\n\t\tvar o = [\"{\\\\rtf1\\\\ansi\"];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\to.push(\"\\\\trowd\\\\trautofit1\");\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) o.push(\"\\\\cellx\" + (C+1));\n\t\t\to.push(\"\\\\pard\\\\intbl\");\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || cell.v == null && (!cell.f || cell.F)) continue;\n\t\t\t\to.push(\" \" + (cell.w || (format_cell(cell), cell.w)));\n\t\t\t\to.push(\"\\\\cell\");\n\t\t\t}\n\t\t\to.push(\"\\\\pard\\\\intbl\\\\row\");\n\t\t}\n\t\treturn o.join(\"\") + \"}\";\n\t}\n\n\treturn {\n\t\tto_workbook: rtf_to_workbook,\n\t\tto_sheet: rtf_to_sheet,\n\t\tfrom_sheet: sheet_to_rtf\n\t};\n})();\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW<MAX_MDW; ++MDW) if(Math.abs(collw - cycle_width(collw)) <= delta) { delta = Math.abs(collw - cycle_width(collw)); _MDW = MDW; }\n\tMDW = _MDW;\n}\n/* XLML specifies width in terms of pixels */\n/*function find_mdw_wpx(wpx) {\n\tvar delta = Infinity, guess = 0, _MDW = MIN_MDW;\n\tfor(MDW=MIN_MDW; MDW<MAX_MDW; ++MDW) {\n\t\tguess = char2width_(px2char_(wpx))*256;\n\t\tguess = (guess) % 1;\n\t\tif(guess > 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<borders': case '<borders>': case '</borders>': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '<border': case '<border>': case '<border/>':\n\t\t\t\tborder = {};\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '</border>': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '<left/>': break;\n\t\t\tcase '<left': case '<left>': break;\n\t\t\tcase '</left>': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '<right/>': break;\n\t\t\tcase '<right': case '<right>': break;\n\t\t\tcase '</right>': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '<top/>': break;\n\t\t\tcase '<top': case '<top>': break;\n\t\t\tcase '</top>': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '<bottom/>': break;\n\t\t\tcase '<bottom': case '<bottom>': break;\n\t\t\tcase '</bottom>': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '<diagonal': case '<diagonal>': case '<diagonal/>': break;\n\t\t\tcase '</diagonal>': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '<horizontal': case '<horizontal>': case '<horizontal/>': break;\n\t\t\tcase '</horizontal>': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '<vertical': case '<vertical>': case '<vertical/>': break;\n\t\t\tcase '</vertical>': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '<start': case '<start>': case '<start/>': break;\n\t\t\tcase '</start>': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '<end': case '<end>': case '<end/>': break;\n\t\t\tcase '</end>': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '<color': case '<color>':\n\t\t\t\tbreak;\n\t\t\tcase '<color/>': case '</color>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<fills': case '<fills>': case '</fills>': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '<fill>': case '<fill': case '<fill/>':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '</fill>': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '<gradientFill>': break;\n\t\t\tcase '<gradientFill':\n\t\t\tcase '</gradientFill>': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '<patternFill': case '<patternFill>':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '<patternFill/>': case '</patternFill>': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '<bgColor':\n\t\t\t\tif(!fill.bgColor) fill.bgColor = {};\n\t\t\t\tif(y.indexed) fill.bgColor.indexed = parseInt(y.indexed, 10);\n\t\t\t\tif(y.theme) fill.bgColor.theme = parseInt(y.theme, 10);\n\t\t\t\tif(y.tint) fill.bgColor.tint = parseFloat(y.tint);\n\t\t\t\t/* Excel uses ARGB strings */\n\t\t\t\tif(y.rgb) fill.bgColor.rgb = y.rgb.slice(-6);\n\t\t\t\tbreak;\n\t\t\tcase '<bgColor/>': case '</bgColor>': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '<fgColor':\n\t\t\t\tif(!fill.fgColor) fill.fgColor = {};\n\t\t\t\tif(y.theme) fill.fgColor.theme = parseInt(y.theme, 10);\n\t\t\t\tif(y.tint) fill.fgColor.tint = parseFloat(y.tint);\n\t\t\t\t/* Excel uses ARGB strings */\n\t\t\t\tif(y.rgb != null) fill.fgColor.rgb = y.rgb.slice(-6);\n\t\t\t\tbreak;\n\t\t\tcase '<fgColor/>': case '</fgColor>': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '<stop': case '<stop/>': break;\n\t\t\tcase '</stop>': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '<color': case '<color/>': break;\n\t\t\tcase '</color>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<fonts': case '<fonts>': case '</fonts>': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '<font': case '<font>': break;\n\t\t\tcase '</font>': case '<font/>':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '<name': if(y.val) font.name = utf8read(y.val); break;\n\t\t\tcase '<name/>': case '</name>': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '<b': font.bold = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<b/>': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '<i': font.italic = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<i/>': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '<u':\n\t\t\t\tswitch(y.val) {\n\t\t\t\t\tcase \"none\": font.underline = 0x00; break;\n\t\t\t\t\tcase \"single\": font.underline = 0x01; break;\n\t\t\t\t\tcase \"double\": font.underline = 0x02; break;\n\t\t\t\t\tcase \"singleAccounting\": font.underline = 0x21; break;\n\t\t\t\t\tcase \"doubleAccounting\": font.underline = 0x22; break;\n\t\t\t\t} break;\n\t\t\tcase '<u/>': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '<strike': font.strike = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<strike/>': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '<outline': font.outline = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<outline/>': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '<shadow': font.shadow = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<shadow/>': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '<condense': font.condense = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<condense/>': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '<extend': font.extend = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<extend/>': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '<sz': if(y.val) font.sz = +y.val; break;\n\t\t\tcase '<sz/>': case '</sz>': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '<vertAlign': if(y.val) font.vertAlign = y.val; break;\n\t\t\tcase '<vertAlign/>': case '</vertAlign>': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '<family': if(y.val) font.family = parseInt(y.val,10); break;\n\t\t\tcase '<family/>': case '</family>': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '<scheme': if(y.val) font.scheme = y.val; break;\n\t\t\tcase '<scheme/>': case '</scheme>': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '<charset':\n\t\t\t\tif(y.val == '1') break;\n\t\t\t\ty.codepage = CS2CP[parseInt(y.val, 10)];\n\t\t\t\tbreak;\n\n\t\t\t/* 18.?.? color CT_Color */\n\t\t\tcase '<color':\n\t\t\t\tif(!font.color) font.color = {};\n\t\t\t\tif(y.auto) font.color.auto = parsexmlbool(y.auto);\n\n\t\t\t\tif(y.rgb) font.color.rgb = y.rgb.slice(-6);\n\t\t\t\telse if(y.indexed) {\n\t\t\t\t\tfont.color.index = parseInt(y.indexed, 10);\n\t\t\t\t\tvar icv = XLSIcv[font.color.index];\n\t\t\t\t\tif(font.color.index == 81) icv = XLSIcv[1];\n\t\t\t\t\tif(!icv) throw new Error(x);\n\t\t\t\t\tfont.color.rgb = icv[0].toString(16) + icv[1].toString(16) + icv[2].toString(16);\n\t\t\t\t} else if(y.theme) {\n\t\t\t\t\tfont.color.theme = parseInt(y.theme, 10);\n\t\t\t\t\tif(y.tint) font.color.tint = parseFloat(y.tint);\n\t\t\t\t\tif(y.theme && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\t\tfont.color.rgb = rgb_tint(themes.themeElements.clrScheme[font.color.theme].rgb, font.color.tint || 0);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase '<color/>': case '</color>': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '<AlternateContent': pass = true; break;\n\t\t\tcase '</AlternateContent>': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array<number>*/ = (keys(SSF._table));\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = SSF._table[k[i]];\n\tvar m = t[0].match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<numFmts': case '</numFmts>': case '<numFmts/>': case '<numFmts>': break;\n\t\t\tcase '<numFmt': {\n\t\t\t\tvar f=unescapexml(utf8read(y.formatCode)), j=parseInt(y.numFmtId,10);\n\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\tif(j>0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF.load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '</numFmt>': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF) {\n\tvar o = [\"<numFmts>\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"</numFmts>\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<cellXfs': case '<cellXfs>': case '<cellXfs/>': case '</cellXfs>': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '<xf': case '<xf/>':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '</xf>': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '<alignment': case '<alignment/>':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '</alignment>': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '<protection':\n\t\t\t\tbreak;\n\t\t\tcase '</protection>': case '<protection/>': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '<AlternateContent': pass = true; break;\n\t\t\tcase '</AlternateContent>': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs) {\n\tvar o = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"</cellXfs>\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= (function make_pstyx() {\nvar numFmtRegex = /<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;\nvar cellXfRegex = /<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;\nvar fillsRegex = /<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;\nvar fontsRegex = /<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;\nvar bordersRegex = /<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = data.replace(/<!--([\\s\\S]*?)-->/mg,\"\").replace(/<!DOCTYPE[^\\[]*\\[[^\\]]*\\]>/gm,\"\");\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nvar STYLES_XML_ROOT = writextag('styleSheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:vt': XMLNS.vt\n});\n\nRELS.STY = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\";\n\nfunction write_sty_xml(wb, opts) {\n\tvar o = [XML_HEADER, STYLES_XML_ROOT], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('<fonts count=\"1\"><font><sz val=\"12\"/><color theme=\"1\"/><name val=\"Calibri\"/><family val=\"2\"/><scheme val=\"minor\"/></font></fonts>');\n\to[o.length] = ('<fills count=\"2\"><fill><patternFill patternType=\"none\"/></fill><fill><patternFill patternType=\"gray125\"/></fill></fills>');\n\to[o.length] = ('<borders count=\"1\"><border><left/><right/><top/><bottom/><diagonal/></border></borders>');\n\to[o.length] = ('<cellStyleXfs count=\"1\"><xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\"/></cellStyleXfs>');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('<cellStyles count=\"1\"><cellStyle name=\"Normal\" xfId=\"0\" builtinId=\"0\"/></cellStyles>');\n\to[o.length] = ('<dxfs count=\"0\"/>');\n\to[o.length] = ('<tableStyles count=\"0\" defaultTableStyle=\"TableStyleMedium9\" defaultPivotStyle=\"PivotStyleMedium4\"/>');\n\n\tif(o.length>2){ o[o.length] = ('</styleSheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i, f, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length, opts) {\n\tvar out = ({});\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames = (evert(XLSBFillPTNames));\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tvar fls = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]);\n\tfor(var y in SSF._table) styles.NumberFmt[y] = SSF._table[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* 'BrtFmt' */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF.load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* 'BrtFont' */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* 'BrtKnownFonts' */ break;\n\t\t\tcase 0x002D: /* 'BrtFill' */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* 'BrtBorder' */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* 'BrtXF' */\n\t\t\t\tif(state[state.length - 1] == \"BrtBeginCellXFs\") {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* 'BrtStyle' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x023C: /* 'BrtMRUColor' */\n\t\t\tcase 0x01DB: /* 'BrtIndexedColor': */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* 'BrtDXF14' */\n\t\t\tcase 0x0836: /* 'BrtDXF15' */\n\t\t\tcase 0x046A: /* 'BrtSlicerStyleElement' */\n\t\t\tcase 0x0200: /* 'BrtTableStyleElement' */\n\t\t\tcase 0x082F: /* 'BrtTimelineStyleElement' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0) state.push(R_n);\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != \"BrtACBegin\")) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFmts\", write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, \"BrtFmt\", write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, \"BrtEndFmts\");\n}\n\nfunction write_FONTS_bin(ba) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFonts\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtFont\", write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, \"BrtEndFonts\");\n}\n\nfunction write_FILLS_bin(ba) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFills\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtFill\", write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, \"BrtFill\", write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, \"BrtEndFills\");\n}\n\nfunction write_BORDERS_bin(ba) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginBorders\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtBorder\", write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, \"BrtEndBorders\");\n}\n\nfunction write_CELLSTYLEXFS_bin(ba) {\n\tvar cnt = 1;\n\twrite_record(ba, \"BrtBeginCellStyleXFs\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtXF\", write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId: 0,\n\t\tfillId: 0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, \"BrtEndCellStyleXFs\");\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, \"BrtBeginCellXFs\", write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, \"BrtXF\", write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, \"BrtEndCellXFs\");\n}\n\nfunction write_STYLES_bin(ba) {\n\tvar cnt = 1;\n\n\twrite_record(ba, \"BrtBeginStyles\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtStyle\", write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, \"BrtEndStyles\");\n}\n\nfunction write_DXFS_bin(ba) {\n\tvar cnt = 0;\n\n\twrite_record(ba, \"BrtBeginDXFs\", write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, \"BrtEndDXFs\");\n}\n\nfunction write_TABLESTYLES_bin(ba) {\n\tvar cnt = 0;\n\n\twrite_record(ba, \"BrtBeginTableStyles\", write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, \"BrtEndTableStyles\");\n}\n\nfunction write_COLORPALETTE_bin() {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginStyleSheet\");\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, \"BrtEndStyleSheet\");\n\treturn ba.end();\n}\nRELS.THEME = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\";\n\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'</a:lt1>', '</a:dk1>', '</a:lt2>', '</a:dk2>',\n\t'</a:accent1>', '</a:accent2>', '</a:accent3>',\n\t'</a:accent4>', '</a:accent5>', '</a:accent6>',\n\t'</a:hlink>', '</a:folHlink>'\n];\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '<a:clrScheme': case '</a:clrScheme>': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '<a:srgbClr':\n\t\t\t\tcolor.rgb = y.val; break;\n\n\t\t\t/* 20.1.2.3.33 sysClr CT_SystemColor */\n\t\t\tcase '<a:sysClr':\n\t\t\t\tcolor.rgb = y.lastClr; break;\n\n\t\t\t/* 20.1.4.1.1 accent1 (Accent 1) */\n\t\t\t/* 20.1.4.1.2 accent2 (Accent 2) */\n\t\t\t/* 20.1.4.1.3 accent3 (Accent 3) */\n\t\t\t/* 20.1.4.1.4 accent4 (Accent 4) */\n\t\t\t/* 20.1.4.1.5 accent5 (Accent 5) */\n\t\t\t/* 20.1.4.1.6 accent6 (Accent 6) */\n\t\t\t/* 20.1.4.1.9 dk1 (Dark 1) */\n\t\t\t/* 20.1.4.1.10 dk2 (Dark 2) */\n\t\t\t/* 20.1.4.1.15 folHlink (Followed Hyperlink) */\n\t\t\t/* 20.1.4.1.19 hlink (Hyperlink) */\n\t\t\t/* 20.1.4.1.22 lt1 (Light 1) */\n\t\t\t/* 20.1.4.1.23 lt2 (Light 2) */\n\t\t\tcase '<a:dk1>': case '</a:dk1>':\n\t\t\tcase '<a:lt1>': case '</a:lt1>':\n\t\t\tcase '<a:dk2>': case '</a:dk2>':\n\t\t\tcase '<a:lt2>': case '</a:lt2>':\n\t\t\tcase '<a:accent1>': case '</a:accent1>':\n\t\t\tcase '<a:accent2>': case '</a:accent2>':\n\t\t\tcase '<a:accent3>': case '</a:accent3>':\n\t\t\tcase '<a:accent4>': case '</a:accent4>':\n\t\t\tcase '<a:accent5>': case '</a:accent5>':\n\t\t\tcase '<a:accent6>': case '</a:accent6>':\n\t\t\tcase '<a:hlink>': case '</a:hlink>':\n\t\t\tcase '<a:folHlink>': case '</a:folHlink>':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme() { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme() { }\n\nvar clrsregex = /<a:clrScheme([^>]*)>[\\s\\S]*<\\/a:clrScheme>/;\nvar fntsregex = /<a:fontScheme([^>]*)>[\\s\\S]*<\\/a:fontScheme>/;\nvar fmtsregex = /<a:fmtScheme([^>]*)>[\\s\\S]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw new Error(m[0] + ' not found in themeElements');\n\t\tm[2](t, themes, opts);\n\t});\n}\n\nvar themeltregex = /<a:themeElements([^>]*)>[\\s\\S]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) return parse_theme_xml(write_theme());\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts) {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\">';\n\to[o.length] = '<a:themeElements>';\n\n\to[o.length] = '<a:clrScheme name=\"Office\">';\n\to[o.length] = '<a:dk1><a:sysClr val=\"windowText\" lastClr=\"000000\"/></a:dk1>';\n\to[o.length] = '<a:lt1><a:sysClr val=\"window\" lastClr=\"FFFFFF\"/></a:lt1>';\n\to[o.length] = '<a:dk2><a:srgbClr val=\"1F497D\"/></a:dk2>';\n\to[o.length] = '<a:lt2><a:srgbClr val=\"EEECE1\"/></a:lt2>';\n\to[o.length] = '<a:accent1><a:srgbClr val=\"4F81BD\"/></a:accent1>';\n\to[o.length] = '<a:accent2><a:srgbClr val=\"C0504D\"/></a:accent2>';\n\to[o.length] = '<a:accent3><a:srgbClr val=\"9BBB59\"/></a:accent3>';\n\to[o.length] = '<a:accent4><a:srgbClr val=\"8064A2\"/></a:accent4>';\n\to[o.length] = '<a:accent5><a:srgbClr val=\"4BACC6\"/></a:accent5>';\n\to[o.length] = '<a:accent6><a:srgbClr val=\"F79646\"/></a:accent6>';\n\to[o.length] = '<a:hlink><a:srgbClr val=\"0000FF\"/></a:hlink>';\n\to[o.length] = '<a:folHlink><a:srgbClr val=\"800080\"/></a:folHlink>';\n\to[o.length] = '</a:clrScheme>';\n\n\to[o.length] = '<a:fontScheme name=\"Office\">';\n\to[o.length] = '<a:majorFont>';\n\to[o.length] = '<a:latin typeface=\"Cambria\"/>';\n\to[o.length] = '<a:ea typeface=\"\"/>';\n\to[o.length] = '<a:cs typeface=\"\"/>';\n\to[o.length] = '<a:font script=\"Jpan\" typeface=\"MS Pゴシック\"/>';\n\to[o.length] = '<a:font script=\"Hang\" typeface=\"맑은 고딕\"/>';\n\to[o.length] = '<a:font script=\"Hans\" typeface=\"宋体\"/>';\n\to[o.length] = '<a:font script=\"Hant\" typeface=\"新細明體\"/>';\n\to[o.length] = '<a:font script=\"Arab\" typeface=\"Times New Roman\"/>';\n\to[o.length] = '<a:font script=\"Hebr\" typeface=\"Times New Roman\"/>';\n\to[o.length] = '<a:font script=\"Thai\" typeface=\"Tahoma\"/>';\n\to[o.length] = '<a:font script=\"Ethi\" typeface=\"Nyala\"/>';\n\to[o.length] = '<a:font script=\"Beng\" typeface=\"Vrinda\"/>';\n\to[o.length] = '<a:font script=\"Gujr\" typeface=\"Shruti\"/>';\n\to[o.length] = '<a:font script=\"Khmr\" typeface=\"MoolBoran\"/>';\n\to[o.length] = '<a:font script=\"Knda\" typeface=\"Tunga\"/>';\n\to[o.length] = '<a:font script=\"Guru\" typeface=\"Raavi\"/>';\n\to[o.length] = '<a:font script=\"Cans\" typeface=\"Euphemia\"/>';\n\to[o.length] = '<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>';\n\to[o.length] = '<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>';\n\to[o.length] = '<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>';\n\to[o.length] = '<a:font script=\"Thaa\" typeface=\"MV Boli\"/>';\n\to[o.length] = '<a:font script=\"Deva\" typeface=\"Mangal\"/>';\n\to[o.length] = '<a:font script=\"Telu\" typeface=\"Gautami\"/>';\n\to[o.length] = '<a:font script=\"Taml\" typeface=\"Latha\"/>';\n\to[o.length] = '<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>';\n\to[o.length] = '<a:font script=\"Orya\" typeface=\"Kalinga\"/>';\n\to[o.length] = '<a:font script=\"Mlym\" typeface=\"Kartika\"/>';\n\to[o.length] = '<a:font script=\"Laoo\" typeface=\"DokChampa\"/>';\n\to[o.length] = '<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>';\n\to[o.length] = '<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>';\n\to[o.length] = '<a:font script=\"Viet\" typeface=\"Times New Roman\"/>';\n\to[o.length] = '<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>';\n\to[o.length] = '<a:font script=\"Geor\" typeface=\"Sylfaen\"/>';\n\to[o.length] = '</a:majorFont>';\n\to[o.length] = '<a:minorFont>';\n\to[o.length] = '<a:latin typeface=\"Calibri\"/>';\n\to[o.length] = '<a:ea typeface=\"\"/>';\n\to[o.length] = '<a:cs typeface=\"\"/>';\n\to[o.length] = '<a:font script=\"Jpan\" typeface=\"MS Pゴシック\"/>';\n\to[o.length] = '<a:font script=\"Hang\" typeface=\"맑은 고딕\"/>';\n\to[o.length] = '<a:font script=\"Hans\" typeface=\"宋体\"/>';\n\to[o.length] = '<a:font script=\"Hant\" typeface=\"新細明體\"/>';\n\to[o.length] = '<a:font script=\"Arab\" typeface=\"Arial\"/>';\n\to[o.length] = '<a:font script=\"Hebr\" typeface=\"Arial\"/>';\n\to[o.length] = '<a:font script=\"Thai\" typeface=\"Tahoma\"/>';\n\to[o.length] = '<a:font script=\"Ethi\" typeface=\"Nyala\"/>';\n\to[o.length] = '<a:font script=\"Beng\" typeface=\"Vrinda\"/>';\n\to[o.length] = '<a:font script=\"Gujr\" typeface=\"Shruti\"/>';\n\to[o.length] = '<a:font script=\"Khmr\" typeface=\"DaunPenh\"/>';\n\to[o.length] = '<a:font script=\"Knda\" typeface=\"Tunga\"/>';\n\to[o.length] = '<a:font script=\"Guru\" typeface=\"Raavi\"/>';\n\to[o.length] = '<a:font script=\"Cans\" typeface=\"Euphemia\"/>';\n\to[o.length] = '<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>';\n\to[o.length] = '<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>';\n\to[o.length] = '<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>';\n\to[o.length] = '<a:font script=\"Thaa\" typeface=\"MV Boli\"/>';\n\to[o.length] = '<a:font script=\"Deva\" typeface=\"Mangal\"/>';\n\to[o.length] = '<a:font script=\"Telu\" typeface=\"Gautami\"/>';\n\to[o.length] = '<a:font script=\"Taml\" typeface=\"Latha\"/>';\n\to[o.length] = '<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>';\n\to[o.length] = '<a:font script=\"Orya\" typeface=\"Kalinga\"/>';\n\to[o.length] = '<a:font script=\"Mlym\" typeface=\"Kartika\"/>';\n\to[o.length] = '<a:font script=\"Laoo\" typeface=\"DokChampa\"/>';\n\to[o.length] = '<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>';\n\to[o.length] = '<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>';\n\to[o.length] = '<a:font script=\"Viet\" typeface=\"Arial\"/>';\n\to[o.length] = '<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>';\n\to[o.length] = '<a:font script=\"Geor\" typeface=\"Sylfaen\"/>';\n\to[o.length] = '</a:minorFont>';\n\to[o.length] = '</a:fontScheme>';\n\n\to[o.length] = '<a:fmtScheme name=\"Office\">';\n\to[o.length] = '<a:fillStyleLst>';\n\to[o.length] = '<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"35000\"><a:schemeClr val=\"phClr\"><a:tint val=\"37000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"15000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:lin ang=\"16200000\" scaled=\"1\"/>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"100000\"/><a:shade val=\"100000\"/><a:satMod val=\"130000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:shade val=\"100000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:lin ang=\"16200000\" scaled=\"0\"/>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '</a:fillStyleLst>';\n\to[o.length] = '<a:lnStyleLst>';\n\to[o.length] = '<a:ln w=\"9525\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"><a:shade val=\"95000\"/><a:satMod val=\"105000\"/></a:schemeClr></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] = '<a:ln w=\"25400\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] = '<a:ln w=\"38100\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] = '</a:lnStyleLst>';\n\to[o.length] = '<a:effectStyleLst>';\n\to[o.length] = '<a:effectStyle>';\n\to[o.length] = '<a:effectLst>';\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"20000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"38000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] = '</a:effectLst>';\n\to[o.length] = '</a:effectStyle>';\n\to[o.length] = '<a:effectStyle>';\n\to[o.length] = '<a:effectLst>';\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] = '</a:effectLst>';\n\to[o.length] = '</a:effectStyle>';\n\to[o.length] = '<a:effectStyle>';\n\to[o.length] = '<a:effectLst>';\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] = '</a:effectLst>';\n\to[o.length] = '<a:scene3d><a:camera prst=\"orthographicFront\"><a:rot lat=\"0\" lon=\"0\" rev=\"0\"/></a:camera><a:lightRig rig=\"threePt\" dir=\"t\"><a:rot lat=\"0\" lon=\"0\" rev=\"1200000\"/></a:lightRig></a:scene3d>';\n\to[o.length] = '<a:sp3d><a:bevelT w=\"63500\" h=\"25400\"/></a:sp3d>';\n\to[o.length] = '</a:effectStyle>';\n\to[o.length] = '</a:effectStyleLst>';\n\to[o.length] = '<a:bgFillStyleLst>';\n\to[o.length] = '<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"40000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"40000\"><a:schemeClr val=\"phClr\"><a:tint val=\"45000\"/><a:shade val=\"99000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"20000\"/><a:satMod val=\"255000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"-80000\" r=\"50000\" b=\"180000\"/></a:path>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"80000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"30000\"/><a:satMod val=\"200000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"50000\" r=\"50000\" b=\"50000\"/></a:path>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '</a:bgFillStyleLst>';\n\to[o.length] = '</a:fmtScheme>';\n\to[o.length] = '</a:themeElements>';\n\n\to[o.length] = '<a:objectDefaults>';\n\to[o.length] = '<a:spDef>';\n\to[o.length] = '<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"3\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"lt1\"/></a:fontRef></a:style>';\n\to[o.length] = '</a:spDef>';\n\to[o.length] = '<a:lnDef>';\n\to[o.length] = '<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"0\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"tx1\"/></a:fontRef></a:style>';\n\to[o.length] = '</a:lnDef>';\n\to[o.length] = '</a:objectDefaults>';\n\to[o.length] = '<a:extraClrSchemeLst/>';\n\to[o.length] = '</a:theme>';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles || !jszip) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = new jszip(data); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob) {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data) {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '<?xml': break;\n\t\t\t/* 18.6.2 calcChain CT_CalcChain 1 */\n\t\t\tcase '<calcChain': case '<calcChain>': case '</calcChain>': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase '<c': delete y[0]; if(y.i) i = y.i; else y.i = i; d.push(y); break;\n\t\t}\n\t});\n\treturn d;\n}\n\n//function write_cc_xml(data, opts) { }\n\n/* [MS-XLSB] 2.6.4.1 */\nfunction parse_BrtCalcChainItem$(data) {\n\tvar out = {};\n\tout.i = data.read_shift(4);\n\tvar cell = {};\n\tcell.r = data.read_shift(4);\n\tcell.c = data.read_shift(4);\n\tout.r = encode_cell(cell);\n\tvar flags = data.read_shift(1);\n\tif(flags & 0x2) out.l = '1';\n\tif(flags & 0x8) out.a = '1';\n\treturn out;\n}\n\n/* 18.6 Calculation Chain */\nfunction parse_cc_bin(data, name, opts) {\n\tvar out = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_cc(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x003F: /* 'BrtCalcChainItem$' */\n\t\t\t\tout.push(val); break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn out;\n}\n\n//function write_cc_bin(data, opts) { }\n/* 18.14 Supplementary Workbook Data */\nfunction parse_xlink_xml() {\n\t//var opts = _opts || {};\n\t//if(opts.WTF) throw \"XLSX External Link\";\n}\n\n/* [MS-XLSB] 2.1.7.25 External Link */\nfunction parse_xlink_bin(data, rel, name, _opts) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\n\tvar pass = false, end = false;\n\n\trecordhopper(data, function xlink_parse(val, R_n, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0167: /* 'BrtSupTabs' */\n\t\t\tcase 0x016B: /* 'BrtExternTableStart' */\n\t\t\tcase 0x016C: /* 'BrtExternTableEnd' */\n\t\t\tcase 0x016E: /* 'BrtExternRowHdr' */\n\t\t\tcase 0x016F: /* 'BrtExternCellBlank' */\n\t\t\tcase 0x0170: /* 'BrtExternCellReal' */\n\t\t\tcase 0x0171: /* 'BrtExternCellBool' */\n\t\t\tcase 0x0172: /* 'BrtExternCellError' */\n\t\t\tcase 0x0173: /* 'BrtExternCellString' */\n\t\t\tcase 0x01D8: /* 'BrtExternValueMeta' */\n\t\t\tcase 0x0241: /* 'BrtSupNameStart' */\n\t\t\tcase 0x0242: /* 'BrtSupNameValueStart' */\n\t\t\tcase 0x0243: /* 'BrtSupNameValueEnd' */\n\t\t\tcase 0x0244: /* 'BrtSupNameNum' */\n\t\t\tcase 0x0245: /* 'BrtSupNameErr' */\n\t\t\tcase 0x0246: /* 'BrtSupNameSt' */\n\t\t\tcase 0x0247: /* 'BrtSupNameNil' */\n\t\t\tcase 0x0248: /* 'BrtSupNameBool' */\n\t\t\tcase 0x0249: /* 'BrtSupNameFmla' */\n\t\t\tcase 0x024A: /* 'BrtSupNameBits' */\n\t\t\tcase 0x024B: /* 'BrtSupNameEnd' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT.toString(16) + \" \" + R_n);\n\t\t}\n\t}, opts);\n}\n/* 20.5 DrawingML - SpreadsheetML Drawing */\nRELS.IMG = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\";\nRELS.DRAW = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\";\n\n/* 20.5.2.35 wsDr CT_Drawing */\nfunction parse_drawing(data, rels) {\n\tif(!data) return \"??\";\n\t/*\n\t Chartsheet Drawing:\n\t - 20.5.2.35 wsDr CT_Drawing\n\t - 20.5.2.1 absoluteAnchor CT_AbsoluteAnchor\n\t - 20.5.2.16 graphicFrame CT_GraphicalObjectFrame\n\t - 20.1.2.2.16 graphic CT_GraphicalObject\n\t - 20.1.2.2.17 graphicData CT_GraphicalObjectData\n - chart reference\n\t the actual type is based on the URI of the graphicData\n\t\tTODO: handle embedded charts and other types of graphics\n\t*/\n\tvar id = (data.match(/<c:chart [^>]*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nvar _shapeid = 1024;\nfunction write_comments_vml(rId, comments) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"}),\n\t\twritextag(\"v:shapetype\", [\n\t\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t\t].join(\"\"), {id:\"_x0000_t202\", 'o:spt':202, coordsize:csize.join(\",\"),path:bbox})\n\t];\n\twhile(_shapeid < rId * 1000) _shapeid += 1000;\n\n\tcomments.forEach(function(x) {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = {'color2':\"#BEFF82\", 'type':\"gradient\"};\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"});\n\t++_shapeid;\n\n\to = o.concat([\n\t'<v:shape' + wxt_helper({\n\t\tid:'_x0000_s' + _shapeid,\n\t\ttype:\"#_x0000_t202\",\n\t\tstyle:\"position:absolute; margin-left:80pt;margin-top:5pt;width:104pt;height:64pt;z-index:10\" + (x[1].hidden ? \";visibility:hidden\" : \"\") ,\n\t\tfillcolor:\"#ECFAD4\",\n\t\tstrokecolor:\"#edeaa1\"\n\t}) + '>',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'<v:textbox><div style=\"text-align:left\"></div></v:textbox>',\n\t\t'<x:ClientData ObjectType=\"Note\">',\n\t\t\t'<x:MoveWithCells/>',\n\t\t\t'<x:SizeWithCells/>',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '<x:Visible/>',\n\t\t'</x:ClientData>',\n\t'</v:shape>'\n\t]); });\n\to.push('</xml>');\n\treturn o.join(\"\");\n}\nRELS.CMNT = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\";\n\nfunction sheet_insert_comments(sheet, comments) {\n\tvar dense = Array.isArray(sheet);\n\tvar cell;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(dense) {\n\t\t\tif(!sheet[r.r]) sheet[r.r] = [];\n\t\t\tcell = sheet[r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"});\n\t\t\tif(dense) sheet[r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tif (encoded !== sheet[\"!ref\"]) sheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o = ({a: comment.author, t: comment.t, r: comment.r});\n\t\tif(comment.h) o.h = comment.h;\n\t\tcell.c.push(o);\n\t});\n}\n\n/* 18.7 Comments */\nfunction parse_comments_xml(data, opts) {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors = [];\n\tvar commentList = [];\n\tvar authtag = data.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = data.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid });\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"<t></t>\") rt.t = rt.h = \"\";\n\t\tcomment.t = rt.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nvar CMNT_XML_ROOT = writextag('comments', null, { 'xmlns': XMLNS.main[0] });\nfunction write_comments_xml(data) {\n\tvar o = [XML_HEADER, CMNT_XML_ROOT];\n\n\tvar iauthor = [];\n\to.push(\"<authors>\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) > -1) return;\n\t\tiauthor.push(a);\n\t\to.push(\"<author>\" + a + \"</author>\");\n\t}); });\n\to.push(\"</authors>\");\n\to.push(\"<commentList>\");\n\tdata.forEach(function(d) {\n\t\td[1].forEach(function(c) {\n\t\t\t/* 18.7.3 CT_Comment */\n\t\t\to.push('<comment ref=\"' + d[0] + '\" authorId=\"' + iauthor.indexOf(escapexml(c.a)) + '\"><text>');\n\t\t\to.push(writetag(\"t\", c.t == null ? \"\" : escapexml(c.t)));\n\t\t\to.push('</text></comment>');\n\t\t});\n\t});\n\to.push(\"</commentList>\");\n\tif(o.length>2) { o[o.length] = ('</comments>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts) {\n\tvar out = [];\n\tvar authors = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data) {\n\tvar ba = buf_array();\n\tvar iauthor = [];\n\twrite_record(ba, \"BrtBeginComments\");\n\n\twrite_record(ba, \"BrtBeginCommentAuthors\");\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, \"BrtCommentAuthor\", write_BrtCommentAuthor(c.a));\n\t\t});\n\t});\n\twrite_record(ba, \"BrtEndCommentAuthors\");\n\n\twrite_record(ba, \"BrtBeginCommentList\");\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tc.iauthor = iauthor.indexOf(c.a);\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, \"BrtBeginComment\", write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, \"BrtCommentText\", write_BrtCommentText(c));\n\t\t\twrite_record(ba, \"BrtEndComment\");\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, \"BrtEndCommentList\");\n\n\twrite_record(ba, \"BrtEndComments\");\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n\tvar newcfb = CFB.utils.cfb_new({root:\"R\"});\n\tcfb.FullPaths.forEach(function(p, i) {\n\t\tif(p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/)) return;\n\t\tvar newpath = p.replace(/^[^\\/]*/,\"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n\t\tCFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n\t});\n\treturn CFB.write(newcfb);\n}\n\nfunction fill_vba_xls(cfb, vba) {\n\tvba.FullPaths.forEach(function(p, i) {\n\t\tif(i == 0) return;\n\t\tvar newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n\t\tif(newpath.slice(-1) !== \"/\") CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n\t});\n}\n\nvar VBAFMTS = [ \"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\" ];\n\nRELS.DS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\";\nRELS.MS = \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\";\n\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin() { return {'!type':'dialog'}; }\nfunction parse_ds_xml() { return {'!type':'dialog'}; }\nfunction parse_ms_bin() { return {'!type':'macro'}; }\nfunction parse_ms_xml() { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = (function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase = ({r:0,c:0});\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr, base) {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\nvar a1_to_rc =(function(){\n\treturn function a1_to_rc(fstr, base) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = (r == 0 ? \"\" : !$4 ? \"[\" + r + \"]\" : (r+1));\n\t\t\tvar C = (c == 0 ? \"\" : !$2 ? \"[\" + c + \"]\" : (c+1));\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f, delta) {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f, range, cell) {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f) {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f) {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts) {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73 ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n0x01: { n:'PtgExp', f:parse_PtgExp },\n0x02: { n:'PtgTbl', f:parse_PtgTbl },\n0x03: { n:'PtgAdd', f:parseread1 },\n0x04: { n:'PtgSub', f:parseread1 },\n0x05: { n:'PtgMul', f:parseread1 },\n0x06: { n:'PtgDiv', f:parseread1 },\n0x07: { n:'PtgPower', f:parseread1 },\n0x08: { n:'PtgConcat', f:parseread1 },\n0x09: { n:'PtgLt', f:parseread1 },\n0x0A: { n:'PtgLe', f:parseread1 },\n0x0B: { n:'PtgEq', f:parseread1 },\n0x0C: { n:'PtgGe', f:parseread1 },\n0x0D: { n:'PtgGt', f:parseread1 },\n0x0E: { n:'PtgNe', f:parseread1 },\n0x0F: { n:'PtgIsect', f:parseread1 },\n0x10: { n:'PtgUnion', f:parseread1 },\n0x11: { n:'PtgRange', f:parseread1 },\n0x12: { n:'PtgUplus', f:parseread1 },\n0x13: { n:'PtgUminus', f:parseread1 },\n0x14: { n:'PtgPercent', f:parseread1 },\n0x15: { n:'PtgParen', f:parseread1 },\n0x16: { n:'PtgMissArg', f:parseread1 },\n0x17: { n:'PtgStr', f:parse_PtgStr },\n0x1A: { n:'PtgSheet', f:parse_PtgSheet },\n0x1B: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n0x1C: { n:'PtgErr', f:parse_PtgErr },\n0x1D: { n:'PtgBool', f:parse_PtgBool },\n0x1E: { n:'PtgInt', f:parse_PtgInt },\n0x1F: { n:'PtgNum', f:parse_PtgNum },\n0x20: { n:'PtgArray', f:parse_PtgArray },\n0x21: { n:'PtgFunc', f:parse_PtgFunc },\n0x22: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n0x23: { n:'PtgName', f:parse_PtgName },\n0x24: { n:'PtgRef', f:parse_PtgRef },\n0x25: { n:'PtgArea', f:parse_PtgArea },\n0x26: { n:'PtgMemArea', f:parse_PtgMemArea },\n0x27: { n:'PtgMemErr', f:parse_PtgMemErr },\n0x28: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n0x29: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n0x2A: { n:'PtgRefErr', f:parse_PtgRefErr },\n0x2B: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n0x2C: { n:'PtgRefN', f:parse_PtgRefN },\n0x2D: { n:'PtgAreaN', f:parse_PtgAreaN },\n0x2E: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n0x2F: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n0x39: { n:'PtgNameX', f:parse_PtgNameX },\n0x3A: { n:'PtgRef3d', f:parse_PtgRef3d },\n0x3B: { n:'PtgArea3d', f:parse_PtgArea3d },\n0x3C: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n0x3D: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n0xFF: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n0x40: 0x20, 0x60: 0x20,\n0x41: 0x21, 0x61: 0x21,\n0x42: 0x22, 0x62: 0x22,\n0x43: 0x23, 0x63: 0x23,\n0x44: 0x24, 0x64: 0x24,\n0x45: 0x25, 0x65: 0x25,\n0x46: 0x26, 0x66: 0x26,\n0x47: 0x27, 0x67: 0x27,\n0x48: 0x28, 0x68: 0x28,\n0x49: 0x29, 0x69: 0x29,\n0x4A: 0x2A, 0x6A: 0x2A,\n0x4B: 0x2B, 0x6B: 0x2B,\n0x4C: 0x2C, 0x6C: 0x2C,\n0x4D: 0x2D, 0x6D: 0x2D,\n0x4E: 0x2E, 0x6E: 0x2E,\n0x4F: 0x2F, 0x6F: 0x2F,\n0x58: 0x22, 0x78: 0x22,\n0x59: 0x39, 0x79: 0x39,\n0x5A: 0x3A, 0x7A: 0x3A,\n0x5B: 0x3B, 0x7B: 0x3B,\n0x5C: 0x3C, 0x7C: 0x3C,\n0x5D: 0x3D, 0x7D: 0x3D\n};\n(function(){for(var y in PtgDupes) PtgTypes[y] = PtgTypes[PtgDupes[y]];})();\n\nvar Ptg18 = {\n0x01: { n:'PtgElfLel', f:parse_PtgElfLel },\n0x02: { n:'PtgElfRw', f:parse_PtgElfRw },\n0x03: { n:'PtgElfCol', f:parse_PtgElfCol },\n0x06: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n0x07: { n:'PtgElfColV', f:parse_PtgElfColV },\n0x0A: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n0x0B: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n0x0D: { n:'PtgElfColS', f:parse_PtgElfColS },\n0x0F: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n0x10: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n0x19: { n:'PtgList', f:parse_PtgList },\n0x1D: { n:'PtgSxName', f:parse_PtgSxName },\n0xFF: {}\n};\nvar Ptg19 = {\n0x00: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n0x01: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n0x02: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n0x04: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n0x08: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n0x10: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n0x20: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n0x40: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n0x41: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n0x80: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n0xFF: {}\n};\nPtg19[0x21] = Ptg19[0x20];\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f) {\n\tvar o = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\nr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\n\n// List of invalid characters needs to be tested further\nvar quoteCharacters = new RegExp(/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/);\nfunction formula_quote_sheet_name(sname, opts) {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif (quoteCharacters.test(sname)) return \"'\" + sname + \"'\";\n\treturn sname;\n}\nfunction get_ixti_raw(supbooks, ixti, opts) {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti, opts) {\n\treturn formula_quote_sheet_name(get_ixti_raw(supbooks, ixti, opts), opts);\n}\nfunction stringify_formula(formula/*Array<any>*/, range, cell, supbooks, opts) {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack = [], e1, e2, c, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd': /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv': /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq': /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe': /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt': /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe': /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt': /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul': /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe': /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower': /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub': /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\":\"+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\nc = shift_cell_xls((f[1][1]), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\nc = cell ? shift_cell_xls((f[1][1]), cell, opts) : (f[1][1]);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\nixti = f[1][1]; c = shift_cell_xls((f[1][2]), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc = (f[1][0]), func = (f[1][1]);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(f[1]); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(f[1]); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\nr = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\nr = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\nixti = f[1][1]; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\tif(name in XLSXFutureFunctions) name = XLSXFutureFunctions[name];\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx = (f[1][1]); nameidx = (f[1][2]); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = get_ixti_raw(supbooks, bookidx, opts).split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]),r:(f[1][0])};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r});\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(f[1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(f[1]) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell, R, C, opts, os) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLS] 2.5.198.4 */\nvar Cetab = {\n0x0000: 'BEEP',\n0x0001: 'OPEN',\n0x0002: 'OPEN.LINKS',\n0x0003: 'CLOSE.ALL',\n0x0004: 'SAVE',\n0x0005: 'SAVE.AS',\n0x0006: 'FILE.DELETE',\n0x0007: 'PAGE.SETUP',\n0x0008: 'PRINT',\n0x0009: 'PRINTER.SETUP',\n0x000A: 'QUIT',\n0x000B: 'NEW.WINDOW',\n0x000C: 'ARRANGE.ALL',\n0x000D: 'WINDOW.SIZE',\n0x000E: 'WINDOW.MOVE',\n0x000F: 'FULL',\n0x0010: 'CLOSE',\n0x0011: 'RUN',\n0x0016: 'SET.PRINT.AREA',\n0x0017: 'SET.PRINT.TITLES',\n0x0018: 'SET.PAGE.BREAK',\n0x0019: 'REMOVE.PAGE.BREAK',\n0x001A: 'FONT',\n0x001B: 'DISPLAY',\n0x001C: 'PROTECT.DOCUMENT',\n0x001D: 'PRECISION',\n0x001E: 'A1.R1C1',\n0x001F: 'CALCULATE.NOW',\n0x0020: 'CALCULATION',\n0x0022: 'DATA.FIND',\n0x0023: 'EXTRACT',\n0x0024: 'DATA.DELETE',\n0x0025: 'SET.DATABASE',\n0x0026: 'SET.CRITERIA',\n0x0027: 'SORT',\n0x0028: 'DATA.SERIES',\n0x0029: 'TABLE',\n0x002A: 'FORMAT.NUMBER',\n0x002B: 'ALIGNMENT',\n0x002C: 'STYLE',\n0x002D: 'BORDER',\n0x002E: 'CELL.PROTECTION',\n0x002F: 'COLUMN.WIDTH',\n0x0030: 'UNDO',\n0x0031: 'CUT',\n0x0032: 'COPY',\n0x0033: 'PASTE',\n0x0034: 'CLEAR',\n0x0035: 'PASTE.SPECIAL',\n0x0036: 'EDIT.DELETE',\n0x0037: 'INSERT',\n0x0038: 'FILL.RIGHT',\n0x0039: 'FILL.DOWN',\n0x003D: 'DEFINE.NAME',\n0x003E: 'CREATE.NAMES',\n0x003F: 'FORMULA.GOTO',\n0x0040: 'FORMULA.FIND',\n0x0041: 'SELECT.LAST.CELL',\n0x0042: 'SHOW.ACTIVE.CELL',\n0x0043: 'GALLERY.AREA',\n0x0044: 'GALLERY.BAR',\n0x0045: 'GALLERY.COLUMN',\n0x0046: 'GALLERY.LINE',\n0x0047: 'GALLERY.PIE',\n0x0048: 'GALLERY.SCATTER',\n0x0049: 'COMBINATION',\n0x004A: 'PREFERRED',\n0x004B: 'ADD.OVERLAY',\n0x004C: 'GRIDLINES',\n0x004D: 'SET.PREFERRED',\n0x004E: 'AXES',\n0x004F: 'LEGEND',\n0x0050: 'ATTACH.TEXT',\n0x0051: 'ADD.ARROW',\n0x0052: 'SELECT.CHART',\n0x0053: 'SELECT.PLOT.AREA',\n0x0054: 'PATTERNS',\n0x0055: 'MAIN.CHART',\n0x0056: 'OVERLAY',\n0x0057: 'SCALE',\n0x0058: 'FORMAT.LEGEND',\n0x0059: 'FORMAT.TEXT',\n0x005A: 'EDIT.REPEAT',\n0x005B: 'PARSE',\n0x005C: 'JUSTIFY',\n0x005D: 'HIDE',\n0x005E: 'UNHIDE',\n0x005F: 'WORKSPACE',\n0x0060: 'FORMULA',\n0x0061: 'FORMULA.FILL',\n0x0062: 'FORMULA.ARRAY',\n0x0063: 'DATA.FIND.NEXT',\n0x0064: 'DATA.FIND.PREV',\n0x0065: 'FORMULA.FIND.NEXT',\n0x0066: 'FORMULA.FIND.PREV',\n0x0067: 'ACTIVATE',\n0x0068: 'ACTIVATE.NEXT',\n0x0069: 'ACTIVATE.PREV',\n0x006A: 'UNLOCKED.NEXT',\n0x006B: 'UNLOCKED.PREV',\n0x006C: 'COPY.PICTURE',\n0x006D: 'SELECT',\n0x006E: 'DELETE.NAME',\n0x006F: 'DELETE.FORMAT',\n0x0070: 'VLINE',\n0x0071: 'HLINE',\n0x0072: 'VPAGE',\n0x0073: 'HPAGE',\n0x0074: 'VSCROLL',\n0x0075: 'HSCROLL',\n0x0076: 'ALERT',\n0x0077: 'NEW',\n0x0078: 'CANCEL.COPY',\n0x0079: 'SHOW.CLIPBOARD',\n0x007A: 'MESSAGE',\n0x007C: 'PASTE.LINK',\n0x007D: 'APP.ACTIVATE',\n0x007E: 'DELETE.ARROW',\n0x007F: 'ROW.HEIGHT',\n0x0080: 'FORMAT.MOVE',\n0x0081: 'FORMAT.SIZE',\n0x0082: 'FORMULA.REPLACE',\n0x0083: 'SEND.KEYS',\n0x0084: 'SELECT.SPECIAL',\n0x0085: 'APPLY.NAMES',\n0x0086: 'REPLACE.FONT',\n0x0087: 'FREEZE.PANES',\n0x0088: 'SHOW.INFO',\n0x0089: 'SPLIT',\n0x008A: 'ON.WINDOW',\n0x008B: 'ON.DATA',\n0x008C: 'DISABLE.INPUT',\n0x008E: 'OUTLINE',\n0x008F: 'LIST.NAMES',\n0x0090: 'FILE.CLOSE',\n0x0091: 'SAVE.WORKBOOK',\n0x0092: 'DATA.FORM',\n0x0093: 'COPY.CHART',\n0x0094: 'ON.TIME',\n0x0095: 'WAIT',\n0x0096: 'FORMAT.FONT',\n0x0097: 'FILL.UP',\n0x0098: 'FILL.LEFT',\n0x0099: 'DELETE.OVERLAY',\n0x009B: 'SHORT.MENUS',\n0x009F: 'SET.UPDATE.STATUS',\n0x00A1: 'COLOR.PALETTE',\n0x00A2: 'DELETE.STYLE',\n0x00A3: 'WINDOW.RESTORE',\n0x00A4: 'WINDOW.MAXIMIZE',\n0x00A6: 'CHANGE.LINK',\n0x00A7: 'CALCULATE.DOCUMENT',\n0x00A8: 'ON.KEY',\n0x00A9: 'APP.RESTORE',\n0x00AA: 'APP.MOVE',\n0x00AB: 'APP.SIZE',\n0x00AC: 'APP.MINIMIZE',\n0x00AD: 'APP.MAXIMIZE',\n0x00AE: 'BRING.TO.FRONT',\n0x00AF: 'SEND.TO.BACK',\n0x00B9: 'MAIN.CHART.TYPE',\n0x00BA: 'OVERLAY.CHART.TYPE',\n0x00BB: 'SELECT.END',\n0x00BC: 'OPEN.MAIL',\n0x00BD: 'SEND.MAIL',\n0x00BE: 'STANDARD.FONT',\n0x00BF: 'CONSOLIDATE',\n0x00C0: 'SORT.SPECIAL',\n0x00C1: 'GALLERY.3D.AREA',\n0x00C2: 'GALLERY.3D.COLUMN',\n0x00C3: 'GALLERY.3D.LINE',\n0x00C4: 'GALLERY.3D.PIE',\n0x00C5: 'VIEW.3D',\n0x00C6: 'GOAL.SEEK',\n0x00C7: 'WORKGROUP',\n0x00C8: 'FILL.GROUP',\n0x00C9: 'UPDATE.LINK',\n0x00CA: 'PROMOTE',\n0x00CB: 'DEMOTE',\n0x00CC: 'SHOW.DETAIL',\n0x00CE: 'UNGROUP',\n0x00CF: 'OBJECT.PROPERTIES',\n0x00D0: 'SAVE.NEW.OBJECT',\n0x00D1: 'SHARE',\n0x00D2: 'SHARE.NAME',\n0x00D3: 'DUPLICATE',\n0x00D4: 'APPLY.STYLE',\n0x00D5: 'ASSIGN.TO.OBJECT',\n0x00D6: 'OBJECT.PROTECTION',\n0x00D7: 'HIDE.OBJECT',\n0x00D8: 'SET.EXTRACT',\n0x00D9: 'CREATE.PUBLISHER',\n0x00DA: 'SUBSCRIBE.TO',\n0x00DB: 'ATTRIBUTES',\n0x00DC: 'SHOW.TOOLBAR',\n0x00DE: 'PRINT.PREVIEW',\n0x00DF: 'EDIT.COLOR',\n0x00E0: 'SHOW.LEVELS',\n0x00E1: 'FORMAT.MAIN',\n0x00E2: 'FORMAT.OVERLAY',\n0x00E3: 'ON.RECALC',\n0x00E4: 'EDIT.SERIES',\n0x00E5: 'DEFINE.STYLE',\n0x00F0: 'LINE.PRINT',\n0x00F3: 'ENTER.DATA',\n0x00F9: 'GALLERY.RADAR',\n0x00FA: 'MERGE.STYLES',\n0x00FB: 'EDITION.OPTIONS',\n0x00FC: 'PASTE.PICTURE',\n0x00FD: 'PASTE.PICTURE.LINK',\n0x00FE: 'SPELLING',\n0x0100: 'ZOOM',\n0x0103: 'INSERT.OBJECT',\n0x0104: 'WINDOW.MINIMIZE',\n0x0109: 'SOUND.NOTE',\n0x010A: 'SOUND.PLAY',\n0x010B: 'FORMAT.SHAPE',\n0x010C: 'EXTEND.POLYGON',\n0x010D: 'FORMAT.AUTO',\n0x0110: 'GALLERY.3D.BAR',\n0x0111: 'GALLERY.3D.SURFACE',\n0x0112: 'FILL.AUTO',\n0x0114: 'CUSTOMIZE.TOOLBAR',\n0x0115: 'ADD.TOOL',\n0x0116: 'EDIT.OBJECT',\n0x0117: 'ON.DOUBLECLICK',\n0x0118: 'ON.ENTRY',\n0x0119: 'WORKBOOK.ADD',\n0x011A: 'WORKBOOK.MOVE',\n0x011B: 'WORKBOOK.COPY',\n0x011C: 'WORKBOOK.OPTIONS',\n0x011D: 'SAVE.WORKSPACE',\n0x0120: 'CHART.WIZARD',\n0x0121: 'DELETE.TOOL',\n0x0122: 'MOVE.TOOL',\n0x0123: 'WORKBOOK.SELECT',\n0x0124: 'WORKBOOK.ACTIVATE',\n0x0125: 'ASSIGN.TO.TOOL',\n0x0127: 'COPY.TOOL',\n0x0128: 'RESET.TOOL',\n0x0129: 'CONSTRAIN.NUMERIC',\n0x012A: 'PASTE.TOOL',\n0x012E: 'WORKBOOK.NEW',\n0x0131: 'SCENARIO.CELLS',\n0x0132: 'SCENARIO.DELETE',\n0x0133: 'SCENARIO.ADD',\n0x0134: 'SCENARIO.EDIT',\n0x0135: 'SCENARIO.SHOW',\n0x0136: 'SCENARIO.SHOW.NEXT',\n0x0137: 'SCENARIO.SUMMARY',\n0x0138: 'PIVOT.TABLE.WIZARD',\n0x0139: 'PIVOT.FIELD.PROPERTIES',\n0x013A: 'PIVOT.FIELD',\n0x013B: 'PIVOT.ITEM',\n0x013C: 'PIVOT.ADD.FIELDS',\n0x013E: 'OPTIONS.CALCULATION',\n0x013F: 'OPTIONS.EDIT',\n0x0140: 'OPTIONS.VIEW',\n0x0141: 'ADDIN.MANAGER',\n0x0142: 'MENU.EDITOR',\n0x0143: 'ATTACH.TOOLBARS',\n0x0144: 'VBAActivate',\n0x0145: 'OPTIONS.CHART',\n0x0148: 'VBA.INSERT.FILE',\n0x014A: 'VBA.PROCEDURE.DEFINITION',\n0x0150: 'ROUTING.SLIP',\n0x0152: 'ROUTE.DOCUMENT',\n0x0153: 'MAIL.LOGON',\n0x0156: 'INSERT.PICTURE',\n0x0157: 'EDIT.TOOL',\n0x0158: 'GALLERY.DOUGHNUT',\n0x015E: 'CHART.TREND',\n0x0160: 'PIVOT.ITEM.PROPERTIES',\n0x0162: 'WORKBOOK.INSERT',\n0x0163: 'OPTIONS.TRANSITION',\n0x0164: 'OPTIONS.GENERAL',\n0x0172: 'FILTER.ADVANCED',\n0x0175: 'MAIL.ADD.MAILER',\n0x0176: 'MAIL.DELETE.MAILER',\n0x0177: 'MAIL.REPLY',\n0x0178: 'MAIL.REPLY.ALL',\n0x0179: 'MAIL.FORWARD',\n0x017A: 'MAIL.NEXT.LETTER',\n0x017B: 'DATA.LABEL',\n0x017C: 'INSERT.TITLE',\n0x017D: 'FONT.PROPERTIES',\n0x017E: 'MACRO.OPTIONS',\n0x017F: 'WORKBOOK.HIDE',\n0x0180: 'WORKBOOK.UNHIDE',\n0x0181: 'WORKBOOK.DELETE',\n0x0182: 'WORKBOOK.NAME',\n0x0184: 'GALLERY.CUSTOM',\n0x0186: 'ADD.CHART.AUTOFORMAT',\n0x0187: 'DELETE.CHART.AUTOFORMAT',\n0x0188: 'CHART.ADD.DATA',\n0x0189: 'AUTO.OUTLINE',\n0x018A: 'TAB.ORDER',\n0x018B: 'SHOW.DIALOG',\n0x018C: 'SELECT.ALL',\n0x018D: 'UNGROUP.SHEETS',\n0x018E: 'SUBTOTAL.CREATE',\n0x018F: 'SUBTOTAL.REMOVE',\n0x0190: 'RENAME.OBJECT',\n0x019C: 'WORKBOOK.SCROLL',\n0x019D: 'WORKBOOK.NEXT',\n0x019E: 'WORKBOOK.PREV',\n0x019F: 'WORKBOOK.TAB.SPLIT',\n0x01A0: 'FULL.SCREEN',\n0x01A1: 'WORKBOOK.PROTECT',\n0x01A4: 'SCROLLBAR.PROPERTIES',\n0x01A5: 'PIVOT.SHOW.PAGES',\n0x01A6: 'TEXT.TO.COLUMNS',\n0x01A7: 'FORMAT.CHARTTYPE',\n0x01A8: 'LINK.FORMAT',\n0x01A9: 'TRACER.DISPLAY',\n0x01AE: 'TRACER.NAVIGATE',\n0x01AF: 'TRACER.CLEAR',\n0x01B0: 'TRACER.ERROR',\n0x01B1: 'PIVOT.FIELD.GROUP',\n0x01B2: 'PIVOT.FIELD.UNGROUP',\n0x01B3: 'CHECKBOX.PROPERTIES',\n0x01B4: 'LABEL.PROPERTIES',\n0x01B5: 'LISTBOX.PROPERTIES',\n0x01B6: 'EDITBOX.PROPERTIES',\n0x01B7: 'PIVOT.REFRESH',\n0x01B8: 'LINK.COMBO',\n0x01B9: 'OPEN.TEXT',\n0x01BA: 'HIDE.DIALOG',\n0x01BB: 'SET.DIALOG.FOCUS',\n0x01BC: 'ENABLE.OBJECT',\n0x01BD: 'PUSHBUTTON.PROPERTIES',\n0x01BE: 'SET.DIALOG.DEFAULT',\n0x01BF: 'FILTER',\n0x01C0: 'FILTER.SHOW.ALL',\n0x01C1: 'CLEAR.OUTLINE',\n0x01C2: 'FUNCTION.WIZARD',\n0x01C3: 'ADD.LIST.ITEM',\n0x01C4: 'SET.LIST.ITEM',\n0x01C5: 'REMOVE.LIST.ITEM',\n0x01C6: 'SELECT.LIST.ITEM',\n0x01C7: 'SET.CONTROL.VALUE',\n0x01C8: 'SAVE.COPY.AS',\n0x01CA: 'OPTIONS.LISTS.ADD',\n0x01CB: 'OPTIONS.LISTS.DELETE',\n0x01CC: 'SERIES.AXES',\n0x01CD: 'SERIES.X',\n0x01CE: 'SERIES.Y',\n0x01CF: 'ERRORBAR.X',\n0x01D0: 'ERRORBAR.Y',\n0x01D1: 'FORMAT.CHART',\n0x01D2: 'SERIES.ORDER',\n0x01D3: 'MAIL.LOGOFF',\n0x01D4: 'CLEAR.ROUTING.SLIP',\n0x01D5: 'APP.ACTIVATE.MICROSOFT',\n0x01D6: 'MAIL.EDIT.MAILER',\n0x01D7: 'ON.SHEET',\n0x01D8: 'STANDARD.WIDTH',\n0x01D9: 'SCENARIO.MERGE',\n0x01DA: 'SUMMARY.INFO',\n0x01DB: 'FIND.FILE',\n0x01DC: 'ACTIVE.CELL.FONT',\n0x01DD: 'ENABLE.TIPWIZARD',\n0x01DE: 'VBA.MAKE.ADDIN',\n0x01E0: 'INSERTDATATABLE',\n0x01E1: 'WORKGROUP.OPTIONS',\n0x01E2: 'MAIL.SEND.MAILER',\n0x01E5: 'AUTOCORRECT',\n0x01E9: 'POST.DOCUMENT',\n0x01EB: 'PICKLIST',\n0x01ED: 'VIEW.SHOW',\n0x01EE: 'VIEW.DEFINE',\n0x01EF: 'VIEW.DELETE',\n0x01FD: 'SHEET.BACKGROUND',\n0x01FE: 'INSERT.MAP.OBJECT',\n0x01FF: 'OPTIONS.MENONO',\n0x0205: 'MSOCHECKS',\n0x0206: 'NORMAL',\n0x0207: 'LAYOUT',\n0x0208: 'RM.PRINT.AREA',\n0x0209: 'CLEAR.PRINT.AREA',\n0x020A: 'ADD.PRINT.AREA',\n0x020B: 'MOVE.BRK',\n0x0221: 'HIDECURR.NOTE',\n0x0222: 'HIDEALL.NOTES',\n0x0223: 'DELETE.NOTE',\n0x0224: 'TRAVERSE.NOTES',\n0x0225: 'ACTIVATE.NOTES',\n0x026C: 'PROTECT.REVISIONS',\n0x026D: 'UNPROTECT.REVISIONS',\n0x0287: 'OPTIONS.ME',\n0x028D: 'WEB.PUBLISH',\n0x029B: 'NEWWEBQUERY',\n0x02A1: 'PIVOT.TABLE.CHART',\n0x02F1: 'OPTIONS.SAVE',\n0x02F3: 'OPTIONS.SPELL',\n0x0328: 'HIDEALL.INKANNOTS'\n};\n\n/* [MS-XLS] 2.5.198.17 */\n/* [MS-XLSB] 2.5.97.10 */\nvar Ftab = {\n0x0000: 'COUNT',\n0x0001: 'IF',\n0x0002: 'ISNA',\n0x0003: 'ISERROR',\n0x0004: 'SUM',\n0x0005: 'AVERAGE',\n0x0006: 'MIN',\n0x0007: 'MAX',\n0x0008: 'ROW',\n0x0009: 'COLUMN',\n0x000A: 'NA',\n0x000B: 'NPV',\n0x000C: 'STDEV',\n0x000D: 'DOLLAR',\n0x000E: 'FIXED',\n0x000F: 'SIN',\n0x0010: 'COS',\n0x0011: 'TAN',\n0x0012: 'ATAN',\n0x0013: 'PI',\n0x0014: 'SQRT',\n0x0015: 'EXP',\n0x0016: 'LN',\n0x0017: 'LOG10',\n0x0018: 'ABS',\n0x0019: 'INT',\n0x001A: 'SIGN',\n0x001B: 'ROUND',\n0x001C: 'LOOKUP',\n0x001D: 'INDEX',\n0x001E: 'REPT',\n0x001F: 'MID',\n0x0020: 'LEN',\n0x0021: 'VALUE',\n0x0022: 'TRUE',\n0x0023: 'FALSE',\n0x0024: 'AND',\n0x0025: 'OR',\n0x0026: 'NOT',\n0x0027: 'MOD',\n0x0028: 'DCOUNT',\n0x0029: 'DSUM',\n0x002A: 'DAVERAGE',\n0x002B: 'DMIN',\n0x002C: 'DMAX',\n0x002D: 'DSTDEV',\n0x002E: 'VAR',\n0x002F: 'DVAR',\n0x0030: 'TEXT',\n0x0031: 'LINEST',\n0x0032: 'TREND',\n0x0033: 'LOGEST',\n0x0034: 'GROWTH',\n0x0035: 'GOTO',\n0x0036: 'HALT',\n0x0037: 'RETURN',\n0x0038: 'PV',\n0x0039: 'FV',\n0x003A: 'NPER',\n0x003B: 'PMT',\n0x003C: 'RATE',\n0x003D: 'MIRR',\n0x003E: 'IRR',\n0x003F: 'RAND',\n0x0040: 'MATCH',\n0x0041: 'DATE',\n0x0042: 'TIME',\n0x0043: 'DAY',\n0x0044: 'MONTH',\n0x0045: 'YEAR',\n0x0046: 'WEEKDAY',\n0x0047: 'HOUR',\n0x0048: 'MINUTE',\n0x0049: 'SECOND',\n0x004A: 'NOW',\n0x004B: 'AREAS',\n0x004C: 'ROWS',\n0x004D: 'COLUMNS',\n0x004E: 'OFFSET',\n0x004F: 'ABSREF',\n0x0050: 'RELREF',\n0x0051: 'ARGUMENT',\n0x0052: 'SEARCH',\n0x0053: 'TRANSPOSE',\n0x0054: 'ERROR',\n0x0055: 'STEP',\n0x0056: 'TYPE',\n0x0057: 'ECHO',\n0x0058: 'SET.NAME',\n0x0059: 'CALLER',\n0x005A: 'DEREF',\n0x005B: 'WINDOWS',\n0x005C: 'SERIES',\n0x005D: 'DOCUMENTS',\n0x005E: 'ACTIVE.CELL',\n0x005F: 'SELECTION',\n0x0060: 'RESULT',\n0x0061: 'ATAN2',\n0x0062: 'ASIN',\n0x0063: 'ACOS',\n0x0064: 'CHOOSE',\n0x0065: 'HLOOKUP',\n0x0066: 'VLOOKUP',\n0x0067: 'LINKS',\n0x0068: 'INPUT',\n0x0069: 'ISREF',\n0x006A: 'GET.FORMULA',\n0x006B: 'GET.NAME',\n0x006C: 'SET.VALUE',\n0x006D: 'LOG',\n0x006E: 'EXEC',\n0x006F: 'CHAR',\n0x0070: 'LOWER',\n0x0071: 'UPPER',\n0x0072: 'PROPER',\n0x0073: 'LEFT',\n0x0074: 'RIGHT',\n0x0075: 'EXACT',\n0x0076: 'TRIM',\n0x0077: 'REPLACE',\n0x0078: 'SUBSTITUTE',\n0x0079: 'CODE',\n0x007A: 'NAMES',\n0x007B: 'DIRECTORY',\n0x007C: 'FIND',\n0x007D: 'CELL',\n0x007E: 'ISERR',\n0x007F: 'ISTEXT',\n0x0080: 'ISNUMBER',\n0x0081: 'ISBLANK',\n0x0082: 'T',\n0x0083: 'N',\n0x0084: 'FOPEN',\n0x0085: 'FCLOSE',\n0x0086: 'FSIZE',\n0x0087: 'FREADLN',\n0x0088: 'FREAD',\n0x0089: 'FWRITELN',\n0x008A: 'FWRITE',\n0x008B: 'FPOS',\n0x008C: 'DATEVALUE',\n0x008D: 'TIMEVALUE',\n0x008E: 'SLN',\n0x008F: 'SYD',\n0x0090: 'DDB',\n0x0091: 'GET.DEF',\n0x0092: 'REFTEXT',\n0x0093: 'TEXTREF',\n0x0094: 'INDIRECT',\n0x0095: 'REGISTER',\n0x0096: 'CALL',\n0x0097: 'ADD.BAR',\n0x0098: 'ADD.MENU',\n0x0099: 'ADD.COMMAND',\n0x009A: 'ENABLE.COMMAND',\n0x009B: 'CHECK.COMMAND',\n0x009C: 'RENAME.COMMAND',\n0x009D: 'SHOW.BAR',\n0x009E: 'DELETE.MENU',\n0x009F: 'DELETE.COMMAND',\n0x00A0: 'GET.CHART.ITEM',\n0x00A1: 'DIALOG.BOX',\n0x00A2: 'CLEAN',\n0x00A3: 'MDETERM',\n0x00A4: 'MINVERSE',\n0x00A5: 'MMULT',\n0x00A6: 'FILES',\n0x00A7: 'IPMT',\n0x00A8: 'PPMT',\n0x00A9: 'COUNTA',\n0x00AA: 'CANCEL.KEY',\n0x00AB: 'FOR',\n0x00AC: 'WHILE',\n0x00AD: 'BREAK',\n0x00AE: 'NEXT',\n0x00AF: 'INITIATE',\n0x00B0: 'REQUEST',\n0x00B1: 'POKE',\n0x00B2: 'EXECUTE',\n0x00B3: 'TERMINATE',\n0x00B4: 'RESTART',\n0x00B5: 'HELP',\n0x00B6: 'GET.BAR',\n0x00B7: 'PRODUCT',\n0x00B8: 'FACT',\n0x00B9: 'GET.CELL',\n0x00BA: 'GET.WORKSPACE',\n0x00BB: 'GET.WINDOW',\n0x00BC: 'GET.DOCUMENT',\n0x00BD: 'DPRODUCT',\n0x00BE: 'ISNONTEXT',\n0x00BF: 'GET.NOTE',\n0x00C0: 'NOTE',\n0x00C1: 'STDEVP',\n0x00C2: 'VARP',\n0x00C3: 'DSTDEVP',\n0x00C4: 'DVARP',\n0x00C5: 'TRUNC',\n0x00C6: 'ISLOGICAL',\n0x00C7: 'DCOUNTA',\n0x00C8: 'DELETE.BAR',\n0x00C9: 'UNREGISTER',\n0x00CC: 'USDOLLAR',\n0x00CD: 'FINDB',\n0x00CE: 'SEARCHB',\n0x00CF: 'REPLACEB',\n0x00D0: 'LEFTB',\n0x00D1: 'RIGHTB',\n0x00D2: 'MIDB',\n0x00D3: 'LENB',\n0x00D4: 'ROUNDUP',\n0x00D5: 'ROUNDDOWN',\n0x00D6: 'ASC',\n0x00D7: 'DBCS',\n0x00D8: 'RANK',\n0x00DB: 'ADDRESS',\n0x00DC: 'DAYS360',\n0x00DD: 'TODAY',\n0x00DE: 'VDB',\n0x00DF: 'ELSE',\n0x00E0: 'ELSE.IF',\n0x00E1: 'END.IF',\n0x00E2: 'FOR.CELL',\n0x00E3: 'MEDIAN',\n0x00E4: 'SUMPRODUCT',\n0x00E5: 'SINH',\n0x00E6: 'COSH',\n0x00E7: 'TANH',\n0x00E8: 'ASINH',\n0x00E9: 'ACOSH',\n0x00EA: 'ATANH',\n0x00EB: 'DGET',\n0x00EC: 'CREATE.OBJECT',\n0x00ED: 'VOLATILE',\n0x00EE: 'LAST.ERROR',\n0x00EF: 'CUSTOM.UNDO',\n0x00F0: 'CUSTOM.REPEAT',\n0x00F1: 'FORMULA.CONVERT',\n0x00F2: 'GET.LINK.INFO',\n0x00F3: 'TEXT.BOX',\n0x00F4: 'INFO',\n0x00F5: 'GROUP',\n0x00F6: 'GET.OBJECT',\n0x00F7: 'DB',\n0x00F8: 'PAUSE',\n0x00FB: 'RESUME',\n0x00FC: 'FREQUENCY',\n0x00FD: 'ADD.TOOLBAR',\n0x00FE: 'DELETE.TOOLBAR',\n0x00FF: 'User',\n0x0100: 'RESET.TOOLBAR',\n0x0101: 'EVALUATE',\n0x0102: 'GET.TOOLBAR',\n0x0103: 'GET.TOOL',\n0x0104: 'SPELLING.CHECK',\n0x0105: 'ERROR.TYPE',\n0x0106: 'APP.TITLE',\n0x0107: 'WINDOW.TITLE',\n0x0108: 'SAVE.TOOLBAR',\n0x0109: 'ENABLE.TOOL',\n0x010A: 'PRESS.TOOL',\n0x010B: 'REGISTER.ID',\n0x010C: 'GET.WORKBOOK',\n0x010D: 'AVEDEV',\n0x010E: 'BETADIST',\n0x010F: 'GAMMALN',\n0x0110: 'BETAINV',\n0x0111: 'BINOMDIST',\n0x0112: 'CHIDIST',\n0x0113: 'CHIINV',\n0x0114: 'COMBIN',\n0x0115: 'CONFIDENCE',\n0x0116: 'CRITBINOM',\n0x0117: 'EVEN',\n0x0118: 'EXPONDIST',\n0x0119: 'FDIST',\n0x011A: 'FINV',\n0x011B: 'FISHER',\n0x011C: 'FISHERINV',\n0x011D: 'FLOOR',\n0x011E: 'GAMMADIST',\n0x011F: 'GAMMAINV',\n0x0120: 'CEILING',\n0x0121: 'HYPGEOMDIST',\n0x0122: 'LOGNORMDIST',\n0x0123: 'LOGINV',\n0x0124: 'NEGBINOMDIST',\n0x0125: 'NORMDIST',\n0x0126: 'NORMSDIST',\n0x0127: 'NORMINV',\n0x0128: 'NORMSINV',\n0x0129: 'STANDARDIZE',\n0x012A: 'ODD',\n0x012B: 'PERMUT',\n0x012C: 'POISSON',\n0x012D: 'TDIST',\n0x012E: 'WEIBULL',\n0x012F: 'SUMXMY2',\n0x0130: 'SUMX2MY2',\n0x0131: 'SUMX2PY2',\n0x0132: 'CHITEST',\n0x0133: 'CORREL',\n0x0134: 'COVAR',\n0x0135: 'FORECAST',\n0x0136: 'FTEST',\n0x0137: 'INTERCEPT',\n0x0138: 'PEARSON',\n0x0139: 'RSQ',\n0x013A: 'STEYX',\n0x013B: 'SLOPE',\n0x013C: 'TTEST',\n0x013D: 'PROB',\n0x013E: 'DEVSQ',\n0x013F: 'GEOMEAN',\n0x0140: 'HARMEAN',\n0x0141: 'SUMSQ',\n0x0142: 'KURT',\n0x0143: 'SKEW',\n0x0144: 'ZTEST',\n0x0145: 'LARGE',\n0x0146: 'SMALL',\n0x0147: 'QUARTILE',\n0x0148: 'PERCENTILE',\n0x0149: 'PERCENTRANK',\n0x014A: 'MODE',\n0x014B: 'TRIMMEAN',\n0x014C: 'TINV',\n0x014E: 'MOVIE.COMMAND',\n0x014F: 'GET.MOVIE',\n0x0150: 'CONCATENATE',\n0x0151: 'POWER',\n0x0152: 'PIVOT.ADD.DATA',\n0x0153: 'GET.PIVOT.TABLE',\n0x0154: 'GET.PIVOT.FIELD',\n0x0155: 'GET.PIVOT.ITEM',\n0x0156: 'RADIANS',\n0x0157: 'DEGREES',\n0x0158: 'SUBTOTAL',\n0x0159: 'SUMIF',\n0x015A: 'COUNTIF',\n0x015B: 'COUNTBLANK',\n0x015C: 'SCENARIO.GET',\n0x015D: 'OPTIONS.LISTS.GET',\n0x015E: 'ISPMT',\n0x015F: 'DATEDIF',\n0x0160: 'DATESTRING',\n0x0161: 'NUMBERSTRING',\n0x0162: 'ROMAN',\n0x0163: 'OPEN.DIALOG',\n0x0164: 'SAVE.DIALOG',\n0x0165: 'VIEW.GET',\n0x0166: 'GETPIVOTDATA',\n0x0167: 'HYPERLINK',\n0x0168: 'PHONETIC',\n0x0169: 'AVERAGEA',\n0x016A: 'MAXA',\n0x016B: 'MINA',\n0x016C: 'STDEVPA',\n0x016D: 'VARPA',\n0x016E: 'STDEVA',\n0x016F: 'VARA',\n0x0170: 'BAHTTEXT',\n0x0171: 'THAIDAYOFWEEK',\n0x0172: 'THAIDIGIT',\n0x0173: 'THAIMONTHOFYEAR',\n0x0174: 'THAINUMSOUND',\n0x0175: 'THAINUMSTRING',\n0x0176: 'THAISTRINGLENGTH',\n0x0177: 'ISTHAIDIGIT',\n0x0178: 'ROUNDBAHTDOWN',\n0x0179: 'ROUNDBAHTUP',\n0x017A: 'THAIYEAR',\n0x017B: 'RTD',\n\n0x017C: 'CUBEVALUE',\n0x017D: 'CUBEMEMBER',\n0x017E: 'CUBEMEMBERPROPERTY',\n0x017F: 'CUBERANKEDMEMBER',\n0x0180: 'HEX2BIN',\n0x0181: 'HEX2DEC',\n0x0182: 'HEX2OCT',\n0x0183: 'DEC2BIN',\n0x0184: 'DEC2HEX',\n0x0185: 'DEC2OCT',\n0x0186: 'OCT2BIN',\n0x0187: 'OCT2HEX',\n0x0188: 'OCT2DEC',\n0x0189: 'BIN2DEC',\n0x018A: 'BIN2OCT',\n0x018B: 'BIN2HEX',\n0x018C: 'IMSUB',\n0x018D: 'IMDIV',\n0x018E: 'IMPOWER',\n0x018F: 'IMABS',\n0x0190: 'IMSQRT',\n0x0191: 'IMLN',\n0x0192: 'IMLOG2',\n0x0193: 'IMLOG10',\n0x0194: 'IMSIN',\n0x0195: 'IMCOS',\n0x0196: 'IMEXP',\n0x0197: 'IMARGUMENT',\n0x0198: 'IMCONJUGATE',\n0x0199: 'IMAGINARY',\n0x019A: 'IMREAL',\n0x019B: 'COMPLEX',\n0x019C: 'IMSUM',\n0x019D: 'IMPRODUCT',\n0x019E: 'SERIESSUM',\n0x019F: 'FACTDOUBLE',\n0x01A0: 'SQRTPI',\n0x01A1: 'QUOTIENT',\n0x01A2: 'DELTA',\n0x01A3: 'GESTEP',\n0x01A4: 'ISEVEN',\n0x01A5: 'ISODD',\n0x01A6: 'MROUND',\n0x01A7: 'ERF',\n0x01A8: 'ERFC',\n0x01A9: 'BESSELJ',\n0x01AA: 'BESSELK',\n0x01AB: 'BESSELY',\n0x01AC: 'BESSELI',\n0x01AD: 'XIRR',\n0x01AE: 'XNPV',\n0x01AF: 'PRICEMAT',\n0x01B0: 'YIELDMAT',\n0x01B1: 'INTRATE',\n0x01B2: 'RECEIVED',\n0x01B3: 'DISC',\n0x01B4: 'PRICEDISC',\n0x01B5: 'YIELDDISC',\n0x01B6: 'TBILLEQ',\n0x01B7: 'TBILLPRICE',\n0x01B8: 'TBILLYIELD',\n0x01B9: 'PRICE',\n0x01BA: 'YIELD',\n0x01BB: 'DOLLARDE',\n0x01BC: 'DOLLARFR',\n0x01BD: 'NOMINAL',\n0x01BE: 'EFFECT',\n0x01BF: 'CUMPRINC',\n0x01C0: 'CUMIPMT',\n0x01C1: 'EDATE',\n0x01C2: 'EOMONTH',\n0x01C3: 'YEARFRAC',\n0x01C4: 'COUPDAYBS',\n0x01C5: 'COUPDAYS',\n0x01C6: 'COUPDAYSNC',\n0x01C7: 'COUPNCD',\n0x01C8: 'COUPNUM',\n0x01C9: 'COUPPCD',\n0x01CA: 'DURATION',\n0x01CB: 'MDURATION',\n0x01CC: 'ODDLPRICE',\n0x01CD: 'ODDLYIELD',\n0x01CE: 'ODDFPRICE',\n0x01CF: 'ODDFYIELD',\n0x01D0: 'RANDBETWEEN',\n0x01D1: 'WEEKNUM',\n0x01D2: 'AMORDEGRC',\n0x01D3: 'AMORLINC',\n0x01D4: 'CONVERT',\n0x02D4: 'SHEETJS',\n0x01D5: 'ACCRINT',\n0x01D6: 'ACCRINTM',\n0x01D7: 'WORKDAY',\n0x01D8: 'NETWORKDAYS',\n0x01D9: 'GCD',\n0x01DA: 'MULTINOMIAL',\n0x01DB: 'LCM',\n0x01DC: 'FVSCHEDULE',\n0x01DD: 'CUBEKPIMEMBER',\n0x01DE: 'CUBESET',\n0x01DF: 'CUBESETCOUNT',\n0x01E0: 'IFERROR',\n0x01E1: 'COUNTIFS',\n0x01E2: 'SUMIFS',\n0x01E3: 'AVERAGEIF',\n0x01E4: 'AVERAGEIFS'\n};\nvar FtabArgc = {\n0x0002: 1, /* ISNA */\n0x0003: 1, /* ISERROR */\n0x000A: 0, /* NA */\n0x000F: 1, /* SIN */\n0x0010: 1, /* COS */\n0x0011: 1, /* TAN */\n0x0012: 1, /* ATAN */\n0x0013: 0, /* PI */\n0x0014: 1, /* SQRT */\n0x0015: 1, /* EXP */\n0x0016: 1, /* LN */\n0x0017: 1, /* LOG10 */\n0x0018: 1, /* ABS */\n0x0019: 1, /* INT */\n0x001A: 1, /* SIGN */\n0x001B: 2, /* ROUND */\n0x001E: 2, /* REPT */\n0x001F: 3, /* MID */\n0x0020: 1, /* LEN */\n0x0021: 1, /* VALUE */\n0x0022: 0, /* TRUE */\n0x0023: 0, /* FALSE */\n0x0026: 1, /* NOT */\n0x0027: 2, /* MOD */\n0x0028: 3, /* DCOUNT */\n0x0029: 3, /* DSUM */\n0x002A: 3, /* DAVERAGE */\n0x002B: 3, /* DMIN */\n0x002C: 3, /* DMAX */\n0x002D: 3, /* DSTDEV */\n0x002F: 3, /* DVAR */\n0x0030: 2, /* TEXT */\n0x0035: 1, /* GOTO */\n0x003D: 3, /* MIRR */\n0x003F: 0, /* RAND */\n0x0041: 3, /* DATE */\n0x0042: 3, /* TIME */\n0x0043: 1, /* DAY */\n0x0044: 1, /* MONTH */\n0x0045: 1, /* YEAR */\n0x0046: 1, /* WEEKDAY */\n0x0047: 1, /* HOUR */\n0x0048: 1, /* MINUTE */\n0x0049: 1, /* SECOND */\n0x004A: 0, /* NOW */\n0x004B: 1, /* AREAS */\n0x004C: 1, /* ROWS */\n0x004D: 1, /* COLUMNS */\n0x004F: 2, /* ABSREF */\n0x0050: 2, /* RELREF */\n0x0053: 1, /* TRANSPOSE */\n0x0055: 0, /* STEP */\n0x0056: 1, /* TYPE */\n0x0059: 0, /* CALLER */\n0x005A: 1, /* DEREF */\n0x005E: 0, /* ACTIVE.CELL */\n0x005F: 0, /* SELECTION */\n0x0061: 2, /* ATAN2 */\n0x0062: 1, /* ASIN */\n0x0063: 1, /* ACOS */\n0x0065: 3, /* HLOOKUP */\n0x0066: 3, /* VLOOKUP */\n0x0069: 1, /* ISREF */\n0x006A: 1, /* GET.FORMULA */\n0x006C: 2, /* SET.VALUE */\n0x006F: 1, /* CHAR */\n0x0070: 1, /* LOWER */\n0x0071: 1, /* UPPER */\n0x0072: 1, /* PROPER */\n0x0075: 2, /* EXACT */\n0x0076: 1, /* TRIM */\n0x0077: 4, /* REPLACE */\n0x0079: 1, /* CODE */\n0x007E: 1, /* ISERR */\n0x007F: 1, /* ISTEXT */\n0x0080: 1, /* ISNUMBER */\n0x0081: 1, /* ISBLANK */\n0x0082: 1, /* T */\n0x0083: 1, /* N */\n0x0085: 1, /* FCLOSE */\n0x0086: 1, /* FSIZE */\n0x0087: 1, /* FREADLN */\n0x0088: 2, /* FREAD */\n0x0089: 2, /* FWRITELN */\n0x008A: 2, /* FWRITE */\n0x008C: 1, /* DATEVALUE */\n0x008D: 1, /* TIMEVALUE */\n0x008E: 3, /* SLN */\n0x008F: 4, /* SYD */\n0x0090: 4, /* DDB */\n0x00A1: 1, /* DIALOG.BOX */\n0x00A2: 1, /* CLEAN */\n0x00A3: 1, /* MDETERM */\n0x00A4: 1, /* MINVERSE */\n0x00A5: 2, /* MMULT */\n0x00AC: 1, /* WHILE */\n0x00AF: 2, /* INITIATE */\n0x00B0: 2, /* REQUEST */\n0x00B1: 3, /* POKE */\n0x00B2: 2, /* EXECUTE */\n0x00B3: 1, /* TERMINATE */\n0x00B8: 1, /* FACT */\n0x00BA: 1, /* GET.WORKSPACE */\n0x00BD: 3, /* DPRODUCT */\n0x00BE: 1, /* ISNONTEXT */\n0x00C3: 3, /* DSTDEVP */\n0x00C4: 3, /* DVARP */\n0x00C5: 1, /* TRUNC */\n0x00C6: 1, /* ISLOGICAL */\n0x00C7: 3, /* DCOUNTA */\n0x00C9: 1, /* UNREGISTER */\n0x00CF: 4, /* REPLACEB */\n0x00D2: 3, /* MIDB */\n0x00D3: 1, /* LENB */\n0x00D4: 2, /* ROUNDUP */\n0x00D5: 2, /* ROUNDDOWN */\n0x00D6: 1, /* ASC */\n0x00D7: 1, /* DBCS */\n0x00E1: 0, /* END.IF */\n0x00E5: 1, /* SINH */\n0x00E6: 1, /* COSH */\n0x00E7: 1, /* TANH */\n0x00E8: 1, /* ASINH */\n0x00E9: 1, /* ACOSH */\n0x00EA: 1, /* ATANH */\n0x00EB: 3, /* DGET */\n0x00F4: 1, /* INFO */\n0x00F7: 4, /* DB */\n0x00FC: 2, /* FREQUENCY */\n0x0101: 1, /* EVALUATE */\n0x0105: 1, /* ERROR.TYPE */\n0x010F: 1, /* GAMMALN */\n0x0111: 4, /* BINOMDIST */\n0x0112: 2, /* CHIDIST */\n0x0113: 2, /* CHIINV */\n0x0114: 2, /* COMBIN */\n0x0115: 3, /* CONFIDENCE */\n0x0116: 3, /* CRITBINOM */\n0x0117: 1, /* EVEN */\n0x0118: 3, /* EXPONDIST */\n0x0119: 3, /* FDIST */\n0x011A: 3, /* FINV */\n0x011B: 1, /* FISHER */\n0x011C: 1, /* FISHERINV */\n0x011D: 2, /* FLOOR */\n0x011E: 4, /* GAMMADIST */\n0x011F: 3, /* GAMMAINV */\n0x0120: 2, /* CEILING */\n0x0121: 4, /* HYPGEOMDIST */\n0x0122: 3, /* LOGNORMDIST */\n0x0123: 3, /* LOGINV */\n0x0124: 3, /* NEGBINOMDIST */\n0x0125: 4, /* NORMDIST */\n0x0126: 1, /* NORMSDIST */\n0x0127: 3, /* NORMINV */\n0x0128: 1, /* NORMSINV */\n0x0129: 3, /* STANDARDIZE */\n0x012A: 1, /* ODD */\n0x012B: 2, /* PERMUT */\n0x012C: 3, /* POISSON */\n0x012D: 3, /* TDIST */\n0x012E: 4, /* WEIBULL */\n0x012F: 2, /* SUMXMY2 */\n0x0130: 2, /* SUMX2MY2 */\n0x0131: 2, /* SUMX2PY2 */\n0x0132: 2, /* CHITEST */\n0x0133: 2, /* CORREL */\n0x0134: 2, /* COVAR */\n0x0135: 3, /* FORECAST */\n0x0136: 2, /* FTEST */\n0x0137: 2, /* INTERCEPT */\n0x0138: 2, /* PEARSON */\n0x0139: 2, /* RSQ */\n0x013A: 2, /* STEYX */\n0x013B: 2, /* SLOPE */\n0x013C: 4, /* TTEST */\n0x0145: 2, /* LARGE */\n0x0146: 2, /* SMALL */\n0x0147: 2, /* QUARTILE */\n0x0148: 2, /* PERCENTILE */\n0x014B: 2, /* TRIMMEAN */\n0x014C: 2, /* TINV */\n0x0151: 2, /* POWER */\n0x0156: 1, /* RADIANS */\n0x0157: 1, /* DEGREES */\n0x015A: 2, /* COUNTIF */\n0x015B: 1, /* COUNTBLANK */\n0x015E: 4, /* ISPMT */\n0x015F: 3, /* DATEDIF */\n0x0160: 1, /* DATESTRING */\n0x0161: 2, /* NUMBERSTRING */\n0x0168: 1, /* PHONETIC */\n0x0170: 1, /* BAHTTEXT */\n0x0171: 1, /* THAIDAYOFWEEK */\n0x0172: 1, /* THAIDIGIT */\n0x0173: 1, /* THAIMONTHOFYEAR */\n0x0174: 1, /* THAINUMSOUND */\n0x0175: 1, /* THAINUMSTRING */\n0x0176: 1, /* THAISTRINGLENGTH */\n0x0177: 1, /* ISTHAIDIGIT */\n0x0178: 1, /* ROUNDBAHTDOWN */\n0x0179: 1, /* ROUNDBAHTUP */\n0x017A: 1, /* THAIYEAR */\n0x017E: 3, /* CUBEMEMBERPROPERTY */\n0x0181: 1, /* HEX2DEC */\n0x0188: 1, /* OCT2DEC */\n0x0189: 1, /* BIN2DEC */\n0x018C: 2, /* IMSUB */\n0x018D: 2, /* IMDIV */\n0x018E: 2, /* IMPOWER */\n0x018F: 1, /* IMABS */\n0x0190: 1, /* IMSQRT */\n0x0191: 1, /* IMLN */\n0x0192: 1, /* IMLOG2 */\n0x0193: 1, /* IMLOG10 */\n0x0194: 1, /* IMSIN */\n0x0195: 1, /* IMCOS */\n0x0196: 1, /* IMEXP */\n0x0197: 1, /* IMARGUMENT */\n0x0198: 1, /* IMCONJUGATE */\n0x0199: 1, /* IMAGINARY */\n0x019A: 1, /* IMREAL */\n0x019E: 4, /* SERIESSUM */\n0x019F: 1, /* FACTDOUBLE */\n0x01A0: 1, /* SQRTPI */\n0x01A1: 2, /* QUOTIENT */\n0x01A4: 1, /* ISEVEN */\n0x01A5: 1, /* ISODD */\n0x01A6: 2, /* MROUND */\n0x01A8: 1, /* ERFC */\n0x01A9: 2, /* BESSELJ */\n0x01AA: 2, /* BESSELK */\n0x01AB: 2, /* BESSELY */\n0x01AC: 2, /* BESSELI */\n0x01AE: 3, /* XNPV */\n0x01B6: 3, /* TBILLEQ */\n0x01B7: 3, /* TBILLPRICE */\n0x01B8: 3, /* TBILLYIELD */\n0x01BB: 2, /* DOLLARDE */\n0x01BC: 2, /* DOLLARFR */\n0x01BD: 2, /* NOMINAL */\n0x01BE: 2, /* EFFECT */\n0x01BF: 6, /* CUMPRINC */\n0x01C0: 6, /* CUMIPMT */\n0x01C1: 2, /* EDATE */\n0x01C2: 2, /* EOMONTH */\n0x01D0: 2, /* RANDBETWEEN */\n0x01D4: 3, /* CONVERT */\n0x01DC: 2, /* FVSCHEDULE */\n0x01DF: 1, /* CUBESETCOUNT */\n0x01E0: 2, /* IFERROR */\n0xFFFF: 0\n};\n/* [MS-XLSX] 2.2.3 Functions */\n/* [MS-XLSB] 2.5.97.10 Ftab */\nvar XLSXFutureFunctions = {\n\t\"_xlfn.ACOT\": \"ACOT\",\n\t\"_xlfn.ACOTH\": \"ACOTH\",\n\t\"_xlfn.AGGREGATE\": \"AGGREGATE\",\n\t\"_xlfn.ARABIC\": \"ARABIC\",\n\t\"_xlfn.AVERAGEIF\": \"AVERAGEIF\",\n\t\"_xlfn.AVERAGEIFS\": \"AVERAGEIFS\",\n\t\"_xlfn.BASE\": \"BASE\",\n\t\"_xlfn.BETA.DIST\": \"BETA.DIST\",\n\t\"_xlfn.BETA.INV\": \"BETA.INV\",\n\t\"_xlfn.BINOM.DIST\": \"BINOM.DIST\",\n\t\"_xlfn.BINOM.DIST.RANGE\": \"BINOM.DIST.RANGE\",\n\t\"_xlfn.BINOM.INV\": \"BINOM.INV\",\n\t\"_xlfn.BITAND\": \"BITAND\",\n\t\"_xlfn.BITLSHIFT\": \"BITLSHIFT\",\n\t\"_xlfn.BITOR\": \"BITOR\",\n\t\"_xlfn.BITRSHIFT\": \"BITRSHIFT\",\n\t\"_xlfn.BITXOR\": \"BITXOR\",\n\t\"_xlfn.CEILING.MATH\": \"CEILING.MATH\",\n\t\"_xlfn.CEILING.PRECISE\": \"CEILING.PRECISE\",\n\t\"_xlfn.CHISQ.DIST\": \"CHISQ.DIST\",\n\t\"_xlfn.CHISQ.DIST.RT\": \"CHISQ.DIST.RT\",\n\t\"_xlfn.CHISQ.INV\": \"CHISQ.INV\",\n\t\"_xlfn.CHISQ.INV.RT\": \"CHISQ.INV.RT\",\n\t\"_xlfn.CHISQ.TEST\": \"CHISQ.TEST\",\n\t\"_xlfn.COMBINA\": \"COMBINA\",\n\t\"_xlfn.CONCAT\": \"CONCAT\",\n\t\"_xlfn.CONFIDENCE.NORM\": \"CONFIDENCE.NORM\",\n\t\"_xlfn.CONFIDENCE.T\": \"CONFIDENCE.T\",\n\t\"_xlfn.COT\": \"COT\",\n\t\"_xlfn.COTH\": \"COTH\",\n\t\"_xlfn.COUNTIFS\": \"COUNTIFS\",\n\t\"_xlfn.COVARIANCE.P\": \"COVARIANCE.P\",\n\t\"_xlfn.COVARIANCE.S\": \"COVARIANCE.S\",\n\t\"_xlfn.CSC\": \"CSC\",\n\t\"_xlfn.CSCH\": \"CSCH\",\n\t\"_xlfn.DAYS\": \"DAYS\",\n\t\"_xlfn.DECIMAL\": \"DECIMAL\",\n\t\"_xlfn.ECMA.CEILING\": \"ECMA.CEILING\",\n\t\"_xlfn.ERF.PRECISE\": \"ERF.PRECISE\",\n\t\"_xlfn.ERFC.PRECISE\": \"ERFC.PRECISE\",\n\t\"_xlfn.EXPON.DIST\": \"EXPON.DIST\",\n\t\"_xlfn.F.DIST\": \"F.DIST\",\n\t\"_xlfn.F.DIST.RT\": \"F.DIST.RT\",\n\t\"_xlfn.F.INV\": \"F.INV\",\n\t\"_xlfn.F.INV.RT\": \"F.INV.RT\",\n\t\"_xlfn.F.TEST\": \"F.TEST\",\n\t\"_xlfn.FILTERXML\": \"FILTERXML\",\n\t\"_xlfn.FLOOR.MATH\": \"FLOOR.MATH\",\n\t\"_xlfn.FLOOR.PRECISE\": \"FLOOR.PRECISE\",\n\t\"_xlfn.FORECAST.ETS\": \"FORECAST.ETS\",\n\t\"_xlfn.FORECAST.ETS.CONFINT\": \"FORECAST.ETS.CONFINT\",\n\t\"_xlfn.FORECAST.ETS.SEASONALITY\": \"FORECAST.ETS.SEASONALITY\",\n\t\"_xlfn.FORECAST.ETS.STAT\": \"FORECAST.ETS.STAT\",\n\t\"_xlfn.FORECAST.LINEAR\": \"FORECAST.LINEAR\",\n\t\"_xlfn.FORMULATEXT\": \"FORMULATEXT\",\n\t\"_xlfn.GAMMA\": \"GAMMA\",\n\t\"_xlfn.GAMMA.DIST\": \"GAMMA.DIST\",\n\t\"_xlfn.GAMMA.INV\": \"GAMMA.INV\",\n\t\"_xlfn.GAMMALN.PRECISE\": \"GAMMALN.PRECISE\",\n\t\"_xlfn.GAUSS\": \"GAUSS\",\n\t\"_xlfn.HYPGEOM.DIST\": \"HYPGEOM.DIST\",\n\t\"_xlfn.IFERROR\": \"IFERROR\",\n\t\"_xlfn.IFNA\": \"IFNA\",\n\t\"_xlfn.IFS\": \"IFS\",\n\t\"_xlfn.IMCOSH\": \"IMCOSH\",\n\t\"_xlfn.IMCOT\": \"IMCOT\",\n\t\"_xlfn.IMCSC\": \"IMCSC\",\n\t\"_xlfn.IMCSCH\": \"IMCSCH\",\n\t\"_xlfn.IMSEC\": \"IMSEC\",\n\t\"_xlfn.IMSECH\": \"IMSECH\",\n\t\"_xlfn.IMSINH\": \"IMSINH\",\n\t\"_xlfn.IMTAN\": \"IMTAN\",\n\t\"_xlfn.ISFORMULA\": \"ISFORMULA\",\n\t\"_xlfn.ISO.CEILING\": \"ISO.CEILING\",\n\t\"_xlfn.ISOWEEKNUM\": \"ISOWEEKNUM\",\n\t\"_xlfn.LOGNORM.DIST\": \"LOGNORM.DIST\",\n\t\"_xlfn.LOGNORM.INV\": \"LOGNORM.INV\",\n\t\"_xlfn.MAXIFS\": \"MAXIFS\",\n\t\"_xlfn.MINIFS\": \"MINIFS\",\n\t\"_xlfn.MODE.MULT\": \"MODE.MULT\",\n\t\"_xlfn.MODE.SNGL\": \"MODE.SNGL\",\n\t\"_xlfn.MUNIT\": \"MUNIT\",\n\t\"_xlfn.NEGBINOM.DIST\": \"NEGBINOM.DIST\",\n\t\"_xlfn.NETWORKDAYS.INTL\": \"NETWORKDAYS.INTL\",\n\t\"_xlfn.NIGBINOM\": \"NIGBINOM\",\n\t\"_xlfn.NORM.DIST\": \"NORM.DIST\",\n\t\"_xlfn.NORM.INV\": \"NORM.INV\",\n\t\"_xlfn.NORM.S.DIST\": \"NORM.S.DIST\",\n\t\"_xlfn.NORM.S.INV\": \"NORM.S.INV\",\n\t\"_xlfn.NUMBERVALUE\": \"NUMBERVALUE\",\n\t\"_xlfn.PDURATION\": \"PDURATION\",\n\t\"_xlfn.PERCENTILE.EXC\": \"PERCENTILE.EXC\",\n\t\"_xlfn.PERCENTILE.INC\": \"PERCENTILE.INC\",\n\t\"_xlfn.PERCENTRANK.EXC\": \"PERCENTRANK.EXC\",\n\t\"_xlfn.PERCENTRANK.INC\": \"PERCENTRANK.INC\",\n\t\"_xlfn.PERMUTATIONA\": \"PERMUTATIONA\",\n\t\"_xlfn.PHI\": \"PHI\",\n\t\"_xlfn.POISSON.DIST\": \"POISSON.DIST\",\n\t\"_xlfn.QUARTILE.EXC\": \"QUARTILE.EXC\",\n\t\"_xlfn.QUARTILE.INC\": \"QUARTILE.INC\",\n\t\"_xlfn.QUERYSTRING\": \"QUERYSTRING\",\n\t\"_xlfn.RANK.AVG\": \"RANK.AVG\",\n\t\"_xlfn.RANK.EQ\": \"RANK.EQ\",\n\t\"_xlfn.RRI\": \"RRI\",\n\t\"_xlfn.SEC\": \"SEC\",\n\t\"_xlfn.SECH\": \"SECH\",\n\t\"_xlfn.SHEET\": \"SHEET\",\n\t\"_xlfn.SHEETS\": \"SHEETS\",\n\t\"_xlfn.SKEW.P\": \"SKEW.P\",\n\t\"_xlfn.STDEV.P\": \"STDEV.P\",\n\t\"_xlfn.STDEV.S\": \"STDEV.S\",\n\t\"_xlfn.SUMIFS\": \"SUMIFS\",\n\t\"_xlfn.SWITCH\": \"SWITCH\",\n\t\"_xlfn.T.DIST\": \"T.DIST\",\n\t\"_xlfn.T.DIST.2T\": \"T.DIST.2T\",\n\t\"_xlfn.T.DIST.RT\": \"T.DIST.RT\",\n\t\"_xlfn.T.INV\": \"T.INV\",\n\t\"_xlfn.T.INV.2T\": \"T.INV.2T\",\n\t\"_xlfn.T.TEST\": \"T.TEST\",\n\t\"_xlfn.TEXTJOIN\": \"TEXTJOIN\",\n\t\"_xlfn.UNICHAR\": \"UNICHAR\",\n\t\"_xlfn.UNICODE\": \"UNICODE\",\n\t\"_xlfn.VAR.P\": \"VAR.P\",\n\t\"_xlfn.VAR.S\": \"VAR.S\",\n\t\"_xlfn.WEBSERVICE\": \"WEBSERVICE\",\n\t\"_xlfn.WEIBULL.DIST\": \"WEIBULL.DIST\",\n\t\"_xlfn.WORKDAY.INTL\": \"WORKDAY.INTL\",\n\t\"_xlfn.XOR\": \"XOR\",\n\t\"_xlfn.Z.TEST\": \"Z.TEST\"\n};\n\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f) {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f) {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r) {\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r) {\n\treturn r.replace(/\\./,\"!\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\nRELS.WS = [\n\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n];\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst, str, rev) {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C, col) {\n\tvar p = ({min:C+1,max:C+1});\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\treturn p;\n}\n\nfunction default_margins(margins, mode) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left == null) margins.left = defs[0];\n\tif(margins.right == null) margins.right = defs[1];\n\tif(margins.top == null) margins.top = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles, cell, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF.load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p, fmtid, fillid, opts, themes, styles) {\n\ttry {\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z') return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(SSF._table[fmtid] == null) SSF.load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v);\n\t\t\t\tif((dd|0) === dd) p.w = SSF._general_int(dd);\n\t\t\t\telse p.w = SSF._general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF._general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF.format(fmtid,datenum(p.v),_ssfopts);\n\t\telse p.w = SSF.format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws, sname, i) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws, s) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<(?:\\w:)?hyperlink [^>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w:)?col\\b[^>]*[\\/]?>/g;\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\nvar sheetprregex = /<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data, opts, idx, rels, wb, themes, styles) {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = opts.dense ? ([]) : ({});\n\tvar refguess = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} });\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch = data.match(sheetdataregex);\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = data1.match(svsregex);\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles);\n\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges) {\n\tif(merges.length === 0) return \"\";\n\tvar o = '<mergeCells count=\"' + merges.length + '\">';\n\tfor(var i = 0; i != merges.length; ++i) o += '<mergeCell ref=\"' + encode_range(merges[i]) + '\"/>';\n\treturn o + '</mergeCells>';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr, s, wb, idx) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = utf8write(escapexml(cname));\n\t}\n\n\tif(ws && ws[\"!outline\"]) {\n\t\tvar outlineprops = {summaryBelow:1, summaryRight:1};\n\t\tif(ws[\"!outline\"].above) outlineprops.summaryBelow = 0;\n\t\tif(ws[\"!outline\"].left) outlineprops.summaryRight = 0;\n\t\tpayload = (payload||\"\") + writextag('outlinePr', null, outlineprops);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp) {\n\t// algorithmName, hashValue, saltValue, spinCount\n\tvar o = ({sheet:1});\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data, rels) {\n\tvar dense = Array.isArray(s);\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+val.location;\n\t\t} else {\n\t\t\tval.Target = \"#\" + val.location;\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_cell({c:C,r:R});\n\t\t\tif(dense) {\n\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\tif(!s[R][C]) s[R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin) {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols) {\n\tvar o = [\"<cols>\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"</cols>\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx) {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]});\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^>a-z][^>]*)?\\/?>/;\nfunction parse_ws_xml_sheetviews(data, wb) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r, i) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb) {\n\tvar sview = ({workbookViewId:\"0\"});\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell, ref, ws, opts) {\n\tif(cell.v === undefined && typeof cell.f !== \"string\" || cell.t === 'z') return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) vv = parseDate(cell.v, -1).toISOString();\n\t\t\telse {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v)));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = SSF._table[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = writetag('v', escapexml(vv)), o = ({r:ref});\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(typeof cell.f == \"string\" && cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) ws['!links'].push([ref, cell.l]);\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = (function() {\n\tvar cellregex = /<(?:\\w+:)?c[ \\/>]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata, s, opts, guess, themes, styles) {\n\tvar ri = 0, x = \"\", cells = [], cref = [], idx=0, i=0, cc=0, d=\"\", p;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf = [];\n\tvar sharedf = [];\n\tvar dense = Array.isArray(s);\n\tvar rows = [], rowobj = {}, rowrite = false;\n\tvar sheetStubs = !!opts.sheetStubs;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tfor(ri = 0; ri < xlen; ++ri) if(x.charCodeAt(ri) === 62) break; ++ri;\n\t\ttag = parsexmltag(x.slice(0,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"<c \" + (x.slice(0,1)==\"<\"?\">\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"});\n\n\t\t\tif((cref=d.match(match_v))!= null && cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=d.match(match_f))!= null && cref[1] !== '') {\n\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\tp.f=unescapexml(utf8read(cref[1])).replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\n\t\t\t\t\tif(cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t} else if(cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\n\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\n\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/<f[^>]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? utf8read(p.v) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, 1);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, 1)); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && SSF.is_date(SSF._table[fmtid])) { p.t = 'd'; p.v = numdate(p.v); }\n\t\t\tif(dense) {\n\t\t\t\tvar _r = decode_cell(tag.r);\n\t\t\t\tif(!s[_r.r]) s[_r.r] = [];\n\t\t\t\ts[_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws, opts, idx, wb) {\n\tvar o = [], r = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = Array.isArray(ws);\n\tvar params = ({r:rr}), row, height = -1;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr});\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1});\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nvar WS_XML_ROOT = writextag('worksheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\nfunction write_ws_xml(idx, opts, wb, rels) {\n\tvar o = [XML_HEADER, WS_XML_ROOT];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '<sheetData/>';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = ('</sheetData>'); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect'] != null) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(ws['!links'].length > 0) {\n\t\to[o.length] = \"<hyperlinks>\";\nws['!links'].forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]});\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#.*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"</hyperlinks>\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = ('</worksheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({});\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = Array.isArray(ws) ? (ws[caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 'BrtRowHdr', o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo() {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\t/* TODO: pull flags */\n\tdata.l += 19;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tfor(var i = 0; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\n\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display});\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data) {\n\tvar margins = ({});\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\", false], // fObjects\n\t\t[\"scenarios\", false], // fScenarios\n\t\t[\"formatCells\", true], // fFormatCells\n\t\t[\"formatColumns\", true], // fFormatColumns\n\t\t[\"formatRows\", true], // fFormatRows\n\t\t[\"insertColumns\", true], // fInsertColumns\n\t\t[\"insertRows\", true], // fInsertRows\n\t\t[\"insertHyperlinks\", true], // fInsertHyperlinks\n\t\t[\"deleteColumns\", true], // fDeleteColumns\n\t\t[\"deleteRows\", true], // fDeleteRows\n\t\t[\"selectLockedCells\", false], // fSelLockedCells\n\t\t[\"sort\", true], // fSort\n\t\t[\"autoFilter\", true], // fAutoFilter\n\t\t[\"pivotTables\", true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false] // fSelUnlockedCells\n\t].forEach(function(n) {\nif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb, themes, styles) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s = (opts.dense ? [] : {});\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell;\n\tvar merges = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || wb.supbooks || ([[]]);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo = [], rowinfo = [];\n\tvar seencol = false;\n\n\trecordhopper(data, function ws_parse(val, R_n, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\t\tp = ({t:val[2]});\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles);\n\t\t\t\tC = val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && SSF.is_date(SSF._table[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF.parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:undefined});\n\t\t\t\tC = val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\t\t\tif(!s[R][C]) s[R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_cell({c:C,r:R});\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[R][C] : s[encode_col(C) + rr]));\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x0031: /* 'BrtCellMeta' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba, cell, R, C, opts, ws) {\n\tif(cell.v === undefined) return;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || SSF._table[14];\n\t\t\tcell.v = datenum(parseDate(cell.v)); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar o = ({r:R, c:C});\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\twrite_record(ba, \"BrtCellIsst\", write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\twrite_record(ba, \"BrtCellSt\", write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) write_record(ba, \"BrtCellRk\", write_BrtCellRk(cell, o));\n\t\t\telse write_record(ba, \"BrtCellReal\", write_BrtCellReal(cell, o));\n\t\t\treturn;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\twrite_record(ba, \"BrtCellBool\", write_BrtCellBool(cell, o));\n\t\t\treturn;\n\t\tcase 'e': /* TODO: error */ o.t = \"e\"; break;\n\t}\n\twrite_record(ba, \"BrtCellBlank\", write_BrtCellBlank(cell, o));\n}\n\nfunction write_CELLTABLE(ba, ws, idx, opts) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\twrite_record(ba, 'BrtBeginSheetData');\n\tvar dense = Array.isArray(ws);\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_bin_cell(ba, cell, R, C, opts, ws);\n\t\t}\n\t}\n\twrite_record(ba, 'BrtEndSheetData');\n}\n\nfunction write_MERGECELLS(ba, ws) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 'BrtBeginMergeCells', write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 'BrtMergeCell', write_BrtMergeCell(m)); });\n\twrite_record(ba, 'BrtEndMergeCells');\n}\n\nfunction write_COLINFOS(ba, ws) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 'BrtBeginColInfos');\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 'BrtColInfo', write_BrtColInfo(i, m)); });\n\twrite_record(ba, 'BrtEndColInfos');\n}\n\nfunction write_IGNOREECS(ba, ws) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 'BrtBeginCellIgnoreECs');\n\twrite_record(ba, 'BrtCellIgnoreEC', write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 'BrtEndCellIgnoreECs');\n}\n\nfunction write_HLINKS(ba, ws, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#.*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, \"BrtHLink\", write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws, idx, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, \"BrtLegacyDrawing\", write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]});\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\n\twrite_record(ba, \"BrtBeginAFilter\", write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, \"BrtEndAFilter\");\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, \"BrtBeginWsViews\");\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, \"BrtBeginWsView\", write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, \"BrtEndWsView\");\n\t}\n\t/* *FRT */\n\twrite_record(ba, \"BrtEndWsViews\");\n}\n\nfunction write_WSFMTINFO() {\n\t/* [ACWSFMTINFO] */\n\t//write_record(ba, \"BrtWsFmtInfo\", write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, \"BrtSheetProtection\", write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx, opts, wb, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, \"BrtBeginSheet\");\n\tif(wb.vbaraw) write_record(ba, \"BrtWsProp\", write_BrtWsProp(c));\n\twrite_record(ba, \"BrtWsDim\", write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, \"BrtMargins\", write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, \"BrtEndSheet\");\n\treturn ba.end();\n}\nRELS.CHART = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\";\nRELS.CHARTEX = \"http://schemas.microsoft.com/office/2014/relationships/chartEx\";\n\nfunction parse_Cache(data) {\n\tvar col = [];\n\tvar num = data.match(/^<c:numCache>/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/<c:pt idx=\"(\\d*)\">(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/<c:pt idx=\"(\\d*?)\"><c:v>(.*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((data.match(/<c:formatCode>([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\n\n\t(data.match(/<c:f>(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data, name, opts, rels, wb, csheet) {\n\tvar cs = ((csheet || {\"!type\":\"chart\"}));\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(data.match(/<c:numCache>[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tcs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\nRELS.CS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\";\n\nvar CS_XML_ROOT = writextag('chartsheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data, opts, idx, rels, wb) {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"});\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_xml(idx, opts, wb, rels) {\n\tvar o = [XML_HEADER, CS_XML_ROOT];\n\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\tif(o.length>2) { o[o.length] = ('</chartsheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx, rels, wb) {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R_n, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0) state.push(R_n);\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_bin() {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginSheet\");\n\t/* [BrtCsProp] */\n\t/* CSVIEWS */\n\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n\t/* [USERCSVIEWS] */\n\t/* [BrtMargins] */\n\t/* [BrtCsPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* BrtDrawing */\n\t/* [BrtLegacyDrawing] */\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [WEBPUBITEMS] */\n\t/* FRTCHARTSHEET */\n\twrite_record(ba, \"BrtEndSheet\");\n\treturn ba.end();\n}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', false, \"bool\"],\n\t['autoCompressPictures', true, \"bool\"],\n\t['backupFile', false, \"bool\"],\n\t['checkCompatibility', false, \"bool\"],\n\t['CodeName', ''],\n\t['date1904', false, \"bool\"],\n\t['defaultThemeVersion', 0, \"int\"],\n\t['filterPrivacy', false, \"bool\"],\n\t['hidePivotFieldList', false, \"bool\"],\n\t['promptedSolutions', false, \"bool\"],\n\t['publishItems', false, \"bool\"],\n\t['refreshAllConnections', false, \"bool\"],\n\t['saveExternalLinkValues', true, \"bool\"],\n\t['showBorderUnselectedTables', true, \"bool\"],\n\t['showInkAnnotation', true, \"bool\"],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', 0, \"int\"],\n\t['autoFilterDateGrouping', true, \"bool\"],\n\t['firstSheet', 0, \"int\"],\n\t['minimized', false, \"bool\"],\n\t['showHorizontalScroll', true, \"bool\"],\n\t['showSheetTabs', true, \"bool\"],\n\t['showVerticalScroll', true, \"bool\"],\n\t['tabRatio', 600, \"int\"],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb) {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = \"][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n, safe) {\n\tif(n.length > 31) { if(safe) return false; throw new Error(\"Sheet names cannot exceed 31 chars\"); }\n\tvar _good = true;\n\tbadchars.forEach(function(c) {\n\t\tif(n.indexOf(c) == -1) return;\n\t\tif(!safe) throw new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t_good = false;\n\t});\n\treturn _good;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts) {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" };\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\n\t\t\t/* 18.2.27 workbook CT_Workbook 1 */\n\t\t\tcase '<workbook':\n\t\t\t\tif(x.match(wbnsregex)) xmlns = \"xmlns\" + x.match(/<(\\w+):/)[1];\n\t\t\t\twb.xmlns = y[xmlns];\n\t\t\t\tbreak;\n\t\t\tcase '</workbook>': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '<fileVersion': delete y[0]; wb.AppVersion = y; break;\n\t\t\tcase '<fileVersion/>': case '</fileVersion>': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '<fileSharing':\n\t\t\t\tbreak;\n\t\t\tcase '<fileSharing/>': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '<workbookPr':\n\t\t\tcase '<workbookPr/>':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\n\t\t\t\tbreak;\n\t\t\tcase '</workbookPr>': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '<workbookProtection':\n\t\t\t\tbreak;\n\t\t\tcase '<workbookProtection/>': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '<bookViews': case '<bookViews>': case '</bookViews>': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '<workbookView': case '<workbookView/>': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '</workbookView>': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '<sheets': case '<sheets>': case '</sheets>': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '<sheet':\n\t\t\t\tswitch(y.state) {\n\t\t\t\t\tcase \"hidden\": y.Hidden = 1; break;\n\t\t\t\t\tcase \"veryHidden\": y.Hidden = 2; break;\n\t\t\t\t\tdefault: y.Hidden = 0;\n\t\t\t\t}\n\t\t\t\tdelete y.state;\n\t\t\t\ty.name = unescapexml(utf8read(y.name));\n\t\t\t\tdelete y[0]; wb.Sheets.push(y); break;\n\t\t\tcase '</sheet>': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '<functionGroups': case '<functionGroups/>': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '<functionGroup': break;\n\n\t\t\t/* 18.2.9 externalReferences CT_ExternalReferences ? */\n\t\t\tcase '<externalReferences': case '</externalReferences>': case '<externalReferences>': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '<externalReference': break;\n\n\t\t\t/* 18.2.6 definedNames CT_DefinedNames ? */\n\t\t\tcase '<definedNames/>': break;\n\t\t\tcase '<definedNames>': case '<definedNames': pass=true; break;\n\t\t\tcase '</definedNames>': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '<definedName': {\n\t\t\t\tdname = {};\n\t\t\t\tdname.Name = utf8read(y.name);\n\t\t\t\tif(y.comment) dname.Comment = y.comment;\n\t\t\t\tif(y.localSheetId) dname.Sheet = +y.localSheetId;\n\t\t\t\tif(parsexmlbool(y.hidden||\"0\")) dname.Hidden = true;\n\t\t\t\tdnstart = idx + x.length;\n\t\t\t}\tbreak;\n\t\t\tcase '</definedName>': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '<definedName/>': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '<calcPr': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '<calcPr/>': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '</calcPr>': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '<oleSize': break;\n\n\t\t\t/* 18.2.4 customWorkbookViews CT_CustomWorkbookViews ? */\n\t\t\tcase '<customWorkbookViews>': case '</customWorkbookViews>': case '<customWorkbookViews': break;\n\t\t\t/* 18.2.3 customWorkbookView CT_CustomWorkbookView + */\n\t\t\tcase '<customWorkbookView': case '</customWorkbookView>': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '<pivotCaches>': case '</pivotCaches>': case '<pivotCaches': break;\n\t\t\t/* 18.2.17 pivotCache CT_PivotCache ? */\n\t\t\tcase '<pivotCache': break;\n\n\t\t\t/* 18.2.21 smartTagPr CT_SmartTagPr ? */\n\t\t\tcase '<smartTagPr': case '<smartTagPr/>': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '<smartTagTypes': case '<smartTagTypes>': case '</smartTagTypes>': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '<smartTagType': break;\n\n\t\t\t/* 18.2.24 webPublishing CT_WebPublishing ? */\n\t\t\tcase '<webPublishing': case '<webPublishing/>': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '<fileRecoveryPr': case '<fileRecoveryPr/>': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '<webPublishObjects>': case '<webPublishObjects': case '</webPublishObjects>': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '<webPublishObject': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': case '<extLst/>': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '<ext': pass=true; break; //TODO: check with versions of excel\n\t\t\tcase '</ext>': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '<ArchID': break;\n\t\t\tcase '<AlternateContent':\n\t\t\tcase '<AlternateContent>': pass=true; break;\n\t\t\tcase '</AlternateContent>': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase '<revisionPtr': break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in workbook');\n\t\t}\n\t\treturn x;\n\t});\n\tif(XMLNS.main.indexOf(wb.xmlns) === -1) throw new Error(\"Unknown Namespace: \" + wb.xmlns);\n\n\tparse_wb_defaults(wb);\n\n\treturn wb;\n}\n\nvar WB_XML_ROOT = writextag('workbook', null, {\n\t'xmlns': XMLNS.main[0],\n\t//'xmlns:mx': XMLNS.mx,\n\t//'xmlns:s': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\nfunction write_wb_xml(wb) {\n\tvar o = [XML_HEADER];\n\to[o.length] = WB_XML_ROOT;\n\n\tvar write_names = (wb.Workbook && (wb.Workbook.Names||[]).length > 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr = ({codeName:\"ThisWorkbook\"});\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\nif((wb.Workbook.WBProps[x[0]]) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]);\n\t\t});\nif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews only written if first worksheet is hidden */\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\n\t\to[o.length] = \"<bookViews>\";\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\t\tif(!sheets[i]) break;\n\t\t\tif(!sheets[i].Hidden) break;\n\t\t}\n\t\tif(i == wb.SheetNames.length) i = 0;\n\t\to[o.length] = '<workbookView firstSheet=\"' + i + '\" activeTab=\"' + i + '\"/>';\n\t\to[o.length] = \"</bookViews>\";\n\t}\n\n\to[o.length] = \"<sheets>\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))});\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"</sheets>\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"<definedNames>\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"</definedNames>\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = '</workbook>'; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length) {\n\tvar o = ({});\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tdata.l += 4; //var flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula = parse_XLSBNameParsedFormula(data, 0, opts);\n\tvar comment = parse_XLNullableWideString(data);\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula});\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts) {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\trecordhopper(data, function hopper_wb(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = stringify_formula(val.Ptg, null, null, supbooks, opts);\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != \"BrtACBegin\" && state[state.length-1] != \"BrtFRTBegin\")) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb) {\n\twrite_record(ba, \"BrtBeginBundleShs\");\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, \"BrtBundleSh\", write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, \"BrtEndBundleShs\");\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\to.length = o.l;\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4, 28800);\n\to.write_shift(4, 17600);\n\to.write_shift(4, 500);\n\to.write_shift(4, idx);\n\to.write_shift(4, idx);\n\tvar flags = 0x78;\n\to.write_shift(1, flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, \"BrtBeginBookViews\");\n\twrite_record(ba, \"BrtBookView\", write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, \"BrtEndBookViews\");\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginBook\");\n\twrite_record(ba, \"BrtFileVersion\", write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, \"BrtWbProp\", write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\t/* [EXTERNALS] */\n\t/* *BrtName */\n\t/* write_record(ba, \"BrtCalcProp\", write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, \"BrtFileRecover\", write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, \"BrtEndBook\");\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data), opts);\n\treturn parse_wb_xml((data), opts);\n}\n\nfunction parse_ws(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data), themes, opts);\n\treturn parse_sty_xml((data), themes, opts);\n}\n\nfunction parse_theme(data, name, opts) {\n\treturn parse_theme_xml(data, opts);\n}\n\nfunction parse_sst(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data), opts);\n\treturn parse_sst_xml((data), opts);\n}\n\nfunction parse_cmnt(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data), opts);\n\treturn parse_comments_xml((data), opts);\n}\n\nfunction parse_cc(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data), name, opts);\n\treturn parse_cc_xml((data), name, opts);\n}\n\nfunction parse_xlink(data, rel, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data), rel, name, opts);\n\treturn parse_xlink_xml((data), rel, name, opts);\n}\n\nfunction write_wb(wb, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_wb_bin : write_wb_xml)(wb, opts);\n}\n\nfunction write_ws(data, name, opts, wb, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_ws_bin : write_ws_xml)(data, opts, wb, rels);\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction write_cs(data, name, opts, wb, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_cs_bin : write_cs_xml)(data, opts, wb, rels);\n}\n\nfunction write_sty(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sty_bin : write_sty_xml)(data, opts);\n}\n\nfunction write_sst(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sst_bin : write_sst_xml)(data, opts);\n}\n\nfunction write_cmnt(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_comments_bin : write_comments_xml)(data, opts);\n}\n/*\nfunction write_cc(data, name:string, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_cc_bin : write_cc_xml)(data, opts);\n}\n*/\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag, skip_root) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = ([]); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\nif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\nif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\nfunction xlml_format(format, value) {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF._general(value);\n\treturn SSF.format(fmt, value);\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val) {\n\tvar oval = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell, nf, o) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = SSF._general_int(cell.v);\n\t\t\t\telse cell.w = SSF._general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF._general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && SSF.is_date(z)) {\n\t\t\tvar _d = SSF.parse_date_code(cell.v); if(_d) { cell.t = 'd'; cell.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell, base, styles, csty, row, arrayf, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = (xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml).replace(/<.*?>/g, \"\") : cell.r); // todo: BR etc\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = (parseDate(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_clean_comment(comment) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\nfunction xlml_normalize(d) {\n\tif(has_buf && Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n\n/* TODO: Everything */\n/* UOS uses CJK in tags */\nvar xlmlregex = /<(\\/?)([^\\s?><!\\/:]*:|)([^\\s?<>:\\/]+)(?:[\\s?:\\/][^>]*)?>/mg;\n//var xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\nfunction parse_xlml_xml(d, _opts) {\n\tvar opts = _opts || {};\n\tmake_ssf(SSF);\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof cptable !== 'undefined') str = cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\tif(opening.indexOf(\"<?xml\") == -1) [\"html\", \"table\", \"head\", \"meta\", \"script\", \"style\", \"div\"].forEach(function(tag) { if(opening.indexOf(\"<\" + tag) >= 0) ishtml = true; });\n\tif(ishtml) return HTML_.to_workbook(str, opts);\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames = [], cursheet = (opts.dense ? [] : {}), sheetname = \"\";\n\tvar table = {}, cell = ({}), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag('<Data ss:Type=\"String\">'), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments = [], comment = ({});\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf = [];\n\tvar rowinfo = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook = ({ Sheets:[], WBProps:{date1904:false} }), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(/<!--([\\s\\S]*?)-->/mg,\"\");\n\tvar raw_Rn3 = \"\";\n\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase())) {\n\t\tcase 'data' /*case 'Data'*/:\n\t\t\tif(raw_Rn3 == \"data\") {\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==/*\"Comment\"*/\"comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'cell' /*case 'Cell'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[r]) cursheet[r] = [];\n\t\t\t\t\t\tcursheet[r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:cell.HRef});\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tmerges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\nfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[cmd]) cursheet[cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'row' /*case 'Row'*/:\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'worksheet' /*case 'Worksheet'*/: /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = (opts.dense ? [] : {});\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'table' /*case 'Table'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\ttable = xlml_parsexmltag(Rn[0]);\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'style' /*case 'Style'*/:\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'numberformat' /*case 'NumberFormat'*/:\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(SSF._table[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(SSF._table[ssfidx] == null) { SSF.load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'column' /*case 'Column'*/:\n\t\t\tif(state[state.length-1][0] !== /*'Table'*/'table') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'namedrange' /*case 'NamedRange'*/:\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName = ({\n\t\t\t\tName: _NamedRange.Name,\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t});\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\nWorkbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'namedcell' /*case 'NamedCell'*/: break;\n\t\tcase 'b' /*case 'B'*/: break;\n\t\tcase 'i' /*case 'I'*/: break;\n\t\tcase 'u' /*case 'U'*/: break;\n\t\tcase 's' /*case 'S'*/: break;\n\t\tcase 'em' /*case 'EM'*/: break;\n\t\tcase 'h2' /*case 'H2'*/: break;\n\t\tcase 'h3' /*case 'H3'*/: break;\n\t\tcase 'sub' /*case 'Sub'*/: break;\n\t\tcase 'sup' /*case 'Sup'*/: break;\n\t\tcase 'span' /*case 'Span'*/: break;\n\t\tcase 'alignment' /*case 'Alignment'*/:\n\t\t\tbreak;\n\t\tcase 'borders' /*case 'Borders'*/: break;\n\t\tcase 'border' /*case 'Border'*/: break;\n\t\tcase 'font' /*case 'Font'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'interior' /*case 'Interior'*/:\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'protection' /*case 'Protection'*/: break;\n\n\t\tcase 'author' /*case 'Author'*/:\n\t\tcase 'title' /*case 'Title'*/:\n\t\tcase 'description' /*case 'Description'*/:\n\t\tcase 'created' /*case 'Created'*/:\n\t\tcase 'keywords' /*case 'Keywords'*/:\n\t\tcase 'subject' /*case 'Subject'*/:\n\t\tcase 'category' /*case 'Category'*/:\n\t\tcase 'company' /*case 'Company'*/:\n\t\tcase 'lastauthor' /*case 'LastAuthor'*/:\n\t\tcase 'lastsaved' /*case 'LastSaved'*/:\n\t\tcase 'lastprinted' /*case 'LastPrinted'*/:\n\t\tcase 'version' /*case 'Version'*/:\n\t\tcase 'revision' /*case 'Revision'*/:\n\t\tcase 'totaltime' /*case 'TotalTime'*/:\n\t\tcase 'hyperlinkbase' /*case 'HyperlinkBase'*/:\n\t\tcase 'manager' /*case 'Manager'*/:\n\t\tcase 'contentstatus' /*case 'ContentStatus'*/:\n\t\tcase 'identifier' /*case 'Identifier'*/:\n\t\tcase 'language' /*case 'Language'*/:\n\t\tcase 'appname' /*case 'AppName'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'paragraphs' /*case 'Paragraphs'*/: break;\n\n\t\tcase 'styles' /*case 'Styles'*/:\n\t\tcase 'workbook' /*case 'Workbook'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'comment' /*case 'Comment'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = ({a:tmp.Author});\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'autofilter' /*case 'AutoFilter'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'name' /*case 'Name'*/: break;\n\n\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'pixelsperinch' /*case 'PixelsPerInch'*/:\n\t\t\tbreak;\n\t\tcase 'componentoptions' /*case 'ComponentOptions'*/:\n\t\tcase 'documentproperties' /*case 'DocumentProperties'*/:\n\t\tcase 'customdocumentproperties' /*case 'CustomDocumentProperties'*/:\n\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/:\n\t\tcase 'pivottable' /*case 'PivotTable'*/:\n\t\tcase 'pivotcache' /*case 'PivotCache'*/:\n\t\tcase 'names' /*case 'Names'*/:\n\t\tcase 'mapinfo' /*case 'MapInfo'*/:\n\t\tcase 'pagebreaks' /*case 'PageBreaks'*/:\n\t\tcase 'querytable' /*case 'QueryTable'*/:\n\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\tcase 'schema' /*case 'Schema'*/: //case 'data' /*case 'data'*/:\n\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\tcase 'smarttagtype' /*case 'SmartTagType'*/:\n\t\tcase 'smarttags' /*case 'SmartTags'*/:\n\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/:\n\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/:\n\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\t/* FODS file root is <office:document> */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is <uof:UOF> */\n\t\t\tif(state.length == 0 && Rn[3] == \"uof\"/*\"UOF\"*/) return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'allowpng' /*case 'AllowPNG'*/: break;\n\t\t\t\t\tcase 'removepersonalinformation' /*case 'RemovePersonalInformation'*/: break;\n\t\t\t\t\tcase 'downloadcomponents' /*case 'DownloadComponents'*/: break;\n\t\t\t\t\tcase 'locationofcomponents' /*case 'LocationOfComponents'*/: break;\n\t\t\t\t\tcase 'colors' /*case 'Colors'*/: break;\n\t\t\t\t\tcase 'color' /*case 'Color'*/: break;\n\t\t\t\t\tcase 'index' /*case 'Index'*/: break;\n\t\t\t\t\tcase 'rgb' /*case 'RGB'*/: break;\n\t\t\t\t\tcase 'targetscreensize' /*case 'TargetScreenSize'*/: break;\n\t\t\t\t\tcase 'readonlyrecommended' /*case 'ReadOnlyRecommended'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'componentoptions' /*case 'ComponentOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'toolbar' /*case 'Toolbar'*/: break;\n\t\t\t\t\tcase 'hideofficelogo' /*case 'HideOfficeLogo'*/: break;\n\t\t\t\t\tcase 'spreadsheetautofit' /*case 'SpreadsheetAutoFit'*/: break;\n\t\t\t\t\tcase 'label' /*case 'Label'*/: break;\n\t\t\t\t\tcase 'caption' /*case 'Caption'*/: break;\n\t\t\t\t\tcase 'maxheight' /*case 'MaxHeight'*/: break;\n\t\t\t\t\tcase 'maxwidth' /*case 'MaxWidth'*/: break;\n\t\t\t\t\tcase 'nextsheetnumber' /*case 'NextSheetNumber'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'date1904' /*case 'Date1904'*/:\nWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'windowheight' /*case 'WindowHeight'*/: break;\n\t\t\t\t\tcase 'windowwidth' /*case 'WindowWidth'*/: break;\n\t\t\t\t\tcase 'windowtopx' /*case 'WindowTopX'*/: break;\n\t\t\t\t\tcase 'windowtopy' /*case 'WindowTopY'*/: break;\n\t\t\t\t\tcase 'tabratio' /*case 'TabRatio'*/: break;\n\t\t\t\t\tcase 'protectstructure' /*case 'ProtectStructure'*/: break;\n\t\t\t\t\tcase 'protectwindow' /*case 'ProtectWindow'*/: break;\n\t\t\t\t\tcase 'protectwindows' /*case 'ProtectWindows'*/: break;\n\t\t\t\t\tcase 'activesheet' /*case 'ActiveSheet'*/: break;\n\t\t\t\t\tcase 'displayinknotes' /*case 'DisplayInkNotes'*/: break;\n\t\t\t\t\tcase 'firstvisiblesheet' /*case 'FirstVisibleSheet'*/: break;\n\t\t\t\t\tcase 'supbook' /*case 'SupBook'*/: break;\n\t\t\t\t\tcase 'sheetname' /*case 'SheetName'*/: break;\n\t\t\t\t\tcase 'sheetindex' /*case 'SheetIndex'*/: break;\n\t\t\t\t\tcase 'sheetindexfirst' /*case 'SheetIndexFirst'*/: break;\n\t\t\t\t\tcase 'sheetindexlast' /*case 'SheetIndexLast'*/: break;\n\t\t\t\t\tcase 'dll' /*case 'Dll'*/: break;\n\t\t\t\t\tcase 'acceptlabelsinformulas' /*case 'AcceptLabelsInFormulas'*/: break;\n\t\t\t\t\tcase 'donotsavelinkvalues' /*case 'DoNotSaveLinkValues'*/: break;\n\t\t\t\t\tcase 'iteration' /*case 'Iteration'*/: break;\n\t\t\t\t\tcase 'maxiterations' /*case 'MaxIterations'*/: break;\n\t\t\t\t\tcase 'maxchange' /*case 'MaxChange'*/: break;\n\t\t\t\t\tcase 'path' /*case 'Path'*/: break;\n\t\t\t\t\tcase 'xct' /*case 'Xct'*/: break;\n\t\t\t\t\tcase 'count' /*case 'Count'*/: break;\n\t\t\t\t\tcase 'selectedsheets' /*case 'SelectedSheets'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tcase 'uncalced' /*case 'Uncalced'*/: break;\n\t\t\t\t\tcase 'startupprompt' /*case 'StartupPrompt'*/: break;\n\t\t\t\t\tcase 'crn' /*case 'Crn'*/: break;\n\t\t\t\t\tcase 'externname' /*case 'ExternName'*/: break;\n\t\t\t\t\tcase 'formula' /*case 'Formula'*/: break;\n\t\t\t\t\tcase 'colfirst' /*case 'ColFirst'*/: break;\n\t\t\t\t\tcase 'collast' /*case 'ColLast'*/: break;\n\t\t\t\t\tcase 'wantadvise' /*case 'WantAdvise'*/: break;\n\t\t\t\t\tcase 'boolean' /*case 'Boolean'*/: break;\n\t\t\t\t\tcase 'error' /*case 'Error'*/: break;\n\t\t\t\t\tcase 'text' /*case 'Text'*/: break;\n\t\t\t\t\tcase 'ole' /*case 'OLE'*/: break;\n\t\t\t\t\tcase 'noautorecover' /*case 'NoAutoRecover'*/: break;\n\t\t\t\t\tcase 'publishobjects' /*case 'PublishObjects'*/: break;\n\t\t\t\t\tcase 'donotcalculatebeforesave' /*case 'DoNotCalculateBeforeSave'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'refmoder1c1' /*case 'RefModeR1C1'*/: break;\n\t\t\t\t\tcase 'embedsavesmarttags' /*case 'EmbedSaveSmartTags'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'owcversion' /*case 'OWCVersion'*/: break;\n\t\t\t\t\tcase 'height' /*case 'Height'*/: break;\n\t\t\t\t\tcase 'width' /*case 'Width'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'visible' /*case 'Visible'*/:\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'header' /*case 'Header'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tcursheet['!margins'].header = parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'footer' /*case 'Footer'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tcursheet['!margins'].footer = parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'pagemargins' /*case 'PageMargins'*/:\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(pagemargins.Top) cursheet['!margins'].top = pagemargins.Top;\n\t\t\t\t\t\tif(pagemargins.Left) cursheet['!margins'].left = pagemargins.Left;\n\t\t\t\t\t\tif(pagemargins.Right) cursheet['!margins'].right = pagemargins.Right;\n\t\t\t\t\t\tif(pagemargins.Bottom) cursheet['!margins'].bottom = pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'displayrighttoleft' /*case 'DisplayRightToLeft'*/:\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'freezepanes' /*case 'FreezePanes'*/: break;\n\t\t\t\t\tcase 'frozennosplit' /*case 'FrozenNoSplit'*/: break;\n\n\t\t\t\t\tcase 'splithorizontal' /*case 'SplitHorizontal'*/:\n\t\t\t\t\tcase 'splitvertical' /*case 'SplitVertical'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'donotdisplaygridlines' /*case 'DoNotDisplayGridlines'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'activerow' /*case 'ActiveRow'*/: break;\n\t\t\t\t\tcase 'activecol' /*case 'ActiveCol'*/: break;\n\t\t\t\t\tcase 'toprowbottompane' /*case 'TopRowBottomPane'*/: break;\n\t\t\t\t\tcase 'leftcolumnrightpane' /*case 'LeftColumnRightPane'*/: break;\n\n\t\t\t\t\tcase 'unsynced' /*case 'Unsynced'*/: break;\n\t\t\t\t\tcase 'print' /*case 'Print'*/: break;\n\t\t\t\t\tcase 'panes' /*case 'Panes'*/: break;\n\t\t\t\t\tcase 'scale' /*case 'Scale'*/: break;\n\t\t\t\t\tcase 'pane' /*case 'Pane'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'layout' /*case 'Layout'*/: break;\n\t\t\t\t\tcase 'pagesetup' /*case 'PageSetup'*/: break;\n\t\t\t\t\tcase 'selected' /*case 'Selected'*/: break;\n\t\t\t\t\tcase 'protectobjects' /*case 'ProtectObjects'*/: break;\n\t\t\t\t\tcase 'enableselection' /*case 'EnableSelection'*/: break;\n\t\t\t\t\tcase 'protectscenarios' /*case 'ProtectScenarios'*/: break;\n\t\t\t\t\tcase 'validprinterinfo' /*case 'ValidPrinterInfo'*/: break;\n\t\t\t\t\tcase 'horizontalresolution' /*case 'HorizontalResolution'*/: break;\n\t\t\t\t\tcase 'verticalresolution' /*case 'VerticalResolution'*/: break;\n\t\t\t\t\tcase 'numberofcopies' /*case 'NumberofCopies'*/: break;\n\t\t\t\t\tcase 'activepane' /*case 'ActivePane'*/: break;\n\t\t\t\t\tcase 'toprowvisible' /*case 'TopRowVisible'*/: break;\n\t\t\t\t\tcase 'leftcolumnvisible' /*case 'LeftColumnVisible'*/: break;\n\t\t\t\t\tcase 'fittopage' /*case 'FitToPage'*/: break;\n\t\t\t\t\tcase 'rangeselection' /*case 'RangeSelection'*/: break;\n\t\t\t\t\tcase 'papersizeindex' /*case 'PaperSizeIndex'*/: break;\n\t\t\t\t\tcase 'pagelayoutzoom' /*case 'PageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'pagebreakzoom' /*case 'PageBreakZoom'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'fitwidth' /*case 'FitWidth'*/: break;\n\t\t\t\t\tcase 'fitheight' /*case 'FitHeight'*/: break;\n\t\t\t\t\tcase 'commentslayout' /*case 'CommentsLayout'*/: break;\n\t\t\t\t\tcase 'zoom' /*case 'Zoom'*/: break;\n\t\t\t\t\tcase 'lefttoright' /*case 'LeftToRight'*/: break;\n\t\t\t\t\tcase 'gridlines' /*case 'Gridlines'*/: break;\n\t\t\t\t\tcase 'allowsort' /*case 'AllowSort'*/: break;\n\t\t\t\t\tcase 'allowfilter' /*case 'AllowFilter'*/: break;\n\t\t\t\t\tcase 'allowinsertrows' /*case 'AllowInsertRows'*/: break;\n\t\t\t\t\tcase 'allowdeleterows' /*case 'AllowDeleteRows'*/: break;\n\t\t\t\t\tcase 'allowinsertcols' /*case 'AllowInsertCols'*/: break;\n\t\t\t\t\tcase 'allowdeletecols' /*case 'AllowDeleteCols'*/: break;\n\t\t\t\t\tcase 'allowinserthyperlinks' /*case 'AllowInsertHyperlinks'*/: break;\n\t\t\t\t\tcase 'allowformatcells' /*case 'AllowFormatCells'*/: break;\n\t\t\t\t\tcase 'allowsizecols' /*case 'AllowSizeCols'*/: break;\n\t\t\t\t\tcase 'allowsizerows' /*case 'AllowSizeRows'*/: break;\n\t\t\t\t\tcase 'nosummaryrowsbelowdetail' /*case 'NoSummaryRowsBelowDetail'*/: break;\n\t\t\t\t\tcase 'tabcolorindex' /*case 'TabColorIndex'*/: break;\n\t\t\t\t\tcase 'donotdisplayheadings' /*case 'DoNotDisplayHeadings'*/: break;\n\t\t\t\t\tcase 'showpagelayoutzoom' /*case 'ShowPageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'nosummarycolumnsrightdetail' /*case 'NoSummaryColumnsRightDetail'*/: break;\n\t\t\t\t\tcase 'blackandwhite' /*case 'BlackAndWhite'*/: break;\n\t\t\t\t\tcase 'donotdisplayzeros' /*case 'DoNotDisplayZeros'*/: break;\n\t\t\t\t\tcase 'displaypagebreak' /*case 'DisplayPageBreak'*/: break;\n\t\t\t\t\tcase 'rowcolheadings' /*case 'RowColHeadings'*/: break;\n\t\t\t\t\tcase 'donotdisplayoutline' /*case 'DoNotDisplayOutline'*/: break;\n\t\t\t\t\tcase 'noorientation' /*case 'NoOrientation'*/: break;\n\t\t\t\t\tcase 'allowusepivottables' /*case 'AllowUsePivotTables'*/: break;\n\t\t\t\t\tcase 'zeroheight' /*case 'ZeroHeight'*/: break;\n\t\t\t\t\tcase 'viewablerange' /*case 'ViewableRange'*/: break;\n\t\t\t\t\tcase 'selection' /*case 'Selection'*/: break;\n\t\t\t\t\tcase 'protectcontents' /*case 'ProtectContents'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'pivottable' /*case 'PivotTable'*/: case 'pivotcache' /*case 'PivotCache'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'immediateitemsondrop' /*case 'ImmediateItemsOnDrop'*/: break;\n\t\t\t\t\tcase 'showpagemultipleitemlabel' /*case 'ShowPageMultipleItemLabel'*/: break;\n\t\t\t\t\tcase 'compactrowindent' /*case 'CompactRowIndent'*/: break;\n\t\t\t\t\tcase 'location' /*case 'Location'*/: break;\n\t\t\t\t\tcase 'pivotfield' /*case 'PivotField'*/: break;\n\t\t\t\t\tcase 'orientation' /*case 'Orientation'*/: break;\n\t\t\t\t\tcase 'layoutform' /*case 'LayoutForm'*/: break;\n\t\t\t\t\tcase 'layoutsubtotallocation' /*case 'LayoutSubtotalLocation'*/: break;\n\t\t\t\t\tcase 'layoutcompactrow' /*case 'LayoutCompactRow'*/: break;\n\t\t\t\t\tcase 'position' /*case 'Position'*/: break;\n\t\t\t\t\tcase 'pivotitem' /*case 'PivotItem'*/: break;\n\t\t\t\t\tcase 'datatype' /*case 'DataType'*/: break;\n\t\t\t\t\tcase 'datafield' /*case 'DataField'*/: break;\n\t\t\t\t\tcase 'sourcename' /*case 'SourceName'*/: break;\n\t\t\t\t\tcase 'parentfield' /*case 'ParentField'*/: break;\n\t\t\t\t\tcase 'ptlineitems' /*case 'PTLineItems'*/: break;\n\t\t\t\t\tcase 'ptlineitem' /*case 'PTLineItem'*/: break;\n\t\t\t\t\tcase 'countofsameitems' /*case 'CountOfSameItems'*/: break;\n\t\t\t\t\tcase 'item' /*case 'Item'*/: break;\n\t\t\t\t\tcase 'itemtype' /*case 'ItemType'*/: break;\n\t\t\t\t\tcase 'ptsource' /*case 'PTSource'*/: break;\n\t\t\t\t\tcase 'cacheindex' /*case 'CacheIndex'*/: break;\n\t\t\t\t\tcase 'consolidationreference' /*case 'ConsolidationReference'*/: break;\n\t\t\t\t\tcase 'filename' /*case 'FileName'*/: break;\n\t\t\t\t\tcase 'reference' /*case 'Reference'*/: break;\n\t\t\t\t\tcase 'nocolumngrand' /*case 'NoColumnGrand'*/: break;\n\t\t\t\t\tcase 'norowgrand' /*case 'NoRowGrand'*/: break;\n\t\t\t\t\tcase 'blanklineafteritems' /*case 'BlankLineAfterItems'*/: break;\n\t\t\t\t\tcase 'hidden' /*case 'Hidden'*/: break;\n\t\t\t\t\tcase 'subtotal' /*case 'Subtotal'*/: break;\n\t\t\t\t\tcase 'basefield' /*case 'BaseField'*/: break;\n\t\t\t\t\tcase 'mapchilditems' /*case 'MapChildItems'*/: break;\n\t\t\t\t\tcase 'function' /*case 'Function'*/: break;\n\t\t\t\t\tcase 'refreshonfileopen' /*case 'RefreshOnFileOpen'*/: break;\n\t\t\t\t\tcase 'printsettitles' /*case 'PrintSetTitles'*/: break;\n\t\t\t\t\tcase 'mergelabels' /*case 'MergeLabels'*/: break;\n\t\t\t\t\tcase 'defaultversion' /*case 'DefaultVersion'*/: break;\n\t\t\t\t\tcase 'refreshname' /*case 'RefreshName'*/: break;\n\t\t\t\t\tcase 'refreshdate' /*case 'RefreshDate'*/: break;\n\t\t\t\t\tcase 'refreshdatecopy' /*case 'RefreshDateCopy'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tcase 'versionlastupdate' /*case 'VersionLastUpdate'*/: break;\n\t\t\t\t\tcase 'versionupdateablemin' /*case 'VersionUpdateableMin'*/: break;\n\t\t\t\t\tcase 'versionrefreshablemin' /*case 'VersionRefreshableMin'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'pagebreaks' /*case 'PageBreaks'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'colbreaks' /*case 'ColBreaks'*/: break;\n\t\t\t\t\tcase 'colbreak' /*case 'ColBreak'*/: break;\n\t\t\t\t\tcase 'rowbreaks' /*case 'RowBreaks'*/: break;\n\t\t\t\t\tcase 'rowbreak' /*case 'RowBreak'*/: break;\n\t\t\t\t\tcase 'colstart' /*case 'ColStart'*/: break;\n\t\t\t\t\tcase 'colend' /*case 'ColEnd'*/: break;\n\t\t\t\t\tcase 'rowend' /*case 'RowEnd'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'autofilter' /*case 'AutoFilter'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'autofiltercolumn' /*case 'AutoFilterColumn'*/: break;\n\t\t\t\t\tcase 'autofiltercondition' /*case 'AutoFilterCondition'*/: break;\n\t\t\t\t\tcase 'autofilterand' /*case 'AutoFilterAnd'*/: break;\n\t\t\t\t\tcase 'autofilteror' /*case 'AutoFilterOr'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'querytable' /*case 'QueryTable'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'id' /*case 'Id'*/: break;\n\t\t\t\t\tcase 'autoformatfont' /*case 'AutoFormatFont'*/: break;\n\t\t\t\t\tcase 'autoformatpattern' /*case 'AutoFormatPattern'*/: break;\n\t\t\t\t\tcase 'querysource' /*case 'QuerySource'*/: break;\n\t\t\t\t\tcase 'querytype' /*case 'QueryType'*/: break;\n\t\t\t\t\tcase 'enableredirections' /*case 'EnableRedirections'*/: break;\n\t\t\t\t\tcase 'refreshedinxl9' /*case 'RefreshedInXl9'*/: break;\n\t\t\t\t\tcase 'urlstring' /*case 'URLString'*/: break;\n\t\t\t\t\tcase 'htmltables' /*case 'HTMLTables'*/: break;\n\t\t\t\t\tcase 'connection' /*case 'Connection'*/: break;\n\t\t\t\t\tcase 'commandtext' /*case 'CommandText'*/: break;\n\t\t\t\t\tcase 'refreshinfo' /*case 'RefreshInfo'*/: break;\n\t\t\t\t\tcase 'notitles' /*case 'NoTitles'*/: break;\n\t\t\t\t\tcase 'nextid' /*case 'NextId'*/: break;\n\t\t\t\t\tcase 'columninfo' /*case 'ColumnInfo'*/: break;\n\t\t\t\t\tcase 'overwritecells' /*case 'OverwriteCells'*/: break;\n\t\t\t\t\tcase 'donotpromptforfile' /*case 'DoNotPromptForFile'*/: break;\n\t\t\t\t\tcase 'textwizardsettings' /*case 'TextWizardSettings'*/: break;\n\t\t\t\t\tcase 'source' /*case 'Source'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'decimal' /*case 'Decimal'*/: break;\n\t\t\t\t\tcase 'thousandseparator' /*case 'ThousandSeparator'*/: break;\n\t\t\t\t\tcase 'trailingminusnumbers' /*case 'TrailingMinusNumbers'*/: break;\n\t\t\t\t\tcase 'formatsettings' /*case 'FormatSettings'*/: break;\n\t\t\t\t\tcase 'fieldtype' /*case 'FieldType'*/: break;\n\t\t\t\t\tcase 'delimiters' /*case 'Delimiters'*/: break;\n\t\t\t\t\tcase 'tab' /*case 'Tab'*/: break;\n\t\t\t\t\tcase 'comma' /*case 'Comma'*/: break;\n\t\t\t\t\tcase 'autoformatname' /*case 'AutoFormatName'*/: break;\n\t\t\t\t\tcase 'versionlastedit' /*case 'VersionLastEdit'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\t\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'mapinfo' /*case 'MapInfo'*/: case 'schema' /*case 'Schema'*/: case 'data' /*case 'data'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'map' /*case 'Map'*/: break;\n\t\t\t\t\tcase 'entry' /*case 'Entry'*/: break;\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'xpath' /*case 'XPath'*/: break;\n\t\t\t\t\tcase 'field' /*case 'Field'*/: break;\n\t\t\t\t\tcase 'xsdtype' /*case 'XSDType'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'aggregate' /*case 'Aggregate'*/: break;\n\t\t\t\t\tcase 'elementtype' /*case 'ElementType'*/: break;\n\t\t\t\t\tcase 'attributetype' /*case 'AttributeType'*/: break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema' /*case 'schema'*/:\n\t\t\t\t\tcase 'element' /*case 'element'*/:\n\t\t\t\t\tcase 'complextype' /*case 'complexType'*/:\n\t\t\t\t\tcase 'datatype' /*case 'datatype'*/:\n\t\t\t\t\tcase 'all' /*case 'all'*/:\n\t\t\t\t\tcase 'attribute' /*case 'attribute'*/:\n\t\t\t\t\tcase 'extends' /*case 'extends'*/: break;\n\n\t\t\t\t\tcase 'row' /*case 'row'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'smarttags' /*case 'SmartTags'*/: break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]===/*'CustomDocumentProperties'*/'customdocumentproperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({});\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = SSF.get_table();\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\treturn out;\n}\n\nfunction parse_xlml(data, opts) {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64.decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n}\n\n/* TODO */\nfunction write_props_xlml(wb, opts) {\n\tvar o = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml() {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts) {\n\t/* Styles */\n\tvar styles = ['<Style ss:ID=\"Default\" ss:Name=\"Normal\"><NumberFormat/></Style>'];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(SSF._table[xf.numFmtId])}));\n\n\t\tvar o = {\"ss:ID\": \"s\" + (21+id)};\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb) {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\nvar names = wb.Workbook.Names;\n\tvar out = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws, opts, idx, wb) {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\nvar names = wb.Workbook.Names;\n\tvar out = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws, opts, idx, wb) {\n\tif(!ws) return \"\";\n\tvar o = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"<PageSetup>\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"</PageSetup>\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"<Selected/>\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"<DisplayRightToLeft/>\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments) {\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\treturn writextag(\"Comment\", d, {\"ss:Author\":c.a});\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr){\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || SSF._table[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('<Data ss:Type=\"' + t + '\">' + _v + '</Data>');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R, row) {\n\tvar o = '<Row ss:Index=\"' + (R+1) + '\"';\n\tif(row) {\n\t\tif(row.hpt && !row.hpx) row.hpx = pt2px(row.hpt);\n\t\tif(row.hpx) o += ' ss:AutoFitHeight=\"0\" ss:Height=\"' + row.hpx + '\"';\n\t\tif(row.hidden) o += ' ss:Hidden=\"1\"';\n\t}\n\treturn o + '>';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws, opts, idx, wb) {\n\tif(!ws['!ref']) return \"\";\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar marr = ws['!merges'] || [], mi = 0;\n\tvar o = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = Array.isArray(ws);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_cell(addr), cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"</Row>\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx, opts, wb) {\n\tvar o = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"<Names>\" + t + \"</Names>\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"<Table>\" + t + \"</Table>\");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts) {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = SSF.get_table();\n\tif(wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj) {\n\tvar v = {};\n\tvar o = obj.content;\n/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue\n\t- 2.4.59 ContinueBigName\n\t- 2.4.60 ContinueFrt\n\t- 2.4.61 ContinueFrt11\n\t- 2.4.62 ContinueFrt12\n*/\nfunction slurp(R, blob, length, opts) {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu) switch(R.n) {\n\tcase 'BOF': case 'FilePass': case 'FileLock': case 'InterfaceHdr': case 'RRDInfo': case 'RRDHead': case 'UsrExcl': break;\n\tdefault:\n\t\tif(d.length === 0) break;\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar next = (XLSRecordEnum[__readUInt16LE(blob,blob.l)]);\n\tvar start = 0;\n\twhile(next != null && next.n.slice(0,8) === 'Continue') {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(next.n == 'ContinueFrt') start += 4;\n\t\telse if(next.n.slice(0,11) == 'ContinueFrt') start += 12;\n\t\tbufs.push(blob.slice(start,blob.l+4+l));\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[__readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs));\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p, opts, date1904) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF._general(p.v);\n\t\t}\n\t\telse p.w = SSF.format(fmtid,p.v, {date1904:!!date1904});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && SSF.is_date(SSF._table[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF.parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t) {\n\treturn ({v:val, ixfe:ixfe, t:t});\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options) {\n\tvar wb = ({opts:{}});\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out = ((options.dense ? [] : {}));\n\tvar Directory = {};\n\tvar range = ({});\n\tvar last_formula = null;\n\tvar sst = ([]);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf = [];\n\tvar temp_val;\n\tvar country;\n\tvar cell_valid = true;\n\tvar XFs = []; /* XF records */\n\tvar palette = [];\n\tvar Workbook = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }), wsprops = {};\n\tvar get_rgb = function getrgb(icv) {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({});\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell, line, options) {\n\t\tif(file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) cell_valid = false;\n\t\tif(!cell_valid) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[cell.r]) out[cell.r] = [];\n\t\t\t\tout[cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t});\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges = [];\n\tvar objects = [];\n\tvar colinfo = [], rowinfo = [];\n\t// eslint-disable-next-line no-unused-vars\n\tvar defwidth = 0, defheight = 0; // twips / MDW respectively\n\tvar seencol = false;\n\tvar supbooks = ([]); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_Rn = '';\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_Rn === 'EOF') break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_Rn === 'BoundSheet8' && R.n !== 'BoundSheet8') break;\n\t\t\t}\n\t\t\tlast_Rn = R.n;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){ blob.l += 10; length -= 10; } // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val = ({});\n\t\t\tif(R.n === 'EOF') val = R.f(blob, length, opts);\n\t\t\telse val = slurp(R, blob, length, opts);\n\t\t\tvar Rn = R.n;\nif(file_depth == 0 && Rn != 'BOF') continue;\n\t\t\t/* nested switch statements to workaround V8 128 limit */\n\t\t\tswitch(Rn) {\n\t\t\t\t/* Workbook Options */\n\t\t\t\tcase 'Date1904':\nwb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 'WriteProtect': wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 'FilePass':\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'WriteAccess': opts.lastuser = val; break;\n\t\t\t\tcase 'FileSharing': break; //TODO\n\t\t\t\tcase 'CodePage':\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'RRTabId': opts.rrtabid = val; break;\n\t\t\t\tcase 'WinProtect': opts.winlocked = val; break;\n\t\t\t\tcase 'Template': break; // TODO\n\t\t\t\tcase 'BookBool': break; // TODO\n\t\t\t\tcase 'UsesELFs': break;\n\t\t\t\tcase 'MTRSettings': break;\n\t\t\t\tcase 'RefreshAll':\n\t\t\t\tcase 'CalcCount':\n\t\t\t\tcase 'CalcDelta':\n\t\t\t\tcase 'CalcIter':\n\t\t\t\tcase 'CalcMode':\n\t\t\t\tcase 'CalcPrecision':\n\t\t\t\tcase 'CalcSaveRecalc':\n\t\t\t\t\twb.opts[Rn] = val; break;\n\t\t\t\tcase 'CalcRefMode': opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 'Uncalced': break;\n\t\t\t\tcase 'ForceFullCalculation': wb.opts.FullCalc = val; break;\n\t\t\t\tcase 'WsBool':\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 'XF':\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 'ExtSST': break; // TODO\n\t\t\t\tcase 'BookExt': break; // TODO\n\t\t\t\tcase 'RichTextStream': break;\n\t\t\t\tcase 'BkHim': break;\n\n\t\t\t\tcase 'SupBook':\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ExternName':\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Index': break; // TODO\n\t\t\t\tcase 'Lbl':\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t});\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ExternCount': opts.ExternCount = val; break;\n\t\t\t\tcase 'ExternSheet':\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 'NameCmt':\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Protect': out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 'Password': if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 'Prot4Rev': case 'Prot4RevPass': break; /*TODO: Revision Control*/\n\n\t\t\t\tcase 'BoundSheet8': {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 'EOF': {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ((options.dense ? [] : {}));\n\t\t\t\t} break;\n\t\t\t\tcase 'BOF': {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n0x0009:2,\n0x0209:3,\n0x0409:4\n\t\t\t\t\t}[RecordType] || {\n0x0200:2,\n0x0300:3,\n0x0400:4,\n0x0500:5,\n0x0600:8,\n0x0002:2,\n0x0007:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tcell_valid = true;\n\t\t\t\t\tout = ((options.dense ? [] : {}));\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\t\t\t\t\tif(opts.biff < 5) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tdefwidth = defheight = 0;\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\n\t\t\t\tcase 'Number': case 'BIFF2NUM': case 'BIFF2INT': {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[val.r]||[])[val.c]: out[encode_cell({c:val.c, r:val.r})]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'BoolErr': {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'RK': {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulRk': {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'});\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Formula': {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'String': {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 'Array': {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'ShrFmla': {\n\t\t\t\t\tif(!cell_valid) break;\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'LabelSst':\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Blank': if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulBlank': if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'});\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'RString':\n\t\t\t\tcase 'Label': case 'BIFF2STR':\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Dimensions': {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 'SST': {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'Format': { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff == 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(SSF._table[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF.load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF.load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 'BIFF2FORMAT': {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(SSF._table[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF.load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 'MergeCells': merges = merges.concat(val); break;\n\n\t\t\t\tcase 'Obj': objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 'TxO': opts.lastobj.TxO = val; break;\n\t\t\t\tcase 'ImData': opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 'HLink': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'HLinkTooltip': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\t/* Comments */\n\t\t\t\tcase 'Note': {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = options.dense ? (out[val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[val[0].r]) out[val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[val[0].r][val[0].c] = ({t:\"z\"});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"});\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\tcase 'ClrtClient': break;\n\t\t\t\tcase 'XFExt': update_xfext(XFs[val.ixfe], val.ext); break;\n\n\t\t\t\tcase 'DefColWidth': defwidth = val; break;\n\t\t\t\tcase 'DefaultRowHeight': defheight = val[1]; break; // TODO: flags\n\n\t\t\t\tcase 'ColInfo': {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256 };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Row': {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\tcase 'LeftMargin':\n\t\t\t\tcase 'RightMargin':\n\t\t\t\tcase 'TopMargin':\n\t\t\t\tcase 'BottomMargin':\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][Rn.slice(0,-6).toLowerCase()] = val;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Setup': // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Window2': // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Header': break; // TODO\n\t\t\t\tcase 'Footer': break; // TODO\n\t\t\t\tcase 'HCenter': break; // TODO\n\t\t\t\tcase 'VCenter': break; // TODO\n\t\t\t\tcase 'Pls': break; // TODO\n\t\t\t\tcase 'GCW': break;\n\t\t\t\tcase 'LHRecord': break;\n\t\t\t\tcase 'DBCell': break; // TODO\n\t\t\t\tcase 'EntExU2': break; // TODO\n\t\t\t\tcase 'SxView': break; // TODO\n\t\t\t\tcase 'Sxvd': break; // TODO\n\t\t\t\tcase 'SXVI': break; // TODO\n\t\t\t\tcase 'SXVDEx': break; // TODO\n\t\t\t\tcase 'SxIvd': break; // TODO\n\t\t\t\tcase 'SXString': break; // TODO\n\t\t\t\tcase 'Sync': break;\n\t\t\t\tcase 'Addin': break;\n\t\t\t\tcase 'SXDI': break; // TODO\n\t\t\t\tcase 'SXLI': break; // TODO\n\t\t\t\tcase 'SXEx': break; // TODO\n\t\t\t\tcase 'QsiSXTag': break; // TODO\n\t\t\t\tcase 'Selection': break;\n\t\t\t\tcase 'Feat': break;\n\t\t\t\tcase 'FeatHdr': case 'FeatHdr11': break;\n\t\t\t\tcase 'Feature11': case 'Feature12': case 'List12': break;\n\t\t\t\tcase 'Country': country = val; break;\n\t\t\t\tcase 'RecalcId': break;\n\t\t\t\tcase 'DxGCol': break; // TODO: htmlify\n\t\t\t\tcase 'Fbi': case 'Fbi2': case 'GelFrame': break;\n\t\t\t\tcase 'Font': break; // TODO\n\t\t\t\tcase 'XFCRC': break; // TODO\n\t\t\t\tcase 'Style': break; // TODO\n\t\t\t\tcase 'StyleExt': break; // TODO\n\t\t\t\tcase 'Palette': palette = val; break;\n\t\t\t\tcase 'Theme': themes = val; break;\n\t\t\t\t/* Protection */\n\t\t\t\tcase 'ScenarioProtect': break;\n\t\t\t\tcase 'ObjProtect': break;\n\n\t\t\t\t/* Conditional Formatting */\n\t\t\t\tcase 'CondFmt12': break;\n\n\t\t\t\t/* Table */\n\t\t\t\tcase 'Table': break; // TODO\n\t\t\t\tcase 'TableStyles': break; // TODO\n\t\t\t\tcase 'TableStyle': break; // TODO\n\t\t\t\tcase 'TableStyleElement': break; // TODO\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'SXStreamID': break; // TODO\n\t\t\t\tcase 'SXVS': break; // TODO\n\t\t\t\tcase 'DConRef': break; // TODO\n\t\t\t\tcase 'SXAddl': break; // TODO\n\t\t\t\tcase 'DConBin': break; // TODO\n\t\t\t\tcase 'DConName': break; // TODO\n\t\t\t\tcase 'SXPI': break; // TODO\n\t\t\t\tcase 'SxFormat': break; // TODO\n\t\t\t\tcase 'SxSelect': break; // TODO\n\t\t\t\tcase 'SxRule': break; // TODO\n\t\t\t\tcase 'SxFilt': break; // TODO\n\t\t\t\tcase 'SxItm': break; // TODO\n\t\t\t\tcase 'SxDXF': break; // TODO\n\n\t\t\t\t/* Scenario Manager */\n\t\t\t\tcase 'ScenMan': break;\n\n\t\t\t\t/* Data Consolidation */\n\t\t\t\tcase 'DCon': break;\n\n\t\t\t\t/* Watched Cell */\n\t\t\t\tcase 'CellWatch': break;\n\n\t\t\t\t/* Print Settings */\n\t\t\t\tcase 'PrintRowCol': break;\n\t\t\t\tcase 'PrintGrid': break;\n\t\t\t\tcase 'PrintSize': break;\n\n\t\t\t\tcase 'XCT': break;\n\t\t\t\tcase 'CRN': break;\n\n\t\t\t\tcase 'Scl': {\n\t\t\t\t\t//console.log(\"Zoom Level:\", val[0]/val[1],val);\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExt': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExtOptional': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\n\t\t\t\t/* VBA */\n\t\t\t\tcase 'ObNoMacros': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'ObProj': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'CodeName': {\nif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t\tcase 'GUIDTypeLib': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\n\t\t\t\tcase 'WOpt': break; // TODO: WTF?\n\t\t\t\tcase 'PhoneticInfo': break;\n\n\t\t\t\tcase 'OleObjectSize': break;\n\n\t\t\t\t/* Differential Formatting */\n\t\t\t\tcase 'DXF': case 'DXFN': case 'DXFN12': case 'DXFN12List': case 'DXFN12NoCB': break;\n\n\t\t\t\t/* Data Validation */\n\t\t\t\tcase 'Dv': case 'DVal': break;\n\n\t\t\t\t/* Data Series */\n\t\t\t\tcase 'BRAI': case 'Series': case 'SeriesText': break;\n\n\t\t\t\t/* Data Connection */\n\t\t\t\tcase 'DConn': break;\n\t\t\t\tcase 'DbOrParamQry': break;\n\t\t\t\tcase 'DBQueryExt': break;\n\n\t\t\t\tcase 'OleDbConn': break;\n\t\t\t\tcase 'ExtString': break;\n\n\t\t\t\t/* Formatting */\n\t\t\t\tcase 'IFmtRecord': break;\n\t\t\t\tcase 'CondFmt': case 'CF': case 'CF12': case 'CFEx': break;\n\n\t\t\t\t/* Explicitly Ignored */\n\t\t\t\tcase 'Excel9File': break;\n\t\t\t\tcase 'Units': break;\n\t\t\t\tcase 'InterfaceHdr': case 'Mms': case 'InterfaceEnd': case 'DSF': break;\n\t\t\t\tcase 'BuiltInFnGroupCount': /* 2.4.30 0x0E or 0x10 but excel 2011 generates 0x11? */ break;\n\t\t\t\t/* View Stuff */\n\t\t\t\tcase 'Window1': case 'HideObj': case 'GridSet': case 'Guts':\n\t\t\t\tcase 'UserBView': case 'UserSViewBegin': case 'UserSViewEnd': break;\n\t\t\t\tcase 'Pane': break;\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* Chart */\n\t\t\t\tcase 'Dat':\n\t\t\t\tcase 'Begin': case 'End':\n\t\t\t\tcase 'StartBlock': case 'EndBlock':\n\t\t\t\tcase 'Frame': case 'Area':\n\t\t\t\tcase 'Axis': case 'AxisLine': case 'Tick': break;\n\t\t\t\tcase 'AxesUsed':\n\t\t\t\tcase 'CrtLayout12': case 'CrtLayout12A': case 'CrtLink': case 'CrtLine': case 'CrtMlFrt': case 'CrtMlFrtContinue': break;\n\t\t\t\tcase 'LineFormat': case 'AreaFormat':\n\t\t\t\tcase 'Chart': case 'Chart3d': case 'Chart3DBarShape': case 'ChartFormat': case 'ChartFrtInfo': break;\n\t\t\t\tcase 'PlotArea': case 'PlotGrowth': break;\n\t\t\t\tcase 'SeriesList': case 'SerParent': case 'SerAuxTrend': break;\n\t\t\t\tcase 'DataFormat': case 'SerToCrt': case 'FontX': break;\n\t\t\t\tcase 'CatSerRange': case 'AxcExt': case 'SerFmt': break;\n\t\t\t\tcase 'ShtProps': break;\n\t\t\t\tcase 'DefaultText': case 'Text': case 'CatLab': break;\n\t\t\t\tcase 'DataLabExtContents': break;\n\t\t\t\tcase 'Legend': case 'LegendException': break;\n\t\t\t\tcase 'Pie': case 'Scatter': break;\n\t\t\t\tcase 'PieFormat': case 'MarkerFormat': break;\n\t\t\t\tcase 'StartObject': case 'EndObject': break;\n\t\t\t\tcase 'AlRuns': case 'ObjectLink': break;\n\t\t\t\tcase 'SIIndex': break;\n\t\t\t\tcase 'AttachedLabel': case 'YMult': break;\n\n\t\t\t\t/* Chart Group */\n\t\t\t\tcase 'Line': case 'Bar': break;\n\t\t\t\tcase 'Surf': break;\n\n\t\t\t\t/* Axis Group */\n\t\t\t\tcase 'AxisParent': break;\n\t\t\t\tcase 'Pos': break;\n\t\t\t\tcase 'ValueRange': break;\n\n\t\t\t\t/* Pivot Chart */\n\t\t\t\tcase 'SXViewEx9': break; // TODO\n\t\t\t\tcase 'SXViewLink': break;\n\t\t\t\tcase 'PivotChartBits': break;\n\t\t\t\tcase 'SBaseRef': break;\n\t\t\t\tcase 'TextPropsStream': break;\n\n\t\t\t\t/* Chart Misc */\n\t\t\t\tcase 'LnExt': break;\n\t\t\t\tcase 'MkrExt': break;\n\t\t\t\tcase 'CrtCoopt': break;\n\n\t\t\t\t/* Query Table */\n\t\t\t\tcase 'Qsi': case 'Qsif': case 'Qsir': case 'QsiSXTag': break;\n\t\t\t\tcase 'TxtQry': break;\n\n\t\t\t\t/* Filter */\n\t\t\t\tcase 'FilterMode': break;\n\t\t\t\tcase 'AutoFilter': case 'AutoFilterInfo': break;\n\t\t\t\tcase 'AutoFilter12': break;\n\t\t\t\tcase 'DropDownObjIds': break;\n\t\t\t\tcase 'Sort': break;\n\t\t\t\tcase 'SortData': break;\n\n\t\t\t\t/* Drawing */\n\t\t\t\tcase 'ShapePropsStream': break;\n\t\t\t\tcase 'MsoDrawing': case 'MsoDrawingGroup': case 'MsoDrawingSelection': break;\n\t\t\t\t/* Pub Stuff */\n\t\t\t\tcase 'WebPub': case 'AutoWebPub': break;\n\n\t\t\t\t/* Print Stuff */\n\t\t\t\tcase 'HeaderFooter': case 'HFPicture': case 'PLV':\n\t\t\t\tcase 'HorizontalPageBreaks': case 'VerticalPageBreaks': break;\n\t\t\t\t/* Behavioral */\n\t\t\t\tcase 'Backup': case 'CompressPictures': case 'Compat12': break;\n\n\t\t\t\t/* Should not Happen */\n\t\t\t\tcase 'Continue': case 'ContinueFrt12': break;\n\n\t\t\t\t/* Future Records */\n\t\t\t\tcase 'FrtFontList': case 'FrtWrapper': break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* BIFF5 records */\n\t\t\t\tcase 'TabIdConf': case 'Radar': case 'RadarArea': case 'DropBar': case 'Intl': case 'CoordList': case 'SerAuxErrBar': break;\n\n\t\t\t\t/* BIFF2-4 records */\n\t\t\t\tcase 'BIFF2FONTCLR': case 'BIFF2FMTCNT': case 'BIFF2FONTXTRA': break;\n\t\t\t\tcase 'BIFF2XF': case 'BIFF3XF': case 'BIFF4XF': break;\n\t\t\t\tcase 'BIFF4FMTCNT': case 'BIFF2ROW': case 'BIFF2WINDOW2': break;\n\n\t\t\t\t/* Miscellaneous */\n\t\t\t\tcase 'SCENARIO': case 'DConBin': case 'PicF': case 'DataLabExt':\n\t\t\t\tcase 'Lel': case 'BopPop': case 'BopPopCustom': case 'RealTimeData':\n\t\t\t\tcase 'Name': break;\n\t\t\t\tcase 'LHNGraph': case 'FnGroupName': case 'AddMenu': case 'LPr': break;\n\t\t\t\tcase 'ListObj': case 'ListField': break;\n\t\t\t\tcase 'RRSort': break;\n\t\t\t\tcase 'BigName': break;\n\t\t\t\tcase 'ToolbarHdr': case 'ToolbarEnd': break;\n\t\t\t\tcase 'DDEObjName': break;\n\t\t\t\tcase 'FRTArchId$': break;\n\t\t\t\tdefault: if(options.WTF) throw 'Unrecognized Record ' + R.n;\n\t\t\t}}}}\n\t\t} else blob.l += length;\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Preamble=Preamble;\n\twb.Strings = sst;\n\twb.SSF = SSF.get_table();\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb, cfb) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb, options) {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj, WB;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64.decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb});\n}\nvar WorkbookP;\n\nvar _data;\nif(CompObj) parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({});\nelse {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(cfb, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb, opts) {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n0x0000: { n:\"BrtRowHdr\", f:parse_BrtRowHdr },\n0x0001: { n:\"BrtCellBlank\", f:parse_BrtCellBlank },\n0x0002: { n:\"BrtCellRk\", f:parse_BrtCellRk },\n0x0003: { n:\"BrtCellError\", f:parse_BrtCellError },\n0x0004: { n:\"BrtCellBool\", f:parse_BrtCellBool },\n0x0005: { n:\"BrtCellReal\", f:parse_BrtCellReal },\n0x0006: { n:\"BrtCellSt\", f:parse_BrtCellSt },\n0x0007: { n:\"BrtCellIsst\", f:parse_BrtCellIsst },\n0x0008: { n:\"BrtFmlaString\", f:parse_BrtFmlaString },\n0x0009: { n:\"BrtFmlaNum\", f:parse_BrtFmlaNum },\n0x000A: { n:\"BrtFmlaBool\", f:parse_BrtFmlaBool },\n0x000B: { n:\"BrtFmlaError\", f:parse_BrtFmlaError },\n0x0010: { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ },\n0x0013: { n:\"BrtSSTItem\", f:parse_RichStr },\n0x0014: { n:\"BrtPCDIMissing\" },\n0x0015: { n:\"BrtPCDINumber\" },\n0x0016: { n:\"BrtPCDIBoolean\" },\n0x0017: { n:\"BrtPCDIError\" },\n0x0018: { n:\"BrtPCDIString\" },\n0x0019: { n:\"BrtPCDIDatetime\" },\n0x001A: { n:\"BrtPCDIIndex\" },\n0x001B: { n:\"BrtPCDIAMissing\" },\n0x001C: { n:\"BrtPCDIANumber\" },\n0x001D: { n:\"BrtPCDIABoolean\" },\n0x001E: { n:\"BrtPCDIAError\" },\n0x001F: { n:\"BrtPCDIAString\" },\n0x0020: { n:\"BrtPCDIADatetime\" },\n0x0021: { n:\"BrtPCRRecord\" },\n0x0022: { n:\"BrtPCRRecordDt\" },\n0x0023: { n:\"BrtFRTBegin\" },\n0x0024: { n:\"BrtFRTEnd\" },\n0x0025: { n:\"BrtACBegin\" },\n0x0026: { n:\"BrtACEnd\" },\n0x0027: { n:\"BrtName\", f:parse_BrtName },\n0x0028: { n:\"BrtIndexRowBlock\" },\n0x002A: { n:\"BrtIndexBlock\" },\n0x002B: { n:\"BrtFont\", f:parse_BrtFont },\n0x002C: { n:\"BrtFmt\", f:parse_BrtFmt },\n0x002D: { n:\"BrtFill\", f:parse_BrtFill },\n0x002E: { n:\"BrtBorder\", f:parse_BrtBorder },\n0x002F: { n:\"BrtXF\", f:parse_BrtXF },\n0x0030: { n:\"BrtStyle\" },\n0x0031: { n:\"BrtCellMeta\" },\n0x0032: { n:\"BrtValueMeta\" },\n0x0033: { n:\"BrtMdb\" },\n0x0034: { n:\"BrtBeginFmd\" },\n0x0035: { n:\"BrtEndFmd\" },\n0x0036: { n:\"BrtBeginMdx\" },\n0x0037: { n:\"BrtEndMdx\" },\n0x0038: { n:\"BrtBeginMdxTuple\" },\n0x0039: { n:\"BrtEndMdxTuple\" },\n0x003A: { n:\"BrtMdxMbrIstr\" },\n0x003B: { n:\"BrtStr\" },\n0x003C: { n:\"BrtColInfo\", f:parse_ColInfo },\n0x003E: { n:\"BrtCellRString\" },\n0x003F: { n:\"BrtCalcChainItem$\", f:parse_BrtCalcChainItem$ },\n0x0040: { n:\"BrtDVal\", f:parse_BrtDVal },\n0x0041: { n:\"BrtSxvcellNum\" },\n0x0042: { n:\"BrtSxvcellStr\" },\n0x0043: { n:\"BrtSxvcellBool\" },\n0x0044: { n:\"BrtSxvcellErr\" },\n0x0045: { n:\"BrtSxvcellDate\" },\n0x0046: { n:\"BrtSxvcellNil\" },\n0x0080: { n:\"BrtFileVersion\" },\n0x0081: { n:\"BrtBeginSheet\" },\n0x0082: { n:\"BrtEndSheet\" },\n0x0083: { n:\"BrtBeginBook\", f:parsenoop, p:0 },\n0x0084: { n:\"BrtEndBook\" },\n0x0085: { n:\"BrtBeginWsViews\" },\n0x0086: { n:\"BrtEndWsViews\" },\n0x0087: { n:\"BrtBeginBookViews\" },\n0x0088: { n:\"BrtEndBookViews\" },\n0x0089: { n:\"BrtBeginWsView\", f:parse_BrtBeginWsView },\n0x008A: { n:\"BrtEndWsView\" },\n0x008B: { n:\"BrtBeginCsViews\" },\n0x008C: { n:\"BrtEndCsViews\" },\n0x008D: { n:\"BrtBeginCsView\" },\n0x008E: { n:\"BrtEndCsView\" },\n0x008F: { n:\"BrtBeginBundleShs\" },\n0x0090: { n:\"BrtEndBundleShs\" },\n0x0091: { n:\"BrtBeginSheetData\" },\n0x0092: { n:\"BrtEndSheetData\" },\n0x0093: { n:\"BrtWsProp\", f:parse_BrtWsProp },\n0x0094: { n:\"BrtWsDim\", f:parse_BrtWsDim, p:16 },\n0x0097: { n:\"BrtPane\", f:parse_BrtPane },\n0x0098: { n:\"BrtSel\" },\n0x0099: { n:\"BrtWbProp\", f:parse_BrtWbProp },\n0x009A: { n:\"BrtWbFactoid\" },\n0x009B: { n:\"BrtFileRecover\" },\n0x009C: { n:\"BrtBundleSh\", f:parse_BrtBundleSh },\n0x009D: { n:\"BrtCalcProp\" },\n0x009E: { n:\"BrtBookView\" },\n0x009F: { n:\"BrtBeginSst\", f:parse_BrtBeginSst },\n0x00A0: { n:\"BrtEndSst\" },\n0x00A1: { n:\"BrtBeginAFilter\", f:parse_UncheckedRfX },\n0x00A2: { n:\"BrtEndAFilter\" },\n0x00A3: { n:\"BrtBeginFilterColumn\" },\n0x00A4: { n:\"BrtEndFilterColumn\" },\n0x00A5: { n:\"BrtBeginFilters\" },\n0x00A6: { n:\"BrtEndFilters\" },\n0x00A7: { n:\"BrtFilter\" },\n0x00A8: { n:\"BrtColorFilter\" },\n0x00A9: { n:\"BrtIconFilter\" },\n0x00AA: { n:\"BrtTop10Filter\" },\n0x00AB: { n:\"BrtDynamicFilter\" },\n0x00AC: { n:\"BrtBeginCustomFilters\" },\n0x00AD: { n:\"BrtEndCustomFilters\" },\n0x00AE: { n:\"BrtCustomFilter\" },\n0x00AF: { n:\"BrtAFilterDateGroupItem\" },\n0x00B0: { n:\"BrtMergeCell\", f:parse_BrtMergeCell },\n0x00B1: { n:\"BrtBeginMergeCells\" },\n0x00B2: { n:\"BrtEndMergeCells\" },\n0x00B3: { n:\"BrtBeginPivotCacheDef\" },\n0x00B4: { n:\"BrtEndPivotCacheDef\" },\n0x00B5: { n:\"BrtBeginPCDFields\" },\n0x00B6: { n:\"BrtEndPCDFields\" },\n0x00B7: { n:\"BrtBeginPCDField\" },\n0x00B8: { n:\"BrtEndPCDField\" },\n0x00B9: { n:\"BrtBeginPCDSource\" },\n0x00BA: { n:\"BrtEndPCDSource\" },\n0x00BB: { n:\"BrtBeginPCDSRange\" },\n0x00BC: { n:\"BrtEndPCDSRange\" },\n0x00BD: { n:\"BrtBeginPCDFAtbl\" },\n0x00BE: { n:\"BrtEndPCDFAtbl\" },\n0x00BF: { n:\"BrtBeginPCDIRun\" },\n0x00C0: { n:\"BrtEndPCDIRun\" },\n0x00C1: { n:\"BrtBeginPivotCacheRecords\" },\n0x00C2: { n:\"BrtEndPivotCacheRecords\" },\n0x00C3: { n:\"BrtBeginPCDHierarchies\" },\n0x00C4: { n:\"BrtEndPCDHierarchies\" },\n0x00C5: { n:\"BrtBeginPCDHierarchy\" },\n0x00C6: { n:\"BrtEndPCDHierarchy\" },\n0x00C7: { n:\"BrtBeginPCDHFieldsUsage\" },\n0x00C8: { n:\"BrtEndPCDHFieldsUsage\" },\n0x00C9: { n:\"BrtBeginExtConnection\" },\n0x00CA: { n:\"BrtEndExtConnection\" },\n0x00CB: { n:\"BrtBeginECDbProps\" },\n0x00CC: { n:\"BrtEndECDbProps\" },\n0x00CD: { n:\"BrtBeginECOlapProps\" },\n0x00CE: { n:\"BrtEndECOlapProps\" },\n0x00CF: { n:\"BrtBeginPCDSConsol\" },\n0x00D0: { n:\"BrtEndPCDSConsol\" },\n0x00D1: { n:\"BrtBeginPCDSCPages\" },\n0x00D2: { n:\"BrtEndPCDSCPages\" },\n0x00D3: { n:\"BrtBeginPCDSCPage\" },\n0x00D4: { n:\"BrtEndPCDSCPage\" },\n0x00D5: { n:\"BrtBeginPCDSCPItem\" },\n0x00D6: { n:\"BrtEndPCDSCPItem\" },\n0x00D7: { n:\"BrtBeginPCDSCSets\" },\n0x00D8: { n:\"BrtEndPCDSCSets\" },\n0x00D9: { n:\"BrtBeginPCDSCSet\" },\n0x00DA: { n:\"BrtEndPCDSCSet\" },\n0x00DB: { n:\"BrtBeginPCDFGroup\" },\n0x00DC: { n:\"BrtEndPCDFGroup\" },\n0x00DD: { n:\"BrtBeginPCDFGItems\" },\n0x00DE: { n:\"BrtEndPCDFGItems\" },\n0x00DF: { n:\"BrtBeginPCDFGRange\" },\n0x00E0: { n:\"BrtEndPCDFGRange\" },\n0x00E1: { n:\"BrtBeginPCDFGDiscrete\" },\n0x00E2: { n:\"BrtEndPCDFGDiscrete\" },\n0x00E3: { n:\"BrtBeginPCDSDTupleCache\" },\n0x00E4: { n:\"BrtEndPCDSDTupleCache\" },\n0x00E5: { n:\"BrtBeginPCDSDTCEntries\" },\n0x00E6: { n:\"BrtEndPCDSDTCEntries\" },\n0x00E7: { n:\"BrtBeginPCDSDTCEMembers\" },\n0x00E8: { n:\"BrtEndPCDSDTCEMembers\" },\n0x00E9: { n:\"BrtBeginPCDSDTCEMember\" },\n0x00EA: { n:\"BrtEndPCDSDTCEMember\" },\n0x00EB: { n:\"BrtBeginPCDSDTCQueries\" },\n0x00EC: { n:\"BrtEndPCDSDTCQueries\" },\n0x00ED: { n:\"BrtBeginPCDSDTCQuery\" },\n0x00EE: { n:\"BrtEndPCDSDTCQuery\" },\n0x00EF: { n:\"BrtBeginPCDSDTCSets\" },\n0x00F0: { n:\"BrtEndPCDSDTCSets\" },\n0x00F1: { n:\"BrtBeginPCDSDTCSet\" },\n0x00F2: { n:\"BrtEndPCDSDTCSet\" },\n0x00F3: { n:\"BrtBeginPCDCalcItems\" },\n0x00F4: { n:\"BrtEndPCDCalcItems\" },\n0x00F5: { n:\"BrtBeginPCDCalcItem\" },\n0x00F6: { n:\"BrtEndPCDCalcItem\" },\n0x00F7: { n:\"BrtBeginPRule\" },\n0x00F8: { n:\"BrtEndPRule\" },\n0x00F9: { n:\"BrtBeginPRFilters\" },\n0x00FA: { n:\"BrtEndPRFilters\" },\n0x00FB: { n:\"BrtBeginPRFilter\" },\n0x00FC: { n:\"BrtEndPRFilter\" },\n0x00FD: { n:\"BrtBeginPNames\" },\n0x00FE: { n:\"BrtEndPNames\" },\n0x00FF: { n:\"BrtBeginPName\" },\n0x0100: { n:\"BrtEndPName\" },\n0x0101: { n:\"BrtBeginPNPairs\" },\n0x0102: { n:\"BrtEndPNPairs\" },\n0x0103: { n:\"BrtBeginPNPair\" },\n0x0104: { n:\"BrtEndPNPair\" },\n0x0105: { n:\"BrtBeginECWebProps\" },\n0x0106: { n:\"BrtEndECWebProps\" },\n0x0107: { n:\"BrtBeginEcWpTables\" },\n0x0108: { n:\"BrtEndECWPTables\" },\n0x0109: { n:\"BrtBeginECParams\" },\n0x010A: { n:\"BrtEndECParams\" },\n0x010B: { n:\"BrtBeginECParam\" },\n0x010C: { n:\"BrtEndECParam\" },\n0x010D: { n:\"BrtBeginPCDKPIs\" },\n0x010E: { n:\"BrtEndPCDKPIs\" },\n0x010F: { n:\"BrtBeginPCDKPI\" },\n0x0110: { n:\"BrtEndPCDKPI\" },\n0x0111: { n:\"BrtBeginDims\" },\n0x0112: { n:\"BrtEndDims\" },\n0x0113: { n:\"BrtBeginDim\" },\n0x0114: { n:\"BrtEndDim\" },\n0x0115: { n:\"BrtIndexPartEnd\" },\n0x0116: { n:\"BrtBeginStyleSheet\" },\n0x0117: { n:\"BrtEndStyleSheet\" },\n0x0118: { n:\"BrtBeginSXView\" },\n0x0119: { n:\"BrtEndSXVI\" },\n0x011A: { n:\"BrtBeginSXVI\" },\n0x011B: { n:\"BrtBeginSXVIs\" },\n0x011C: { n:\"BrtEndSXVIs\" },\n0x011D: { n:\"BrtBeginSXVD\" },\n0x011E: { n:\"BrtEndSXVD\" },\n0x011F: { n:\"BrtBeginSXVDs\" },\n0x0120: { n:\"BrtEndSXVDs\" },\n0x0121: { n:\"BrtBeginSXPI\" },\n0x0122: { n:\"BrtEndSXPI\" },\n0x0123: { n:\"BrtBeginSXPIs\" },\n0x0124: { n:\"BrtEndSXPIs\" },\n0x0125: { n:\"BrtBeginSXDI\" },\n0x0126: { n:\"BrtEndSXDI\" },\n0x0127: { n:\"BrtBeginSXDIs\" },\n0x0128: { n:\"BrtEndSXDIs\" },\n0x0129: { n:\"BrtBeginSXLI\" },\n0x012A: { n:\"BrtEndSXLI\" },\n0x012B: { n:\"BrtBeginSXLIRws\" },\n0x012C: { n:\"BrtEndSXLIRws\" },\n0x012D: { n:\"BrtBeginSXLICols\" },\n0x012E: { n:\"BrtEndSXLICols\" },\n0x012F: { n:\"BrtBeginSXFormat\" },\n0x0130: { n:\"BrtEndSXFormat\" },\n0x0131: { n:\"BrtBeginSXFormats\" },\n0x0132: { n:\"BrtEndSxFormats\" },\n0x0133: { n:\"BrtBeginSxSelect\" },\n0x0134: { n:\"BrtEndSxSelect\" },\n0x0135: { n:\"BrtBeginISXVDRws\" },\n0x0136: { n:\"BrtEndISXVDRws\" },\n0x0137: { n:\"BrtBeginISXVDCols\" },\n0x0138: { n:\"BrtEndISXVDCols\" },\n0x0139: { n:\"BrtEndSXLocation\" },\n0x013A: { n:\"BrtBeginSXLocation\" },\n0x013B: { n:\"BrtEndSXView\" },\n0x013C: { n:\"BrtBeginSXTHs\" },\n0x013D: { n:\"BrtEndSXTHs\" },\n0x013E: { n:\"BrtBeginSXTH\" },\n0x013F: { n:\"BrtEndSXTH\" },\n0x0140: { n:\"BrtBeginISXTHRws\" },\n0x0141: { n:\"BrtEndISXTHRws\" },\n0x0142: { n:\"BrtBeginISXTHCols\" },\n0x0143: { n:\"BrtEndISXTHCols\" },\n0x0144: { n:\"BrtBeginSXTDMPS\" },\n0x0145: { n:\"BrtEndSXTDMPs\" },\n0x0146: { n:\"BrtBeginSXTDMP\" },\n0x0147: { n:\"BrtEndSXTDMP\" },\n0x0148: { n:\"BrtBeginSXTHItems\" },\n0x0149: { n:\"BrtEndSXTHItems\" },\n0x014A: { n:\"BrtBeginSXTHItem\" },\n0x014B: { n:\"BrtEndSXTHItem\" },\n0x014C: { n:\"BrtBeginMetadata\" },\n0x014D: { n:\"BrtEndMetadata\" },\n0x014E: { n:\"BrtBeginEsmdtinfo\" },\n0x014F: { n:\"BrtMdtinfo\" },\n0x0150: { n:\"BrtEndEsmdtinfo\" },\n0x0151: { n:\"BrtBeginEsmdb\" },\n0x0152: { n:\"BrtEndEsmdb\" },\n0x0153: { n:\"BrtBeginEsfmd\" },\n0x0154: { n:\"BrtEndEsfmd\" },\n0x0155: { n:\"BrtBeginSingleCells\" },\n0x0156: { n:\"BrtEndSingleCells\" },\n0x0157: { n:\"BrtBeginList\" },\n0x0158: { n:\"BrtEndList\" },\n0x0159: { n:\"BrtBeginListCols\" },\n0x015A: { n:\"BrtEndListCols\" },\n0x015B: { n:\"BrtBeginListCol\" },\n0x015C: { n:\"BrtEndListCol\" },\n0x015D: { n:\"BrtBeginListXmlCPr\" },\n0x015E: { n:\"BrtEndListXmlCPr\" },\n0x015F: { n:\"BrtListCCFmla\" },\n0x0160: { n:\"BrtListTrFmla\" },\n0x0161: { n:\"BrtBeginExternals\" },\n0x0162: { n:\"BrtEndExternals\" },\n0x0163: { n:\"BrtSupBookSrc\", f:parse_RelID},\n0x0165: { n:\"BrtSupSelf\" },\n0x0166: { n:\"BrtSupSame\" },\n0x0167: { n:\"BrtSupTabs\" },\n0x0168: { n:\"BrtBeginSupBook\" },\n0x0169: { n:\"BrtPlaceholderName\" },\n0x016A: { n:\"BrtExternSheet\", f:parse_ExternSheet },\n0x016B: { n:\"BrtExternTableStart\" },\n0x016C: { n:\"BrtExternTableEnd\" },\n0x016E: { n:\"BrtExternRowHdr\" },\n0x016F: { n:\"BrtExternCellBlank\" },\n0x0170: { n:\"BrtExternCellReal\" },\n0x0171: { n:\"BrtExternCellBool\" },\n0x0172: { n:\"BrtExternCellError\" },\n0x0173: { n:\"BrtExternCellString\" },\n0x0174: { n:\"BrtBeginEsmdx\" },\n0x0175: { n:\"BrtEndEsmdx\" },\n0x0176: { n:\"BrtBeginMdxSet\" },\n0x0177: { n:\"BrtEndMdxSet\" },\n0x0178: { n:\"BrtBeginMdxMbrProp\" },\n0x0179: { n:\"BrtEndMdxMbrProp\" },\n0x017A: { n:\"BrtBeginMdxKPI\" },\n0x017B: { n:\"BrtEndMdxKPI\" },\n0x017C: { n:\"BrtBeginEsstr\" },\n0x017D: { n:\"BrtEndEsstr\" },\n0x017E: { n:\"BrtBeginPRFItem\" },\n0x017F: { n:\"BrtEndPRFItem\" },\n0x0180: { n:\"BrtBeginPivotCacheIDs\" },\n0x0181: { n:\"BrtEndPivotCacheIDs\" },\n0x0182: { n:\"BrtBeginPivotCacheID\" },\n0x0183: { n:\"BrtEndPivotCacheID\" },\n0x0184: { n:\"BrtBeginISXVIs\" },\n0x0185: { n:\"BrtEndISXVIs\" },\n0x0186: { n:\"BrtBeginColInfos\" },\n0x0187: { n:\"BrtEndColInfos\" },\n0x0188: { n:\"BrtBeginRwBrk\" },\n0x0189: { n:\"BrtEndRwBrk\" },\n0x018A: { n:\"BrtBeginColBrk\" },\n0x018B: { n:\"BrtEndColBrk\" },\n0x018C: { n:\"BrtBrk\" },\n0x018D: { n:\"BrtUserBookView\" },\n0x018E: { n:\"BrtInfo\" },\n0x018F: { n:\"BrtCUsr\" },\n0x0190: { n:\"BrtUsr\" },\n0x0191: { n:\"BrtBeginUsers\" },\n0x0193: { n:\"BrtEOF\" },\n0x0194: { n:\"BrtUCR\" },\n0x0195: { n:\"BrtRRInsDel\" },\n0x0196: { n:\"BrtRREndInsDel\" },\n0x0197: { n:\"BrtRRMove\" },\n0x0198: { n:\"BrtRREndMove\" },\n0x0199: { n:\"BrtRRChgCell\" },\n0x019A: { n:\"BrtRREndChgCell\" },\n0x019B: { n:\"BrtRRHeader\" },\n0x019C: { n:\"BrtRRUserView\" },\n0x019D: { n:\"BrtRRRenSheet\" },\n0x019E: { n:\"BrtRRInsertSh\" },\n0x019F: { n:\"BrtRRDefName\" },\n0x01A0: { n:\"BrtRRNote\" },\n0x01A1: { n:\"BrtRRConflict\" },\n0x01A2: { n:\"BrtRRTQSIF\" },\n0x01A3: { n:\"BrtRRFormat\" },\n0x01A4: { n:\"BrtRREndFormat\" },\n0x01A5: { n:\"BrtRRAutoFmt\" },\n0x01A6: { n:\"BrtBeginUserShViews\" },\n0x01A7: { n:\"BrtBeginUserShView\" },\n0x01A8: { n:\"BrtEndUserShView\" },\n0x01A9: { n:\"BrtEndUserShViews\" },\n0x01AA: { n:\"BrtArrFmla\", f:parse_BrtArrFmla },\n0x01AB: { n:\"BrtShrFmla\", f:parse_BrtShrFmla },\n0x01AC: { n:\"BrtTable\" },\n0x01AD: { n:\"BrtBeginExtConnections\" },\n0x01AE: { n:\"BrtEndExtConnections\" },\n0x01AF: { n:\"BrtBeginPCDCalcMems\" },\n0x01B0: { n:\"BrtEndPCDCalcMems\" },\n0x01B1: { n:\"BrtBeginPCDCalcMem\" },\n0x01B2: { n:\"BrtEndPCDCalcMem\" },\n0x01B3: { n:\"BrtBeginPCDHGLevels\" },\n0x01B4: { n:\"BrtEndPCDHGLevels\" },\n0x01B5: { n:\"BrtBeginPCDHGLevel\" },\n0x01B6: { n:\"BrtEndPCDHGLevel\" },\n0x01B7: { n:\"BrtBeginPCDHGLGroups\" },\n0x01B8: { n:\"BrtEndPCDHGLGroups\" },\n0x01B9: { n:\"BrtBeginPCDHGLGroup\" },\n0x01BA: { n:\"BrtEndPCDHGLGroup\" },\n0x01BB: { n:\"BrtBeginPCDHGLGMembers\" },\n0x01BC: { n:\"BrtEndPCDHGLGMembers\" },\n0x01BD: { n:\"BrtBeginPCDHGLGMember\" },\n0x01BE: { n:\"BrtEndPCDHGLGMember\" },\n0x01BF: { n:\"BrtBeginQSI\" },\n0x01C0: { n:\"BrtEndQSI\" },\n0x01C1: { n:\"BrtBeginQSIR\" },\n0x01C2: { n:\"BrtEndQSIR\" },\n0x01C3: { n:\"BrtBeginDeletedNames\" },\n0x01C4: { n:\"BrtEndDeletedNames\" },\n0x01C5: { n:\"BrtBeginDeletedName\" },\n0x01C6: { n:\"BrtEndDeletedName\" },\n0x01C7: { n:\"BrtBeginQSIFs\" },\n0x01C8: { n:\"BrtEndQSIFs\" },\n0x01C9: { n:\"BrtBeginQSIF\" },\n0x01CA: { n:\"BrtEndQSIF\" },\n0x01CB: { n:\"BrtBeginAutoSortScope\" },\n0x01CC: { n:\"BrtEndAutoSortScope\" },\n0x01CD: { n:\"BrtBeginConditionalFormatting\" },\n0x01CE: { n:\"BrtEndConditionalFormatting\" },\n0x01CF: { n:\"BrtBeginCFRule\" },\n0x01D0: { n:\"BrtEndCFRule\" },\n0x01D1: { n:\"BrtBeginIconSet\" },\n0x01D2: { n:\"BrtEndIconSet\" },\n0x01D3: { n:\"BrtBeginDatabar\" },\n0x01D4: { n:\"BrtEndDatabar\" },\n0x01D5: { n:\"BrtBeginColorScale\" },\n0x01D6: { n:\"BrtEndColorScale\" },\n0x01D7: { n:\"BrtCFVO\" },\n0x01D8: { n:\"BrtExternValueMeta\" },\n0x01D9: { n:\"BrtBeginColorPalette\" },\n0x01DA: { n:\"BrtEndColorPalette\" },\n0x01DB: { n:\"BrtIndexedColor\" },\n0x01DC: { n:\"BrtMargins\", f:parse_BrtMargins },\n0x01DD: { n:\"BrtPrintOptions\" },\n0x01DE: { n:\"BrtPageSetup\" },\n0x01DF: { n:\"BrtBeginHeaderFooter\" },\n0x01E0: { n:\"BrtEndHeaderFooter\" },\n0x01E1: { n:\"BrtBeginSXCrtFormat\" },\n0x01E2: { n:\"BrtEndSXCrtFormat\" },\n0x01E3: { n:\"BrtBeginSXCrtFormats\" },\n0x01E4: { n:\"BrtEndSXCrtFormats\" },\n0x01E5: { n:\"BrtWsFmtInfo\", f:parse_BrtWsFmtInfo },\n0x01E6: { n:\"BrtBeginMgs\" },\n0x01E7: { n:\"BrtEndMGs\" },\n0x01E8: { n:\"BrtBeginMGMaps\" },\n0x01E9: { n:\"BrtEndMGMaps\" },\n0x01EA: { n:\"BrtBeginMG\" },\n0x01EB: { n:\"BrtEndMG\" },\n0x01EC: { n:\"BrtBeginMap\" },\n0x01ED: { n:\"BrtEndMap\" },\n0x01EE: { n:\"BrtHLink\", f:parse_BrtHLink },\n0x01EF: { n:\"BrtBeginDCon\" },\n0x01F0: { n:\"BrtEndDCon\" },\n0x01F1: { n:\"BrtBeginDRefs\" },\n0x01F2: { n:\"BrtEndDRefs\" },\n0x01F3: { n:\"BrtDRef\" },\n0x01F4: { n:\"BrtBeginScenMan\" },\n0x01F5: { n:\"BrtEndScenMan\" },\n0x01F6: { n:\"BrtBeginSct\" },\n0x01F7: { n:\"BrtEndSct\" },\n0x01F8: { n:\"BrtSlc\" },\n0x01F9: { n:\"BrtBeginDXFs\" },\n0x01FA: { n:\"BrtEndDXFs\" },\n0x01FB: { n:\"BrtDXF\" },\n0x01FC: { n:\"BrtBeginTableStyles\" },\n0x01FD: { n:\"BrtEndTableStyles\" },\n0x01FE: { n:\"BrtBeginTableStyle\" },\n0x01FF: { n:\"BrtEndTableStyle\" },\n0x0200: { n:\"BrtTableStyleElement\" },\n0x0201: { n:\"BrtTableStyleClient\" },\n0x0202: { n:\"BrtBeginVolDeps\" },\n0x0203: { n:\"BrtEndVolDeps\" },\n0x0204: { n:\"BrtBeginVolType\" },\n0x0205: { n:\"BrtEndVolType\" },\n0x0206: { n:\"BrtBeginVolMain\" },\n0x0207: { n:\"BrtEndVolMain\" },\n0x0208: { n:\"BrtBeginVolTopic\" },\n0x0209: { n:\"BrtEndVolTopic\" },\n0x020A: { n:\"BrtVolSubtopic\" },\n0x020B: { n:\"BrtVolRef\" },\n0x020C: { n:\"BrtVolNum\" },\n0x020D: { n:\"BrtVolErr\" },\n0x020E: { n:\"BrtVolStr\" },\n0x020F: { n:\"BrtVolBool\" },\n0x0210: { n:\"BrtBeginCalcChain$\" },\n0x0211: { n:\"BrtEndCalcChain$\" },\n0x0212: { n:\"BrtBeginSortState\" },\n0x0213: { n:\"BrtEndSortState\" },\n0x0214: { n:\"BrtBeginSortCond\" },\n0x0215: { n:\"BrtEndSortCond\" },\n0x0216: { n:\"BrtBookProtection\" },\n0x0217: { n:\"BrtSheetProtection\" },\n0x0218: { n:\"BrtRangeProtection\" },\n0x0219: { n:\"BrtPhoneticInfo\" },\n0x021A: { n:\"BrtBeginECTxtWiz\" },\n0x021B: { n:\"BrtEndECTxtWiz\" },\n0x021C: { n:\"BrtBeginECTWFldInfoLst\" },\n0x021D: { n:\"BrtEndECTWFldInfoLst\" },\n0x021E: { n:\"BrtBeginECTwFldInfo\" },\n0x0224: { n:\"BrtFileSharing\" },\n0x0225: { n:\"BrtOleSize\" },\n0x0226: { n:\"BrtDrawing\", f:parse_RelID },\n0x0227: { n:\"BrtLegacyDrawing\" },\n0x0228: { n:\"BrtLegacyDrawingHF\" },\n0x0229: { n:\"BrtWebOpt\" },\n0x022A: { n:\"BrtBeginWebPubItems\" },\n0x022B: { n:\"BrtEndWebPubItems\" },\n0x022C: { n:\"BrtBeginWebPubItem\" },\n0x022D: { n:\"BrtEndWebPubItem\" },\n0x022E: { n:\"BrtBeginSXCondFmt\" },\n0x022F: { n:\"BrtEndSXCondFmt\" },\n0x0230: { n:\"BrtBeginSXCondFmts\" },\n0x0231: { n:\"BrtEndSXCondFmts\" },\n0x0232: { n:\"BrtBkHim\" },\n0x0234: { n:\"BrtColor\" },\n0x0235: { n:\"BrtBeginIndexedColors\" },\n0x0236: { n:\"BrtEndIndexedColors\" },\n0x0239: { n:\"BrtBeginMRUColors\" },\n0x023A: { n:\"BrtEndMRUColors\" },\n0x023C: { n:\"BrtMRUColor\" },\n0x023D: { n:\"BrtBeginDVals\" },\n0x023E: { n:\"BrtEndDVals\" },\n0x0241: { n:\"BrtSupNameStart\" },\n0x0242: { n:\"BrtSupNameValueStart\" },\n0x0243: { n:\"BrtSupNameValueEnd\" },\n0x0244: { n:\"BrtSupNameNum\" },\n0x0245: { n:\"BrtSupNameErr\" },\n0x0246: { n:\"BrtSupNameSt\" },\n0x0247: { n:\"BrtSupNameNil\" },\n0x0248: { n:\"BrtSupNameBool\" },\n0x0249: { n:\"BrtSupNameFmla\" },\n0x024A: { n:\"BrtSupNameBits\" },\n0x024B: { n:\"BrtSupNameEnd\" },\n0x024C: { n:\"BrtEndSupBook\" },\n0x024D: { n:\"BrtCellSmartTagProperty\" },\n0x024E: { n:\"BrtBeginCellSmartTag\" },\n0x024F: { n:\"BrtEndCellSmartTag\" },\n0x0250: { n:\"BrtBeginCellSmartTags\" },\n0x0251: { n:\"BrtEndCellSmartTags\" },\n0x0252: { n:\"BrtBeginSmartTags\" },\n0x0253: { n:\"BrtEndSmartTags\" },\n0x0254: { n:\"BrtSmartTagType\" },\n0x0255: { n:\"BrtBeginSmartTagTypes\" },\n0x0256: { n:\"BrtEndSmartTagTypes\" },\n0x0257: { n:\"BrtBeginSXFilters\" },\n0x0258: { n:\"BrtEndSXFilters\" },\n0x0259: { n:\"BrtBeginSXFILTER\" },\n0x025A: { n:\"BrtEndSXFilter\" },\n0x025B: { n:\"BrtBeginFills\" },\n0x025C: { n:\"BrtEndFills\" },\n0x025D: { n:\"BrtBeginCellWatches\" },\n0x025E: { n:\"BrtEndCellWatches\" },\n0x025F: { n:\"BrtCellWatch\" },\n0x0260: { n:\"BrtBeginCRErrs\" },\n0x0261: { n:\"BrtEndCRErrs\" },\n0x0262: { n:\"BrtCrashRecErr\" },\n0x0263: { n:\"BrtBeginFonts\" },\n0x0264: { n:\"BrtEndFonts\" },\n0x0265: { n:\"BrtBeginBorders\" },\n0x0266: { n:\"BrtEndBorders\" },\n0x0267: { n:\"BrtBeginFmts\" },\n0x0268: { n:\"BrtEndFmts\" },\n0x0269: { n:\"BrtBeginCellXFs\" },\n0x026A: { n:\"BrtEndCellXFs\" },\n0x026B: { n:\"BrtBeginStyles\" },\n0x026C: { n:\"BrtEndStyles\" },\n0x0271: { n:\"BrtBigName\" },\n0x0272: { n:\"BrtBeginCellStyleXFs\" },\n0x0273: { n:\"BrtEndCellStyleXFs\" },\n0x0274: { n:\"BrtBeginComments\" },\n0x0275: { n:\"BrtEndComments\" },\n0x0276: { n:\"BrtBeginCommentAuthors\" },\n0x0277: { n:\"BrtEndCommentAuthors\" },\n0x0278: { n:\"BrtCommentAuthor\", f:parse_BrtCommentAuthor },\n0x0279: { n:\"BrtBeginCommentList\" },\n0x027A: { n:\"BrtEndCommentList\" },\n0x027B: { n:\"BrtBeginComment\", f:parse_BrtBeginComment},\n0x027C: { n:\"BrtEndComment\" },\n0x027D: { n:\"BrtCommentText\", f:parse_BrtCommentText },\n0x027E: { n:\"BrtBeginOleObjects\" },\n0x027F: { n:\"BrtOleObject\" },\n0x0280: { n:\"BrtEndOleObjects\" },\n0x0281: { n:\"BrtBeginSxrules\" },\n0x0282: { n:\"BrtEndSxRules\" },\n0x0283: { n:\"BrtBeginActiveXControls\" },\n0x0284: { n:\"BrtActiveX\" },\n0x0285: { n:\"BrtEndActiveXControls\" },\n0x0286: { n:\"BrtBeginPCDSDTCEMembersSortBy\" },\n0x0288: { n:\"BrtBeginCellIgnoreECs\" },\n0x0289: { n:\"BrtCellIgnoreEC\" },\n0x028A: { n:\"BrtEndCellIgnoreECs\" },\n0x028B: { n:\"BrtCsProp\", f:parse_BrtCsProp },\n0x028C: { n:\"BrtCsPageSetup\" },\n0x028D: { n:\"BrtBeginUserCsViews\" },\n0x028E: { n:\"BrtEndUserCsViews\" },\n0x028F: { n:\"BrtBeginUserCsView\" },\n0x0290: { n:\"BrtEndUserCsView\" },\n0x0291: { n:\"BrtBeginPcdSFCIEntries\" },\n0x0292: { n:\"BrtEndPCDSFCIEntries\" },\n0x0293: { n:\"BrtPCDSFCIEntry\" },\n0x0294: { n:\"BrtBeginListParts\" },\n0x0295: { n:\"BrtListPart\" },\n0x0296: { n:\"BrtEndListParts\" },\n0x0297: { n:\"BrtSheetCalcProp\" },\n0x0298: { n:\"BrtBeginFnGroup\" },\n0x0299: { n:\"BrtFnGroup\" },\n0x029A: { n:\"BrtEndFnGroup\" },\n0x029B: { n:\"BrtSupAddin\" },\n0x029C: { n:\"BrtSXTDMPOrder\" },\n0x029D: { n:\"BrtCsProtection\" },\n0x029F: { n:\"BrtBeginWsSortMap\" },\n0x02A0: { n:\"BrtEndWsSortMap\" },\n0x02A1: { n:\"BrtBeginRRSort\" },\n0x02A2: { n:\"BrtEndRRSort\" },\n0x02A3: { n:\"BrtRRSortItem\" },\n0x02A4: { n:\"BrtFileSharingIso\" },\n0x02A5: { n:\"BrtBookProtectionIso\" },\n0x02A6: { n:\"BrtSheetProtectionIso\" },\n0x02A7: { n:\"BrtCsProtectionIso\" },\n0x02A8: { n:\"BrtRangeProtectionIso\" },\n0x02A9: { n:\"BrtDValList\" },\n0x0400: { n:\"BrtRwDescent\" },\n0x0401: { n:\"BrtKnownFonts\" },\n0x0402: { n:\"BrtBeginSXTupleSet\" },\n0x0403: { n:\"BrtEndSXTupleSet\" },\n0x0404: { n:\"BrtBeginSXTupleSetHeader\" },\n0x0405: { n:\"BrtEndSXTupleSetHeader\" },\n0x0406: { n:\"BrtSXTupleSetHeaderItem\" },\n0x0407: { n:\"BrtBeginSXTupleSetData\" },\n0x0408: { n:\"BrtEndSXTupleSetData\" },\n0x0409: { n:\"BrtBeginSXTupleSetRow\" },\n0x040A: { n:\"BrtEndSXTupleSetRow\" },\n0x040B: { n:\"BrtSXTupleSetRowItem\" },\n0x040C: { n:\"BrtNameExt\" },\n0x040D: { n:\"BrtPCDH14\" },\n0x040E: { n:\"BrtBeginPCDCalcMem14\" },\n0x040F: { n:\"BrtEndPCDCalcMem14\" },\n0x0410: { n:\"BrtSXTH14\" },\n0x0411: { n:\"BrtBeginSparklineGroup\" },\n0x0412: { n:\"BrtEndSparklineGroup\" },\n0x0413: { n:\"BrtSparkline\" },\n0x0414: { n:\"BrtSXDI14\" },\n0x0415: { n:\"BrtWsFmtInfoEx14\" },\n0x0416: { n:\"BrtBeginConditionalFormatting14\" },\n0x0417: { n:\"BrtEndConditionalFormatting14\" },\n0x0418: { n:\"BrtBeginCFRule14\" },\n0x0419: { n:\"BrtEndCFRule14\" },\n0x041A: { n:\"BrtCFVO14\" },\n0x041B: { n:\"BrtBeginDatabar14\" },\n0x041C: { n:\"BrtBeginIconSet14\" },\n0x041D: { n:\"BrtDVal14\", f: parse_BrtDVal14 },\n0x041E: { n:\"BrtBeginDVals14\" },\n0x041F: { n:\"BrtColor14\" },\n0x0420: { n:\"BrtBeginSparklines\" },\n0x0421: { n:\"BrtEndSparklines\" },\n0x0422: { n:\"BrtBeginSparklineGroups\" },\n0x0423: { n:\"BrtEndSparklineGroups\" },\n0x0425: { n:\"BrtSXVD14\" },\n0x0426: { n:\"BrtBeginSXView14\" },\n0x0427: { n:\"BrtEndSXView14\" },\n0x0428: { n:\"BrtBeginSXView16\" },\n0x0429: { n:\"BrtEndSXView16\" },\n0x042A: { n:\"BrtBeginPCD14\" },\n0x042B: { n:\"BrtEndPCD14\" },\n0x042C: { n:\"BrtBeginExtConn14\" },\n0x042D: { n:\"BrtEndExtConn14\" },\n0x042E: { n:\"BrtBeginSlicerCacheIDs\" },\n0x042F: { n:\"BrtEndSlicerCacheIDs\" },\n0x0430: { n:\"BrtBeginSlicerCacheID\" },\n0x0431: { n:\"BrtEndSlicerCacheID\" },\n0x0433: { n:\"BrtBeginSlicerCache\" },\n0x0434: { n:\"BrtEndSlicerCache\" },\n0x0435: { n:\"BrtBeginSlicerCacheDef\" },\n0x0436: { n:\"BrtEndSlicerCacheDef\" },\n0x0437: { n:\"BrtBeginSlicersEx\" },\n0x0438: { n:\"BrtEndSlicersEx\" },\n0x0439: { n:\"BrtBeginSlicerEx\" },\n0x043A: { n:\"BrtEndSlicerEx\" },\n0x043B: { n:\"BrtBeginSlicer\" },\n0x043C: { n:\"BrtEndSlicer\" },\n0x043D: { n:\"BrtSlicerCachePivotTables\" },\n0x043E: { n:\"BrtBeginSlicerCacheOlapImpl\" },\n0x043F: { n:\"BrtEndSlicerCacheOlapImpl\" },\n0x0440: { n:\"BrtBeginSlicerCacheLevelsData\" },\n0x0441: { n:\"BrtEndSlicerCacheLevelsData\" },\n0x0442: { n:\"BrtBeginSlicerCacheLevelData\" },\n0x0443: { n:\"BrtEndSlicerCacheLevelData\" },\n0x0444: { n:\"BrtBeginSlicerCacheSiRanges\" },\n0x0445: { n:\"BrtEndSlicerCacheSiRanges\" },\n0x0446: { n:\"BrtBeginSlicerCacheSiRange\" },\n0x0447: { n:\"BrtEndSlicerCacheSiRange\" },\n0x0448: { n:\"BrtSlicerCacheOlapItem\" },\n0x0449: { n:\"BrtBeginSlicerCacheSelections\" },\n0x044A: { n:\"BrtSlicerCacheSelection\" },\n0x044B: { n:\"BrtEndSlicerCacheSelections\" },\n0x044C: { n:\"BrtBeginSlicerCacheNative\" },\n0x044D: { n:\"BrtEndSlicerCacheNative\" },\n0x044E: { n:\"BrtSlicerCacheNativeItem\" },\n0x044F: { n:\"BrtRangeProtection14\" },\n0x0450: { n:\"BrtRangeProtectionIso14\" },\n0x0451: { n:\"BrtCellIgnoreEC14\" },\n0x0457: { n:\"BrtList14\" },\n0x0458: { n:\"BrtCFIcon\" },\n0x0459: { n:\"BrtBeginSlicerCachesPivotCacheIDs\" },\n0x045A: { n:\"BrtEndSlicerCachesPivotCacheIDs\" },\n0x045B: { n:\"BrtBeginSlicers\" },\n0x045C: { n:\"BrtEndSlicers\" },\n0x045D: { n:\"BrtWbProp14\" },\n0x045E: { n:\"BrtBeginSXEdit\" },\n0x045F: { n:\"BrtEndSXEdit\" },\n0x0460: { n:\"BrtBeginSXEdits\" },\n0x0461: { n:\"BrtEndSXEdits\" },\n0x0462: { n:\"BrtBeginSXChange\" },\n0x0463: { n:\"BrtEndSXChange\" },\n0x0464: { n:\"BrtBeginSXChanges\" },\n0x0465: { n:\"BrtEndSXChanges\" },\n0x0466: { n:\"BrtSXTupleItems\" },\n0x0468: { n:\"BrtBeginSlicerStyle\" },\n0x0469: { n:\"BrtEndSlicerStyle\" },\n0x046A: { n:\"BrtSlicerStyleElement\" },\n0x046B: { n:\"BrtBeginStyleSheetExt14\" },\n0x046C: { n:\"BrtEndStyleSheetExt14\" },\n0x046D: { n:\"BrtBeginSlicerCachesPivotCacheID\" },\n0x046E: { n:\"BrtEndSlicerCachesPivotCacheID\" },\n0x046F: { n:\"BrtBeginConditionalFormattings\" },\n0x0470: { n:\"BrtEndConditionalFormattings\" },\n0x0471: { n:\"BrtBeginPCDCalcMemExt\" },\n0x0472: { n:\"BrtEndPCDCalcMemExt\" },\n0x0473: { n:\"BrtBeginPCDCalcMemsExt\" },\n0x0474: { n:\"BrtEndPCDCalcMemsExt\" },\n0x0475: { n:\"BrtPCDField14\" },\n0x0476: { n:\"BrtBeginSlicerStyles\" },\n0x0477: { n:\"BrtEndSlicerStyles\" },\n0x0478: { n:\"BrtBeginSlicerStyleElements\" },\n0x0479: { n:\"BrtEndSlicerStyleElements\" },\n0x047A: { n:\"BrtCFRuleExt\" },\n0x047B: { n:\"BrtBeginSXCondFmt14\" },\n0x047C: { n:\"BrtEndSXCondFmt14\" },\n0x047D: { n:\"BrtBeginSXCondFmts14\" },\n0x047E: { n:\"BrtEndSXCondFmts14\" },\n0x0480: { n:\"BrtBeginSortCond14\" },\n0x0481: { n:\"BrtEndSortCond14\" },\n0x0482: { n:\"BrtEndDVals14\" },\n0x0483: { n:\"BrtEndIconSet14\" },\n0x0484: { n:\"BrtEndDatabar14\" },\n0x0485: { n:\"BrtBeginColorScale14\" },\n0x0486: { n:\"BrtEndColorScale14\" },\n0x0487: { n:\"BrtBeginSxrules14\" },\n0x0488: { n:\"BrtEndSxrules14\" },\n0x0489: { n:\"BrtBeginPRule14\" },\n0x048A: { n:\"BrtEndPRule14\" },\n0x048B: { n:\"BrtBeginPRFilters14\" },\n0x048C: { n:\"BrtEndPRFilters14\" },\n0x048D: { n:\"BrtBeginPRFilter14\" },\n0x048E: { n:\"BrtEndPRFilter14\" },\n0x048F: { n:\"BrtBeginPRFItem14\" },\n0x0490: { n:\"BrtEndPRFItem14\" },\n0x0491: { n:\"BrtBeginCellIgnoreECs14\" },\n0x0492: { n:\"BrtEndCellIgnoreECs14\" },\n0x0493: { n:\"BrtDxf14\" },\n0x0494: { n:\"BrtBeginDxF14s\" },\n0x0495: { n:\"BrtEndDxf14s\" },\n0x0499: { n:\"BrtFilter14\" },\n0x049A: { n:\"BrtBeginCustomFilters14\" },\n0x049C: { n:\"BrtCustomFilter14\" },\n0x049D: { n:\"BrtIconFilter14\" },\n0x049E: { n:\"BrtPivotCacheConnectionName\" },\n0x0800: { n:\"BrtBeginDecoupledPivotCacheIDs\" },\n0x0801: { n:\"BrtEndDecoupledPivotCacheIDs\" },\n0x0802: { n:\"BrtDecoupledPivotCacheID\" },\n0x0803: { n:\"BrtBeginPivotTableRefs\" },\n0x0804: { n:\"BrtEndPivotTableRefs\" },\n0x0805: { n:\"BrtPivotTableRef\" },\n0x0806: { n:\"BrtSlicerCacheBookPivotTables\" },\n0x0807: { n:\"BrtBeginSxvcells\" },\n0x0808: { n:\"BrtEndSxvcells\" },\n0x0809: { n:\"BrtBeginSxRow\" },\n0x080A: { n:\"BrtEndSxRow\" },\n0x080C: { n:\"BrtPcdCalcMem15\" },\n0x0813: { n:\"BrtQsi15\" },\n0x0814: { n:\"BrtBeginWebExtensions\" },\n0x0815: { n:\"BrtEndWebExtensions\" },\n0x0816: { n:\"BrtWebExtension\" },\n0x0817: { n:\"BrtAbsPath15\" },\n0x0818: { n:\"BrtBeginPivotTableUISettings\" },\n0x0819: { n:\"BrtEndPivotTableUISettings\" },\n0x081B: { n:\"BrtTableSlicerCacheIDs\" },\n0x081C: { n:\"BrtTableSlicerCacheID\" },\n0x081D: { n:\"BrtBeginTableSlicerCache\" },\n0x081E: { n:\"BrtEndTableSlicerCache\" },\n0x081F: { n:\"BrtSxFilter15\" },\n0x0820: { n:\"BrtBeginTimelineCachePivotCacheIDs\" },\n0x0821: { n:\"BrtEndTimelineCachePivotCacheIDs\" },\n0x0822: { n:\"BrtTimelineCachePivotCacheID\" },\n0x0823: { n:\"BrtBeginTimelineCacheIDs\" },\n0x0824: { n:\"BrtEndTimelineCacheIDs\" },\n0x0825: { n:\"BrtBeginTimelineCacheID\" },\n0x0826: { n:\"BrtEndTimelineCacheID\" },\n0x0827: { n:\"BrtBeginTimelinesEx\" },\n0x0828: { n:\"BrtEndTimelinesEx\" },\n0x0829: { n:\"BrtBeginTimelineEx\" },\n0x082A: { n:\"BrtEndTimelineEx\" },\n0x082B: { n:\"BrtWorkBookPr15\" },\n0x082C: { n:\"BrtPCDH15\" },\n0x082D: { n:\"BrtBeginTimelineStyle\" },\n0x082E: { n:\"BrtEndTimelineStyle\" },\n0x082F: { n:\"BrtTimelineStyleElement\" },\n0x0830: { n:\"BrtBeginTimelineStylesheetExt15\" },\n0x0831: { n:\"BrtEndTimelineStylesheetExt15\" },\n0x0832: { n:\"BrtBeginTimelineStyles\" },\n0x0833: { n:\"BrtEndTimelineStyles\" },\n0x0834: { n:\"BrtBeginTimelineStyleElements\" },\n0x0835: { n:\"BrtEndTimelineStyleElements\" },\n0x0836: { n:\"BrtDxf15\" },\n0x0837: { n:\"BrtBeginDxfs15\" },\n0x0838: { n:\"brtEndDxfs15\" },\n0x0839: { n:\"BrtSlicerCacheHideItemsWithNoData\" },\n0x083A: { n:\"BrtBeginItemUniqueNames\" },\n0x083B: { n:\"BrtEndItemUniqueNames\" },\n0x083C: { n:\"BrtItemUniqueName\" },\n0x083D: { n:\"BrtBeginExtConn15\" },\n0x083E: { n:\"BrtEndExtConn15\" },\n0x083F: { n:\"BrtBeginOledbPr15\" },\n0x0840: { n:\"BrtEndOledbPr15\" },\n0x0841: { n:\"BrtBeginDataFeedPr15\" },\n0x0842: { n:\"BrtEndDataFeedPr15\" },\n0x0843: { n:\"BrtTextPr15\" },\n0x0844: { n:\"BrtRangePr15\" },\n0x0845: { n:\"BrtDbCommand15\" },\n0x0846: { n:\"BrtBeginDbTables15\" },\n0x0847: { n:\"BrtEndDbTables15\" },\n0x0848: { n:\"BrtDbTable15\" },\n0x0849: { n:\"BrtBeginDataModel\" },\n0x084A: { n:\"BrtEndDataModel\" },\n0x084B: { n:\"BrtBeginModelTables\" },\n0x084C: { n:\"BrtEndModelTables\" },\n0x084D: { n:\"BrtModelTable\" },\n0x084E: { n:\"BrtBeginModelRelationships\" },\n0x084F: { n:\"BrtEndModelRelationships\" },\n0x0850: { n:\"BrtModelRelationship\" },\n0x0851: { n:\"BrtBeginECTxtWiz15\" },\n0x0852: { n:\"BrtEndECTxtWiz15\" },\n0x0853: { n:\"BrtBeginECTWFldInfoLst15\" },\n0x0854: { n:\"BrtEndECTWFldInfoLst15\" },\n0x0855: { n:\"BrtBeginECTWFldInfo15\" },\n0x0856: { n:\"BrtFieldListActiveItem\" },\n0x0857: { n:\"BrtPivotCacheIdVersion\" },\n0x0858: { n:\"BrtSXDI15\" },\n0x0859: { n:\"BrtBeginModelTimeGroupings\" },\n0x085A: { n:\"BrtEndModelTimeGroupings\" },\n0x085B: { n:\"BrtBeginModelTimeGrouping\" },\n0x085C: { n:\"BrtEndModelTimeGrouping\" },\n0x085D: { n:\"BrtModelTimeGroupingCalcCol\" },\n0x0C00: { n:\"BrtUid\" },\n0x0C01: { n:\"BrtRevisionPtr\" },\n0x13e7: { n:\"BrtBeginCalcFeatures\" },\n0x13e8: { n:\"BrtEndCalcFeatures\" },\n0x13e9: { n:\"BrtCalcFeature\" },\n0xFFFF: { n:\"\" }\n};\n\nvar XLSBRE = evert_key(XLSBRecordEnum, 'n');\n\n/* [MS-XLS] 2.3 Record Enumeration */\nvar XLSRecordEnum = {\n0x0003: { n:\"BIFF2NUM\", f:parse_BIFF2NUM },\n0x0004: { n:\"BIFF2STR\", f:parse_BIFF2STR },\n0x0006: { n:\"Formula\", f:parse_Formula },\n0x0009: { n:'BOF', f:parse_BOF },\n0x000a: { n:'EOF', f:parsenoop2 },\n0x000c: { n:\"CalcCount\", f:parseuint16 },\n0x000d: { n:\"CalcMode\", f:parseuint16 },\n0x000e: { n:\"CalcPrecision\", f:parsebool },\n0x000f: { n:\"CalcRefMode\", f:parsebool },\n0x0010: { n:\"CalcDelta\", f:parse_Xnum },\n0x0011: { n:\"CalcIter\", f:parsebool },\n0x0012: { n:\"Protect\", f:parsebool },\n0x0013: { n:\"Password\", f:parseuint16 },\n0x0014: { n:\"Header\", f:parse_XLHeaderFooter },\n0x0015: { n:\"Footer\", f:parse_XLHeaderFooter },\n0x0017: { n:\"ExternSheet\", f:parse_ExternSheet },\n0x0018: { n:\"Lbl\", f:parse_Lbl },\n0x0019: { n:\"WinProtect\", f:parsebool },\n0x001a: { n:\"VerticalPageBreaks\" },\n0x001b: { n:\"HorizontalPageBreaks\" },\n0x001c: { n:\"Note\", f:parse_Note },\n0x001d: { n:\"Selection\" },\n0x0022: { n:\"Date1904\", f:parsebool },\n0x0023: { n:\"ExternName\", f:parse_ExternName },\n0x0024: { n:\"COLWIDTH\" },\n0x0026: { n:\"LeftMargin\", f:parse_Xnum },\n0x0027: { n:\"RightMargin\", f:parse_Xnum },\n0x0028: { n:\"TopMargin\", f:parse_Xnum },\n0x0029: { n:\"BottomMargin\", f:parse_Xnum },\n0x002a: { n:\"PrintRowCol\", f:parsebool },\n0x002b: { n:\"PrintGrid\", f:parsebool },\n0x002f: { n:\"FilePass\", f:parse_FilePass },\n0x0031: { n:\"Font\", f:parse_Font },\n0x0033: { n:\"PrintSize\", f:parseuint16 },\n0x003c: { n:\"Continue\" },\n0x003d: { n:\"Window1\", f:parse_Window1 },\n0x0040: { n:\"Backup\", f:parsebool },\n0x0041: { n:\"Pane\", f:parse_Pane },\n0x0042: { n:'CodePage', f:parseuint16 },\n0x004d: { n:\"Pls\" },\n0x0050: { n:\"DCon\" },\n0x0051: { n:\"DConRef\" },\n0x0052: { n:\"DConName\" },\n0x0055: { n:\"DefColWidth\", f:parseuint16 },\n0x0059: { n:\"XCT\" },\n0x005a: { n:\"CRN\" },\n0x005b: { n:\"FileSharing\" },\n0x005c: { n:'WriteAccess', f:parse_WriteAccess },\n0x005d: { n:\"Obj\", f:parse_Obj },\n0x005e: { n:\"Uncalced\" },\n0x005f: { n:\"CalcSaveRecalc\", f:parsebool },\n0x0060: { n:\"Template\" },\n0x0061: { n:\"Intl\" },\n0x0063: { n:\"ObjProtect\", f:parsebool },\n0x007d: { n:\"ColInfo\", f:parse_ColInfo },\n0x0080: { n:\"Guts\", f:parse_Guts },\n0x0081: { n:\"WsBool\", f:parse_WsBool },\n0x0082: { n:\"GridSet\", f:parseuint16 },\n0x0083: { n:\"HCenter\", f:parsebool },\n0x0084: { n:\"VCenter\", f:parsebool },\n0x0085: { n:'BoundSheet8', f:parse_BoundSheet8 },\n0x0086: { n:\"WriteProtect\" },\n0x008c: { n:\"Country\", f:parse_Country },\n0x008d: { n:\"HideObj\", f:parseuint16 },\n0x0090: { n:\"Sort\" },\n0x0092: { n:\"Palette\", f:parse_Palette },\n0x0097: { n:\"Sync\" },\n0x0098: { n:\"LPr\" },\n0x0099: { n:\"DxGCol\" },\n0x009a: { n:\"FnGroupName\" },\n0x009b: { n:\"FilterMode\" },\n0x009c: { n:\"BuiltInFnGroupCount\", f:parseuint16 },\n0x009d: { n:\"AutoFilterInfo\" },\n0x009e: { n:\"AutoFilter\" },\n0x00a0: { n:\"Scl\", f:parse_Scl },\n0x00a1: { n:\"Setup\", f:parse_Setup },\n0x00ae: { n:\"ScenMan\" },\n0x00af: { n:\"SCENARIO\" },\n0x00b0: { n:\"SxView\" },\n0x00b1: { n:\"Sxvd\" },\n0x00b2: { n:\"SXVI\" },\n0x00b4: { n:\"SxIvd\" },\n0x00b5: { n:\"SXLI\" },\n0x00b6: { n:\"SXPI\" },\n0x00b8: { n:\"DocRoute\" },\n0x00b9: { n:\"RecipName\" },\n0x00bd: { n:\"MulRk\", f:parse_MulRk },\n0x00be: { n:\"MulBlank\", f:parse_MulBlank },\n0x00c1: { n:'Mms', f:parsenoop2 },\n0x00c5: { n:\"SXDI\" },\n0x00c6: { n:\"SXDB\" },\n0x00c7: { n:\"SXFDB\" },\n0x00c8: { n:\"SXDBB\" },\n0x00c9: { n:\"SXNum\" },\n0x00ca: { n:\"SxBool\", f:parsebool },\n0x00cb: { n:\"SxErr\" },\n0x00cc: { n:\"SXInt\" },\n0x00cd: { n:\"SXString\" },\n0x00ce: { n:\"SXDtr\" },\n0x00cf: { n:\"SxNil\" },\n0x00d0: { n:\"SXTbl\" },\n0x00d1: { n:\"SXTBRGIITM\" },\n0x00d2: { n:\"SxTbpg\" },\n0x00d3: { n:\"ObProj\" },\n0x00d5: { n:\"SXStreamID\" },\n0x00d7: { n:\"DBCell\" },\n0x00d8: { n:\"SXRng\" },\n0x00d9: { n:\"SxIsxoper\" },\n0x00da: { n:\"BookBool\", f:parseuint16 },\n0x00dc: { n:\"DbOrParamQry\" },\n0x00dd: { n:\"ScenarioProtect\", f:parsebool },\n0x00de: { n:\"OleObjectSize\" },\n0x00e0: { n:\"XF\", f:parse_XF },\n0x00e1: { n:'InterfaceHdr', f:parse_InterfaceHdr },\n0x00e2: { n:'InterfaceEnd', f:parsenoop2 },\n0x00e3: { n:\"SXVS\" },\n0x00e5: { n:\"MergeCells\", f:parse_MergeCells },\n0x00e9: { n:\"BkHim\" },\n0x00eb: { n:\"MsoDrawingGroup\" },\n0x00ec: { n:\"MsoDrawing\" },\n0x00ed: { n:\"MsoDrawingSelection\" },\n0x00ef: { n:\"PhoneticInfo\" },\n0x00f0: { n:\"SxRule\" },\n0x00f1: { n:\"SXEx\" },\n0x00f2: { n:\"SxFilt\" },\n0x00f4: { n:\"SxDXF\" },\n0x00f5: { n:\"SxItm\" },\n0x00f6: { n:\"SxName\" },\n0x00f7: { n:\"SxSelect\" },\n0x00f8: { n:\"SXPair\" },\n0x00f9: { n:\"SxFmla\" },\n0x00fb: { n:\"SxFormat\" },\n0x00fc: { n:\"SST\", f:parse_SST },\n0x00fd: { n:\"LabelSst\", f:parse_LabelSst },\n0x00ff: { n:\"ExtSST\", f:parse_ExtSST },\n0x0100: { n:\"SXVDEx\" },\n0x0103: { n:\"SXFormula\" },\n0x0122: { n:\"SXDBEx\" },\n0x0137: { n:\"RRDInsDel\" },\n0x0138: { n:\"RRDHead\" },\n0x013b: { n:\"RRDChgCell\" },\n0x013d: { n:\"RRTabId\", f:parseuint16a },\n0x013e: { n:\"RRDRenSheet\" },\n0x013f: { n:\"RRSort\" },\n0x0140: { n:\"RRDMove\" },\n0x014a: { n:\"RRFormat\" },\n0x014b: { n:\"RRAutoFmt\" },\n0x014d: { n:\"RRInsertSh\" },\n0x014e: { n:\"RRDMoveBegin\" },\n0x014f: { n:\"RRDMoveEnd\" },\n0x0150: { n:\"RRDInsDelBegin\" },\n0x0151: { n:\"RRDInsDelEnd\" },\n0x0152: { n:\"RRDConflict\" },\n0x0153: { n:\"RRDDefName\" },\n0x0154: { n:\"RRDRstEtxp\" },\n0x015f: { n:\"LRng\" },\n0x0160: { n:\"UsesELFs\", f:parsebool },\n0x0161: { n:\"DSF\", f:parsenoop2 },\n0x0191: { n:\"CUsr\" },\n0x0192: { n:\"CbUsr\" },\n0x0193: { n:\"UsrInfo\" },\n0x0194: { n:\"UsrExcl\" },\n0x0195: { n:\"FileLock\" },\n0x0196: { n:\"RRDInfo\" },\n0x0197: { n:\"BCUsrs\" },\n0x0198: { n:\"UsrChk\" },\n0x01a9: { n:\"UserBView\" },\n0x01aa: { n:\"UserSViewBegin\" },\n0x01ab: { n:\"UserSViewEnd\" },\n0x01ac: { n:\"RRDUserView\" },\n0x01ad: { n:\"Qsi\" },\n0x01ae: { n:\"SupBook\", f:parse_SupBook },\n0x01af: { n:\"Prot4Rev\", f:parsebool },\n0x01b0: { n:\"CondFmt\" },\n0x01b1: { n:\"CF\" },\n0x01b2: { n:\"DVal\" },\n0x01b5: { n:\"DConBin\" },\n0x01b6: { n:\"TxO\", f:parse_TxO },\n0x01b7: { n:\"RefreshAll\", f:parsebool },\n0x01b8: { n:\"HLink\", f:parse_HLink },\n0x01b9: { n:\"Lel\" },\n0x01ba: { n:\"CodeName\", f:parse_XLUnicodeString },\n0x01bb: { n:\"SXFDBType\" },\n0x01bc: { n:\"Prot4RevPass\", f:parseuint16 },\n0x01bd: { n:\"ObNoMacros\" },\n0x01be: { n:\"Dv\" },\n0x01c0: { n:\"Excel9File\", f:parsenoop2 },\n0x01c1: { n:\"RecalcId\", f:parse_RecalcId, r:2},\n0x01c2: { n:\"EntExU2\", f:parsenoop2 },\n0x0200: { n:\"Dimensions\", f:parse_Dimensions },\n0x0201: { n:\"Blank\", f:parse_Blank },\n0x0203: { n:\"Number\", f:parse_Number },\n0x0204: { n:\"Label\", f:parse_Label },\n0x0205: { n:\"BoolErr\", f:parse_BoolErr },\n0x0206: { n:\"Formula\", f:parse_Formula },\n0x0207: { n:\"String\", f:parse_String },\n0x0208: { n:'Row', f:parse_Row },\n0x020b: { n:\"Index\" },\n0x0221: { n:\"Array\", f:parse_Array },\n0x0225: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n0x0236: { n:\"Table\" },\n0x023e: { n:\"Window2\", f:parse_Window2 },\n0x027e: { n:\"RK\", f:parse_RK },\n0x0293: { n:\"Style\" },\n0x0406: { n:\"Formula\", f:parse_Formula },\n0x0418: { n:\"BigName\" },\n0x041e: { n:\"Format\", f:parse_Format },\n0x043c: { n:\"ContinueBigName\" },\n0x04bc: { n:\"ShrFmla\", f:parse_ShrFmla },\n0x0800: { n:\"HLinkTooltip\", f:parse_HLinkTooltip },\n0x0801: { n:\"WebPub\" },\n0x0802: { n:\"QsiSXTag\" },\n0x0803: { n:\"DBQueryExt\" },\n0x0804: { n:\"ExtString\" },\n0x0805: { n:\"TxtQry\" },\n0x0806: { n:\"Qsir\" },\n0x0807: { n:\"Qsif\" },\n0x0808: { n:\"RRDTQSIF\" },\n0x0809: { n:'BOF', f:parse_BOF },\n0x080a: { n:\"OleDbConn\" },\n0x080b: { n:\"WOpt\" },\n0x080c: { n:\"SXViewEx\" },\n0x080d: { n:\"SXTH\" },\n0x080e: { n:\"SXPIEx\" },\n0x080f: { n:\"SXVDTEx\" },\n0x0810: { n:\"SXViewEx9\" },\n0x0812: { n:\"ContinueFrt\" },\n0x0813: { n:\"RealTimeData\" },\n0x0850: { n:\"ChartFrtInfo\" },\n0x0851: { n:\"FrtWrapper\" },\n0x0852: { n:\"StartBlock\" },\n0x0853: { n:\"EndBlock\" },\n0x0854: { n:\"StartObject\" },\n0x0855: { n:\"EndObject\" },\n0x0856: { n:\"CatLab\" },\n0x0857: { n:\"YMult\" },\n0x0858: { n:\"SXViewLink\" },\n0x0859: { n:\"PivotChartBits\" },\n0x085a: { n:\"FrtFontList\" },\n0x0862: { n:\"SheetExt\" },\n0x0863: { n:\"BookExt\", r:12},\n0x0864: { n:\"SXAddl\" },\n0x0865: { n:\"CrErr\" },\n0x0866: { n:\"HFPicture\" },\n0x0867: { n:'FeatHdr', f:parsenoop2 },\n0x0868: { n:\"Feat\" },\n0x086a: { n:\"DataLabExt\" },\n0x086b: { n:\"DataLabExtContents\" },\n0x086c: { n:\"CellWatch\" },\n0x0871: { n:\"FeatHdr11\" },\n0x0872: { n:\"Feature11\" },\n0x0874: { n:\"DropDownObjIds\" },\n0x0875: { n:\"ContinueFrt11\" },\n0x0876: { n:\"DConn\" },\n0x0877: { n:\"List12\" },\n0x0878: { n:\"Feature12\" },\n0x0879: { n:\"CondFmt12\" },\n0x087a: { n:\"CF12\" },\n0x087b: { n:\"CFEx\" },\n0x087c: { n:\"XFCRC\", f:parse_XFCRC, r:12 },\n0x087d: { n:\"XFExt\", f:parse_XFExt, r:12 },\n0x087e: { n:\"AutoFilter12\" },\n0x087f: { n:\"ContinueFrt12\" },\n0x0884: { n:\"MDTInfo\" },\n0x0885: { n:\"MDXStr\" },\n0x0886: { n:\"MDXTuple\" },\n0x0887: { n:\"MDXSet\" },\n0x0888: { n:\"MDXProp\" },\n0x0889: { n:\"MDXKPI\" },\n0x088a: { n:\"MDB\" },\n0x088b: { n:\"PLV\" },\n0x088c: { n:\"Compat12\", f:parsebool, r:12 },\n0x088d: { n:\"DXF\" },\n0x088e: { n:\"TableStyles\", r:12 },\n0x088f: { n:\"TableStyle\" },\n0x0890: { n:\"TableStyleElement\" },\n0x0892: { n:\"StyleExt\" },\n0x0893: { n:\"NamePublish\" },\n0x0894: { n:\"NameCmt\", f:parse_NameCmt, r:12 },\n0x0895: { n:\"SortData\" },\n0x0896: { n:\"Theme\", f:parse_Theme, r:12 },\n0x0897: { n:\"GUIDTypeLib\" },\n0x0898: { n:\"FnGrp12\" },\n0x0899: { n:\"NameFnGrp12\" },\n0x089a: { n:\"MTRSettings\", f:parse_MTRSettings, r:12 },\n0x089b: { n:\"CompressPictures\", f:parsenoop2 },\n0x089c: { n:\"HeaderFooter\" },\n0x089d: { n:\"CrtLayout12\" },\n0x089e: { n:\"CrtMlFrt\" },\n0x089f: { n:\"CrtMlFrtContinue\" },\n0x08a3: { n:\"ForceFullCalculation\", f:parse_ForceFullCalculation },\n0x08a4: { n:\"ShapePropsStream\" },\n0x08a5: { n:\"TextPropsStream\" },\n0x08a6: { n:\"RichTextStream\" },\n0x08a7: { n:\"CrtLayout12A\" },\n0x1001: { n:\"Units\" },\n0x1002: { n:\"Chart\" },\n0x1003: { n:\"Series\" },\n0x1006: { n:\"DataFormat\" },\n0x1007: { n:\"LineFormat\" },\n0x1009: { n:\"MarkerFormat\" },\n0x100a: { n:\"AreaFormat\" },\n0x100b: { n:\"PieFormat\" },\n0x100c: { n:\"AttachedLabel\" },\n0x100d: { n:\"SeriesText\" },\n0x1014: { n:\"ChartFormat\" },\n0x1015: { n:\"Legend\" },\n0x1016: { n:\"SeriesList\" },\n0x1017: { n:\"Bar\" },\n0x1018: { n:\"Line\" },\n0x1019: { n:\"Pie\" },\n0x101a: { n:\"Area\" },\n0x101b: { n:\"Scatter\" },\n0x101c: { n:\"CrtLine\" },\n0x101d: { n:\"Axis\" },\n0x101e: { n:\"Tick\" },\n0x101f: { n:\"ValueRange\" },\n0x1020: { n:\"CatSerRange\" },\n0x1021: { n:\"AxisLine\" },\n0x1022: { n:\"CrtLink\" },\n0x1024: { n:\"DefaultText\" },\n0x1025: { n:\"Text\" },\n0x1026: { n:\"FontX\", f:parseuint16 },\n0x1027: { n:\"ObjectLink\" },\n0x1032: { n:\"Frame\" },\n0x1033: { n:\"Begin\" },\n0x1034: { n:\"End\" },\n0x1035: { n:\"PlotArea\" },\n0x103a: { n:\"Chart3d\" },\n0x103c: { n:\"PicF\" },\n0x103d: { n:\"DropBar\" },\n0x103e: { n:\"Radar\" },\n0x103f: { n:\"Surf\" },\n0x1040: { n:\"RadarArea\" },\n0x1041: { n:\"AxisParent\" },\n0x1043: { n:\"LegendException\" },\n0x1044: { n:\"ShtProps\", f:parse_ShtProps },\n0x1045: { n:\"SerToCrt\" },\n0x1046: { n:\"AxesUsed\" },\n0x1048: { n:\"SBaseRef\" },\n0x104a: { n:\"SerParent\" },\n0x104b: { n:\"SerAuxTrend\" },\n0x104e: { n:\"IFmtRecord\" },\n0x104f: { n:\"Pos\" },\n0x1050: { n:\"AlRuns\" },\n0x1051: { n:\"BRAI\" },\n0x105b: { n:\"SerAuxErrBar\" },\n0x105c: { n:\"ClrtClient\", f:parse_ClrtClient },\n0x105d: { n:\"SerFmt\" },\n0x105f: { n:\"Chart3DBarShape\" },\n0x1060: { n:\"Fbi\" },\n0x1061: { n:\"BopPop\" },\n0x1062: { n:\"AxcExt\" },\n0x1063: { n:\"Dat\" },\n0x1064: { n:\"PlotGrowth\" },\n0x1065: { n:\"SIIndex\" },\n0x1066: { n:\"GelFrame\" },\n0x1067: { n:\"BopPopCustom\" },\n0x1068: { n:\"Fbi2\" },\n\n0x0000: { n:\"Dimensions\", f:parse_Dimensions },\n0x0002: { n:\"BIFF2INT\", f:parse_BIFF2INT },\n0x0005: { n:\"BoolErr\", f:parse_BoolErr },\n0x0007: { n:\"String\", f:parse_BIFF2STRING },\n0x0008: { n:\"BIFF2ROW\" },\n0x000b: { n:\"Index\" },\n0x0016: { n:\"ExternCount\", f:parseuint16 },\n0x001e: { n:\"BIFF2FORMAT\", f:parse_BIFF2Format },\n0x001f: { n:\"BIFF2FMTCNT\" }, /* 16-bit cnt of BIFF2FORMAT records */\n0x0020: { n:\"BIFF2COLINFO\" },\n0x0021: { n:\"Array\", f:parse_Array },\n0x0025: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n0x0032: { n:\"BIFF2FONTXTRA\", f:parse_BIFF2FONTXTRA },\n0x0034: { n:\"DDEObjName\" },\n0x003e: { n:\"BIFF2WINDOW2\" },\n0x0043: { n:\"BIFF2XF\" },\n0x0045: { n:\"BIFF2FONTCLR\" },\n0x0056: { n:\"BIFF4FMTCNT\" }, /* 16-bit cnt, similar to BIFF2 */\n0x007e: { n:\"RK\" }, /* Not necessarily same as 0x027e */\n0x007f: { n:\"ImData\", f:parse_ImData },\n0x0087: { n:\"Addin\" },\n0x0088: { n:\"Edg\" },\n0x0089: { n:\"Pub\" },\n0x0091: { n:\"Sub\" },\n0x0094: { n:\"LHRecord\" },\n0x0095: { n:\"LHNGraph\" },\n0x0096: { n:\"Sound\" },\n0x00a9: { n:\"CoordList\" },\n0x00ab: { n:\"GCW\" },\n0x00bc: { n:\"ShrFmla\" }, /* Not necessarily same as 0x04bc */\n0x00bf: { n:\"ToolbarHdr\" },\n0x00c0: { n:\"ToolbarEnd\" },\n0x00c2: { n:\"AddMenu\" },\n0x00c3: { n:\"DelMenu\" },\n0x00d6: { n:\"RString\", f:parse_RString },\n0x00df: { n:\"UDDesc\" },\n0x00ea: { n:\"TabIdConf\" },\n0x0162: { n:\"XL5Modify\" },\n0x01a5: { n:\"FileSharing2\" },\n0x0209: { n:'BOF', f:parse_BOF },\n0x0218: { n:\"Lbl\", f:parse_Lbl },\n0x0223: { n:\"ExternName\", f:parse_ExternName },\n0x0231: { n:\"Font\" },\n0x0243: { n:\"BIFF3XF\" },\n0x0409: { n:'BOF', f:parse_BOF },\n0x0443: { n:\"BIFF4XF\" },\n0x086d: { n:\"FeatInfo\" },\n0x0873: { n:\"FeatInfo11\" },\n0x0881: { n:\"SXAddl12\" },\n0x08c0: { n:\"AutoWebPub\" },\n0x08c1: { n:\"ListObj\" },\n0x08c2: { n:\"ListField\" },\n0x08c3: { n:\"ListDV\" },\n0x08c4: { n:\"ListCondFmt\" },\n0x08c5: { n:\"ListCF\" },\n0x08c6: { n:\"FMQry\" },\n0x08c7: { n:\"FMSQry\" },\n0x08c8: { n:\"PLV\" },\n0x08c9: { n:\"LnExt\" },\n0x08ca: { n:\"MkrExt\" },\n0x08cb: { n:\"CrtCoopt\" },\n0x08d6: { n:\"FRTArchId$\", r:12 },\n\n0x7262: {}\n};\n\nvar XLSRE = evert_key(XLSRecordEnum, 'n');\nfunction write_biff_rec(ba, type, payload, length) {\n\tvar t = +type || +XLSRE[type];\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba, type, payload, length) {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = +type || +XLSRE[type];\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2Cell(out, r, c) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(2, 0);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\nfunction write_BIFF2BERR(r, c, val, t) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tif(t == 'e') { out.write_shift(1, val); out.write_shift(1, 1); }\n\telse { out.write_shift(1, val?1:0); out.write_shift(1, 0); }\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r, c, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_ws_biff2_cell(ba, cell, R, C) {\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\tif((v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v));\n\t\t\telse\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v));\n\t\t\treturn;\n\t\tcase 'b': case 'e': write_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, cell.v));\n\t\t\treturn;\n\t}\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba, ws, idx, opts) {\n\tvar dense = Array.isArray(ws);\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t\tref = encode_range(range);\n\t}\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts);\n\t\t}\n\t}\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb, opts) {\n\tvar o = opts || {};\n\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i<wb.SheetNames.length;++i) if(wb.SheetNames[i] == o.sheet) idx=i;\n\tif(idx == 0 && !!o.sheet && wb.SheetNames[0] != o.sheet) throw new Error(\"Sheet not found: \" + o.sheet);\n\twrite_biff_rec(ba, 0x0009, write_BOF(wb, 0x10, o));\n\t/* ... */\n\twrite_ws_biff2(ba, wb.Sheets[wb.SheetNames[idx]], idx, o, wb);\n\t/* ... */\n\twrite_biff_rec(ba, 0x000A);\n\treturn ba.end();\n}\n\nfunction write_FONTS_biff8(ba, data, opts) {\n\twrite_biff_rec(ba, \"Font\", write_Font({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Arial\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}, opts));\n}\n\n\nfunction write_FMTS_biff8(ba, NF, opts) {\n\tif(!NF) return;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_biff_rec(ba, \"Format\", write_Format(i, NF[i], opts));\n\t});\n}\n\nfunction write_FEAT(ba, ws) {\n\t/* [MS-XLS] 2.4.112 */\n\tvar o = new_buf(19);\n\to.write_shift(4, 0x867); o.write_shift(4, 0); o.write_shift(4, 0);\n\to.write_shift(2, 3); o.write_shift(1, 1); o.write_shift(4, 0);\n\twrite_biff_rec(ba, \"FeatHdr\", o);\n\t/* [MS-XLS] 2.4.111 */\n\to = new_buf(39);\n\to.write_shift(4, 0x868); o.write_shift(4, 0); o.write_shift(4, 0);\n\to.write_shift(2, 3); o.write_shift(1, 0); o.write_shift(4, 0);\n\to.write_shift(2, 1); o.write_shift(4, 4); o.write_shift(2, 0);\n\twrite_Ref8U(safe_decode_range(ws['!ref']||\"A1\"), o);\n\to.write_shift(4, 4);\n\twrite_biff_rec(ba, \"Feat\", o);\n}\n\nfunction write_CELLXFS_biff8(ba, opts) {\n\tfor(var i = 0; i < 16; ++i) write_biff_rec(ba, \"XF\", write_XF({numFmtId:0, style:true}, 0, opts));\n\topts.cellXfs.forEach(function(c) {\n\t\twrite_biff_rec(ba, \"XF\", write_XF(c, 0, opts));\n\t});\n}\n\nfunction write_ws_biff8_hlinks(ba, ws) {\n\tfor(var R=0; R<ws['!links'].length; ++R) {\n\t\tvar HL = ws['!links'][R];\n\t\twrite_biff_rec(ba, \"HLink\", write_HLink(HL));\n\t\tif(HL[1].Tooltip) write_biff_rec(ba, \"HLinkTooltip\", write_HLinkTooltip(HL));\n\t}\n\tdelete ws['!links'];\n}\n\nfunction write_ws_biff8_cell(ba, cell, R, C, opts) {\n\tvar os = 16 + get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.v == null && !cell.bf) {\n\t\twrite_biff_rec(ba, \"Blank\", write_XLSCell(R, C, os));\n\t\treturn;\n\t}\n\tif(cell.bf) write_biff_rec(ba, \"Formula\", write_Formula(cell, R, C, opts, os));\n\telse switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\t/* TODO: emit RK as appropriate */\n\t\t\twrite_biff_rec(ba, \"Number\", write_Number(R, C, v, os, opts));\n\t\t\tbreak;\n\t\tcase 'b': case 'e':\n\t\t\twrite_biff_rec(ba, 0x0205, write_BoolErr(R, C, cell.v, os, opts, cell.t));\n\t\t\tbreak;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvar isst = get_sst_id(opts.Strings, cell.v, opts.revStrings);\n\t\t\t\twrite_biff_rec(ba, \"LabelSst\", write_LabelSst(R, C, isst, os, opts));\n\t\t\t} else write_biff_rec(ba, \"Label\", write_Label(R, C, cell.v, os, opts));\n\t\t\tbreak;\n\t\tdefault:\n\t\t\twrite_biff_rec(ba, \"Blank\", write_XLSCell(R, C, os));\n\t}\n}\n\n/* [MS-XLS] 2.1.7.20.5 */\nfunction write_ws_biff8(idx, opts, wb) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar _WB = ((wb||{}).Workbook||{});\n\tvar _sheet = ((_WB.Sheets||[])[idx]||{});\n\tvar dense = Array.isArray(ws);\n\tvar b8 = opts.biff == 8;\n\tvar ref, rr = \"\", cols = [];\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\");\n\tvar MAX_ROWS = b8 ? 65536 : 16384;\n\tif(range.e.c > 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, \"CalcMode\", writeuint16(1));\n\twrite_biff_rec(ba, \"CalcCount\", writeuint16(100));\n\twrite_biff_rec(ba, \"CalcRefMode\", writebool(true));\n\twrite_biff_rec(ba, \"CalcIter\", writebool(false));\n\twrite_biff_rec(ba, \"CalcDelta\", write_Xnum(0.001));\n\twrite_biff_rec(ba, \"CalcSaveRecalc\", writebool(true));\n\twrite_biff_rec(ba, \"PrintRowCol\", writebool(false));\n\twrite_biff_rec(ba, \"PrintGrid\", writebool(false));\n\twrite_biff_rec(ba, \"GridSet\", writeuint16(1));\n\twrite_biff_rec(ba, \"Guts\", write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, \"HCenter\", writebool(false));\n\twrite_biff_rec(ba, \"VCenter\", writebool(false));\n\t/* ... */\n\twrite_biff_rec(ba, 0x200, write_Dimensions(range, opts));\n\t/* ... */\n\n\tif(b8) ws['!links'] = [];\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t}\n\t}\n\tvar cname = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8) write_biff_rec(ba, \"Window2\", write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, \"MergeCells\", write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, \"EOF\");\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb, bufs, opts) {\n\tvar A = buf_array();\n\tvar _WB = ((wb||{}).Workbook||{});\n\tvar _sheets = (_WB.Sheets||[]);\n\tvar _wb = _WB.WBProps||{};\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, \"Addin\");\n\twrite_biff_rec(A, \"InterfaceHdr\", b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, \"Mms\", writezeroes(2));\n\tif(b5) write_biff_rec(A, \"ToolbarHdr\");\n\tif(b5) write_biff_rec(A, \"ToolbarEnd\");\n\twrite_biff_rec(A, \"InterfaceEnd\");\n\twrite_biff_rec(A, \"WriteAccess\", write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, \"CodePage\", writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, \"DSF\", writeuint16(0));\n\tif(b8) write_biff_rec(A, \"Excel9File\");\n\twrite_biff_rec(A, \"RRTabId\", write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, \"ObProj\");\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, \"BuiltInFnGroupCount\", writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, \"WinProtect\", writebool(false));\n\twrite_biff_rec(A, \"Protect\", writebool(false));\n\twrite_biff_rec(A, \"Password\", writeuint16(0));\n\tif(b8) write_biff_rec(A, \"Prot4Rev\", writebool(false));\n\tif(b8) write_biff_rec(A, \"Prot4RevPass\", writeuint16(0));\n\twrite_biff_rec(A, \"Window1\", write_Window1(opts));\n\twrite_biff_rec(A, \"Backup\", writebool(false));\n\twrite_biff_rec(A, \"HideObj\", writeuint16(0));\n\twrite_biff_rec(A, \"Date1904\", writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, \"CalcPrecision\", writebool(true));\n\tif(b8) write_biff_rec(A, \"RefreshAll\", writebool(false));\n\twrite_biff_rec(A, \"BookBool\", writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, \"UsesELFs\", writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, \"Country\", write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture *MSODRAWINGGROUP */\n\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, \"SST\", write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, \"EOF\");\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet = _sheets[j] || ({});\n\t\twrite_biff_rec(B, \"BoundSheet8\", write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn __toBuffer([out]);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb, opts) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\to.Strings = []; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn __toBuffer([bufs]);\n}\n\nfunction write_biff_buf(wb, opts) {\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nvar HTML_ = (function() {\n\tfunction html_to_sheet(str, _opts) {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar ws = opts.dense ? ([]) : ({});\n\t\tstr = str.replace(/<!--.*?-->/g, \"\");\n\t\tvar mtch = str.match(/<table/i);\n\t\tif(!mtch) throw new Error(\"Invalid HTML: could not find <table>\");\n\t\tvar mtch2 = str.match(/<\\/table/i);\n\t\tvar i = mtch.index, j = mtch2 && mtch2.index || str.length;\n\t\tvar rows = split_regex(str.slice(i, j), /(:?<tr[^>]*>)/i, \"<tr>\");\n\t\tvar R = -1, C = 0, RS = 0, CS = 0;\n\t\tvar range = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\t\tvar merges = [];\n\t\tfor(i = 0; i < rows.length; ++i) {\n\t\t\tvar row = rows[i].trim();\n\t\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\t\tif(hd == \"<tr\") { ++R; if(opts.sheetRows && opts.sheetRows <= R) { --R; break; } C = 0; continue; }\n\t\t\tif(hd != \"<td\" && hd != \"<th\") continue;\n\t\t\tvar cells = row.split(/<\\/t[dh]>/i);\n\t\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\t\tvar cell = cells[j].trim();\n\t\t\t\tif(!cell.match(/<t[dh]/i)) continue;\n\t\t\t\tvar m = cell, cc = 0;\n\t\t\t\t/* TODO: parse styles etc */\n\t\t\t\twhile(m.charAt(0) == \"<\" && (cc = m.indexOf(\">\")) > -1) m = m.slice(cc+1);\n\t\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\t\tvar _merge = merges[midx];\n\t\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t\t}\n\t\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\t\tvar _t = tag.t || \"\";\n\t\t\t\t/* TODO: generate stub cells */\n\t\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\t\tm = htmldecode(m);\n\t\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\t\tif(!m.length) continue;\n\t\t\t\tvar o = {t:'s', v:m};\n\t\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(m)});\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\n\t\t\t\t}\n\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\n\t\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\t\tC += CS;\n\t\t\t}\n\t\t}\n\t\tws['!ref'] = encode_range(range);\n\t\tif(merges.length) ws[\"!merges\"] = merges;\n\t\treturn ws;\n\t}\n\tfunction html_to_book(str, opts) {\n\t\treturn sheet_to_workbook(html_to_sheet(str, opts), opts);\n\t}\n\tfunction make_html_row(ws, r, R, o) {\n\t\tvar M = (ws['!merges'] ||[]);\n\t\tvar oo = [];\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tvar RS = 0, CS = 0;\n\t\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t\t}\n\t\t\tif(RS < 0) continue;\n\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\tvar cell = o.dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t/* TODO: html entities */\n\t\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\t\tvar sp = ({});\n\t\t\tif(RS > 1) sp.rowspan = RS;\n\t\t\tif(CS > 1) sp.colspan = CS;\n\t\t\tsp.t = cell && cell.t || 'z';\n\t\t\tif(o.editable) w = '<span contenteditable=\"true\">' + w + '</span>';\n\t\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\t\tif(sp.t != \"z\") { sp.v = cell.v; if(cell.z != null) sp.z = cell.z; }\n\t\t\too.push(writextag('td', w, sp));\n\t\t}\n\t\tvar preamble = \"<tr>\";\n\t\treturn preamble + oo.join(\"\") + \"</tr>\";\n\t}\n\tfunction make_html_preamble(ws, R, o) {\n\t\tvar out = [];\n\t\treturn out.join(\"\") + '<table' + (o && o.id ? ' id=\"' + o.id + '\"' : \"\") + '>';\n\t}\n\tvar _BEGIN = '<html><head><meta charset=\"utf-8\"/><title>SheetJS Table Export';\n\tvar _END = '';\n\tfunction sheet_to_html(ws, opts/*, wb:?Workbook*/) {\n\t\tvar o = opts || {};\n\t\tvar header = o.header != null ? o.header : _BEGIN;\n\t\tvar footer = o.footer != null ? o.footer : _END;\n\t\tvar out = [header];\n\t\tvar r = decode_range(ws['!ref']);\n\t\to.dense = Array.isArray(ws);\n\t\tout.push(make_html_preamble(ws, r, o));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\t\tout.push(\"\" + footer);\n\t\treturn out.join(\"\");\n\n\t}\n\treturn {\n\t\tto_workbook: html_to_book,\n\t\tto_sheet: html_to_sheet,\n\t\t_row: make_html_row,\n\t\tBEGIN: _BEGIN,\n\t\tEND: _END,\n\t\t_preamble: make_html_preamble,\n\t\tfrom_sheet: sheet_to_html\n\t};\n})();\n\nfunction sheet_add_dom(ws, table, _opts) {\n\tvar opts = _opts || {};\n\tif(DENSE != null) opts.dense = DENSE;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\tvar rows = table.getElementsByTagName('tr');\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges = [], midx = 0;\n\tvar rowinfo = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts = (row.children);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v = elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z = elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o = {t:'s', v:v};\n\t\t\tvar _t = elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)});\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\tif(opts.dense) { if(!ws[R + or_R]) ws[R + or_R] = []; ws[R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table, _opts) {\n\tvar opts = _opts || {};\n\tvar ws = opts.dense ? ([]) : ({});\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table, opts) {\n\treturn sheet_to_workbook(parse_dom_table(table, opts), opts);\n}\n\nfunction is_dom_element_hidden(element) {\n\tvar display = '';\n\tvar get_computed_style = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style.display; // Fallback for cases when getComputedStyle is not available (e.g. an old browser or some Node.js environments) or doesn't work (e.g. if the element is not inserted to a document)\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element) {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nvar parse_content_xml = (function() {\n\n\tvar parse_text_p = function(text) {\n\t\t/* 6.1.2 White Space Characters */\n\t\tvar fixed = text\n\t\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t\t.replace(//g,\" \")\n\t\t\t.replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t\t.replace(/]*\\/>/g,\"\\t\")\n\t\t\t.replace(//g,\"\\n\");\n\t\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\t\treturn [v];\n\t};\n\n\tvar number_formats = {\n\t\t/* ods name: [short ssf fmt, long ssf fmt] */\n\t\tday: [\"d\", \"dd\"],\n\t\tmonth: [\"m\", \"mm\"],\n\t\tyear: [\"y\", \"yy\"],\n\t\thours: [\"h\", \"hh\"],\n\t\tminutes: [\"m\", \"mm\"],\n\t\tseconds: [\"s\", \"ss\"],\n\t\t\"am-pm\": [\"A/P\", \"AM/PM\"],\n\t\t\"day-of-week\": [\"ddd\", \"dddd\"],\n\t\tera: [\"e\", \"ee\"],\n\t\t/* there is no native representation of LO \"Q\" format */\n\t\tquarter: [\"\\\\Qm\", \"m\\\\\\\"th quarter\\\"\"]\n\t};\n\n\treturn function pcx(d, _opts) {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state = [], tmp;\n\t\tvar tag;\n\t\tvar NFtag = {name:\"\"}, NF = \"\", pidx = 0;\n\t\tvar sheetag;\n\t\tvar rowtag;\n\t\tvar Sheets = {}, SheetNames = [];\n\t\tvar ws = opts.dense ? ([]) : ({});\n\t\tvar Rn, q;\n\t\tvar ctag = ({value:\"\"});\n\t\tvar textp = \"\", textpidx = 0, textptag;\n\t\tvar textR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = {};\n\t\tvar merges = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf = [];\n\t\tvar WB = {Names:[]};\n\t\tvar atag = ({});\n\t\tvar _Ref = [\"\", \"\"];\n\t\tvar comments = [], comment = ({});\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 \n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = opts.dense ? ([]) : ({}); merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 \n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 \n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 \n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null});\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[R]) ws[R] = [];\n\t\t\t\t\t\t\tws[R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_cell({r:R,c:C})] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({});\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null});\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value']);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v); }\n\t\t\t\t\t\t\tq.z = 'm/d/yy'; break;\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[R + rpt]) ws[R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({});\n\t\t\t\tbreak; // 9.1.4 \n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 \n\t\t\tcase 'spreadsheet': case '主体': // 3.7 \n\t\t\tcase 'scripts': // 3.12 \n\t\t\tcase 'styles': // TODO \n\t\t\tcase 'font-face-decls': // 3.14 \n\t\t\tcase 'master-styles': //3.15.4 -- relevant for FODS\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) comment.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {state.push([Rn[3], false]);}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 \n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: FODS/UOF\n\t\t\tcase 'settings': // TODO: \n\t\t\tcase 'config-item-set': // TODO: \n\t\t\tcase 'config-item-map-indexed': // TODO: \n\t\t\tcase 'config-item-map-entry': // TODO: \n\t\t\tcase 'config-item-map-named': // TODO: \n\t\t\tcase 'shapes': // 9.2.8 \n\t\t\tcase 'frame': // 10.4.2 \n\t\t\tcase 'text-box': // 10.4.3 \n\t\t\tcase 'image': // 10.4.4 \n\t\t\tcase 'data-pilot-tables': // 9.6.2 \n\t\t\tcase 'list-style': // 16.30 \n\t\t\tcase 'form': // 13.13 \n\t\t\tcase 'dde-links': // 9.8 \n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-symbol': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-style': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'number-style': // 16.27.2 \n\t\t\tcase 'percentage-style': // 16.27.9 \n\t\t\tcase 'date-style': // 16.27.10 \n\t\t\tcase 'time-style': // 16.27.18 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tNF = \"\";\n\t\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 \n\t\t\tcase 'libraries': break; // TODO: \n\t\t\tcase 'automatic-styles': break; // 3.15.3 \n\n\t\t\tcase 'default-style': // TODO: \n\t\t\tcase 'page-layout': break; // TODO: \n\t\t\tcase 'style': // 16.2 \n\t\t\t\tbreak;\n\t\t\tcase 'map': break; // 16.3 \n\t\t\tcase 'font-face': break; // 16.21 \n\n\t\t\tcase 'paragraph-properties': break; // 17.6 \n\t\t\tcase 'table-properties': break; // 17.15 \n\t\t\tcase 'table-column-properties': break; // 17.16 \n\t\t\tcase 'table-row-properties': break; // 17.17 \n\t\t\tcase 'table-cell-properties': break; // 17.18 \n\n\t\t\tcase 'number': // 16.27.3 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 \n\n\t\t\tcase 'day': // 16.27.11 \n\t\t\tcase 'month': // 16.27.12 \n\t\t\tcase 'year': // 16.27.13 \n\t\t\tcase 'era': // 16.27.14 \n\t\t\tcase 'day-of-week': // 16.27.15 \n\t\t\tcase 'week-of-year': // 16.27.16 \n\t\t\tcase 'quarter': // 16.27.17 \n\t\t\tcase 'hours': // 16.27.19 \n\t\t\tcase 'minutes': // 16.27.20 \n\t\t\tcase 'seconds': // 16.27.21 \n\t\t\tcase 'am-pm': // 16.27.22 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'boolean-style': break; // 16.27.23 \n\t\t\tcase 'boolean': break; // 16.27.24 \n\t\t\tcase 'text-style': break; // 16.27.25 \n\t\t\tcase 'text': // 16.27.26 \n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]});\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 \n\t\t\tcase 'text-properties': break; // 16.27.27 \n\t\t\tcase 'embedded-text': break; // 16.27.4 \n\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 \n\t\t\tcase 'table-header-rows': break; // 9.1.7 \n\t\t\tcase 'table-rows': break; // 9.1.12 \n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 \n\t\t\tcase 'table-header-columns': break; // 9.1.11 \n\t\t\tcase 'table-columns': break; // 9.1.12 \n\n\t\t\tcase 'null-date': break; // 9.4.2 TODO: date1904\n\n\t\t\tcase 'graphic-properties': break; // 17.21 \n\t\t\tcase 'calculation-settings': break; // 9.4.1 \n\t\t\tcase 'named-expressions': break; // 9.4.11 \n\t\t\tcase 'label-range': break; // 9.4.9 \n\t\t\tcase 'label-ranges': break; // 9.4.10 \n\t\t\tcase 'named-expression': break; // 9.4.13 \n\t\t\tcase 'sort': break; // 9.4.19 \n\t\t\tcase 'sort-by': break; // 9.4.20 \n\t\t\tcase 'sort-groups': break; // 9.4.22 \n\n\t\t\tcase 'tab': break; // 6.1.4 \n\t\t\tcase 'line-break': break; // 6.1.5 \n\t\t\tcase 'span': break; // 6.1.7 \n\t\t\tcase 'p': case '文本串': // 5.1.3 \n\t\t\t\tif(['master-styles'].indexOf(state[state.length-1][0]) > -1) break;\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // \n\t\t\tcase 's': break; // \n\n\t\t\tcase 'database-range': // 9.4.15 \n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 \n\t\t\tcase 'title': case '标题': break; // <*:title> OR \n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 \n\t\t\tcase 'content-validations': break; // 9.4.4 \n\t\t\tcase 'filter': break; // 9.5.2 \n\t\t\tcase 'filter-and': break; // 9.5.3 \n\t\t\tcase 'filter-or': break; // 9.5.4 \n\t\t\tcase 'filter-condition': break; // 9.5.5 \n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 \n\t\t\tcase 'page-count': break; // TODO \n\t\t\tcase 'time': break; // TODO \n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 \n\t\t\tcase 'property': break; // 13.8 \n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = atag.href; delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // ';\n\treturn function wso() {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\nvar write_content_ods = (function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text) {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '';})\n\t\t\t.replace(/\\t/g, \"\")\n\t\t\t.replace(/\\n/g, \"\")\n\t\t\t.replace(/^ /, \"\").replace(/ $/, \"\");\n\t};\n\n\tvar null_cell_xml = ' \\n';\n\tvar covered_cell_xml = ' \\n';\n\tvar write_ws = function(ws, wb, i) {\n\t\t/* Section 9 Tables */\n\t\tvar o = [];\n\t\to.push(' \\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']);\n\t\tvar marr = ws['!merges'] || [], mi = 0;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(R = 0; R < range.s.r; ++R) o.push(' \\n');\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\to.push(' \\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(covered_cell_xml); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e':\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue;\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target; _tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt});\n\t\t\t\t}\n\t\t\t\to.push(' ' + writextag('table:table-cell', writextag('text:p', text_p, {}), ct) + '\\n');\n\t\t\t}\n\t\t\to.push(' \\n');\n\t\t}\n\t\to.push(' \\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o) {\n\t\to.push(' \\n');\n\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table */\n\t\to.push(' \\n'); // style:master-page-name=\"mp1\">\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table cells, text */\n\t\to.push(' \\n');\n\n\t\t/* page-layout */\n\n\t\to.push(' \\n');\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version': \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") o.push('\\n');\n\t\telse o.push('\\n');\n\t\twrite_automatic_styles_ods(o);\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts));\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(opts.bookType == \"fods\") o.push('');\n\t\telse o.push('');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb, opts) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\nvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest = [];\n\tvar rdf = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, write_meta_ods());\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\nfunction write_sheet_index(wb, sheet) {\n\tif(!sheet) return 0;\n\tvar idx = wb.SheetNames.indexOf(sheet);\n\tif(idx == -1) throw new Error(\"Sheet not found: \" + sheet);\n\treturn idx;\n}\n\nfunction write_obj_str(factory) {\n\treturn function write_str(wb, o) {\n\t\tvar idx = write_sheet_index(wb, o.sheet);\n\t\treturn factory.from_sheet(wb.Sheets[wb.SheetNames[idx]], o, wb);\n\t};\n}\n\nvar write_htm_str = write_obj_str(HTML_);\nvar write_csv_str = write_obj_str({from_sheet:sheet_to_csv});\nvar write_slk_str = write_obj_str(typeof SYLK !== \"undefined\" ? SYLK : {});\nvar write_dif_str = write_obj_str(typeof DIF !== \"undefined\" ? DIF : {});\nvar write_prn_str = write_obj_str(typeof PRN !== \"undefined\" ? PRN : {});\nvar write_rtf_str = write_obj_str(typeof RTF !== \"undefined\" ? RTF : {});\nvar write_txt_str = write_obj_str({from_sheet:sheet_to_txt});\nvar write_dbf_buf = write_obj_str(typeof DBF !== \"undefined\" ? DBF : {});\nvar write_eth_str = write_obj_str(typeof ETH !== \"undefined\" ? ETH : {});\n\nfunction fix_opts_func(defaults) {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nvar fix_read_opts = function(opts) {\nfix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n};\n\nvar fix_write_opts = fix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n]);\nfunction get_sheet_type(n) {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { if(!w.id) w.id = w.strRelID; return [w.name, wbrels['!id'][w.id].Target, get_sheet_type(wbrels['!id'][w.id].Type)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction safe_parse_sheet(zip, path, relsPath, sheet, idx, sheetRels, sheets, stype, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments */\n\t\tvar comments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tvar dfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tcomments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments);\n\t\t\t}\n\t\t});\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x) { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip, opts) {\n\tmake_ssf(SSF);\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) throw new Error('Unsupported NUMBERS file');\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({});\n\tvar styles = ({});\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\",dir.themes[0], opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({});\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({});\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile);\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: SSF.get_table()\n\t});\n\tif(opts && opts.bookFiles) {\n\t\tout.keys = entries;\n\t\tout.files = zip.files;\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts) {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\nif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\nif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip(wb, opts) {\n\t_shapeid = 1024;\n\tif(opts.bookType == \"ods\") return write_ods(wb, opts);\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = []; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = opts.bookType == \"xlsb\" ? \"bin\" : \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\nvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\nf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws(rId-1, f, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar cf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_cmnt(comments, cf, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst(opts.Strings, f, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb(wb, f, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty(wb, f, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\nfunction firstbyte(f,o) {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tcase 'base64': x = Base64.decode(f.slice(0,12)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\n}\n\nfunction read_cfb(cfb, opts) {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data, opts) {\nvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data, o) {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data, o) {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64.decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data, o) {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64.decode(d);\n\td = cptable.utils.decode(1200, d.slice(2), 'str');\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data) {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data, opts) {\n\treset_cp();\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), opts);\n\tvar d = data, n = [0,0,0,0], str = false;\n\tvar o = opts||{};\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\n\t\tcase 0x09: if(n[1] <= 0x04) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49: if(n[1] === 0x44) return read_wb_ID(d, o); break;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF: if(n[1] === 0xFE) { return read_utf16(d, o); } break;\n\t\tcase 0x00: if(n[1] === 0x00 && n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o); break;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return RTF.to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t}\n\tif(DBF.versions.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb, o) {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\nfunction write_zip_type(wb, opts) {\n\tvar o = opts||{};\n\tvar z = write_zip(wb, o);\n\tvar oopts = {};\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = has_buf ? \"nodebuffer\" : \"string\";\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = has_buf ? \"nodebuffer\" : \"string\"; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: {\"nodebuffer\": \"buffer\", \"string\": \"binary\"}[oopts.type] || oopts.type}) : z.generate(oopts);\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(out) : out;\n}\n\nfunction write_cfb_type(wb, opts) {\n\tvar o = opts||{};\n\tvar cfb = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out, opts, bom) {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64.encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out, opts) {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64.encode(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts) {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64.encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSync(wb, opts) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = opts||{};\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out = (writeSync(wb, o)); o.type = \"array\"; return s2ab(out); }\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(write_slk_str(wb, o), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(write_htm_str(wb, o), o);\n\t\tcase 'txt': return write_stxt_type(write_txt_str(wb, o), o);\n\t\tcase 'csv': return write_string_type(write_csv_str(wb, o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(write_dif_str(wb, o), o);\n\t\tcase 'dbf': return write_binary_type(write_dbf_buf(wb, o), o);\n\t\tcase 'prn': return write_string_type(write_prn_str(wb, o), o);\n\t\tcase 'rtf': return write_string_type(write_rtf_str(wb, o), o);\n\t\tcase 'eth': return write_string_type(write_eth_str(wb, o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb, filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileAsync(filename, wb, opts, cb) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\nfunction make_json_row(sheet, r, R, cols, header, hdr, dense, o) {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true;\n\tvar row = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tif(val === undefined || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = void 0; break;\n\t\t\tcase 's': case 'd': case 'b': case 'n': break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = raw || (o.rawNumbers && val.t == \"n\") ? v : format_cell(val,v,o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet, opts) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols = [];\n\tvar out = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0, CC = 0;\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = 0;\n\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet, r, R, cols, fs, rs, FS, o) {\n\tvar isempty = true;\n\tvar row = [], txt = \"\", rr = encode_row(R);\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = o.dense ? (sheet[R]||[])[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet, opts) {\n\tvar out = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row = \"\", cols = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\tout.push(row + RS);\n\t}\n\tdelete o.dense;\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet, opts) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet) {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols = [], C;\n\tvar cmds = [];\n\tvar dense = Array.isArray(sheet);\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws, js, opts) {\n\tvar o = opts || {};\n\tvar offset = +!o.skipHeader;\n\tvar ws = _ws || ({});\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar cell;\n\tvar range = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}});\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t} else {\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\n\t}\n\tvar hdr = o.header || [], C = 0;\n\n\tjs.forEach(function (JS, R) {\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = encode_cell({c:_C + C,r:_R + R + offset});\n\t\t\tcell = utils.sheet_get_cell(ws, ref);\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (o.dateNF || SSF._table[14]);\n\t\t\t\t}\n\t\t\t\tif(!cell) ws[ref] = cell = ({t:t, v:v});\n\t\t\t\telse {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(offset) for(C = 0; C < hdr.length; ++C) ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js, opts) { return sheet_add_json(null, js, opts); }\n\nvar utils = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tget_formulae: sheet_to_formulae,\n\tmake_csv: sheet_to_csv,\n\tmake_json: sheet_to_json,\n\tmake_formulae: sheet_to_formulae,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\tsheet_add_dom: sheet_add_dom,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: HTML_.from_sheet,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json\n};\n\n(function(utils) {\nutils.consts = utils.consts || {};\nfunction add_consts(R/*Array*/) { R.forEach(function(a){ utils.consts[a[0]] = a[1]; }); }\n\nfunction get_default(x, y, z) { return x[y] != null ? x[y] : (x[y] = z); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws, R, C) {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\t/* dense */\n\t\tif(Array.isArray(ws)) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[RC.r]) ws[RC.r] = [];\n\t\t\treturn ws[RC.r][RC.c] || (ws[RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_cell({r:R,c:C||0}));\n}\nutils.sheet_get_cell = ws_get_cell_stub;\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb, sh) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank workbook object */\nutils.book_new = function() {\n\treturn { SheetNames: [], Sheets: {} };\n};\n\n/* add a worksheet to the end of a given workbook */\nutils.book_append_sheet = function(wb, ws, name) {\n\tif(!name) for(var i = 1; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n};\n\n/* set sheet visibility (visible/hidden/very hidden) */\nutils.book_set_sheet_visibility = function(wb, sh, vis) {\n\tget_default(wb,\"Workbook\",{});\n\tget_default(wb.Workbook,\"Sheets\",[]);\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tget_default(wb.Workbook.Sheets,idx, {});\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n};\nadd_consts([\n\t[\"SHEET_VISIBLE\", 0],\n\t[\"SHEET_HIDDEN\", 1],\n\t[\"SHEET_VERY_HIDDEN\", 2]\n]);\n\n/* set number format */\nutils.cell_set_number_format = function(cell, fmt) {\n\tcell.z = fmt;\n\treturn cell;\n};\n\n/* set cell hyperlink */\nutils.cell_set_hyperlink = function(cell, target, tooltip) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target });\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n};\nutils.cell_set_internal_link = function(cell, range, tooltip) { return utils.cell_set_hyperlink(cell, \"#\" + range, tooltip); };\n\n/* add to cell comments */\nutils.cell_add_comment = function(cell, text, author) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n};\n\n/* set array formula and flush related cells */\nutils.sheet_set_array_formula = function(ws, range, formula) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) cell.f = formula;\n\t}\n\treturn ws;\n};\n\nreturn utils;\n})(utils);\n\nif(has_buf && typeof require != 'undefined') (function() {\n\tvar Readable = require('stream').Readable;\n\n\tvar write_csv_stream = function(sheet, opts) {\n\t\tvar stream = Readable();\n\t\tvar o = opts == null ? {} : opts;\n\t\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\t\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\t\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\t\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\t\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\t\tvar row = \"\", cols = [];\n\t\to.dense = Array.isArray(sheet);\n\t\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\n\t\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\t\tvar R = r.s.r;\n\t\tvar BOM = false;\n\t\tstream._read = function() {\n\t\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\t++R;\n\t\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\t\tif(row != null) {\n\t\t\t\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\t\t\t\tstream.push(row + RS);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(R > r.e.r) return stream.push(null);\n\t\t};\n\t\treturn stream;\n\t};\n\n\tvar write_html_stream = function(ws, opts) {\n\t\tvar stream = Readable();\n\n\t\tvar o = opts || {};\n\t\tvar header = o.header != null ? o.header : HTML_.BEGIN;\n\t\tvar footer = o.footer != null ? o.footer : HTML_.END;\n\t\tstream.push(header);\n\t\tvar r = decode_range(ws['!ref']);\n\t\to.dense = Array.isArray(ws);\n\t\tstream.push(HTML_._preamble(ws, r, o));\n\t\tvar R = r.s.r;\n\t\tvar end = false;\n\t\tstream._read = function() {\n\t\t\tif(R > r.e.r) {\n\t\t\t\tif(!end) { end = true; stream.push(\"\" + footer); }\n\t\t\t\treturn stream.push(null);\n\t\t\t}\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\tstream.push(HTML_._row(ws, r, R, o));\n\t\t\t\t++R;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\treturn stream;\n\t};\n\n\tvar write_json_stream = function(sheet, opts) {\n\t\tvar stream = Readable({objectMode:true});\n\n\t\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\t\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\n\t\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tvar o = opts || {};\n\t\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\t\tif(o.header === 1) header = 1;\n\t\telse if(o.header === \"A\") header = 2;\n\t\telse if(Array.isArray(o.header)) header = 3;\n\t\tswitch(typeof range) {\n\t\t\tcase 'string': r = safe_decode_range(range); break;\n\t\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\t\tdefault: r = range;\n\t\t}\n\t\tif(header > 0) offset = 0;\n\t\tvar rr = encode_row(r.s.r);\n\t\tvar cols = [];\n\t\tvar counter = 0;\n\t\tvar dense = Array.isArray(sheet);\n\t\tvar R = r.s.r, C = 0, CC = 0;\n\t\tif(dense && !sheet[R]) sheet[R] = [];\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tcols[C] = encode_col(C);\n\t\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\t\tswitch(header) {\n\t\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\t\tdefault:\n\t\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\t\tcounter = 0;\n\t\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\n\t\t\t\t\thdr[C] = vv;\n\t\t\t}\n\t\t}\n\t\tR = r.s.r + offset;\n\t\tstream._read = function() {\n\t\t\tif(R > r.e.r) return stream.push(null);\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\t//if ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\t\t\t++R;\n\t\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\t\tstream.push(row.row);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn stream;\n\t};\n\n\tXLSX.stream = {\n\t\tto_json: write_json_stream,\n\t\tto_html: write_html_stream,\n\t\tto_csv: write_csv_stream\n\t};\n})();\n\nif(typeof parse_xlscfb !== \"undefined\") XLSX.parse_xlscfb = parse_xlscfb;\nXLSX.parse_zip = parse_zip;\nXLSX.read = readSync; //xlsread\nXLSX.readFile = readFileSync; //readFile\nXLSX.readFileSync = readFileSync;\nXLSX.write = writeSync;\nXLSX.writeFile = writeFileSync;\nXLSX.writeFileSync = writeFileSync;\nXLSX.writeFileAsync = writeFileAsync;\nXLSX.utils = utils;\nXLSX.SSF = SSF;\nif(typeof CFB !== \"undefined\") XLSX.CFB = CFB;\n}\n/*global define */\nif(typeof exports !== 'undefined') make_xlsx_lib(exports);\nelse if(typeof module !== 'undefined' && module.exports) make_xlsx_lib(module.exports);\nelse if(typeof define === 'function' && define.amd) define(function() { if(!XLSX.version) make_xlsx_lib(XLSX); return XLSX; });\nelse make_xlsx_lib(XLSX);\n/*exported XLS, ODS */\nvar XLS = XLSX, ODS = XLSX;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport TransitionGroup from './TransitionGroup';\n/**\n * The `` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * \n *
I appear first
\n *
I replace the above
\n *
\n * ```\n */\n\nvar ReplaceTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ReplaceTransition, _React$Component);\n\n function ReplaceTransition() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n\n _this.handleEnter = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _this.handleLifecycle('onEnter', 0, args);\n };\n\n _this.handleEntering = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return _this.handleLifecycle('onEntering', 0, args);\n };\n\n _this.handleEntered = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _this.handleLifecycle('onEntered', 0, args);\n };\n\n _this.handleExit = function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return _this.handleLifecycle('onExit', 1, args);\n };\n\n _this.handleExiting = function () {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return _this.handleLifecycle('onExiting', 1, args);\n };\n\n _this.handleExited = function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return _this.handleLifecycle('onExited', 1, args);\n };\n\n return _this;\n }\n\n var _proto = ReplaceTransition.prototype;\n\n _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n var _child$props;\n\n var children = this.props.children;\n var child = React.Children.toArray(children)[idx];\n if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n\n if (this.props[handler]) {\n var maybeNode = child.props.nodeRef ? undefined : ReactDOM.findDOMNode(this);\n this.props[handler](maybeNode);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n var _React$Children$toArr = React.Children.toArray(children),\n first = _React$Children$toArr[0],\n second = _React$Children$toArr[1];\n\n delete props.onEnter;\n delete props.onEntering;\n delete props.onEntered;\n delete props.onExit;\n delete props.onExiting;\n delete props.onExited;\n return /*#__PURE__*/React.createElement(TransitionGroup, props, inProp ? React.cloneElement(first, {\n key: 'first',\n onEnter: this.handleEnter,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered\n }) : React.cloneElement(second, {\n key: 'second',\n onEnter: this.handleExit,\n onEntering: this.handleExiting,\n onEntered: this.handleExited\n }));\n };\n\n return ReplaceTransition;\n}(React.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n in: PropTypes.bool.isRequired,\n children: function children(props, propName) {\n if (React.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n return null;\n }\n} : {};\nexport default ReplaceTransition;","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\n\nvar _leaveRenders, _enterRenders;\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { ENTERED, ENTERING, EXITING } from './Transition';\nimport TransitionGroupContext from './TransitionGroupContext';\n\nfunction areChildrenDifferent(oldChildren, newChildren) {\n if (oldChildren === newChildren) return false;\n\n if (React.isValidElement(oldChildren) && React.isValidElement(newChildren) && oldChildren.key != null && oldChildren.key === newChildren.key) {\n return false;\n }\n\n return true;\n}\n/**\n * Enum of modes for SwitchTransition component\n * @enum { string }\n */\n\n\nexport var modes = {\n out: 'out-in',\n in: 'in-out'\n};\n\nvar callHook = function callHook(element, name, cb) {\n return function () {\n var _element$props;\n\n element.props[name] && (_element$props = element.props)[name].apply(_element$props, arguments);\n cb();\n };\n};\n\nvar leaveRenders = (_leaveRenders = {}, _leaveRenders[modes.out] = function (_ref) {\n var current = _ref.current,\n changeState = _ref.changeState;\n return React.cloneElement(current, {\n in: false,\n onExited: callHook(current, 'onExited', function () {\n changeState(ENTERING, null);\n })\n });\n}, _leaveRenders[modes.in] = function (_ref2) {\n var current = _ref2.current,\n changeState = _ref2.changeState,\n children = _ref2.children;\n return [current, React.cloneElement(children, {\n in: true,\n onEntered: callHook(children, 'onEntered', function () {\n changeState(ENTERING);\n })\n })];\n}, _leaveRenders);\nvar enterRenders = (_enterRenders = {}, _enterRenders[modes.out] = function (_ref3) {\n var children = _ref3.children,\n changeState = _ref3.changeState;\n return React.cloneElement(children, {\n in: true,\n onEntered: callHook(children, 'onEntered', function () {\n changeState(ENTERED, React.cloneElement(children, {\n in: true\n }));\n })\n });\n}, _enterRenders[modes.in] = function (_ref4) {\n var current = _ref4.current,\n children = _ref4.children,\n changeState = _ref4.changeState;\n return [React.cloneElement(current, {\n in: false,\n onExited: callHook(current, 'onExited', function () {\n changeState(ENTERED, React.cloneElement(children, {\n in: true\n }));\n })\n }), React.cloneElement(children, {\n in: true\n })];\n}, _enterRenders);\n/**\n * A transition component inspired by the [vue transition modes](https://vuejs.org/v2/guide/transitions.html#Transition-Modes).\n * You can use it when you want to control the render between state transitions.\n * Based on the selected mode and the child's key which is the `Transition` or `CSSTransition` component, the `SwitchTransition` makes a consistent transition between them.\n *\n * If the `out-in` mode is selected, the `SwitchTransition` waits until the old child leaves and then inserts a new child.\n * If the `in-out` mode is selected, the `SwitchTransition` inserts a new child first, waits for the new child to enter and then removes the old child.\n *\n * **Note**: If you want the animation to happen simultaneously\n * (that is, to have the old child removed and a new child inserted **at the same time**),\n * you should use\n * [`TransitionGroup`](https://reactcommunity.org/react-transition-group/transition-group)\n * instead.\n *\n * ```jsx\n * function App() {\n * const [state, setState] = useState(false);\n * return (\n * \n * node.addEventListener(\"transitionend\", done, false)}\n * classNames='fade'\n * >\n * \n * \n * \n * );\n * }\n * ```\n *\n * ```css\n * .fade-enter{\n * opacity: 0;\n * }\n * .fade-exit{\n * opacity: 1;\n * }\n * .fade-enter-active{\n * opacity: 1;\n * }\n * .fade-exit-active{\n * opacity: 0;\n * }\n * .fade-enter-active,\n * .fade-exit-active{\n * transition: opacity 500ms;\n * }\n * ```\n */\n\nvar SwitchTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(SwitchTransition, _React$Component);\n\n function SwitchTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.state = {\n status: ENTERED,\n current: null\n };\n _this.appeared = false;\n\n _this.changeState = function (status, current) {\n if (current === void 0) {\n current = _this.state.current;\n }\n\n _this.setState({\n status: status,\n current: current\n });\n };\n\n return _this;\n }\n\n var _proto = SwitchTransition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n };\n\n SwitchTransition.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n if (props.children == null) {\n return {\n current: null\n };\n }\n\n if (state.status === ENTERING && props.mode === modes.in) {\n return {\n status: ENTERING\n };\n }\n\n if (state.current && areChildrenDifferent(state.current, props.children)) {\n return {\n status: EXITING\n };\n }\n\n return {\n current: React.cloneElement(props.children, {\n in: true\n })\n };\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n mode = _this$props.mode,\n _this$state = this.state,\n status = _this$state.status,\n current = _this$state.current;\n var data = {\n children: children,\n current: current,\n changeState: this.changeState,\n status: status\n };\n var component;\n\n switch (status) {\n case ENTERING:\n component = enterRenders[mode](data);\n break;\n\n case EXITING:\n component = leaveRenders[mode](data);\n break;\n\n case ENTERED:\n component = current;\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: {\n isMounting: !this.appeared\n }\n }, component);\n };\n\n return SwitchTransition;\n}(React.Component);\n\nSwitchTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * Transition modes.\n * `out-in`: Current element transitions out first, then when complete, the new element transitions in.\n * `in-out`: New element transitions in first, then when complete, the current element transitions out.\n *\n * @type {'out-in'|'in-out'}\n */\n mode: PropTypes.oneOf([modes.in, modes.out]),\n\n /**\n * Any `Transition` or `CSSTransition` component.\n */\n children: PropTypes.oneOfType([PropTypes.element.isRequired])\n} : {};\nSwitchTransition.defaultProps = {\n mode: modes.out\n};\nexport default SwitchTransition;","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}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_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}\n\nfunction _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}\n\nfunction _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++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _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}\n\nexport { _arrayLikeToArray as arrayLikeToArray, _arrayWithHoles as arrayWithHoles, _defineProperty as defineProperty, _iterableToArrayLimit as iterableToArrayLimit, _nonIterableRest as nonIterableRest, _objectSpread2 as objectSpread2, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _slicedToArray as slicedToArray, _unsupportedIterableToArray as unsupportedIterableToArray };\n","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}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (x) {\n return fns.reduceRight(function (y, f) {\n return f(y);\n }, x);\n };\n}\n\nfunction curry(fn) {\n return function curried() {\n var _this = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return args.length >= fn.length ? fn.apply(this, args) : function () {\n for (var _len3 = arguments.length, nextArgs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n nextArgs[_key3] = arguments[_key3];\n }\n\n return curried.apply(_this, [].concat(args, nextArgs));\n };\n };\n}\n\nfunction isObject(value) {\n return {}.toString.call(value).includes('Object');\n}\n\nfunction isEmpty(obj) {\n return !Object.keys(obj).length;\n}\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nfunction hasOwnProperty(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n}\n\nfunction validateChanges(initial, changes) {\n if (!isObject(changes)) errorHandler('changeType');\n if (Object.keys(changes).some(function (field) {\n return !hasOwnProperty(initial, field);\n })) errorHandler('changeField');\n return changes;\n}\n\nfunction validateSelector(selector) {\n if (!isFunction(selector)) errorHandler('selectorType');\n}\n\nfunction validateHandler(handler) {\n if (!(isFunction(handler) || isObject(handler))) errorHandler('handlerType');\n if (isObject(handler) && Object.values(handler).some(function (_handler) {\n return !isFunction(_handler);\n })) errorHandler('handlersType');\n}\n\nfunction validateInitial(initial) {\n if (!initial) errorHandler('initialIsRequired');\n if (!isObject(initial)) errorHandler('initialType');\n if (isEmpty(initial)) errorHandler('initialContent');\n}\n\nfunction throwError(errorMessages, type) {\n throw new Error(errorMessages[type] || errorMessages[\"default\"]);\n}\n\nvar errorMessages = {\n initialIsRequired: 'initial state is required',\n initialType: 'initial state should be an object',\n initialContent: 'initial state shouldn\\'t be an empty object',\n handlerType: 'handler should be an object or a function',\n handlersType: 'all handlers should be a functions',\n selectorType: 'selector should be a function',\n changeType: 'provided value of changes should be an object',\n changeField: 'it seams you want to change a field in the state which is not specified in the \"initial\" state',\n \"default\": 'an unknown error accured in `state-local` package'\n};\nvar errorHandler = curry(throwError)(errorMessages);\nvar validators = {\n changes: validateChanges,\n selector: validateSelector,\n handler: validateHandler,\n initial: validateInitial\n};\n\nfunction create(initial) {\n var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n validators.initial(initial);\n validators.handler(handler);\n var state = {\n current: initial\n };\n var didUpdate = curry(didStateUpdate)(state, handler);\n var update = curry(updateState)(state);\n var validate = curry(validators.changes)(initial);\n var getChanges = curry(extractChanges)(state);\n\n function getState() {\n var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (state) {\n return state;\n };\n validators.selector(selector);\n return selector(state.current);\n }\n\n function setState(causedChanges) {\n compose(didUpdate, update, validate, getChanges)(causedChanges);\n }\n\n return [getState, setState];\n}\n\nfunction extractChanges(state, causedChanges) {\n return isFunction(causedChanges) ? causedChanges(state.current) : causedChanges;\n}\n\nfunction updateState(state, changes) {\n state.current = _objectSpread2(_objectSpread2({}, state.current), changes);\n return changes;\n}\n\nfunction didStateUpdate(state, handler, changes) {\n isFunction(handler) ? handler(state.current) : Object.keys(changes).forEach(function (field) {\n var _handler$field;\n\n return (_handler$field = handler[field]) === null || _handler$field === void 0 ? void 0 : _handler$field.call(handler, state.current[field]);\n });\n return changes;\n}\n\nvar index = {\n create: create\n};\n\nexport default index;\n","var config = {\n paths: {\n vs: 'https://cdn.jsdelivr.net/npm/monaco-editor@0.33.0/min/vs'\n }\n};\n\nexport default config;\n","function isObject(value) {\n return {}.toString.call(value).includes('Object');\n}\n\nexport default isObject;\n","import curry from '../utils/curry.js';\nimport isObject from '../utils/isObject.js';\n\n/**\n * validates the configuration object and informs about deprecation\n * @param {Object} config - the configuration object \n * @return {Object} config - the validated configuration object\n */\n\nfunction validateConfig(config) {\n if (!config) errorHandler('configIsRequired');\n if (!isObject(config)) errorHandler('configType');\n\n if (config.urls) {\n informAboutDeprecation();\n return {\n paths: {\n vs: config.urls.monacoBase\n }\n };\n }\n\n return config;\n}\n/**\n * logs deprecation message\n */\n\n\nfunction informAboutDeprecation() {\n console.warn(errorMessages.deprecation);\n}\n\nfunction throwError(errorMessages, type) {\n throw new Error(errorMessages[type] || errorMessages[\"default\"]);\n}\n\nvar errorMessages = {\n configIsRequired: 'the configuration object is required',\n configType: 'the configuration object should be an object',\n \"default\": 'an unknown error accured in `@monaco-editor/loader` package',\n deprecation: \"Deprecation warning!\\n You are using deprecated way of configuration.\\n\\n Instead of using\\n monaco.config({ urls: { monacoBase: '...' } })\\n use\\n monaco.config({ paths: { vs: '...' } })\\n\\n For more please check the link https://github.com/suren-atoyan/monaco-loader#config\\n \"\n};\nvar errorHandler = curry(throwError)(errorMessages);\nvar validators = {\n config: validateConfig\n};\n\nexport default validators;\nexport { errorHandler, errorMessages };\n","function curry(fn) {\n return function curried() {\n var _this = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args.length >= fn.length ? fn.apply(this, args) : function () {\n for (var _len2 = arguments.length, nextArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n nextArgs[_key2] = arguments[_key2];\n }\n\n return curried.apply(_this, [].concat(args, nextArgs));\n };\n };\n}\n\nexport default curry;\n","var compose = function compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (x) {\n return fns.reduceRight(function (y, f) {\n return f(y);\n }, x);\n };\n};\n\nexport default compose;\n","import { objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.js';\n\nfunction merge(target, source) {\n Object.keys(source).forEach(function (key) {\n if (source[key] instanceof Object) {\n if (target[key]) {\n Object.assign(source[key], merge(target[key], source[key]));\n }\n }\n });\n return _objectSpread2(_objectSpread2({}, target), source);\n}\n\nexport default merge;\n","// The source (has been changed) is https://github.com/facebook/react/issues/5465#issuecomment-157888325\nvar CANCELATION_MESSAGE = {\n type: 'cancelation',\n msg: 'operation is manually canceled'\n};\n\nfunction makeCancelable(promise) {\n var hasCanceled_ = false;\n var wrappedPromise = new Promise(function (resolve, reject) {\n promise.then(function (val) {\n return hasCanceled_ ? reject(CANCELATION_MESSAGE) : resolve(val);\n });\n promise[\"catch\"](reject);\n });\n return wrappedPromise.cancel = function () {\n return hasCanceled_ = true;\n }, wrappedPromise;\n}\n\nexport default makeCancelable;\nexport { CANCELATION_MESSAGE };\n","import { slicedToArray as _slicedToArray, objectWithoutProperties as _objectWithoutProperties } from '../_virtual/_rollupPluginBabelHelpers.js';\nimport state from 'state-local';\nimport config$1 from '../config/index.js';\nimport validators from '../validators/index.js';\nimport compose from '../utils/compose.js';\nimport merge from '../utils/deepMerge.js';\nimport makeCancelable from '../utils/makeCancelable.js';\n\n/** the local state of the module */\n\nvar _state$create = state.create({\n config: config$1,\n isInitialized: false,\n resolve: null,\n reject: null,\n monaco: null\n}),\n _state$create2 = _slicedToArray(_state$create, 2),\n getState = _state$create2[0],\n setState = _state$create2[1];\n/**\n * set the loader configuration\n * @param {Object} config - the configuration object\n */\n\n\nfunction config(globalConfig) {\n var _validators$config = validators.config(globalConfig),\n monaco = _validators$config.monaco,\n config = _objectWithoutProperties(_validators$config, [\"monaco\"]);\n\n setState(function (state) {\n return {\n config: merge(state.config, config),\n monaco: monaco\n };\n });\n}\n/**\n * handles the initialization of the monaco-editor\n * @return {Promise} - returns an instance of monaco (with a cancelable promise)\n */\n\n\nfunction init() {\n var state = getState(function (_ref) {\n var monaco = _ref.monaco,\n isInitialized = _ref.isInitialized,\n resolve = _ref.resolve;\n return {\n monaco: monaco,\n isInitialized: isInitialized,\n resolve: resolve\n };\n });\n\n if (!state.isInitialized) {\n setState({\n isInitialized: true\n });\n\n if (state.monaco) {\n state.resolve(state.monaco);\n return makeCancelable(wrapperPromise);\n }\n\n if (window.monaco && window.monaco.editor) {\n storeMonacoInstance(window.monaco);\n state.resolve(window.monaco);\n return makeCancelable(wrapperPromise);\n }\n\n compose(injectScripts, getMonacoLoaderScript)(configureLoader);\n }\n\n return makeCancelable(wrapperPromise);\n}\n/**\n * injects provided scripts into the document.body\n * @param {Object} script - an HTML script element\n * @return {Object} - the injected HTML script element\n */\n\n\nfunction injectScripts(script) {\n return document.body.appendChild(script);\n}\n/**\n * creates an HTML script element with/without provided src\n * @param {string} [src] - the source path of the script\n * @return {Object} - the created HTML script element\n */\n\n\nfunction createScript(src) {\n var script = document.createElement('script');\n return src && (script.src = src), script;\n}\n/**\n * creates an HTML script element with the monaco loader src\n * @return {Object} - the created HTML script element\n */\n\n\nfunction getMonacoLoaderScript(configureLoader) {\n var state = getState(function (_ref2) {\n var config = _ref2.config,\n reject = _ref2.reject;\n return {\n config: config,\n reject: reject\n };\n });\n var loaderScript = createScript(\"\".concat(state.config.paths.vs, \"/loader.js\"));\n\n loaderScript.onload = function () {\n return configureLoader();\n };\n\n loaderScript.onerror = state.reject;\n return loaderScript;\n}\n/**\n * configures the monaco loader\n */\n\n\nfunction configureLoader() {\n var state = getState(function (_ref3) {\n var config = _ref3.config,\n resolve = _ref3.resolve,\n reject = _ref3.reject;\n return {\n config: config,\n resolve: resolve,\n reject: reject\n };\n });\n var require = window.require;\n\n require.config(state.config);\n\n require(['vs/editor/editor.main'], function (monaco) {\n storeMonacoInstance(monaco);\n state.resolve(monaco);\n }, function (error) {\n state.reject(error);\n });\n}\n/**\n * store monaco instance in local state\n */\n\n\nfunction storeMonacoInstance(monaco) {\n if (!getState().monaco) {\n setState({\n monaco: monaco\n });\n }\n}\n/**\n * internal helper function\n * extracts stored monaco instance\n * @return {Object|null} - the monaco instance\n */\n\n\nfunction __getMonacoInstance() {\n return getState(function (_ref4) {\n var monaco = _ref4.monaco;\n return monaco;\n });\n}\n\nvar wrapperPromise = new Promise(function (resolve, reject) {\n return setState({\n resolve: resolve,\n reject: reject\n });\n});\nvar loader = {\n config: config,\n init: init,\n __getMonacoInstance: __getMonacoInstance\n};\n\nexport default loader;\n","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nexport { _extends as extends };\n","import React from 'react';\n\nconst loadingStyles = {\n display: 'flex',\n height: '100%',\n width: '100%',\n justifyContent: 'center',\n alignItems: 'center'\n};\n\nfunction Loading({\n content\n}) {\n return /*#__PURE__*/React.createElement(\"div\", {\n style: loadingStyles\n }, content);\n}\n\nexport default Loading;\n","const styles = {\n wrapper: {\n display: 'flex',\n position: 'relative',\n textAlign: 'initial'\n },\n fullWidth: {\n width: '100%'\n },\n hide: {\n display: 'none'\n }\n};\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { extends as _extends } from '../_virtual/_rollupPluginBabelHelpers.js';\nimport Loading from '../Loading/Loading.js';\nimport styles from './styles.js';\n\n// one of the reasons why we use a separate prop for passing ref instead of using forwardref\n\nfunction MonacoContainer({\n width,\n height,\n isEditorReady,\n loading,\n _ref,\n className,\n wrapperProps\n}) {\n return /*#__PURE__*/React.createElement(\"section\", _extends({\n style: { ...styles.wrapper,\n width,\n height\n }\n }, wrapperProps), !isEditorReady && /*#__PURE__*/React.createElement(Loading, {\n content: loading\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: _ref,\n style: { ...styles.fullWidth,\n ...(!isEditorReady && styles.hide)\n },\n className: className\n }));\n}\n\nMonacoContainer.propTypes = {\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n loading: PropTypes.oneOfType([PropTypes.element, PropTypes.string]).isRequired,\n isEditorReady: PropTypes.bool.isRequired,\n className: PropTypes.string,\n wrapperProps: PropTypes.object\n};\n\nexport default MonacoContainer;\n","import { memo } from 'react';\nimport MonacoContainer$1 from './MonacoContainer.js';\n\nvar MonacoContainer = /*#__PURE__*/memo(MonacoContainer$1);\n\nexport default MonacoContainer;\n","import { useEffect } from 'react';\n\nfunction useMount(effect) {\n useEffect(effect, []);\n}\n\nexport default useMount;\n","import { useRef, useEffect } from 'react';\n\nfunction useUpdate(effect, deps, applyChanges = true) {\n const isInitialMount = useRef(true);\n useEffect(isInitialMount.current || !applyChanges ? () => {\n isInitialMount.current = false;\n } : effect, deps);\n}\n\nexport default useUpdate;\n","function noop() {}\n\nfunction getOrCreateModel(monaco, value, language, path) {\n return getModel(monaco, path) || createModel(monaco, value, language, path);\n}\n\nfunction getModel(monaco, path) {\n return monaco.editor.getModel(createModelUri(monaco, path));\n}\n\nfunction createModel(monaco, value, language, path) {\n return monaco.editor.createModel(value, language, path && createModelUri(monaco, path));\n}\n\nfunction createModelUri(monaco, path) {\n return monaco.Uri.parse(path);\n}\n\nfunction isUndefined(input) {\n return input === undefined;\n}\n\nexport { getOrCreateModel, isUndefined, noop };\n","import loader from '@monaco-editor/loader';\nimport React, { useState, useRef, useCallback, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport MonacoContainer from '../MonacoContainer/index.js';\nimport useMount from '../hooks/useMount/index.js';\nimport useUpdate from '../hooks/useUpdate/index.js';\nimport { getOrCreateModel, noop } from '../utils/index.js';\n\nfunction DiffEditor({\n original,\n modified,\n language,\n originalLanguage,\n modifiedLanguage,\n\n /* === */\n originalModelPath,\n modifiedModelPath,\n keepCurrentOriginalModel,\n keepCurrentModifiedModel,\n theme,\n loading,\n options,\n\n /* === */\n height,\n width,\n className,\n wrapperProps,\n\n /* === */\n beforeMount,\n onMount\n}) {\n const [isEditorReady, setIsEditorReady] = useState(false);\n const [isMonacoMounting, setIsMonacoMounting] = useState(true);\n const editorRef = useRef(null);\n const monacoRef = useRef(null);\n const containerRef = useRef(null);\n const onMountRef = useRef(onMount);\n const beforeMountRef = useRef(beforeMount);\n useMount(() => {\n const cancelable = loader.init();\n cancelable.then(monaco => (monacoRef.current = monaco) && setIsMonacoMounting(false)).catch(error => (error === null || error === void 0 ? void 0 : error.type) !== 'cancelation' && console.error('Monaco initialization: error:', error));\n return () => editorRef.current ? disposeEditor() : cancelable.cancel();\n });\n useUpdate(() => {\n const modifiedEditor = editorRef.current.getModifiedEditor();\n\n if (modifiedEditor.getOption(monacoRef.current.editor.EditorOption.readOnly)) {\n modifiedEditor.setValue(modified);\n } else {\n if (modified !== modifiedEditor.getValue()) {\n modifiedEditor.executeEdits('', [{\n range: modifiedEditor.getModel().getFullModelRange(),\n text: modified,\n forceMoveMarkers: true\n }]);\n modifiedEditor.pushUndoStop();\n }\n }\n }, [modified], isEditorReady);\n useUpdate(() => {\n editorRef.current.getModel().original.setValue(original);\n }, [original], isEditorReady);\n useUpdate(() => {\n const {\n original,\n modified\n } = editorRef.current.getModel();\n monacoRef.current.editor.setModelLanguage(original, originalLanguage || language);\n monacoRef.current.editor.setModelLanguage(modified, modifiedLanguage || language);\n }, [language, originalLanguage, modifiedLanguage], isEditorReady);\n useUpdate(() => {\n monacoRef.current.editor.setTheme(theme);\n }, [theme], isEditorReady);\n useUpdate(() => {\n editorRef.current.updateOptions(options);\n }, [options], isEditorReady);\n const setModels = useCallback(() => {\n beforeMountRef.current(monacoRef.current);\n const originalModel = getOrCreateModel(monacoRef.current, original, originalLanguage || language, originalModelPath);\n const modifiedModel = getOrCreateModel(monacoRef.current, modified, modifiedLanguage || language, modifiedModelPath);\n editorRef.current.setModel({\n original: originalModel,\n modified: modifiedModel\n });\n }, [language, modified, modifiedLanguage, original, originalLanguage, originalModelPath, modifiedModelPath]);\n const createEditor = useCallback(() => {\n editorRef.current = monacoRef.current.editor.createDiffEditor(containerRef.current, {\n automaticLayout: true,\n ...options\n });\n setModels();\n monacoRef.current.editor.setTheme(theme);\n setIsEditorReady(true);\n }, [options, theme, setModels]);\n useEffect(() => {\n if (isEditorReady) {\n onMountRef.current(editorRef.current, monacoRef.current);\n }\n }, [isEditorReady]);\n useEffect(() => {\n !isMonacoMounting && !isEditorReady && createEditor();\n }, [isMonacoMounting, isEditorReady, createEditor]);\n\n function disposeEditor() {\n const models = editorRef.current.getModel();\n\n if (!keepCurrentOriginalModel) {\n var _models$original;\n\n (_models$original = models.original) === null || _models$original === void 0 ? void 0 : _models$original.dispose();\n }\n\n if (!keepCurrentModifiedModel) {\n var _models$modified;\n\n (_models$modified = models.modified) === null || _models$modified === void 0 ? void 0 : _models$modified.dispose();\n }\n\n editorRef.current.dispose();\n }\n\n return /*#__PURE__*/React.createElement(MonacoContainer, {\n width: width,\n height: height,\n isEditorReady: isEditorReady,\n loading: loading,\n _ref: containerRef,\n className: className,\n wrapperProps: wrapperProps\n });\n}\n\nDiffEditor.propTypes = {\n original: PropTypes.string,\n modified: PropTypes.string,\n language: PropTypes.string,\n originalLanguage: PropTypes.string,\n modifiedLanguage: PropTypes.string,\n\n /* === */\n originalModelPath: PropTypes.string,\n modifiedModelPath: PropTypes.string,\n keepCurrentOriginalModel: PropTypes.bool,\n keepCurrentModifiedModel: PropTypes.bool,\n theme: PropTypes.string,\n loading: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\n options: PropTypes.object,\n\n /* === */\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n className: PropTypes.string,\n wrapperProps: PropTypes.object,\n\n /* === */\n beforeMount: PropTypes.func,\n onMount: PropTypes.func\n};\nDiffEditor.defaultProps = {\n theme: 'light',\n loading: 'Loading...',\n options: {},\n keepCurrentOriginalModel: false,\n keepCurrentModifiedModel: false,\n\n /* === */\n width: '100%',\n height: '100%',\n wrapperProps: {},\n\n /* === */\n beforeMount: noop,\n onMount: noop\n};\n\nexport default DiffEditor;\n","import { useRef, useEffect } from 'react';\n\nfunction usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nexport default usePrevious;\n","import loader from '@monaco-editor/loader';\nimport React, { useState, useRef, useCallback, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport MonacoContainer from '../MonacoContainer/index.js';\nimport useMount from '../hooks/useMount/index.js';\nimport useUpdate from '../hooks/useUpdate/index.js';\nimport { getOrCreateModel, noop, isUndefined } from '../utils/index.js';\nimport usePrevious from '../hooks/usePrevious/index.js';\n\nconst viewStates = new Map();\n\nfunction Editor({\n defaultValue,\n defaultLanguage,\n defaultPath,\n value,\n language,\n path,\n\n /* === */\n theme,\n line,\n loading,\n options,\n overrideServices,\n saveViewState,\n keepCurrentModel,\n\n /* === */\n width,\n height,\n className,\n wrapperProps,\n\n /* === */\n beforeMount,\n onMount,\n onChange,\n onValidate\n}) {\n const [isEditorReady, setIsEditorReady] = useState(false);\n const [isMonacoMounting, setIsMonacoMounting] = useState(true);\n const monacoRef = useRef(null);\n const editorRef = useRef(null);\n const containerRef = useRef(null);\n const onMountRef = useRef(onMount);\n const beforeMountRef = useRef(beforeMount);\n const subscriptionRef = useRef(null);\n const valueRef = useRef(value);\n const previousPath = usePrevious(path);\n useMount(() => {\n const cancelable = loader.init();\n cancelable.then(monaco => (monacoRef.current = monaco) && setIsMonacoMounting(false)).catch(error => (error === null || error === void 0 ? void 0 : error.type) !== 'cancelation' && console.error('Monaco initialization: error:', error));\n return () => editorRef.current ? disposeEditor() : cancelable.cancel();\n });\n useUpdate(() => {\n const model = getOrCreateModel(monacoRef.current, defaultValue || value, defaultLanguage || language, path);\n\n if (model !== editorRef.current.getModel()) {\n saveViewState && viewStates.set(previousPath, editorRef.current.saveViewState());\n editorRef.current.setModel(model);\n saveViewState && editorRef.current.restoreViewState(viewStates.get(path));\n }\n }, [path], isEditorReady);\n useUpdate(() => {\n editorRef.current.updateOptions(options);\n }, [options], isEditorReady);\n useUpdate(() => {\n if (editorRef.current.getOption(monacoRef.current.editor.EditorOption.readOnly)) {\n editorRef.current.setValue(value);\n } else {\n if (value !== editorRef.current.getValue()) {\n editorRef.current.executeEdits('', [{\n range: editorRef.current.getModel().getFullModelRange(),\n text: value,\n forceMoveMarkers: true\n }]);\n editorRef.current.pushUndoStop();\n }\n }\n }, [value], isEditorReady);\n useUpdate(() => {\n monacoRef.current.editor.setModelLanguage(editorRef.current.getModel(), language);\n }, [language], isEditorReady);\n useUpdate(() => {\n // reason for undefined check: https://github.com/suren-atoyan/monaco-react/pull/188\n if (!isUndefined(line)) {\n editorRef.current.revealLine(line);\n }\n }, [line], isEditorReady);\n useUpdate(() => {\n monacoRef.current.editor.setTheme(theme);\n }, [theme], isEditorReady);\n const createEditor = useCallback(() => {\n beforeMountRef.current(monacoRef.current);\n const autoCreatedModelPath = path || defaultPath;\n const defaultModel = getOrCreateModel(monacoRef.current, value || defaultValue, defaultLanguage || language, autoCreatedModelPath);\n editorRef.current = monacoRef.current.editor.create(containerRef.current, {\n model: defaultModel,\n automaticLayout: true,\n ...options\n }, overrideServices);\n saveViewState && editorRef.current.restoreViewState(viewStates.get(autoCreatedModelPath));\n monacoRef.current.editor.setTheme(theme);\n setIsEditorReady(true);\n }, [defaultValue, defaultLanguage, defaultPath, value, language, path, options, overrideServices, saveViewState, theme]);\n useEffect(() => {\n if (isEditorReady) {\n onMountRef.current(editorRef.current, monacoRef.current);\n }\n }, [isEditorReady]);\n useEffect(() => {\n !isMonacoMounting && !isEditorReady && createEditor();\n }, [isMonacoMounting, isEditorReady, createEditor]); // subscription\n // to avoid unnecessary updates (attach - dispose listener) in subscription\n\n valueRef.current = value;\n useEffect(() => {\n if (isEditorReady && onChange) {\n var _subscriptionRef$curr, _editorRef$current;\n\n (_subscriptionRef$curr = subscriptionRef.current) === null || _subscriptionRef$curr === void 0 ? void 0 : _subscriptionRef$curr.dispose();\n subscriptionRef.current = (_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 ? void 0 : _editorRef$current.onDidChangeModelContent(event => {\n const editorValue = editorRef.current.getValue();\n\n if (valueRef.current !== editorValue) {\n onChange(editorValue, event);\n }\n });\n }\n }, [isEditorReady, onChange]); // onValidate\n\n useEffect(() => {\n if (isEditorReady) {\n const changeMarkersListener = monacoRef.current.editor.onDidChangeMarkers(uris => {\n var _editorRef$current$ge;\n\n const editorUri = (_editorRef$current$ge = editorRef.current.getModel()) === null || _editorRef$current$ge === void 0 ? void 0 : _editorRef$current$ge.uri;\n\n if (editorUri) {\n const currentEditorHasMarkerChanges = uris.find(uri => uri.path === editorUri.path);\n\n if (currentEditorHasMarkerChanges) {\n const markers = monacoRef.current.editor.getModelMarkers({\n resource: editorUri\n });\n onValidate === null || onValidate === void 0 ? void 0 : onValidate(markers);\n }\n }\n });\n return () => {\n changeMarkersListener === null || changeMarkersListener === void 0 ? void 0 : changeMarkersListener.dispose();\n };\n }\n }, [isEditorReady, onValidate]);\n\n function disposeEditor() {\n var _subscriptionRef$curr2;\n\n (_subscriptionRef$curr2 = subscriptionRef.current) === null || _subscriptionRef$curr2 === void 0 ? void 0 : _subscriptionRef$curr2.dispose();\n\n if (keepCurrentModel) {\n saveViewState && viewStates.set(path, editorRef.current.saveViewState());\n } else {\n var _editorRef$current$ge2;\n\n (_editorRef$current$ge2 = editorRef.current.getModel()) === null || _editorRef$current$ge2 === void 0 ? void 0 : _editorRef$current$ge2.dispose();\n }\n\n editorRef.current.dispose();\n }\n\n return /*#__PURE__*/React.createElement(MonacoContainer, {\n width: width,\n height: height,\n isEditorReady: isEditorReady,\n loading: loading,\n _ref: containerRef,\n className: className,\n wrapperProps: wrapperProps\n });\n}\n\nEditor.propTypes = {\n defaultValue: PropTypes.string,\n defaultPath: PropTypes.string,\n defaultLanguage: PropTypes.string,\n value: PropTypes.string,\n language: PropTypes.string,\n path: PropTypes.string,\n\n /* === */\n theme: PropTypes.string,\n line: PropTypes.number,\n loading: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\n options: PropTypes.object,\n overrideServices: PropTypes.object,\n saveViewState: PropTypes.bool,\n keepCurrentModel: PropTypes.bool,\n\n /* === */\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n className: PropTypes.string,\n wrapperProps: PropTypes.object,\n\n /* === */\n beforeMount: PropTypes.func,\n onMount: PropTypes.func,\n onChange: PropTypes.func,\n onValidate: PropTypes.func\n};\nEditor.defaultProps = {\n theme: 'light',\n loading: 'Loading...',\n options: {},\n overrideServices: {},\n saveViewState: true,\n keepCurrentModel: false,\n\n /* === */\n width: '100%',\n height: '100%',\n wrapperProps: {},\n\n /* === */\n beforeMount: noop,\n onMount: noop,\n onValidate: noop\n};\n\nexport default Editor;\n","import { memo } from 'react';\nimport Editor from './Editor.js';\n\nvar index = /*#__PURE__*/memo(Editor);\n\nexport default index;\n","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}","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","export default function setRafTimeout(callback) {\n var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var currTime = -1;\n\n var shouldUpdate = function shouldUpdate(now) {\n if (currTime < 0) {\n currTime = now;\n }\n\n if (now - currTime > timeout) {\n callback(now);\n currTime = -1;\n } else {\n requestAnimationFrame(shouldUpdate);\n }\n };\n\n requestAnimationFrame(shouldUpdate);\n}","function _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\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _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 _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport setRafTimeout from './setRafTimeout';\nexport default function createAnimateManager() {\n var currStyle = {};\n\n var handleChange = function handleChange() {\n return null;\n };\n\n var shouldStop = false;\n\n var setStyle = function setStyle(_style) {\n if (shouldStop) {\n return;\n }\n\n if (Array.isArray(_style)) {\n if (!_style.length) {\n return;\n }\n\n var styles = _style;\n\n var _styles = _toArray(styles),\n curr = _styles[0],\n restStyles = _styles.slice(1);\n\n if (typeof curr === 'number') {\n setRafTimeout(setStyle.bind(null, restStyles), curr);\n return;\n }\n\n setStyle(curr);\n setRafTimeout(setStyle.bind(null, restStyles));\n return;\n }\n\n if (_typeof(_style) === 'object') {\n currStyle = _style;\n handleChange(currStyle);\n }\n\n if (typeof _style === 'function') {\n _style();\n }\n };\n\n return {\n stop: function stop() {\n shouldStop = true;\n },\n start: function start(style) {\n shouldStop = false;\n setStyle(style);\n },\n subscribe: function subscribe(_handleChange) {\n handleChange = _handleChange;\n return function () {\n handleChange = function handleChange() {\n return null;\n };\n };\n }\n };\n}","function 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\n/* eslint no-console: 0 */\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nvar IN_LINE_PREFIX_LIST = ['-webkit-', '-moz-', '-o-', '-ms-'];\nvar IN_COMPATIBLE_PROPERTY = ['transform', 'transformOrigin', 'transition'];\nexport var getIntersectionKeys = function getIntersectionKeys(preObj, nextObj) {\n return [Object.keys(preObj), Object.keys(nextObj)].reduce(function (a, b) {\n return a.filter(function (c) {\n return b.includes(c);\n });\n });\n};\nexport var identity = function identity(param) {\n return param;\n};\n/*\n * @description: convert camel case to dash case\n * string => string\n */\n\nexport var getDashCase = function getDashCase(name) {\n return name.replace(/([A-Z])/g, function (v) {\n return \"-\".concat(v.toLowerCase());\n });\n};\n/*\n * @description: add compatible style prefix\n * (string, string) => object\n */\n\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (IN_COMPATIBLE_PROPERTY.indexOf(name) === -1) {\n return _defineProperty({}, name, value);\n }\n\n var isTransition = name === 'transition';\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var styleVal = value;\n return PREFIX_LIST.reduce(function (result, property, i) {\n if (isTransition) {\n styleVal = value.replace(/(transform|transform-origin)/gim, \"\".concat(IN_LINE_PREFIX_LIST[i], \"$1\"));\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, property + camelName, styleVal));\n }, {});\n};\nexport var log = function log() {\n var _console;\n\n (_console = console).log.apply(_console, arguments);\n};\n/*\n * @description: log the value of a varible\n * string => any => any\n */\n\nexport var debug = function debug(name) {\n return function (item) {\n log(name, item);\n return item;\n };\n};\n/*\n * @description: log name, args, return value of a function\n * function => function\n */\n\nexport var debugf = function debugf(tag, f) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var res = f.apply(void 0, args);\n var name = tag || f.name || 'anonymous function';\n var argNames = \"(\".concat(args.map(JSON.stringify).join(', '), \")\");\n log(\"\".concat(name, \": \").concat(argNames, \" => \").concat(JSON.stringify(res)));\n return res;\n };\n};\n/*\n * @description: map object on every element in this object.\n * (function, object) => object\n */\n\nexport var mapObject = function mapObject(fn, obj) {\n return Object.keys(obj).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, fn(key, obj[key])));\n }, {});\n};\n/*\n * @description: add compatible prefix to style\n * object => object\n */\n\nexport var translateStyle = function translateStyle(style) {\n return Object.keys(style).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), generatePrefixStyle(key, res[key]));\n }, style);\n};\nexport var compose = function compose() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var getTransitionVal = function getTransitionVal(props, duration, easing) {\n return props.map(function (prop) {\n return \"\".concat(getDashCase(prop), \" \").concat(duration, \"ms \").concat(easing);\n }).join(',');\n};\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format, a, b, c, d, e, f) {\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","function _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 _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\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 _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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\nimport { warn } from './util';\nvar ACCURACY = 1e-4;\n\nvar cubicBezierFactor = function cubicBezierFactor(c1, c2) {\n return [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];\n};\n\nvar multyTime = function multyTime(params, t) {\n return params.map(function (param, i) {\n return param * Math.pow(t, i);\n }).reduce(function (pre, curr) {\n return pre + curr;\n });\n};\n\nvar cubicBezier = function cubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n return multyTime(params, t);\n };\n};\n\nvar derivativeCubicBezier = function derivativeCubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n var newParams = [].concat(_toConsumableArray(params.map(function (param, i) {\n return param * i;\n }).slice(1)), [0]);\n return multyTime(newParams, t);\n };\n}; // calculate cubic-bezier using Newton's method\n\n\nexport var configBezier = function configBezier() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var x1 = args[0],\n y1 = args[1],\n x2 = args[2],\n y2 = args[3];\n\n if (args.length === 1) {\n switch (args[0]) {\n case 'linear':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n\n case 'ease':\n x1 = 0.25;\n y1 = 0.1;\n x2 = 0.25;\n y2 = 1.0;\n break;\n\n case 'ease-in':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n\n case 'ease-out':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n\n case 'ease-in-out':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n\n default:\n {\n var easing = args[0].split('(');\n\n if (easing[0] === 'cubic-bezier' && easing[1].split(')')[0].split(',').length === 4) {\n var _easing$1$split$0$spl = easing[1].split(')')[0].split(',').map(function (x) {\n return parseFloat(x);\n });\n\n var _easing$1$split$0$spl2 = _slicedToArray(_easing$1$split$0$spl, 4);\n\n x1 = _easing$1$split$0$spl2[0];\n y1 = _easing$1$split$0$spl2[1];\n x2 = _easing$1$split$0$spl2[2];\n y2 = _easing$1$split$0$spl2[3];\n } else {\n warn(false, '[configBezier]: arguments should be one of ' + 'oneOf \\'linear\\', \\'ease\\', \\'ease-in\\', \\'ease-out\\', ' + '\\'ease-in-out\\',\\'cubic-bezier(x1,y1,x2,y2)\\', instead received %s', args);\n }\n }\n }\n }\n\n warn([x1, x2, y1, y2].every(function (num) {\n return typeof num === 'number' && num >= 0 && num <= 1;\n }), '[configBezier]: arguments should be x1, y1, x2, y2 of [0, 1] instead received %s', args);\n var curveX = cubicBezier(x1, x2);\n var curveY = cubicBezier(y1, y2);\n var derCurveX = derivativeCubicBezier(x1, x2);\n\n var rangeValue = function rangeValue(value) {\n if (value > 1) {\n return 1;\n } else if (value < 0) {\n return 0;\n }\n\n return value;\n };\n\n var bezier = function bezier(_t) {\n var t = _t > 1 ? 1 : _t;\n var x = t;\n\n for (var i = 0; i < 8; ++i) {\n var evalT = curveX(x) - t;\n var derVal = derCurveX(x);\n\n if (Math.abs(evalT - t) < ACCURACY || derVal < ACCURACY) {\n return curveY(x);\n }\n\n x = rangeValue(x - evalT / derVal);\n }\n\n return curveY(x);\n };\n\n bezier.isStepper = false;\n return bezier;\n};\nexport var configSpring = function configSpring() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _config$stiff = config.stiff,\n stiff = _config$stiff === void 0 ? 100 : _config$stiff,\n _config$damping = config.damping,\n damping = _config$damping === void 0 ? 8 : _config$damping,\n _config$dt = config.dt,\n dt = _config$dt === void 0 ? 17 : _config$dt;\n\n var stepper = function stepper(currX, destX, currV) {\n var FSpring = -(currX - destX) * stiff;\n var FDamping = currV * damping;\n var newV = currV + (FSpring - FDamping) * dt / 1000;\n var newX = currV * dt / 1000 + currX;\n\n if (Math.abs(newX - destX) < ACCURACY && Math.abs(newV) < ACCURACY) {\n return [destX, 0];\n }\n\n return [newX, newV];\n };\n\n stepper.isStepper = true;\n stepper.dt = dt;\n return stepper;\n};\nexport var configEasing = function configEasing() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var easing = args[0];\n\n if (typeof easing === 'string') {\n switch (easing) {\n case 'ease':\n case 'ease-in-out':\n case 'ease-out':\n case 'ease-in':\n case 'linear':\n return configBezier(easing);\n\n case 'spring':\n return configSpring();\n\n default:\n if (easing.split('(')[0] === 'cubic-bezier') {\n return configBezier(easing);\n }\n\n warn(false, '[configEasing]: first argument should be one of \\'ease\\', \\'ease-in\\', ' + '\\'ease-out\\', \\'ease-in-out\\',\\'cubic-bezier(x1,y1,x2,y2)\\', \\'linear\\' and \\'spring\\', instead received %s', args);\n }\n }\n\n if (typeof easing === 'function') {\n return easing;\n }\n\n warn(false, '[configEasing]: first argument type should be function or ' + 'string, instead received %s', args);\n return null;\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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 _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) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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\nimport { getIntersectionKeys, mapObject } from './util';\n\nvar alpha = function alpha(begin, end, k) {\n return begin + (end - begin) * k;\n};\n\nvar needContinue = function needContinue(_ref) {\n var from = _ref.from,\n to = _ref.to;\n return from !== to;\n};\n/*\n * @description: cal new from value and velocity in each stepper\n * @return: { [styleProperty]: { from, to, velocity } }\n */\n\n\nvar calStepperVals = function calStepperVals(easing, preVals, steps) {\n var nextStepVals = mapObject(function (key, val) {\n if (needContinue(val)) {\n var _easing = easing(val.from, val.to, val.velocity),\n _easing2 = _slicedToArray(_easing, 2),\n newX = _easing2[0],\n newV = _easing2[1];\n\n return _objectSpread(_objectSpread({}, val), {}, {\n from: newX,\n velocity: newV\n });\n }\n\n return val;\n }, preVals);\n\n if (steps < 1) {\n return mapObject(function (key, val) {\n if (needContinue(val)) {\n return _objectSpread(_objectSpread({}, val), {}, {\n velocity: alpha(val.velocity, nextStepVals[key].velocity, steps),\n from: alpha(val.from, nextStepVals[key].from, steps)\n });\n }\n\n return val;\n }, preVals);\n }\n\n return calStepperVals(easing, nextStepVals, steps - 1);\n}; // configure update function\n\n\nexport default (function (from, to, easing, duration, render) {\n var interKeys = getIntersectionKeys(from, to);\n var timingStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, [from[key], to[key]]));\n }, {});\n var stepperStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, {\n from: from[key],\n velocity: 0,\n to: to[key]\n }));\n }, {});\n var cafId = -1;\n var preTime;\n var beginTime;\n\n var update = function update() {\n return null;\n };\n\n var getCurrStyle = function getCurrStyle() {\n return mapObject(function (key, val) {\n return val.from;\n }, stepperStyle);\n };\n\n var shouldStopAnimation = function shouldStopAnimation() {\n return !Object.values(stepperStyle).filter(needContinue).length;\n }; // stepper timing function like spring\n\n\n var stepperUpdate = function stepperUpdate(now) {\n if (!preTime) {\n preTime = now;\n }\n\n var deltaTime = now - preTime;\n var steps = deltaTime / easing.dt;\n stepperStyle = calStepperVals(easing, stepperStyle, steps); // get union set and add compatible prefix\n\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), getCurrStyle(stepperStyle)));\n preTime = now;\n\n if (!shouldStopAnimation()) {\n cafId = requestAnimationFrame(update);\n }\n }; // t => val timing function like cubic-bezier\n\n\n var timingUpdate = function timingUpdate(now) {\n if (!beginTime) {\n beginTime = now;\n }\n\n var t = (now - beginTime) / duration;\n var currStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(t)]));\n }, timingStyle); // get union set and add compatible prefix\n\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), currStyle));\n\n if (t < 1) {\n cafId = requestAnimationFrame(update);\n } else {\n var finalStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(1)]));\n }, timingStyle);\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), finalStyle));\n }\n };\n\n update = easing.isStepper ? stepperUpdate : timingUpdate; // return start animation method\n\n return function () {\n requestAnimationFrame(update); // return stop animation method\n\n return function () {\n cancelAnimationFrame(cafId);\n };\n };\n});","function _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\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\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\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 _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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 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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React, { PureComponent, cloneElement, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport { deepEqual } from 'fast-equals';\nimport createAnimateManager from './AnimateManager';\nimport { configEasing } from './easing';\nimport configUpdate from './configUpdate';\nimport { getTransitionVal, identity, translateStyle } from './util';\n\nvar Animate = /*#__PURE__*/function (_PureComponent) {\n _inherits(Animate, _PureComponent);\n\n var _super = _createSuper(Animate);\n\n function Animate(props, context) {\n var _this;\n\n _classCallCheck(this, Animate);\n\n _this = _super.call(this, props, context);\n var _this$props = _this.props,\n isActive = _this$props.isActive,\n attributeName = _this$props.attributeName,\n from = _this$props.from,\n to = _this$props.to,\n steps = _this$props.steps,\n children = _this$props.children;\n _this.handleStyleChange = _this.handleStyleChange.bind(_assertThisInitialized(_this));\n _this.changeStyle = _this.changeStyle.bind(_assertThisInitialized(_this));\n\n if (!isActive) {\n _this.state = {\n style: {}\n }; // if children is a function and animation is not active, set style to 'to'\n\n if (typeof children === 'function') {\n _this.state = {\n style: to\n };\n }\n\n return _possibleConstructorReturn(_this);\n }\n\n if (steps && steps.length) {\n _this.state = {\n style: steps[0].style\n };\n } else if (from) {\n if (typeof children === 'function') {\n _this.state = {\n style: from\n };\n return _possibleConstructorReturn(_this);\n }\n\n _this.state = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n } else {\n _this.state = {\n style: {}\n };\n }\n\n return _this;\n }\n\n _createClass(Animate, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props2 = this.props,\n isActive = _this$props2.isActive,\n canBegin = _this$props2.canBegin;\n this.mounted = true;\n\n if (!isActive || !canBegin) {\n return;\n }\n\n this.runAnimation(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props3 = this.props,\n isActive = _this$props3.isActive,\n canBegin = _this$props3.canBegin,\n attributeName = _this$props3.attributeName,\n shouldReAnimate = _this$props3.shouldReAnimate;\n\n if (!canBegin) {\n return;\n }\n\n if (!isActive) {\n var newState = {\n style: attributeName ? _defineProperty({}, attributeName, this.props.to) : this.props.to\n };\n\n if (this.state && this.state.style) {\n if (attributeName && this.state.style[attributeName] !== this.props.to || !attributeName && this.state.style !== this.props.to) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(newState);\n }\n }\n\n return;\n }\n\n if (deepEqual(prevProps.to, this.props.to) && prevProps.canBegin && prevProps.isActive) {\n return;\n }\n\n var isTriggered = !prevProps.canBegin || !prevProps.isActive;\n\n if (this.manager) {\n this.manager.stop();\n }\n\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n\n var from = isTriggered || shouldReAnimate ? this.props.from : prevProps.to;\n\n if (this.state && this.state.style) {\n var _newState = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n\n if (attributeName && this.state.style[attributeName] !== from || !attributeName && this.state.style !== from) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(_newState);\n }\n }\n\n this.runAnimation(_objectSpread(_objectSpread({}, this.props), {}, {\n from: from,\n begin: 0\n }));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n\n if (this.unSubscribe) {\n this.unSubscribe();\n }\n\n if (this.manager) {\n this.manager.stop();\n this.manager = null;\n }\n\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n }\n }, {\n key: \"runJSAnimation\",\n value: function runJSAnimation(props) {\n var _this2 = this;\n\n var from = props.from,\n to = props.to,\n duration = props.duration,\n easing = props.easing,\n begin = props.begin,\n onAnimationEnd = props.onAnimationEnd,\n onAnimationStart = props.onAnimationStart;\n var startAnimation = configUpdate(from, to, configEasing(easing), duration, this.changeStyle);\n\n var finalStartAnimation = function finalStartAnimation() {\n _this2.stopJSAnimation = startAnimation();\n };\n\n this.manager.start([onAnimationStart, begin, finalStartAnimation, duration, onAnimationEnd]);\n }\n }, {\n key: \"runStepAnimation\",\n value: function runStepAnimation(props) {\n var _this3 = this;\n\n var steps = props.steps,\n begin = props.begin,\n onAnimationStart = props.onAnimationStart;\n var _steps$ = steps[0],\n initialStyle = _steps$.style,\n _steps$$duration = _steps$.duration,\n initialTime = _steps$$duration === void 0 ? 0 : _steps$$duration;\n\n var addStyle = function addStyle(sequence, nextItem, index) {\n if (index === 0) {\n return sequence;\n }\n\n var duration = nextItem.duration,\n _nextItem$easing = nextItem.easing,\n easing = _nextItem$easing === void 0 ? 'ease' : _nextItem$easing,\n style = nextItem.style,\n nextProperties = nextItem.properties,\n onAnimationEnd = nextItem.onAnimationEnd;\n var preItem = index > 0 ? steps[index - 1] : nextItem;\n var properties = nextProperties || Object.keys(style);\n\n if (typeof easing === 'function' || easing === 'spring') {\n return [].concat(_toConsumableArray(sequence), [_this3.runJSAnimation.bind(_this3, {\n from: preItem.style,\n to: style,\n duration: duration,\n easing: easing\n }), duration]);\n }\n\n var transition = getTransitionVal(properties, duration, easing);\n\n var newStyle = _objectSpread(_objectSpread(_objectSpread({}, preItem.style), style), {}, {\n transition: transition\n });\n\n return [].concat(_toConsumableArray(sequence), [newStyle, duration, onAnimationEnd]).filter(identity);\n };\n\n return this.manager.start([onAnimationStart].concat(_toConsumableArray(steps.reduce(addStyle, [initialStyle, Math.max(initialTime, begin)])), [props.onAnimationEnd]));\n }\n }, {\n key: \"runAnimation\",\n value: function runAnimation(props) {\n if (!this.manager) {\n this.manager = createAnimateManager();\n }\n\n var begin = props.begin,\n duration = props.duration,\n attributeName = props.attributeName,\n propsTo = props.to,\n easing = props.easing,\n onAnimationStart = props.onAnimationStart,\n onAnimationEnd = props.onAnimationEnd,\n steps = props.steps,\n children = props.children;\n var manager = this.manager;\n this.unSubscribe = manager.subscribe(this.handleStyleChange);\n\n if (typeof easing === 'function' || typeof children === 'function' || easing === 'spring') {\n this.runJSAnimation(props);\n return;\n }\n\n if (steps.length > 1) {\n this.runStepAnimation(props);\n return;\n }\n\n var to = attributeName ? _defineProperty({}, attributeName, propsTo) : propsTo;\n var transition = getTransitionVal(Object.keys(to), duration, easing);\n manager.start([onAnimationStart, begin, _objectSpread(_objectSpread({}, to), {}, {\n transition: transition\n }), duration, onAnimationEnd]);\n }\n }, {\n key: \"handleStyleChange\",\n value: function handleStyleChange(style) {\n this.changeStyle(style);\n }\n }, {\n key: \"changeStyle\",\n value: function changeStyle(style) {\n if (this.mounted) {\n this.setState({\n style: style\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n children = _this$props4.children,\n begin = _this$props4.begin,\n duration = _this$props4.duration,\n attributeName = _this$props4.attributeName,\n easing = _this$props4.easing,\n isActive = _this$props4.isActive,\n steps = _this$props4.steps,\n from = _this$props4.from,\n to = _this$props4.to,\n canBegin = _this$props4.canBegin,\n onAnimationEnd = _this$props4.onAnimationEnd,\n shouldReAnimate = _this$props4.shouldReAnimate,\n onAnimationReStart = _this$props4.onAnimationReStart,\n others = _objectWithoutProperties(_this$props4, [\"children\", \"begin\", \"duration\", \"attributeName\", \"easing\", \"isActive\", \"steps\", \"from\", \"to\", \"canBegin\", \"onAnimationEnd\", \"shouldReAnimate\", \"onAnimationReStart\"]);\n\n var count = Children.count(children);\n var stateStyle = translateStyle(this.state.style);\n\n if (typeof children === 'function') {\n return children(stateStyle);\n }\n\n if (!isActive || count === 0) {\n return children;\n }\n\n var cloneContainer = function cloneContainer(container) {\n var _container$props = container.props,\n _container$props$styl = _container$props.style,\n style = _container$props$styl === void 0 ? {} : _container$props$styl,\n className = _container$props.className;\n var res = /*#__PURE__*/cloneElement(container, _objectSpread(_objectSpread({}, others), {}, {\n style: _objectSpread(_objectSpread({}, style), stateStyle),\n className: className\n }));\n return res;\n };\n\n if (count === 1) {\n return cloneContainer(Children.only(children));\n }\n\n return /*#__PURE__*/React.createElement(\"div\", null, Children.map(children, function (child) {\n return cloneContainer(child);\n }));\n }\n }]);\n\n return Animate;\n}(PureComponent);\n\nAnimate.displayName = 'Animate';\nAnimate.propTypes = {\n from: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n to: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n attributeName: PropTypes.string,\n // animation duration\n duration: PropTypes.number,\n begin: PropTypes.number,\n easing: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n steps: PropTypes.arrayOf(PropTypes.shape({\n duration: PropTypes.number.isRequired,\n style: PropTypes.object.isRequired,\n easing: PropTypes.oneOfType([PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']), PropTypes.func]),\n // transition css properties(dash case), optional\n properties: PropTypes.arrayOf('string'),\n onAnimationEnd: PropTypes.func\n })),\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n isActive: PropTypes.bool,\n canBegin: PropTypes.bool,\n onAnimationEnd: PropTypes.func,\n // decide if it should reanimate with initial from style when props change\n shouldReAnimate: PropTypes.bool,\n onAnimationStart: PropTypes.func,\n onAnimationReStart: PropTypes.func\n};\nAnimate.defaultProps = {\n begin: 0,\n duration: 1000,\n from: '',\n to: '',\n attributeName: '',\n easing: 'ease',\n isActive: true,\n canBegin: true,\n steps: [],\n onAnimationEnd: function onAnimationEnd() {},\n onAnimationStart: function onAnimationStart() {}\n};\nexport default Animate;","function _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\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\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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React, { Component, Children } from 'react';\nimport { Transition } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport Animate from './Animate';\n\nif (Number.isFinite === undefined) {\n Number.isFinite = function (value) {\n return typeof value === 'number' && isFinite(value);\n };\n}\n\nvar parseDurationOfSingleTransition = function parseDurationOfSingleTransition() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var steps = options.steps,\n duration = options.duration;\n\n if (steps && steps.length) {\n return steps.reduce(function (result, entry) {\n return result + (Number.isFinite(entry.duration) && entry.duration > 0 ? entry.duration : 0);\n }, 0);\n }\n\n if (Number.isFinite(duration)) {\n return duration;\n }\n\n return 0;\n};\n\nvar AnimateGroupChild = /*#__PURE__*/function (_Component) {\n _inherits(AnimateGroupChild, _Component);\n\n var _super = _createSuper(AnimateGroupChild);\n\n function AnimateGroupChild() {\n var _this;\n\n _classCallCheck(this, AnimateGroupChild);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n isActive: false\n };\n\n _this.handleEnter = function (node, isAppearing) {\n var _this$props = _this.props,\n appearOptions = _this$props.appearOptions,\n enterOptions = _this$props.enterOptions;\n\n _this.handleStyleActive(isAppearing ? appearOptions : enterOptions);\n };\n\n _this.handleExit = function () {\n _this.handleStyleActive(_this.props.leaveOptions);\n };\n\n return _this;\n }\n\n _createClass(AnimateGroupChild, [{\n key: \"handleStyleActive\",\n value: function handleStyleActive(style) {\n if (style) {\n var onAnimationEnd = style.onAnimationEnd ? function () {\n style.onAnimationEnd();\n } : null;\n this.setState(_objectSpread(_objectSpread({}, style), {}, {\n onAnimationEnd: onAnimationEnd,\n isActive: true\n }));\n }\n }\n }, {\n key: \"parseTimeout\",\n value: function parseTimeout() {\n var _this$props2 = this.props,\n appearOptions = _this$props2.appearOptions,\n enterOptions = _this$props2.enterOptions,\n leaveOptions = _this$props2.leaveOptions;\n return parseDurationOfSingleTransition(appearOptions) + parseDurationOfSingleTransition(enterOptions) + parseDurationOfSingleTransition(leaveOptions);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n children = _this$props3.children,\n appearOptions = _this$props3.appearOptions,\n enterOptions = _this$props3.enterOptions,\n leaveOptions = _this$props3.leaveOptions,\n props = _objectWithoutProperties(_this$props3, [\"children\", \"appearOptions\", \"enterOptions\", \"leaveOptions\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.handleEnter,\n onExit: this.handleExit,\n timeout: this.parseTimeout()\n }), function () {\n return /*#__PURE__*/React.createElement(Animate, _this2.state, Children.only(children));\n });\n }\n }]);\n\n return AnimateGroupChild;\n}(Component);\n\nAnimateGroupChild.propTypes = {\n appearOptions: PropTypes.object,\n enterOptions: PropTypes.object,\n leaveOptions: PropTypes.object,\n children: PropTypes.element\n};\nexport default AnimateGroupChild;","import React, { Children } from 'react';\nimport { TransitionGroup } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport AnimateGroupChild from './AnimateGroupChild';\n\nfunction AnimateGroup(props) {\n var component = props.component,\n children = props.children,\n appear = props.appear,\n enter = props.enter,\n leave = props.leave;\n return /*#__PURE__*/React.createElement(TransitionGroup, {\n component: component\n }, Children.map(children, function (child, index) {\n return /*#__PURE__*/React.createElement(AnimateGroupChild, {\n appearOptions: appear,\n enterOptions: enter,\n leaveOptions: leave,\n key: \"child-\".concat(index) // eslint-disable-line\n\n }, child);\n }));\n}\n\nAnimateGroup.propTypes = {\n appear: PropTypes.object,\n enter: PropTypes.object,\n leave: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.element]),\n component: PropTypes.any\n};\nAnimateGroup.defaultProps = {\n component: 'span'\n};\nexport default AnimateGroup;","import Animate from './Animate';\nimport { configBezier, configSpring } from './easing';\nimport { translateStyle } from './util';\nimport AnimateGroup from './AnimateGroup';\nexport { configSpring, configBezier, AnimateGroup, translateStyle };\nexport default Animate;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nexport function defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nexport function hasXMLHttpRequest() {\n return typeof XMLHttpRequest === 'function' || (typeof XMLHttpRequest === \"undefined\" ? \"undefined\" : _typeof(XMLHttpRequest)) === 'object';\n}\n\nfunction isPromise(maybePromise) {\n return !!maybePromise && typeof maybePromise.then === 'function';\n}\n\nexport function makePromise(maybePromise) {\n if (isPromise(maybePromise)) {\n return maybePromise;\n }\n\n return Promise.resolve(maybePromise);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nvar lastId = 0;\n\nfunction _default() {\n var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'pr_id_';\n lastId++;\n return \"\".concat(prefix).concat(lastId);\n}","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","/** @license\n *\n * jsPDF - PDF Document creation from JavaScript\n * Version 2.5.1 Built on 2022-01-28T15:37:57.791Z\n * CommitID 00000000\n *\n * Copyright (c) 2010-2021 James Hall , https://github.com/MrRio/jsPDF\n * 2015-2021 yWorks GmbH, http://www.yworks.com\n * 2015-2021 Lukas Holländer , https://github.com/HackbrettXXX\n * 2016-2018 Aras Abbasi \n * 2010 Aaron Spike, https://github.com/acspike\n * 2012 Willow Systems Corporation, https://github.com/willowsystems\n * 2012 Pablo Hess, https://github.com/pablohess\n * 2012 Florian Jenett, https://github.com/fjenett\n * 2013 Warren Weckesser, https://github.com/warrenweckesser\n * 2013 Youssef Beddad, https://github.com/lifof\n * 2013 Lee Driscoll, https://github.com/lsdriscoll\n * 2013 Stefan Slonevskiy, https://github.com/stefslon\n * 2013 Jeremy Morel, https://github.com/jmorel\n * 2013 Christoph Hartmann, https://github.com/chris-rock\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 James Makes, https://github.com/dollaruw\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 Steven Spungin, https://github.com/Flamenco\n * 2014 Kenneth Glassey, https://github.com/Gavvers\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n *\n * Contributor(s):\n * siefkenj, ahwolf, rickygu, Midnith, saintclair, eaparango,\n * kim3er, mfo, alnorth, Flamenco\n */\n\nimport t from\"@babel/runtime/helpers/typeof\";import{zlibSync as e,unzlibSync as r}from\"fflate\";var n=function(){return\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this}();function i(){n.console&&\"function\"==typeof n.console.log&&n.console.log.apply(n.console,arguments)}var a={log:i,warn:function(t){n.console&&(\"function\"==typeof n.console.warn?n.console.warn.apply(n.console,arguments):i.call(null,arguments))},error:function(t){n.console&&(\"function\"==typeof n.console.error?n.console.error.apply(n.console,arguments):i(t))}};function o(t,e,r){var n=new XMLHttpRequest;n.open(\"GET\",t),n.responseType=\"blob\",n.onload=function(){l(n.response,e,r)},n.onerror=function(){a.error(\"could not download file\")},n.send()}function s(t){var e=new XMLHttpRequest;e.open(\"HEAD\",t,!1);try{e.send()}catch(t){}return e.status>=200&&e.status<=299}function c(t){try{t.dispatchEvent(new MouseEvent(\"click\"))}catch(r){var e=document.createEvent(\"MouseEvents\");e.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),t.dispatchEvent(e)}}var u,h,l=n.saveAs||(\"object\"!==(\"undefined\"==typeof window?\"undefined\":t(window))||window!==n?function(){}:\"undefined\"!=typeof HTMLAnchorElement&&\"download\"in HTMLAnchorElement.prototype?function(t,e,r){var i=n.URL||n.webkitURL,a=document.createElement(\"a\");e=e||t.name||\"download\",a.download=e,a.rel=\"noopener\",\"string\"==typeof t?(a.href=t,a.origin!==location.origin?s(a.href)?o(t,e,r):c(a,a.target=\"_blank\"):c(a)):(a.href=i.createObjectURL(t),setTimeout((function(){i.revokeObjectURL(a.href)}),4e4),setTimeout((function(){c(a)}),0))}:\"msSaveOrOpenBlob\"in navigator?function(e,r,n){if(r=r||e.name||\"download\",\"string\"==typeof e)if(s(e))o(e,r,n);else{var i=document.createElement(\"a\");i.href=e,i.target=\"_blank\",setTimeout((function(){c(i)}))}else navigator.msSaveOrOpenBlob(function(e,r){return void 0===r?r={autoBom:!1}:\"object\"!==t(r)&&(a.warn(\"Deprecated: Expected third argument to be a object\"),r={autoBom:!r}),r.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(e.type)?new Blob([String.fromCharCode(65279),e],{type:e.type}):e}(e,n),r)}:function(e,r,i,a){if((a=a||open(\"\",\"_blank\"))&&(a.document.title=a.document.body.innerText=\"downloading...\"),\"string\"==typeof e)return o(e,r,i);var s=\"application/octet-stream\"===e.type,c=/constructor/i.test(n.HTMLElement)||n.safari,u=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((u||s&&c)&&\"object\"===(\"undefined\"==typeof FileReader?\"undefined\":t(FileReader))){var h=new FileReader;h.onloadend=function(){var t=h.result;t=u?t:t.replace(/^data:[^;]*;/,\"data:attachment/file;\"),a?a.location.href=t:location=t,a=null},h.readAsDataURL(e)}else{var l=n.URL||n.webkitURL,f=l.createObjectURL(e);a?a.location=f:location.href=f,a=null,setTimeout((function(){l.revokeObjectURL(f)}),4e4)}});\n/**\n * A class to parse color values\n * @author Stoyan Stefanov \n * {@link http://www.phpied.com/rgb-color-parser-in-javascript/}\n * @license Use it if you like it\n */function f(t){var e;t=t||\"\",this.ok=!1,\"#\"==t.charAt(0)&&(t=t.substr(1,6));t={aliceblue:\"f0f8ff\",antiquewhite:\"faebd7\",aqua:\"00ffff\",aquamarine:\"7fffd4\",azure:\"f0ffff\",beige:\"f5f5dc\",bisque:\"ffe4c4\",black:\"000000\",blanchedalmond:\"ffebcd\",blue:\"0000ff\",blueviolet:\"8a2be2\",brown:\"a52a2a\",burlywood:\"deb887\",cadetblue:\"5f9ea0\",chartreuse:\"7fff00\",chocolate:\"d2691e\",coral:\"ff7f50\",cornflowerblue:\"6495ed\",cornsilk:\"fff8dc\",crimson:\"dc143c\",cyan:\"00ffff\",darkblue:\"00008b\",darkcyan:\"008b8b\",darkgoldenrod:\"b8860b\",darkgray:\"a9a9a9\",darkgreen:\"006400\",darkkhaki:\"bdb76b\",darkmagenta:\"8b008b\",darkolivegreen:\"556b2f\",darkorange:\"ff8c00\",darkorchid:\"9932cc\",darkred:\"8b0000\",darksalmon:\"e9967a\",darkseagreen:\"8fbc8f\",darkslateblue:\"483d8b\",darkslategray:\"2f4f4f\",darkturquoise:\"00ced1\",darkviolet:\"9400d3\",deeppink:\"ff1493\",deepskyblue:\"00bfff\",dimgray:\"696969\",dodgerblue:\"1e90ff\",feldspar:\"d19275\",firebrick:\"b22222\",floralwhite:\"fffaf0\",forestgreen:\"228b22\",fuchsia:\"ff00ff\",gainsboro:\"dcdcdc\",ghostwhite:\"f8f8ff\",gold:\"ffd700\",goldenrod:\"daa520\",gray:\"808080\",green:\"008000\",greenyellow:\"adff2f\",honeydew:\"f0fff0\",hotpink:\"ff69b4\",indianred:\"cd5c5c\",indigo:\"4b0082\",ivory:\"fffff0\",khaki:\"f0e68c\",lavender:\"e6e6fa\",lavenderblush:\"fff0f5\",lawngreen:\"7cfc00\",lemonchiffon:\"fffacd\",lightblue:\"add8e6\",lightcoral:\"f08080\",lightcyan:\"e0ffff\",lightgoldenrodyellow:\"fafad2\",lightgrey:\"d3d3d3\",lightgreen:\"90ee90\",lightpink:\"ffb6c1\",lightsalmon:\"ffa07a\",lightseagreen:\"20b2aa\",lightskyblue:\"87cefa\",lightslateblue:\"8470ff\",lightslategray:\"778899\",lightsteelblue:\"b0c4de\",lightyellow:\"ffffe0\",lime:\"00ff00\",limegreen:\"32cd32\",linen:\"faf0e6\",magenta:\"ff00ff\",maroon:\"800000\",mediumaquamarine:\"66cdaa\",mediumblue:\"0000cd\",mediumorchid:\"ba55d3\",mediumpurple:\"9370d8\",mediumseagreen:\"3cb371\",mediumslateblue:\"7b68ee\",mediumspringgreen:\"00fa9a\",mediumturquoise:\"48d1cc\",mediumvioletred:\"c71585\",midnightblue:\"191970\",mintcream:\"f5fffa\",mistyrose:\"ffe4e1\",moccasin:\"ffe4b5\",navajowhite:\"ffdead\",navy:\"000080\",oldlace:\"fdf5e6\",olive:\"808000\",olivedrab:\"6b8e23\",orange:\"ffa500\",orangered:\"ff4500\",orchid:\"da70d6\",palegoldenrod:\"eee8aa\",palegreen:\"98fb98\",paleturquoise:\"afeeee\",palevioletred:\"d87093\",papayawhip:\"ffefd5\",peachpuff:\"ffdab9\",peru:\"cd853f\",pink:\"ffc0cb\",plum:\"dda0dd\",powderblue:\"b0e0e6\",purple:\"800080\",red:\"ff0000\",rosybrown:\"bc8f8f\",royalblue:\"4169e1\",saddlebrown:\"8b4513\",salmon:\"fa8072\",sandybrown:\"f4a460\",seagreen:\"2e8b57\",seashell:\"fff5ee\",sienna:\"a0522d\",silver:\"c0c0c0\",skyblue:\"87ceeb\",slateblue:\"6a5acd\",slategray:\"708090\",snow:\"fffafa\",springgreen:\"00ff7f\",steelblue:\"4682b4\",tan:\"d2b48c\",teal:\"008080\",thistle:\"d8bfd8\",tomato:\"ff6347\",turquoise:\"40e0d0\",violet:\"ee82ee\",violetred:\"d02090\",wheat:\"f5deb3\",white:\"ffffff\",whitesmoke:\"f5f5f5\",yellow:\"ffff00\",yellowgreen:\"9acd32\"}[t=(t=t.replace(/ /g,\"\")).toLowerCase()]||t;for(var r=[{re:/^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,example:[\"rgb(123, 234, 45)\",\"rgb(255,234,245)\"],process:function(t){return[parseInt(t[1]),parseInt(t[2]),parseInt(t[3])]}},{re:/^(\\w{2})(\\w{2})(\\w{2})$/,example:[\"#00ff00\",\"336699\"],process:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/^(\\w{1})(\\w{1})(\\w{1})$/,example:[\"#fb0\",\"f0f\"],process:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}}],n=0;n255?255:this.r,this.g=this.g<0||isNaN(this.g)?0:this.g>255?255:this.g,this.b=this.b<0||isNaN(this.b)?0:this.b>255?255:this.b,this.toRGB=function(){return\"rgb(\"+this.r+\", \"+this.g+\", \"+this.b+\")\"},this.toHex=function(){var t=this.r.toString(16),e=this.g.toString(16),r=this.b.toString(16);return 1==t.length&&(t=\"0\"+t),1==e.length&&(e=\"0\"+e),1==r.length&&(r=\"0\"+r),\"#\"+t+e+r}}\n/**\n * @license\n * Joseph Myers does not specify a particular license for his work.\n *\n * Author: Joseph Myers\n * Accessed from: http://www.myersdaily.org/joseph/javascript/md5.js\n *\n * Modified by: Owen Leong\n */\nfunction d(t,e){var r=t[0],n=t[1],i=t[2],a=t[3];r=g(r,n,i,a,e[0],7,-680876936),a=g(a,r,n,i,e[1],12,-389564586),i=g(i,a,r,n,e[2],17,606105819),n=g(n,i,a,r,e[3],22,-1044525330),r=g(r,n,i,a,e[4],7,-176418897),a=g(a,r,n,i,e[5],12,1200080426),i=g(i,a,r,n,e[6],17,-1473231341),n=g(n,i,a,r,e[7],22,-45705983),r=g(r,n,i,a,e[8],7,1770035416),a=g(a,r,n,i,e[9],12,-1958414417),i=g(i,a,r,n,e[10],17,-42063),n=g(n,i,a,r,e[11],22,-1990404162),r=g(r,n,i,a,e[12],7,1804603682),a=g(a,r,n,i,e[13],12,-40341101),i=g(i,a,r,n,e[14],17,-1502002290),r=m(r,n=g(n,i,a,r,e[15],22,1236535329),i,a,e[1],5,-165796510),a=m(a,r,n,i,e[6],9,-1069501632),i=m(i,a,r,n,e[11],14,643717713),n=m(n,i,a,r,e[0],20,-373897302),r=m(r,n,i,a,e[5],5,-701558691),a=m(a,r,n,i,e[10],9,38016083),i=m(i,a,r,n,e[15],14,-660478335),n=m(n,i,a,r,e[4],20,-405537848),r=m(r,n,i,a,e[9],5,568446438),a=m(a,r,n,i,e[14],9,-1019803690),i=m(i,a,r,n,e[3],14,-187363961),n=m(n,i,a,r,e[8],20,1163531501),r=m(r,n,i,a,e[13],5,-1444681467),a=m(a,r,n,i,e[2],9,-51403784),i=m(i,a,r,n,e[7],14,1735328473),r=v(r,n=m(n,i,a,r,e[12],20,-1926607734),i,a,e[5],4,-378558),a=v(a,r,n,i,e[8],11,-2022574463),i=v(i,a,r,n,e[11],16,1839030562),n=v(n,i,a,r,e[14],23,-35309556),r=v(r,n,i,a,e[1],4,-1530992060),a=v(a,r,n,i,e[4],11,1272893353),i=v(i,a,r,n,e[7],16,-155497632),n=v(n,i,a,r,e[10],23,-1094730640),r=v(r,n,i,a,e[13],4,681279174),a=v(a,r,n,i,e[0],11,-358537222),i=v(i,a,r,n,e[3],16,-722521979),n=v(n,i,a,r,e[6],23,76029189),r=v(r,n,i,a,e[9],4,-640364487),a=v(a,r,n,i,e[12],11,-421815835),i=v(i,a,r,n,e[15],16,530742520),r=b(r,n=v(n,i,a,r,e[2],23,-995338651),i,a,e[0],6,-198630844),a=b(a,r,n,i,e[7],10,1126891415),i=b(i,a,r,n,e[14],15,-1416354905),n=b(n,i,a,r,e[5],21,-57434055),r=b(r,n,i,a,e[12],6,1700485571),a=b(a,r,n,i,e[3],10,-1894986606),i=b(i,a,r,n,e[10],15,-1051523),n=b(n,i,a,r,e[1],21,-2054922799),r=b(r,n,i,a,e[8],6,1873313359),a=b(a,r,n,i,e[15],10,-30611744),i=b(i,a,r,n,e[6],15,-1560198380),n=b(n,i,a,r,e[13],21,1309151649),r=b(r,n,i,a,e[4],6,-145523070),a=b(a,r,n,i,e[11],10,-1120210379),i=b(i,a,r,n,e[2],15,718787259),n=b(n,i,a,r,e[9],21,-343485551),t[0]=_(r,t[0]),t[1]=_(n,t[1]),t[2]=_(i,t[2]),t[3]=_(a,t[3])}function p(t,e,r,n,i,a){return e=_(_(e,t),_(n,a)),_(e<>>32-i,r)}function g(t,e,r,n,i,a,o){return p(e&r|~e&n,t,e,i,a,o)}function m(t,e,r,n,i,a,o){return p(e&n|r&~n,t,e,i,a,o)}function v(t,e,r,n,i,a,o){return p(e^r^n,t,e,i,a,o)}function b(t,e,r,n,i,a,o){return p(r^(e|~n),t,e,i,a,o)}function y(t){var e,r=t.length,n=[1732584193,-271733879,-1732584194,271733878];for(e=64;e<=t.length;e+=64)d(n,w(t.substring(e-64,e)));t=t.substring(e-64);var i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(e=0;e>2]|=t.charCodeAt(e)<<(e%4<<3);if(i[e>>2]|=128<<(e%4<<3),e>55)for(d(n,i),e=0;e<16;e++)i[e]=0;return i[14]=8*r,d(n,i),n}function w(t){var e,r=[];for(e=0;e<64;e+=4)r[e>>2]=t.charCodeAt(e)+(t.charCodeAt(e+1)<<8)+(t.charCodeAt(e+2)<<16)+(t.charCodeAt(e+3)<<24);return r}u=n.atob.bind(n),h=n.btoa.bind(n);var N=\"0123456789abcdef\".split(\"\");function L(t){for(var e=\"\",r=0;r<4;r++)e+=N[t>>8*r+4&15]+N[t>>8*r&15];return e}function A(t){return String.fromCharCode((255&t)>>0,(65280&t)>>8,(16711680&t)>>16,(4278190080&t)>>24)}function x(t){return y(t).map(A).join(\"\")}var S=\"5d41402abc4b2a76b9719d911017c592\"!=function(t){for(var e=0;e>16)+(e>>16)+(r>>16)<<16|65535&r}return t+e&4294967295}\n/**\n * @license\n * FPDF is released under a permissive license: there is no usage restriction.\n * You may embed it freely in your application (commercial or not), with or\n * without modifications.\n *\n * Reference: http://www.fpdf.org/en/script/script37.php\n */function P(t,e){var r,n,i,a;if(t!==r){for(var o=(i=t,a=1+(256/t.length>>0),new Array(a+1).join(i)),s=[],c=0;c<256;c++)s[c]=c;var u=0;for(c=0;c<256;c++){var h=s[c];u=(u+h+o.charCodeAt(c))%256,s[c]=s[u],s[u]=h}r=t,n=s}else s=n;var l=e.length,f=0,d=0,p=\"\";for(c=0;c€/\\f©þdSiz\";var a=(e+this.padding).substr(0,32),o=(r+this.padding).substr(0,32);this.O=this.processOwnerPassword(a,o),this.P=-(1+(255^i)),this.encryptionKey=x(a+this.O+this.lsbFirstWord(this.P)+this.hexToBytes(n)).substr(0,5),this.U=P(this.encryptionKey,this.padding)}function F(t){if(/[^\\u0000-\\u00ff]/.test(t))throw new Error(\"Invalid PDF Name Object: \"+t+\", Only accept ASCII characters.\");for(var e=\"\",r=t.length,n=0;n126)e+=\"#\"+(\"0\"+i.toString(16)).slice(-2);else e+=t[n]}return e}function C(e){if(\"object\"!==t(e))throw new Error(\"Invalid Context passed to initialize PubSub (jsPDF-module)\");var r={};this.subscribe=function(t,e,n){if(n=n||!1,\"string\"!=typeof t||\"function\"!=typeof e||\"boolean\"!=typeof n)throw new Error(\"Invalid arguments passed to PubSub.subscribe (jsPDF-module)\");r.hasOwnProperty(t)||(r[t]={});var i=Math.random().toString(35);return r[t][i]=[e,!!n],i},this.unsubscribe=function(t){for(var e in r)if(r[e][t])return delete r[e][t],0===Object.keys(r[e]).length&&delete r[e],!0;return!1},this.publish=function(t){if(r.hasOwnProperty(t)){var i=Array.prototype.slice.call(arguments,1),o=[];for(var s in r[t]){var c=r[t][s];try{c[0].apply(e,i)}catch(t){n.console&&a.error(\"jsPDF PubSub Error\",t.message,t)}c[1]&&o.push(s)}o.length&&o.forEach(this.unsubscribe)}},this.getTopics=function(){return r}}function j(t){if(!(this instanceof j))return new j(t);var e=\"opacity,stroke-opacity\".split(\",\");for(var r in t)t.hasOwnProperty(r)&&e.indexOf(r)>=0&&(this[r]=t[r]);this.id=\"\",this.objectNumber=-1}function O(t,e){this.gState=t,this.matrix=e,this.id=\"\",this.objectNumber=-1}function B(t,e,r,n,i){if(!(this instanceof B))return new B(t,e,r,n,i);this.type=\"axial\"===t?2:3,this.coords=e,this.colors=r,O.call(this,n,i)}function M(t,e,r,n,i){if(!(this instanceof M))return new M(t,e,r,n,i);this.boundingBox=t,this.xStep=e,this.yStep=r,this.stream=\"\",this.cloneIndex=0,O.call(this,n,i)}function E(e){var r,i=\"string\"==typeof arguments[0]?arguments[0]:\"p\",o=arguments[1],s=arguments[2],c=arguments[3],u=[],d=1,p=16,g=\"S\",m=null;\"object\"===t(e=e||{})&&(i=e.orientation,o=e.unit||o,s=e.format||s,c=e.compress||e.compressPdf||c,null!==(m=e.encryption||null)&&(m.userPassword=m.userPassword||\"\",m.ownerPassword=m.ownerPassword||\"\",m.userPermissions=m.userPermissions||[]),d=\"number\"==typeof e.userUnit?Math.abs(e.userUnit):1,void 0!==e.precision&&(r=e.precision),void 0!==e.floatPrecision&&(p=e.floatPrecision),g=e.defaultPathOperation||\"S\"),u=e.filters||(!0===c?[\"FlateEncode\"]:u),o=o||\"mm\",i=(\"\"+(i||\"P\")).toLowerCase();var v=e.putOnlyUsedFonts||!1,b={},y={internal:{},__private__:{}};y.__private__.PubSub=C;var w=\"1.3\",N=y.__private__.getPdfVersion=function(){return w};y.__private__.setPdfVersion=function(t){w=t};var L={a0:[2383.94,3370.39],a1:[1683.78,2383.94],a2:[1190.55,1683.78],a3:[841.89,1190.55],a4:[595.28,841.89],a5:[419.53,595.28],a6:[297.64,419.53],a7:[209.76,297.64],a8:[147.4,209.76],a9:[104.88,147.4],a10:[73.7,104.88],b0:[2834.65,4008.19],b1:[2004.09,2834.65],b2:[1417.32,2004.09],b3:[1000.63,1417.32],b4:[708.66,1000.63],b5:[498.9,708.66],b6:[354.33,498.9],b7:[249.45,354.33],b8:[175.75,249.45],b9:[124.72,175.75],b10:[87.87,124.72],c0:[2599.37,3676.54],c1:[1836.85,2599.37],c2:[1298.27,1836.85],c3:[918.43,1298.27],c4:[649.13,918.43],c5:[459.21,649.13],c6:[323.15,459.21],c7:[229.61,323.15],c8:[161.57,229.61],c9:[113.39,161.57],c10:[79.37,113.39],dl:[311.81,623.62],letter:[612,792],\"government-letter\":[576,756],legal:[612,1008],\"junior-legal\":[576,360],ledger:[1224,792],tabloid:[792,1224],\"credit-card\":[153,243]};y.__private__.getPageFormats=function(){return L};var A=y.__private__.getPageFormat=function(t){return L[t]};s=s||\"a4\";var x={COMPAT:\"compat\",ADVANCED:\"advanced\"},S=x.COMPAT;function _(){this.saveGraphicsState(),lt(new Vt(_t,0,0,-_t,0,Rr()*_t).toString()+\" cm\"),this.setFontSize(this.getFontSize()/_t),g=\"n\",S=x.ADVANCED}function P(){this.restoreGraphicsState(),g=\"S\",S=x.COMPAT}var k=y.__private__.combineFontStyleAndFontWeight=function(t,e){if(\"bold\"==t&&\"normal\"==e||\"bold\"==t&&400==e||\"normal\"==t&&\"italic\"==e||\"bold\"==t&&\"italic\"==e)throw new Error(\"Invalid Combination of fontweight and fontstyle\");return e&&(t=400==e||\"normal\"===e?\"italic\"===t?\"italic\":\"normal\":700!=e&&\"bold\"!==e||\"normal\"!==t?(700==e?\"bold\":e)+\"\"+t:\"bold\"),t};y.advancedAPI=function(t){var e=S===x.COMPAT;return e&&_.call(this),\"function\"!=typeof t||(t(this),e&&P.call(this)),this},y.compatAPI=function(t){var e=S===x.ADVANCED;return e&&P.call(this),\"function\"!=typeof t||(t(this),e&&_.call(this)),this},y.isAdvancedAPI=function(){return S===x.ADVANCED};var O,q=function(t){if(S!==x.ADVANCED)throw new Error(t+\" is only available in 'advanced' API mode. You need to call advancedAPI() first.\")},D=y.roundToPrecision=y.__private__.roundToPrecision=function(t,e){var n=r||e;if(isNaN(t)||isNaN(n))throw new Error(\"Invalid argument passed to jsPDF.roundToPrecision\");return t.toFixed(n).replace(/0+$/,\"\")};O=y.hpf=y.__private__.hpf=\"number\"==typeof p?function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.hpf\");return D(t,p)}:\"smart\"===p?function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.hpf\");return D(t,t>-1&&t<1?16:5)}:function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.hpf\");return D(t,16)};var R=y.f2=y.__private__.f2=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.f2\");return D(t,2)},T=y.__private__.f3=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.f3\");return D(t,3)},U=y.scale=y.__private__.scale=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.scale\");return S===x.COMPAT?t*_t:S===x.ADVANCED?t:void 0},z=function(t){return S===x.COMPAT?Rr()-t:S===x.ADVANCED?t:void 0},H=function(t){return U(z(t))};y.__private__.setPrecision=y.setPrecision=function(t){\"number\"==typeof parseInt(t,10)&&(r=parseInt(t,10))};var W,V=\"00000000000000000000000000000000\",G=y.__private__.getFileId=function(){return V},Y=y.__private__.setFileId=function(t){return V=void 0!==t&&/^[a-fA-F0-9]{32}$/.test(t)?t.toUpperCase():V.split(\"\").map((function(){return\"ABCDEF0123456789\".charAt(Math.floor(16*Math.random()))})).join(\"\"),null!==m&&(Ye=new I(m.userPermissions,m.userPassword,m.ownerPassword,V)),V};y.setFileId=function(t){return Y(t),this},y.getFileId=function(){return G()};var J=y.__private__.convertDateToPDFDate=function(t){var e=t.getTimezoneOffset(),r=e<0?\"+\":\"-\",n=Math.floor(Math.abs(e/60)),i=Math.abs(e%60),a=[r,Q(n),\"'\",Q(i),\"'\"].join(\"\");return[\"D:\",t.getFullYear(),Q(t.getMonth()+1),Q(t.getDate()),Q(t.getHours()),Q(t.getMinutes()),Q(t.getSeconds()),a].join(\"\")},X=y.__private__.convertPDFDateToDate=function(t){var e=parseInt(t.substr(2,4),10),r=parseInt(t.substr(6,2),10)-1,n=parseInt(t.substr(8,2),10),i=parseInt(t.substr(10,2),10),a=parseInt(t.substr(12,2),10),o=parseInt(t.substr(14,2),10);return new Date(e,r,n,i,a,o,0)},K=y.__private__.setCreationDate=function(t){var e;if(void 0===t&&(t=new Date),t instanceof Date)e=J(t);else{if(!/^D:(20[0-2][0-9]|203[0-7]|19[7-9][0-9])(0[0-9]|1[0-2])([0-2][0-9]|3[0-1])(0[0-9]|1[0-9]|2[0-3])(0[0-9]|[1-5][0-9])(0[0-9]|[1-5][0-9])(\\+0[0-9]|\\+1[0-4]|-0[0-9]|-1[0-1])'(0[0-9]|[1-5][0-9])'?$/.test(t))throw new Error(\"Invalid argument passed to jsPDF.setCreationDate\");e=t}return W=e},Z=y.__private__.getCreationDate=function(t){var e=W;return\"jsDate\"===t&&(e=X(W)),e};y.setCreationDate=function(t){return K(t),this},y.getCreationDate=function(t){return Z(t)};var $,Q=y.__private__.padd2=function(t){return(\"0\"+parseInt(t)).slice(-2)},tt=y.__private__.padd2Hex=function(t){return(\"00\"+(t=t.toString())).substr(t.length)},et=0,rt=[],nt=[],it=0,at=[],ot=[],st=!1,ct=nt,ut=function(){et=0,it=0,nt=[],rt=[],at=[],Qt=Kt(),te=Kt()};y.__private__.setCustomOutputDestination=function(t){st=!0,ct=t};var ht=function(t){st||(ct=t)};y.__private__.resetCustomOutputDestination=function(){st=!1,ct=nt};var lt=y.__private__.out=function(t){return t=t.toString(),it+=t.length+1,ct.push(t),ct},ft=y.__private__.write=function(t){return lt(1===arguments.length?t.toString():Array.prototype.join.call(arguments,\" \"))},dt=y.__private__.getArrayBuffer=function(t){for(var e=t.length,r=new ArrayBuffer(e),n=new Uint8Array(r);e--;)n[e]=t.charCodeAt(e);return r},pt=[[\"Helvetica\",\"helvetica\",\"normal\",\"WinAnsiEncoding\"],[\"Helvetica-Bold\",\"helvetica\",\"bold\",\"WinAnsiEncoding\"],[\"Helvetica-Oblique\",\"helvetica\",\"italic\",\"WinAnsiEncoding\"],[\"Helvetica-BoldOblique\",\"helvetica\",\"bolditalic\",\"WinAnsiEncoding\"],[\"Courier\",\"courier\",\"normal\",\"WinAnsiEncoding\"],[\"Courier-Bold\",\"courier\",\"bold\",\"WinAnsiEncoding\"],[\"Courier-Oblique\",\"courier\",\"italic\",\"WinAnsiEncoding\"],[\"Courier-BoldOblique\",\"courier\",\"bolditalic\",\"WinAnsiEncoding\"],[\"Times-Roman\",\"times\",\"normal\",\"WinAnsiEncoding\"],[\"Times-Bold\",\"times\",\"bold\",\"WinAnsiEncoding\"],[\"Times-Italic\",\"times\",\"italic\",\"WinAnsiEncoding\"],[\"Times-BoldItalic\",\"times\",\"bolditalic\",\"WinAnsiEncoding\"],[\"ZapfDingbats\",\"zapfdingbats\",\"normal\",null],[\"Symbol\",\"symbol\",\"normal\",null]];y.__private__.getStandardFonts=function(){return pt};var gt=e.fontSize||16;y.__private__.setFontSize=y.setFontSize=function(t){return gt=S===x.ADVANCED?t/_t:t,this};var mt,vt=y.__private__.getFontSize=y.getFontSize=function(){return S===x.COMPAT?gt:gt*_t},bt=e.R2L||!1;y.__private__.setR2L=y.setR2L=function(t){return bt=t,this},y.__private__.getR2L=y.getR2L=function(){return bt};var yt,wt=y.__private__.setZoomMode=function(t){var e=[void 0,null,\"fullwidth\",\"fullheight\",\"fullpage\",\"original\"];if(/^(?:\\d+\\.\\d*|\\d*\\.\\d+|\\d+)%$/.test(t))mt=t;else if(isNaN(t)){if(-1===e.indexOf(t))throw new Error('zoom must be Integer (e.g. 2), a percentage Value (e.g. 300%) or fullwidth, fullheight, fullpage, original. \"'+t+'\" is not recognized.');mt=t}else mt=parseInt(t,10)};y.__private__.getZoomMode=function(){return mt};var Nt,Lt=y.__private__.setPageMode=function(t){if(-1==[void 0,null,\"UseNone\",\"UseOutlines\",\"UseThumbs\",\"FullScreen\"].indexOf(t))throw new Error('Page mode must be one of UseNone, UseOutlines, UseThumbs, or FullScreen. \"'+t+'\" is not recognized.');yt=t};y.__private__.getPageMode=function(){return yt};var At=y.__private__.setLayoutMode=function(t){if(-1==[void 0,null,\"continuous\",\"single\",\"twoleft\",\"tworight\",\"two\"].indexOf(t))throw new Error('Layout mode must be one of continuous, single, twoleft, tworight. \"'+t+'\" is not recognized.');Nt=t};y.__private__.getLayoutMode=function(){return Nt},y.__private__.setDisplayMode=y.setDisplayMode=function(t,e,r){return wt(t),At(e),Lt(r),this};var xt={title:\"\",subject:\"\",author:\"\",keywords:\"\",creator:\"\"};y.__private__.getDocumentProperty=function(t){if(-1===Object.keys(xt).indexOf(t))throw new Error(\"Invalid argument passed to jsPDF.getDocumentProperty\");return xt[t]},y.__private__.getDocumentProperties=function(){return xt},y.__private__.setDocumentProperties=y.setProperties=y.setDocumentProperties=function(t){for(var e in xt)xt.hasOwnProperty(e)&&t[e]&&(xt[e]=t[e]);return this},y.__private__.setDocumentProperty=function(t,e){if(-1===Object.keys(xt).indexOf(t))throw new Error(\"Invalid arguments passed to jsPDF.setDocumentProperty\");return xt[t]=e};var St,_t,Pt,kt,It,Ft={},Ct={},jt=[],Ot={},Bt={},Mt={},Et={},qt=null,Dt=0,Rt=[],Tt=new C(y),Ut=e.hotfixes||[],zt={},Ht={},Wt=[],Vt=function t(e,r,n,i,a,o){if(!(this instanceof t))return new t(e,r,n,i,a,o);isNaN(e)&&(e=1),isNaN(r)&&(r=0),isNaN(n)&&(n=0),isNaN(i)&&(i=1),isNaN(a)&&(a=0),isNaN(o)&&(o=0),this._matrix=[e,r,n,i,a,o]};Object.defineProperty(Vt.prototype,\"sx\",{get:function(){return this._matrix[0]},set:function(t){this._matrix[0]=t}}),Object.defineProperty(Vt.prototype,\"shy\",{get:function(){return this._matrix[1]},set:function(t){this._matrix[1]=t}}),Object.defineProperty(Vt.prototype,\"shx\",{get:function(){return this._matrix[2]},set:function(t){this._matrix[2]=t}}),Object.defineProperty(Vt.prototype,\"sy\",{get:function(){return this._matrix[3]},set:function(t){this._matrix[3]=t}}),Object.defineProperty(Vt.prototype,\"tx\",{get:function(){return this._matrix[4]},set:function(t){this._matrix[4]=t}}),Object.defineProperty(Vt.prototype,\"ty\",{get:function(){return this._matrix[5]},set:function(t){this._matrix[5]=t}}),Object.defineProperty(Vt.prototype,\"a\",{get:function(){return this._matrix[0]},set:function(t){this._matrix[0]=t}}),Object.defineProperty(Vt.prototype,\"b\",{get:function(){return this._matrix[1]},set:function(t){this._matrix[1]=t}}),Object.defineProperty(Vt.prototype,\"c\",{get:function(){return this._matrix[2]},set:function(t){this._matrix[2]=t}}),Object.defineProperty(Vt.prototype,\"d\",{get:function(){return this._matrix[3]},set:function(t){this._matrix[3]=t}}),Object.defineProperty(Vt.prototype,\"e\",{get:function(){return this._matrix[4]},set:function(t){this._matrix[4]=t}}),Object.defineProperty(Vt.prototype,\"f\",{get:function(){return this._matrix[5]},set:function(t){this._matrix[5]=t}}),Object.defineProperty(Vt.prototype,\"rotation\",{get:function(){return Math.atan2(this.shx,this.sx)}}),Object.defineProperty(Vt.prototype,\"scaleX\",{get:function(){return this.decompose().scale.sx}}),Object.defineProperty(Vt.prototype,\"scaleY\",{get:function(){return this.decompose().scale.sy}}),Object.defineProperty(Vt.prototype,\"isIdentity\",{get:function(){return 1===this.sx&&(0===this.shy&&(0===this.shx&&(1===this.sy&&(0===this.tx&&0===this.ty))))}}),Vt.prototype.join=function(t){return[this.sx,this.shy,this.shx,this.sy,this.tx,this.ty].map(O).join(t)},Vt.prototype.multiply=function(t){var e=t.sx*this.sx+t.shy*this.shx,r=t.sx*this.shy+t.shy*this.sy,n=t.shx*this.sx+t.sy*this.shx,i=t.shx*this.shy+t.sy*this.sy,a=t.tx*this.sx+t.ty*this.shx+this.tx,o=t.tx*this.shy+t.ty*this.sy+this.ty;return new Vt(e,r,n,i,a,o)},Vt.prototype.decompose=function(){var t=this.sx,e=this.shy,r=this.shx,n=this.sy,i=this.tx,a=this.ty,o=Math.sqrt(t*t+e*e),s=(t/=o)*r+(e/=o)*n;r-=t*s,n-=e*s;var c=Math.sqrt(r*r+n*n);return s/=c,t*(n/=c)>16&255,i=u>>8&255,a=255&u}if(void 0===i||void 0===o&&n===i&&i===a)if(\"string\"==typeof n)r=n+\" \"+s[0];else switch(e.precision){case 2:r=R(n/255)+\" \"+s[0];break;case 3:default:r=T(n/255)+\" \"+s[0]}else if(void 0===o||\"object\"===t(o)){if(o&&!isNaN(o.a)&&0===o.a)return r=[\"1.\",\"1.\",\"1.\",s[1]].join(\" \");if(\"string\"==typeof n)r=[n,i,a,s[1]].join(\" \");else switch(e.precision){case 2:r=[R(n/255),R(i/255),R(a/255),s[1]].join(\" \");break;default:case 3:r=[T(n/255),T(i/255),T(a/255),s[1]].join(\" \")}}else if(\"string\"==typeof n)r=[n,i,a,o,s[2]].join(\" \");else switch(e.precision){case 2:r=[R(n),R(i),R(a),R(o),s[2]].join(\" \");break;case 3:default:r=[T(n),T(i),T(a),T(o),s[2]].join(\" \")}return r},ne=y.__private__.getFilters=function(){return u},ie=y.__private__.putStream=function(t){var e=(t=t||{}).data||\"\",r=t.filters||ne(),n=t.alreadyAppliedFilters||[],i=t.addLength1||!1,a=e.length,o=t.objectId,s=function(t){return t};if(null!==m&&void 0===o)throw new Error(\"ObjectId must be passed to putStream for file encryption\");null!==m&&(s=Ye.encryptor(o,0));var c={};!0===r&&(r=[\"FlateEncode\"]);var u=t.additionalKeyValues||[],h=(c=void 0!==E.API.processDataByFilters?E.API.processDataByFilters(e,r):{data:e,reverseChain:[]}).reverseChain+(Array.isArray(n)?n.join(\" \"):n.toString());if(0!==c.data.length&&(u.push({key:\"Length\",value:c.data.length}),!0===i&&u.push({key:\"Length1\",value:a})),0!=h.length)if(h.split(\"/\").length-1==1)u.push({key:\"Filter\",value:h});else{u.push({key:\"Filter\",value:\"[\"+h+\"]\"});for(var l=0;l>\"),0!==c.data.length&&(lt(\"stream\"),lt(s(c.data)),lt(\"endstream\"))},ae=y.__private__.putPage=function(t){var e=t.number,r=t.data,n=t.objId,i=t.contentsObjId;Zt(n,!0),lt(\"<>\"),lt(\"endobj\");var a=r.join(\"\\n\");return S===x.ADVANCED&&(a+=\"\\nQ\"),Zt(i,!0),ie({data:a,filters:ne(),objectId:i}),lt(\"endobj\"),n},oe=y.__private__.putPages=function(){var t,e,r=[];for(t=1;t<=Dt;t++)Rt[t].objId=Kt(),Rt[t].contentsObjId=Kt();for(t=1;t<=Dt;t++)r.push(ae({number:t,data:ot[t],objId:Rt[t].objId,contentsObjId:Rt[t].contentsObjId,mediaBox:Rt[t].mediaBox,cropBox:Rt[t].cropBox,bleedBox:Rt[t].bleedBox,trimBox:Rt[t].trimBox,artBox:Rt[t].artBox,userUnit:Rt[t].userUnit,rootDictionaryObjId:Qt,resourceDictionaryObjId:te}));Zt(Qt,!0),lt(\"<>\"),lt(\"endobj\"),Tt.publish(\"postPutPages\")},se=function(t){Tt.publish(\"putFont\",{font:t,out:lt,newObject:Xt,putStream:ie}),!0!==t.isAlreadyPutted&&(t.objectNumber=Xt(),lt(\"<<\"),lt(\"/Type /Font\"),lt(\"/BaseFont /\"+F(t.postScriptName)),lt(\"/Subtype /Type1\"),\"string\"==typeof t.encoding&<(\"/Encoding /\"+t.encoding),lt(\"/FirstChar 32\"),lt(\"/LastChar 255\"),lt(\">>\"),lt(\"endobj\"))},ce=function(){for(var t in Ft)Ft.hasOwnProperty(t)&&(!1===v||!0===v&&b.hasOwnProperty(t))&&se(Ft[t])},ue=function(t){t.objectNumber=Xt();var e=[];e.push({key:\"Type\",value:\"/XObject\"}),e.push({key:\"Subtype\",value:\"/Form\"}),e.push({key:\"BBox\",value:\"[\"+[O(t.x),O(t.y),O(t.x+t.width),O(t.y+t.height)].join(\" \")+\"]\"}),e.push({key:\"Matrix\",value:\"[\"+t.matrix.toString()+\"]\"});var r=t.pages[1].join(\"\\n\");ie({data:r,additionalKeyValues:e,objectId:t.objectNumber}),lt(\"endobj\")},he=function(){for(var t in zt)zt.hasOwnProperty(t)&&ue(zt[t])},le=function(t,e){var r,n=[],i=1/(e-1);for(r=0;r<1;r+=i)n.push(r);if(n.push(1),0!=t[0].offset){var a={offset:0,color:t[0].color};t.unshift(a)}if(1!=t[t.length-1].offset){var o={offset:1,color:t[t.length-1].color};t.push(o)}for(var s=\"\",c=0,u=0;ut[c+1].offset;)c++;var h=t[c].offset,l=(r-h)/(t[c+1].offset-h),f=t[c].color,d=t[c+1].color;s+=tt(Math.round((1-l)*f[0]+l*d[0]).toString(16))+tt(Math.round((1-l)*f[1]+l*d[1]).toString(16))+tt(Math.round((1-l)*f[2]+l*d[2]).toString(16))}return s.trim()},fe=function(t,e){e||(e=21);var r=Xt(),n=le(t.colors,e),i=[];i.push({key:\"FunctionType\",value:\"0\"}),i.push({key:\"Domain\",value:\"[0.0 1.0]\"}),i.push({key:\"Size\",value:\"[\"+e+\"]\"}),i.push({key:\"BitsPerSample\",value:\"8\"}),i.push({key:\"Range\",value:\"[0.0 1.0 0.0 1.0 0.0 1.0]\"}),i.push({key:\"Decode\",value:\"[0.0 1.0 0.0 1.0 0.0 1.0]\"}),ie({data:n,additionalKeyValues:i,alreadyAppliedFilters:[\"/ASCIIHexDecode\"],objectId:r}),lt(\"endobj\"),t.objectNumber=Xt(),lt(\"<< /ShadingType \"+t.type),lt(\"/ColorSpace /DeviceRGB\");var a=\"/Coords [\"+O(parseFloat(t.coords[0]))+\" \"+O(parseFloat(t.coords[1]))+\" \";2===t.type?a+=O(parseFloat(t.coords[2]))+\" \"+O(parseFloat(t.coords[3])):a+=O(parseFloat(t.coords[2]))+\" \"+O(parseFloat(t.coords[3]))+\" \"+O(parseFloat(t.coords[4]))+\" \"+O(parseFloat(t.coords[5])),lt(a+=\"]\"),t.matrix&<(\"/Matrix [\"+t.matrix.toString()+\"]\"),lt(\"/Function \"+r+\" 0 R\"),lt(\"/Extend [true true]\"),lt(\">>\"),lt(\"endobj\")},de=function(t,e){var r=Kt(),n=Xt();e.push({resourcesOid:r,objectOid:n}),t.objectNumber=n;var i=[];i.push({key:\"Type\",value:\"/Pattern\"}),i.push({key:\"PatternType\",value:\"1\"}),i.push({key:\"PaintType\",value:\"1\"}),i.push({key:\"TilingType\",value:\"1\"}),i.push({key:\"BBox\",value:\"[\"+t.boundingBox.map(O).join(\" \")+\"]\"}),i.push({key:\"XStep\",value:O(t.xStep)}),i.push({key:\"YStep\",value:O(t.yStep)}),i.push({key:\"Resources\",value:r+\" 0 R\"}),t.matrix&&i.push({key:\"Matrix\",value:\"[\"+t.matrix.toString()+\"]\"}),ie({data:t.stream,additionalKeyValues:i,objectId:t.objectNumber}),lt(\"endobj\")},pe=function(t){var e;for(e in Ot)Ot.hasOwnProperty(e)&&(Ot[e]instanceof B?fe(Ot[e]):Ot[e]instanceof M&&de(Ot[e],t))},ge=function(t){for(var e in t.objectNumber=Xt(),lt(\"<<\"),t)switch(e){case\"opacity\":lt(\"/ca \"+R(t[e]));break;case\"stroke-opacity\":lt(\"/CA \"+R(t[e]))}lt(\">>\"),lt(\"endobj\")},me=function(){var t;for(t in Mt)Mt.hasOwnProperty(t)&&ge(Mt[t])},ve=function(){for(var t in lt(\"/XObject <<\"),zt)zt.hasOwnProperty(t)&&zt[t].objectNumber>=0&<(\"/\"+t+\" \"+zt[t].objectNumber+\" 0 R\");Tt.publish(\"putXobjectDict\"),lt(\">>\")},be=function(){Ye.oid=Xt(),lt(\"<<\"),lt(\"/Filter /Standard\"),lt(\"/V \"+Ye.v),lt(\"/R \"+Ye.r),lt(\"/U <\"+Ye.toHexString(Ye.U)+\">\"),lt(\"/O <\"+Ye.toHexString(Ye.O)+\">\"),lt(\"/P \"+Ye.P),lt(\">>\"),lt(\"endobj\")},ye=function(){for(var t in lt(\"/Font <<\"),Ft)Ft.hasOwnProperty(t)&&(!1===v||!0===v&&b.hasOwnProperty(t))&<(\"/\"+t+\" \"+Ft[t].objectNumber+\" 0 R\");lt(\">>\")},we=function(){if(Object.keys(Ot).length>0){for(var t in lt(\"/Shading <<\"),Ot)Ot.hasOwnProperty(t)&&Ot[t]instanceof B&&Ot[t].objectNumber>=0&<(\"/\"+t+\" \"+Ot[t].objectNumber+\" 0 R\");Tt.publish(\"putShadingPatternDict\"),lt(\">>\")}},Ne=function(t){if(Object.keys(Ot).length>0){for(var e in lt(\"/Pattern <<\"),Ot)Ot.hasOwnProperty(e)&&Ot[e]instanceof y.TilingPattern&&Ot[e].objectNumber>=0&&Ot[e].objectNumber>\")}},Le=function(){if(Object.keys(Mt).length>0){var t;for(t in lt(\"/ExtGState <<\"),Mt)Mt.hasOwnProperty(t)&&Mt[t].objectNumber>=0&<(\"/\"+t+\" \"+Mt[t].objectNumber+\" 0 R\");Tt.publish(\"putGStateDict\"),lt(\">>\")}},Ae=function(t){Zt(t.resourcesOid,!0),lt(\"<<\"),lt(\"/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]\"),ye(),we(),Ne(t.objectOid),Le(),ve(),lt(\">>\"),lt(\"endobj\")},xe=function(){var t=[];ce(),me(),he(),pe(t),Tt.publish(\"putResources\"),t.forEach(Ae),Ae({resourcesOid:te,objectOid:Number.MAX_SAFE_INTEGER}),Tt.publish(\"postPutResources\")},Se=function(){Tt.publish(\"putAdditionalObjects\");for(var t=0;t>8&&(c=!0);t=s.join(\"\")}for(r=t.length;void 0===c&&0!==r;)t.charCodeAt(r-1)>>8&&(c=!0),r--;if(!c)return t;for(s=e.noBOM?[]:[254,255],r=0,n=t.length;r>8)>>8)throw new Error(\"Character at position \"+r+\" of string '\"+t+\"' exceeds 16bits. Cannot be encoded into UCS-2 BE\");s.push(h),s.push(u-(h<<8))}return String.fromCharCode.apply(void 0,s)},Ce=y.__private__.pdfEscape=y.pdfEscape=function(t,e){return Fe(t,e).replace(/\\\\/g,\"\\\\\\\\\").replace(/\\(/g,\"\\\\(\").replace(/\\)/g,\"\\\\)\")},je=y.__private__.beginPage=function(t){ot[++Dt]=[],Rt[Dt]={objId:0,contentsObjId:0,userUnit:Number(d),artBox:null,bleedBox:null,cropBox:null,trimBox:null,mediaBox:{bottomLeftX:0,bottomLeftY:0,topRightX:Number(t[0]),topRightY:Number(t[1])}},Me(Dt),ht(ot[$])},Oe=function(t,e){var r,n,o;switch(i=e||i,\"string\"==typeof t&&(r=A(t.toLowerCase()),Array.isArray(r)&&(n=r[0],o=r[1])),Array.isArray(t)&&(n=t[0]*_t,o=t[1]*_t),isNaN(n)&&(n=s[0],o=s[1]),(n>14400||o>14400)&&(a.warn(\"A page in a PDF can not be wider or taller than 14400 userUnit. jsPDF limits the width/height to 14400\"),n=Math.min(14400,n),o=Math.min(14400,o)),s=[n,o],i.substr(0,1)){case\"l\":o>n&&(s=[o,n]);break;case\"p\":n>o&&(s=[o,n])}je(s),pr(fr),lt(Lr),0!==kr&<(kr+\" J\"),0!==Ir&<(Ir+\" j\"),Tt.publish(\"addPage\",{pageNumber:Dt})},Be=function(t){t>0&&t<=Dt&&(ot.splice(t,1),Rt.splice(t,1),Dt--,$>Dt&&($=Dt),this.setPage($))},Me=function(t){t>0&&t<=Dt&&($=t)},Ee=y.__private__.getNumberOfPages=y.getNumberOfPages=function(){return ot.length-1},qe=function(t,e,r){var n,i=void 0;return r=r||{},t=void 0!==t?t:Ft[St].fontName,e=void 0!==e?e:Ft[St].fontStyle,n=t.toLowerCase(),void 0!==Ct[n]&&void 0!==Ct[n][e]?i=Ct[n][e]:void 0!==Ct[t]&&void 0!==Ct[t][e]?i=Ct[t][e]:!1===r.disableWarning&&a.warn(\"Unable to look up font label for font '\"+t+\"', '\"+e+\"'. Refer to getFontList() for available fonts.\"),i||r.noFallback||null==(i=Ct.times[e])&&(i=Ct.times.normal),i},De=y.__private__.putInfo=function(){var t=Xt(),e=function(t){return t};for(var r in null!==m&&(e=Ye.encryptor(t,0)),lt(\"<<\"),lt(\"/Producer (\"+Ce(e(\"jsPDF \"+E.version))+\")\"),xt)xt.hasOwnProperty(r)&&xt[r]&<(\"/\"+r.substr(0,1).toUpperCase()+r.substr(1)+\" (\"+Ce(e(xt[r]))+\")\");lt(\"/CreationDate (\"+Ce(e(W))+\")\"),lt(\">>\"),lt(\"endobj\")},Re=y.__private__.putCatalog=function(t){var e=(t=t||{}).rootDictionaryObjId||Qt;switch(Xt(),lt(\"<<\"),lt(\"/Type /Catalog\"),lt(\"/Pages \"+e+\" 0 R\"),mt||(mt=\"fullwidth\"),mt){case\"fullwidth\":lt(\"/OpenAction [3 0 R /FitH null]\");break;case\"fullheight\":lt(\"/OpenAction [3 0 R /FitV null]\");break;case\"fullpage\":lt(\"/OpenAction [3 0 R /Fit]\");break;case\"original\":lt(\"/OpenAction [3 0 R /XYZ null null 1]\");break;default:var r=\"\"+mt;\"%\"===r.substr(r.length-1)&&(mt=parseInt(mt)/100),\"number\"==typeof mt&<(\"/OpenAction [3 0 R /XYZ null null \"+R(mt)+\"]\")}switch(Nt||(Nt=\"continuous\"),Nt){case\"continuous\":lt(\"/PageLayout /OneColumn\");break;case\"single\":lt(\"/PageLayout /SinglePage\");break;case\"two\":case\"twoleft\":lt(\"/PageLayout /TwoColumnLeft\");break;case\"tworight\":lt(\"/PageLayout /TwoColumnRight\")}yt&<(\"/PageMode /\"+yt),Tt.publish(\"putCatalog\"),lt(\">>\"),lt(\"endobj\")},Te=y.__private__.putTrailer=function(){lt(\"trailer\"),lt(\"<<\"),lt(\"/Size \"+(et+1)),lt(\"/Root \"+et+\" 0 R\"),lt(\"/Info \"+(et-1)+\" 0 R\"),null!==m&<(\"/Encrypt \"+Ye.oid+\" 0 R\"),lt(\"/ID [ <\"+V+\"> <\"+V+\"> ]\"),lt(\">>\")},Ue=y.__private__.putHeader=function(){lt(\"%PDF-\"+w),lt(\"%ºß¬à\")},ze=y.__private__.putXRef=function(){var t=\"0000000000\";lt(\"xref\"),lt(\"0 \"+(et+1)),lt(\"0000000000 65535 f \");for(var e=1;e<=et;e++){\"function\"==typeof rt[e]?lt((t+rt[e]()).slice(-10)+\" 00000 n \"):void 0!==rt[e]?lt((t+rt[e]).slice(-10)+\" 00000 n \"):lt(\"0000000000 00000 n \")}},He=y.__private__.buildDocument=function(){ut(),ht(nt),Tt.publish(\"buildDocument\"),Ue(),oe(),Se(),xe(),null!==m&&be(),De(),Re();var t=it;return ze(),Te(),lt(\"startxref\"),lt(\"\"+t),lt(\"%%EOF\"),ht(ot[$]),nt.join(\"\\n\")},We=y.__private__.getBlob=function(t){return new Blob([dt(t)],{type:\"application/pdf\"})},Ve=y.output=y.__private__.output=Ie((function(t,e){switch(\"string\"==typeof(e=e||{})?e={filename:e}:e.filename=e.filename||\"generated.pdf\",t){case void 0:return He();case\"save\":y.save(e.filename);break;case\"arraybuffer\":return dt(He());case\"blob\":return We(He());case\"bloburi\":case\"bloburl\":if(void 0!==n.URL&&\"function\"==typeof n.URL.createObjectURL)return n.URL&&n.URL.createObjectURL(We(He()))||void 0;a.warn(\"bloburl is not supported by your system, because URL.createObjectURL is not supported by your browser.\");break;case\"datauristring\":case\"dataurlstring\":var r=\"\",i=He();try{r=h(i)}catch(t){r=h(unescape(encodeURIComponent(i)))}return\"data:application/pdf;filename=\"+e.filename+\";base64,\"+r;case\"pdfobjectnewwindow\":if(\"[object Window]\"===Object.prototype.toString.call(n)){var o=\"https://cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js\",s=' integrity=\"sha512-4ze/a9/4jqu+tX9dfOqJYSvyYd5M6qum/3HpCLr+/Jqf0whc37VUbkpNGHR7/8pSnCFw47T1fmIpwBV7UySh3g==\" crossorigin=\"anonymous\"';e.pdfObjectUrl&&(o=e.pdfObjectUrl,s=\"\");var c='