chunk-2242f2f8.38a68f48.js.map 1.5 MB

1
  1. {"version":3,"sources":["webpack:///./src/assets/images/leftImgs/EditBaseTriangle.png","webpack:///./src/assets/images/leftImgs/equation.png","webpack:///./node_modules/@persagy-web/big/lib/factories/SItemFactory.js","webpack:///./src/components/editview/leftToolBar/legendList.vue?abcf","webpack:///./node_modules/core-js/internals/function-bind.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/@persagy-web/base/lib/undo/SUndoStack.js","webpack:///./node_modules/@persagy-web/big/lib/items/floor/SWallItem.js","webpack:///./src/assets/images/leftImgs/EditBaseArrowsActive.png","webpack:///./src/components/editview/leftToolBar/pipeList.vue?ab7c","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/@persagy-web/graph/lib/commands/SGraphPointListInsert.js","webpack:///./node_modules/core-js/internals/to-index.js","webpack:///./node_modules/@persagy-web/big/lib/parser/SZoneParser.js","webpack:///./node_modules/core-js/internals/native-url.js","webpack:///./src/assets/images/solidLine.png","webpack:///./src/components/editview/topoTooltip.vue?bcd7","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./src/assets/images/leftImgs/equipmentactive.png","webpack:///./src/assets/images/leftImgs/EditBaseArrows.png","webpack:///./src/assets/images/leftImgs/tongyongactive.png","webpack:///./src/assets/images/leftImgs/EditBaseLineActive.png","webpack:///./node_modules/uuid/index.js","webpack:///./node_modules/@persagy-web/draw/lib/SColor.js","webpack:///./node_modules/@persagy-web/big/lib/items/SPolygonItem.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./src/assets/images/leftImgs/equationActive.png","webpack:///./node_modules/@persagy-web/graph/lib/SGraphView.js","webpack:///./node_modules/core-js/internals/array-copy-within.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./src/assets/images/leftImgs/santong.png","webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/core-js/modules/es.typed-array.subarray.js","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/core-js/internals/to-offset.js","webpack:///./node_modules/@persagy-web/draw/lib/enums/STextAlign.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./src/components/editview/topoEditer.vue?d0d3","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./src/components/editview/rightPropertyBar/BaseImagePro.vue?597e","webpack:///./node_modules/@persagy-web/draw/lib/SBrush.js","webpack:///./node_modules/@persagy-web/draw/lib/SGradientStop.js","webpack:///./node_modules/@persagy-web/graph/lib/items/SGraphPolyGroupItem.js","webpack:///./node_modules/core-js/modules/es.typed-array.sort.js","webpack:///./node_modules/@persagy-web/base/lib/SObject.js","webpack:///./node_modules/uuid/lib/bytesToUuid.js","webpack:///./node_modules/polybooljs/index.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/core-js/modules/es.typed-array.reduce-right.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./src/assets/images/leftImgs/equipment.png","webpack:///./src/assets/images/leftImgs/EditBaseRect.png","webpack:///./node_modules/core-js/modules/es.typed-array.slice.js","webpack:///./src/assets/images/leftImgs/infoPointActive.png","webpack:///./node_modules/core-js/modules/web.url.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/@persagy-web/graph/lib/items/STextItem.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./src/components/editview/rightPropertyBar/baseTextPro.vue?f858","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./src/assets/images/leftImgs/same.png","webpack:///./node_modules/core-js/modules/es.typed-array.last-index-of.js","webpack:///./node_modules/@persagy-web/graph/lib/enums/SGraphLayoutType.js","webpack:///./src/assets/images/leftImgs/infoPoint.png","webpack:///./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack:///./node_modules/polybooljs/lib/geojson.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/@persagy-web/graph/lib/items/SAnchorItem.js","webpack:///./node_modules/@persagy-web/graph/lib/enums/STextOrigin.js","webpack:///./node_modules/@persagy-web/draw/lib/SRadialGradient.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/core-js/modules/es.typed-array.find-index.js","webpack:///./node_modules/@persagy-web/draw/lib/enums/SBrushType.js","webpack:///./node_modules/core-js/modules/es.typed-array.set.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/@persagy-web/base/lib/utils/SStringUtil.js","webpack:///./node_modules/@persagy-web/draw/lib/types/SPoint.js","webpack:///./node_modules/core-js/modules/es.typed-array.map.js","webpack:///./node_modules/core-js/modules/es.array.for-each.js","webpack:///./node_modules/@persagy-web/draw/lib/enums/SCompositeType.js","webpack:///./src/assets/images/leftImgs/sitong.png","webpack:///./node_modules/@persagy-web/big/lib/items/floor/SSpaceItem.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/@persagy-web/big/lib/parser/SFloorParser.js","webpack:///./src/components/editview/rightPropertyBar/property.vue?1fc2","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./src/assets/images/leftImgs/EditBasetextActive.png","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/core-js/modules/es.reflect.construct.js","webpack:///./node_modules/@persagy-web/graph/lib/commands/SGraphPointListDelete.js","webpack:///./node_modules/@persagy-web/base/lib/index.js","webpack:///./node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/@persagy-web/graph/lib/SGraphScene.js","webpack:///./node_modules/@persagy-web/draw/lib/enums/SArrowStyleType.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/@persagy-web/draw/lib/SGradient.js","webpack:///./node_modules/@persagy-web/big/lib/config/ItemColor.js","webpack:///./node_modules/@persagy-web/graph/lib/commands/SGraphAddCommand.js","webpack:///./src/assets/images/leftImgs/tongyong.png","webpack:///./src/views/editer.vue?4c4a","webpack:///./src/assets/images/dashedLine.png","webpack:///./node_modules/@persagy-web/base/lib/enums/STouchState.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/@persagy-web/draw/lib/SPainter.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/@persagy-web/big/lib/items/SLayerItem.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint8-array.js","webpack:///./node_modules/core-js/modules/es.reflect.get.js","webpack:///./node_modules/@persagy-web/graph/lib/items/SGraphShape.js","webpack:///./node_modules/@persagy-web/graph/lib/items/SGraphSvgItem.js","webpack:///./node_modules/@persagy-web/draw/lib/enums/SAspectRatioMode.js","webpack:///./src/assets/images/leftImgs/EditBasetext.png","webpack:///./node_modules/core-js/modules/es.typed-array.join.js","webpack:///./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack:///./node_modules/core-js/modules/es.typed-array.iterator.js","webpack:///./node_modules/core-js/internals/array-buffer.js","webpack:///./node_modules/@persagy-web/draw/lib/enums/STextDirection.js","webpack:///./node_modules/@persagy-web/graph/lib/commands/SGraphPropertyCommand.js","webpack:///./node_modules/@persagy-web/base/lib/enums/SKeyCode.js","webpack:///./node_modules/@persagy-web/graph/lib/items/SGraphRectItem.js","webpack:///./node_modules/core-js/modules/es.typed-array.some.js","webpack:///./node_modules/@persagy-web/draw/lib/index.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/@persagy-web/big/lib/parser/SParser.js","webpack:///./node_modules/@persagy-web/graph/lib/items/SGraphAreaGroupItem.js","webpack:///./node_modules/@persagy-web/base/lib/utils/SNetUtil.js","webpack:///./node_modules/@persagy-web/big/lib/index.js","webpack:///./node_modules/@persagy-web/graph/lib/commands/SGraphPointListUpdate.js","webpack:///./src/assets/images/leftImgs/EditBaseTriangleActive.png","webpack:///./node_modules/@persagy-web/draw/lib/enums/SLineCapStyle.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/core-js/modules/es.typed-array.to-string.js","webpack:///./node_modules/core-js/modules/es.typed-array.fill.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/@persagy-web/big/lib/items/floor/SWindowItem.js","webpack:///./src/assets/images/dotLine.png","webpack:///./node_modules/core-js/internals/typed-array-constructor.js","webpack:///./src/assets/images/leftImgs/equipListActive.png","webpack:///./src/assets/images/leftImgs/EditBaseRectActive.png","webpack:///./node_modules/@persagy-web/draw/lib/engines/SSvgPaintEngine.js","webpack:///./node_modules/@persagy-web/base/lib/SObjectObserver.js","webpack:///./node_modules/@persagy-web/big/lib/config/ItemOrder.js","webpack:///./node_modules/@persagy-web/base/lib/SMouseEvent.js","webpack:///./node_modules/core-js/internals/ieee754.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/@persagy-web/base/lib/SMatrix.js","webpack:///./src/assets/images/leftImgs/wantouActive.png","webpack:///./node_modules/@persagy-web/graph/lib/utils/SMathUtil.js","webpack:///./node_modules/@persagy-web/draw/lib/SShadow.js","webpack:///./src/views/editer.vue?b2c9","webpack:///./src/components/editview/topoEditer.vue?74a2","webpack:///./src/components/editview/leftToolBar.vue?7e88","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///./src/components/editview/leftToolBar/legendList.vue?c25f","webpack:///./src/components/editview/leftToolBar/data.js","webpack:///./src/components/editview/leftToolBar/pipeList.vue?ae15","webpack:///src/components/editview/leftToolBar/pipeList.vue","webpack:///./src/components/editview/leftToolBar/pipeList.vue?1116","webpack:///./src/components/editview/leftToolBar/pipeList.vue","webpack:///./src/components/editview/leftToolBar/equipmentList.vue?4b32","webpack:///src/components/editview/leftToolBar/equipmentList.vue","webpack:///./src/components/editview/leftToolBar/equipmentList.vue?ab33","webpack:///./src/components/editview/leftToolBar/equipmentList.vue","webpack:///src/components/editview/leftToolBar/legendList.vue","webpack:///./src/components/editview/leftToolBar/legendList.vue?80cf","webpack:///./src/components/editview/leftToolBar/legendList.vue","webpack:///src/components/editview/leftToolBar.vue","webpack:///./src/components/editview/leftToolBar.vue?94fa","webpack:///./src/components/editview/leftToolBar.vue","webpack:///./src/components/editview/rightPropertyBar.vue?7fef","webpack:///./src/components/editview/rightPropertyBar/property.vue?5c60","webpack:///./src/components/editview/rightPropertyBar/baseTextPro.vue?7869","webpack:///./src/bus/bus.ts","webpack:///src/components/editview/rightPropertyBar/baseTextPro.vue","webpack:///./src/components/editview/rightPropertyBar/baseTextPro.vue?c440","webpack:///./src/components/editview/rightPropertyBar/baseTextPro.vue","webpack:///./src/components/editview/rightPropertyBar/baseLinePro.vue?59ca","webpack:///src/components/editview/rightPropertyBar/baseLinePro.vue","webpack:///./src/components/editview/rightPropertyBar/baseLinePro.vue?58d7","webpack:///./src/components/editview/rightPropertyBar/baseLinePro.vue","webpack:///./src/components/editview/rightPropertyBar/BaseGraphy.vue?5754","webpack:///src/components/editview/rightPropertyBar/BaseGraphy.vue","webpack:///./src/components/editview/rightPropertyBar/BaseGraphy.vue?ca86","webpack:///./src/components/editview/rightPropertyBar/BaseGraphy.vue","webpack:///./src/components/editview/rightPropertyBar/BaseImagePro.vue?89e9","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/api/httputils.ts","webpack:///./src/api/editer.ts","webpack:///src/components/editview/rightPropertyBar/BaseImagePro.vue","webpack:///./src/components/editview/rightPropertyBar/BaseImagePro.vue?bc41","webpack:///./src/components/editview/rightPropertyBar/BaseImagePro.vue","webpack:///src/components/editview/rightPropertyBar/property.vue","webpack:///./src/components/editview/rightPropertyBar/property.vue?785c","webpack:///./src/components/editview/rightPropertyBar/property.vue","webpack:///src/components/editview/rightPropertyBar.vue","webpack:///./src/components/editview/rightPropertyBar.vue?98dd","webpack:///./src/components/editview/rightPropertyBar.vue","webpack:///./src/components/editview/baseTopoEditer.vue?7227","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/superPropBase.js","webpack:///./node_modules/@babel/runtime/helpers/esm/get.js","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack:///./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack:///./src/components/editClass/edit/SGraphEdit.ts","webpack:///./src/components/editClass/edit/SGraphEditScene.ts","webpack:///./src/components/editClass/edit/items/SImageEdit.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/construct.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./src/components/editClass/edit/items/SLineEdit.ts","webpack:///./src/components/editClass/edit/items/SPolygonEdit.ts","webpack:///./src/components/editClass/edit/items/STextEdit.ts","webpack:///./src/components/editClass/edit/commands/SGraphCommand.ts","webpack:///./src/components/editClass/edit/commands/SGraphAddCommand.ts","webpack:///./src/components/editClass/edit/commands/SGraphPointListDelete.ts","webpack:///./src/components/editClass/edit/commands/SGraphPointListInsert.ts","webpack:///./src/components/editClass/edit/commands/SGraphPointListUpdate.ts","webpack:///./src/components/editClass/big-edit/until.ts","webpack:///./src/components/editClass/big-edit/SBaseEditScene.ts","webpack:///./src/components/editClass/big-edit/items/SBaseLineEdit.ts","webpack:///./src/components/editClass/big-edit/items/SBaseTextEdit.ts","webpack:///./src/components/editClass/big-edit/items/SBaseImageEdit.ts","webpack:///./src/components/editClass/big-edit/items/SBaseExpainEdit.ts","webpack:///./src/components/editClass/big-edit/items/SBasePolygonEdit.ts","webpack:///./src/components/editClass/edit/items/SRectEdit.ts","webpack:///./src/components/editClass/big-edit/items/SBaseRectEdit.ts","webpack:///./src/components/editClass/big-edit/BigEditFactory.ts","webpack:///./src/components/editClass/big-edit/items/SBaseEquipment.ts","webpack:///./src/components/editClass/edit/items/STriangleEdit.ts","webpack:///./src/components/editClass/big-edit/items/SBaseTriangleEdit.ts","webpack:///./src/components/editClass/edit/items/SArrowEdit.ts","webpack:///./src/components/editClass/big-edit/items/SBaseArrowEdit.ts","webpack:///./src/components/editClass/edit/items/SCircleEdit.ts","webpack:///./src/components/editClass/big-edit/items/SBaseCircleEdit.ts","webpack:///./src/components/editClass/persagy-edit/PTopoScene.ts","webpack:///./src/components/editClass/persagy-edit/PTopoParser.ts","webpack:///./src/components/editClass/persagy-edit/item/SPersagyImageEdit.ts","webpack:///./src/components/editview/topoTooltip.vue?9b23","webpack:///src/components/editview/topoTooltip.vue","webpack:///./src/components/editview/topoTooltip.vue?1816","webpack:///./src/components/editview/topoTooltip.vue","webpack:///src/components/editview/baseTopoEditer.vue","webpack:///./src/components/editview/baseTopoEditer.vue?600a","webpack:///./src/components/editview/baseTopoEditer.vue","webpack:///./src/components/editview/topToolBar.vue?ae0c","webpack:///src/components/editview/topToolBar.vue","webpack:///./src/components/editview/topToolBar.vue?af89","webpack:///./src/components/editview/topToolBar.vue","webpack:///src/components/editview/topoEditer.vue","webpack:///./src/components/editview/topoEditer.vue?4b36","webpack:///./src/components/editview/topoEditer.vue","webpack:///src/views/editer.vue","webpack:///./src/views/editer.vue?348d","webpack:///./src/views/editer.vue","webpack:///./node_modules/@persagy-web/graph/lib/enums/SImageShowType.js","webpack:///./node_modules/core-js/internals/array-fill.js","webpack:///./node_modules/@persagy-web/base/lib/undo/SUndoCommand.js","webpack:///./node_modules/core-js/modules/es.typed-array.includes.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/@persagy-web/big/lib/enums/SItemStatus.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","webpack:///./src/assets/images/copy.png","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/@persagy-web/graph/lib/commands/SGraphMoveCommand.js","webpack:///./node_modules/@persagy-web/graph/lib/items/SImageItem.js","webpack:///./node_modules/@persagy-web/big/lib/items/floor/SVirtualWallItem.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./src/assets/images/undo.png","webpack:///./node_modules/@persagy-web/graph/lib/enums/SLineStyle.js","webpack:///./node_modules/@persagy-web/draw/lib/enums/SLineJoinStyle.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./src/assets/images/download.png","webpack:///./src/components/editview/leftToolBar/equipmentList.vue?6609","webpack:///./src/assets/images/leftImgs/EditBasePostil.png","webpack:///./node_modules/core-js/modules/web.url-search-params.js","webpack:///./node_modules/polybooljs/lib/intersecter.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./src/assets/images/leftImgs/sitongActive.png","webpack:///./node_modules/@persagy-web/draw/lib/enums/SPaintEngineType.js","webpack:///./src/assets/images/leftImgs/EditBaseImageActive.png","webpack:///./node_modules/core-js/modules/es.typed-array.copy-within.js","webpack:///./node_modules/@persagy-web/draw/lib/SLinearGradient.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/@persagy-web/big/lib/items/floor/SBoardItem.js","webpack:///./node_modules/core-js/internals/typed-array-from.js","webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///./node_modules/@persagy-web/draw/lib/SFont.js","webpack:///./src/assets/images/leftImgs/publicItemActive.png","webpack:///./src/components/editview/rightPropertyBar/BaseGraphy.vue?d014","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/@persagy-web/graph/lib/enums/SOrderSetType.js","webpack:///./node_modules/polybooljs/lib/segment-chainer.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/@persagy-web/big/lib/items/floor/ZoneItem.js","webpack:///./src/assets/images/leftImgs/sameactive.png","webpack:///./node_modules/polybooljs/lib/build-log.js","webpack:///./src/assets/images/leftImgs/spaceactive.png","webpack:///./node_modules/core-js/modules/es.typed-array.every.js","webpack:///./node_modules/core-js/internals/array-buffer-native.js","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/@persagy-web/draw/lib/types/SSize.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./src/assets/images/redo.png","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/@persagy-web/big/lib/utils/SMathUtil.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/core-js/internals/array-method-uses-to-length.js","webpack:///./node_modules/core-js/modules/es.number.max-safe-integer.js","webpack:///./src/assets/images/leftImgs/EditBaseImage.png","webpack:///./src/components/editview/leftToolBar.vue?36d9","webpack:///./node_modules/@persagy-web/graph/lib/SGraphItem.js","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/@persagy-web/draw/lib/types/SLine.js","webpack:///./src/assets/images/delete.png","webpack:///./node_modules/core-js/modules/es.typed-array.to-locale-string.js","webpack:///./node_modules/@persagy-web/big/lib/config/Transparency.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/@persagy-web/big/lib/items/SRectSelectItem.js","webpack:///./node_modules/core-js/modules/es.object.keys.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/polybooljs/lib/segment-selector.js","webpack:///./src/components/editview/rightPropertyBar.vue?7c2a","webpack:///./src/components/editview/topToolBar.vue?24b1","webpack:///./node_modules/axios/index.js","webpack:///./src/components/editview/rightPropertyBar/baseLinePro.vue?9b4f","webpack:///./src/assets/images/save.png","webpack:///./node_modules/@persagy-web/big/lib/items/SLineItem.js","webpack:///./node_modules/@persagy-web/big/lib/items/STooltipItem.js","webpack:///./node_modules/polybooljs/lib/linked-list.js","webpack:///./src/assets/images/leftImgs/EditBaseLine.png","webpack:///./node_modules/core-js/modules/es.typed-array.filter.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/uuid/v1.js","webpack:///./node_modules/@persagy-web/base/lib/enums/SMouseButton.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/uuid/v4.js","webpack:///./node_modules/@persagy-web/graph/lib/commands/SGraphCommand.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/core-js/modules/es.array.index-of.js","webpack:///./src/assets/images/leftImgs/publicItem.png","webpack:///./node_modules/core-js/modules/es.typed-array.reduce.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./src/assets/images/leftImgs/wantou.png","webpack:///./node_modules/core-js/modules/es.typed-array.reverse.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/core-js/modules/es.typed-array.find.js","webpack:///./node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./src/assets/images/leftImgs/guanxian.png","webpack:///./node_modules/@persagy-web/big/lib/items/SIconTextItem.js","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/core-js/modules/es.typed-array.for-each.js","webpack:///./node_modules/@persagy-web/base/lib/utils/SStringBuilder.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/@persagy-web/big/lib/items/floor/SColumnItem.js","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./src/components/editview/baseTopoEditer.vue?e677","webpack:///./src/assets/images/leftImgs/santongActive.png","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///./src/assets/images/leftImgs/guanxianactive.png","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/@persagy-web/big/lib/items/SPolylineItem.js","webpack:///./node_modules/@persagy-web/draw/lib/SPen.js","webpack:///./node_modules/@persagy-web/draw/lib/SPath.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/uuid/lib/rng-browser.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/core-js/internals/array-last-index-of.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/core-js/modules/es.number.min-safe-integer.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/modules/es.typed-array.index-of.js","webpack:///./node_modules/core-js/internals/array-buffer-view-core.js","webpack:///./node_modules/@persagy-web/draw/lib/SCanvasView.js","webpack:///./src/assets/images/svg.svg","webpack:///./node_modules/@persagy-web/draw/lib/enums/STextBaseLine.js","webpack:///./node_modules/@persagy-web/graph/lib/items/SObjectItem.js","webpack:///./node_modules/@persagy-web/draw/lib/engines/SCanvasPaintEngine.js","webpack:///./node_modules/@persagy-web/draw/lib/engines/SPaintState.js","webpack:///./node_modules/@persagy-web/big/lib/items/floor/SDoorItem.js","webpack:///./node_modules/@persagy-web/draw/lib/types/SRect.js","webpack:///./src/assets/images/leftImgs/equipList.png","webpack:///./node_modules/@persagy-web/graph/lib/SGraphSelectContainer.js","webpack:///./node_modules/@persagy-web/draw/lib/utils/SPolygonUtil.js","webpack:///./src/assets/images/issue.png","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./src/assets/images/leftImgs/space.png","webpack:///./node_modules/@persagy-web/graph/lib/index.js","webpack:///./node_modules/polybooljs/lib/epsilon.js","webpack:///./node_modules/core-js/internals/to-positive-integer.js","webpack:///./src/assets/images/leftImgs/EditBasePostilActive.png","webpack:///./node_modules/core-js/modules/es.array.slice.js","webpack:///./src/assets/images/past.png","webpack:///./node_modules/@persagy-web/big/lib/enums/SRelationState.js","webpack:///./node_modules/@persagy-web/draw/lib/engines/SPaintEngine.js","webpack:///./node_modules/core-js/internals/dom-iterables.js"],"names":["module","exports","Object","defineProperty","value","SItemFactory","SColumnItem_1","SWallItem_1","SVirtualWallItem_1","SSpaceItem_1","SDoorItem_1","SWindowItem_1","ZoneItem_1","data","SColumnItem","SWallItem","SVirtualWallItem","SSpaceItem","SDoorItem","SWindowItem","SZoneItem","aFunction","isObject","slice","factories","construct","C","argsLength","args","list","i","Function","join","bind","that","fn","this","partArgs","call","arguments","boundFunction","concat","length","apply","prototype","toIndexedObject","nativeGetOwnPropertyNames","f","toString","windowNames","window","getOwnPropertyNames","getWindowNames","it","error","__extends","extendStatics","d","b","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","constructor","create","SUndoStack","SObject_1","_super","_this","cmdStack","_index","isChange","get","enumerable","configurable","redo","canRedo","undo","canUndo","index","clear","command","count","push","cmd","mergeWith","toLog","stackList","desc","detail","SObject","__1","graph_1","SGraphAreaGroupItem","parent","style","Default","Stroke","Fill","LineWidth","Effect","tempArr","OutLine","outline","map","t","Y","super","Outline","Style","zOrder","ItemOrder","wallOrder","utils","buildURL","InterceptorManager","dispatchRequest","mergeConfig","Axios","instanceConfig","defaults","interceptors","request","response","config","url","method","toLowerCase","chain","undefined","promise","Promise","resolve","forEach","interceptor","unshift","fulfilled","rejected","then","shift","getUri","params","paramsSerializer","replace","SGraphPointListInsert","draw_1","index_1","SGraphCommand","scene","item","pointList","pos","id","point","SPoint","x","y","splice","update","pop","JSON","stringify","toInteger","toLength","number","RangeError","SZoneParser","SParser_1","SParser","zoneList","addZone","factory","createZone","fails","wellKnownSymbol","IS_PURE","ITERATOR","URL","searchParams","result","pathname","key","toJSON","sort","href","String","URLSearchParams","username","host","hash","callback","arr","v1","v4","uuid","SColor","base_1","r","g","a","_value","setRgb","setRgba","rgb","rgba","set","v","Math","floor","SStringUtil","num2Hex","substr","parseInt","toRgb","red","green","blue","toRgba","alpha","toVal","Transparent","Black","DarkBlue","Blue","DarkGreen","Green","DarkCyan","Cyan","DarkRed","Red","DarkMagenta","Magenta","DarkYellow","Yellow","White","DarkGray","Gray","LightGray","SPolygonItem","SMathUtil_1","SGraphItem","minX","Number","MAX_SAFE_INTEGER","maxX","MIN_SAFE_INTEGER","minY","maxY","_status","SItemStatus","Normal","_strokeColor","_fillColor","_lineStyle","SLineStyle","Solid","_lineWidth","closeFlag","lastPoint","curIndex","curPoint","len","scenceLen","isAlt","undoStack","painter","save","pen","lineCapStyle","SLineCapStyle","Square","color","strokeColor","brush","fillColor","lineWidth","toPx","lineStyle","Dashed","lineDash","Dotted","selected","shadow","shadowBlur","shadowColor","shadowOffsetX","shadowOffsetY","drawPolygon","restore","drawLine","drawPolyline","drawCircle","SMathUtil","pointDistance","event","lenIndex","curenLen","dis","delePoint","deletePoint","recordAction","SGraphPointListDelete","pointToLine","SLine","MinDis","Point","onMouseDown","any","sgraphcommand","status","Edit","grabItem","releaseItem","Create","code","$emit","keyCode","SKeyCode","Delete","shiftKey","compare","insertPoint","editPolygonPoint","onMouseMove","buttons","last","dx","abs","dy","SGraphPointListUpdate","moveToOrigin","onMouseUp","SRect","SPolygonUtil","pointIn","drawShowPolygon","drawCreatePolygon","drawEditPolygon","fixRegExpWellKnownSymbolLogic","isRegExp","anObject","requireObjectCoercible","speciesConstructor","advanceStringIndex","callRegExpExec","regexpExec","arrayPush","min","MAX_UINT32","SUPPORTS_Y","RegExp","SPLIT","nativeSplit","maybeCallNative","internalSplit","split","separator","limit","string","lim","match","lastIndex","lastLength","output","flags","ignoreCase","multiline","unicode","sticky","lastLastIndex","separatorCopy","source","test","O","splitter","regexp","res","done","rx","S","unicodeMatching","q","A","e","z","SGraphView","uuid_1","draw_2","SCanvasView","_scene","backgroundColor","rotate","view","name","width","height","createObjectURL","Blob","sceneSvgData","type","SNetUtil","downLoad","engine","SSvgPaintEngine","SPainter","s0","scale","x0","origin","y0","rect","allItemRect","fitRectToSize","onDraw","toSvg","selectedItemRect","itemList","boundingRect","translated","union","can","document","createElement","body","getElementsByTagName","appendChild","SCanvasPaintEngine","getContext","vi","fitSceneToView","saveImage","remove","clearRect","drawBackground","translate","drawScene","drawForeground","drawRect","ce","toSceneMotionEvent","onDoubleClick","onContextMenu","onKeyDown","onKeyUp","isValid","center","se","SMouseEvent","matrix","mp","offsetX","offsetY","matrixTransform","inversed","toObject","toAbsoluteIndex","copyWithin","target","start","to","from","end","inc","classof","R","exec","TypeError","global","DOMIterables","createNonEnumerableProperty","COLLECTION_NAME","Collection","CollectionPrototype","ArrayBufferViewCore","aTypedArray","exportTypedArrayMethod","begin","beginIndex","buffer","byteOffset","BYTES_PER_ELEMENT","$forEach","arrayMethodIsStrict","arrayMethodUsesToLength","STRICT_METHOD","USES_TO_LENGTH","callbackfn","toPositiveInteger","BYTES","offset","STextAlign","thisArg","V8_VERSION","SPECIES","METHOD_NAME","array","foo","Boolean","SBrush","SBrushType_1","_1","SBrushType","Color","_color","_gradient","SGradient","gradient","Gradient","SGradientStop","_pos","SGraphPolyGroupItem","lib_1","SGraphShape_1","SGraphShape","X","$sort","comparefn","SObjectObserver_1","listeners","connect","receiver","observerList","_i","observerList_1","observer","compar","SObjectObserver","disconnect","_a","observerList_2","notify","byteToHex","bytesToUuid","buf","bth","PolyBool","BuildLog","Epsilon","Intersecter","SegmentChainer","SegmentSelector","GeoJSON","buildLog","epsilon","operate","poly1","poly2","selector","seg1","segments","seg2","comb","combine","seg3","polygon","bl","poly","regions","addRegion","calculate","inverted","segments1","segments2","i3","combined","inverted1","inverted2","selectUnion","selectIntersect","intersect","selectDifference","difference","selectDifferenceRev","differenceRev","selectXor","xor","polygonFromGeoJSON","geojson","toPolygon","polygonToGeoJSON","fromPolygon","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","isUndefined","getDefaultAdapter","adapter","XMLHttpRequest","process","transformRequest","isFormData","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","isURLSearchParams","transformResponse","parse","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","merge","$","notARegExp","correctIsRegExpLogic","proto","forced","includes","searchString","indexOf","$reduceRight","right","redefine","TO_STRING","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","unsafe","aTypedArrayConstructor","$slice","FORCED","Int8Array","EOF","DESCRIPTORS","USE_NATIVE_URL","defineProperties","anInstance","has","assign","arrayFrom","codeAt","toASCII","setToStringTag","URLSearchParamsModule","InternalStateModule","NativeURL","getInternalSearchParamsState","getState","setInternalState","getInternalURLState","getterFor","pow","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","input","codePoints","charAt","parseIPv6","isSpecial","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","numbers","part","radix","ipv4","parts","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","char","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","ignore0","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","encodeURIComponent","specialSchemes","ftp","file","http","https","ws","wss","scheme","includesCredentials","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","normalized","second","startsWithWindowsDriveLetter","third","shortenURLsPath","path","pathSize","isSingleDot","segment","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","base","bufferCodePoints","failure","state","seenAt","seenBracket","seenPasswordToken","port","query","fragment","codePoint","encodedCodePoints","URLConstructor","baseState","urlString","searchParamsState","updateSearchParams","updateURL","serializeURL","getOrigin","protocol","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","getPathname","search","getSearch","getSearchParams","getHash","URLPrototype","accessorDescriptor","getter","setter","nativeCreateObjectURL","nativeRevokeObjectURL","revokeObjectURL","blob","sham","enhanceError","message","Error","STextItem","SObjectItem_1","__2","SObjectItem","str","_painter","_text","_textArr","_backgroundColor","_borderStyle","None","_originPosition","STextOrigin","LeftTop","maxWidth","_font","SFont","text","drawFormatText","moveTo","font","drawText","size","textMaxWidth","fontSize","textWidth","originPosition","Center","drawShowText","__CANCEL__","encode","val","serializedParams","isArray","isDate","toISOString","hashmarkIndex","$lastIndexOf","searchElement","SGraphLayoutType","nativeGetPrototypeOf","CORRECT_PROTOTYPE_GETTER","FAILS_ON_PRIMITIVES","stat","getPrototypeOf","GeoPoly","coords","LineString","ls","reg","out","coordinates","eps","regionInsideRegion","r1","r2","pointInsideRegion","newNode","region","children","roots","addChild","root","child","node","forceWinding","clockwise","winding","last_x","last_y","copy","curr_x","curr_y","isclockwise","reverse","geopolys","addExterior","getInterior","isAxiosError","description","fileName","lineNumber","columnNumber","stack","SAnchorItem","SGraphItem_1","isConnected","sceneDis","SRadialGradient","x1","y1","x2","y2","stopList","isStandardBrowserEnv","originURL","msie","navigator","userAgent","urlParsingNode","resolveURL","setAttribute","location","requestURL","parsed","isString","$findIndex","findIndex","predicate","toOffset","arrayLike","src","defineIterator","STRING_ITERATOR","getInternalState","iterated","n","hex","numStr","setPoint","manhattanLength","mat","c","$map","mapfn","SCompositeType","Selected","Disabled","Highlight","_highLightFlag","_showBaseName","_nameSize","_nameTransform","_nameColor","spaceOrder","Name","highLightFlag","enabled","showBaseName","nameColor","nameTransform","nameSize","textAlign","Location","Points","MATCH","SFloorParser","wallList","columnList","doorList","casementList","virtualWallList","spaceList","Walls","addWall","Columns","addColumn","Windows","addCasement","VirtualWalls","addVirtualWall","Doors","addDoor","Spaces","addSpace","createWall","createColumn","createWindow","createVirtualWall","createDoor","createSpace","regExpExec","nativeMatch","matcher","fullUnicode","matchStr","createError","reject","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","isPlainObject","mergeDeepProperties","prop","axiosKeys","otherKeys","keys","filter","getBuiltIn","nativeConstruct","NEW_TARGET_BUG","F","ARGS_BUG","Target","newTarget","$args","instance","SMatrix","SStringBuilder","SUndoCommand","STouchState","SMouseButton","SMouseButton_1","STouchState_1","SKeyCode_1","SUndoCommand_1","SUndoStack_1","SNetUtil_1","SStringBuilder_1","SStringUtil_1","SMatrix_1","SMouseEvent_1","isForced","inheritIfRequired","getFlags","stickyHelpers","setSpecies","NativeRegExp","re1","re2","CORRECT_NEW","UNSUPPORTED_Y","RegExpWrapper","pattern","thisIsRegExp","patternIsRegExp","flagsAreUndefined","proxy","$filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIteratorMethod","step","iterator","next","argumentsLength","mapping","iteratorMethod","SGraphScene","SGraphSelectContainer_1","hoverItem","selectContainer","SGraphSelectContainer","addItem","onPaint","flag","visible","toGrabItemMotionEvent","multiply","scene2itemMattrix","SArrowStyleType","transformData","isCancel","throwIfCancellationRequested","cancelToken","throwIfRequested","reason","addColorStop","setStart","setEnd","ItemColor","wallColor","columnColor","virtualWallColor","spaceColor","doorColor","windowColor","sceneMarkColor","shadeColor","highLightPointColor","highLightLineColor","rectSelectOutColor","rectSelectInColor","spaceBorderColor","selectColor","spaceHighColor","zoneUnselectColor","zoneInfectedColor","zoneInfectedBorder","SGraphAddCommand","SGraphCommand_1","whitespaces","whitespace","ltrim","rtrim","createMethod","TYPE","$this","trim","SCompositeType_1","SArrowStyleType_1","SShadow_1","canvas","SPen","composite","SourceOver","SShadow","changeFont","_composite","clip","angle","transform","m11","m12","m21","m22","setTransform","resetTransform","w","h","SSize","bottom","drawRoundRect","radius","cx","cy","drawEllipse","ry","points","drawPath","drawImage","img","drawArrowLine","st","line","Basic","drawBasicArrow","Triangle","drawTriangleArrow","Diamond","drawDiamondArrow","drawSquareArrow","Circle","drawCircleArrow","isEnd","cos","PI","sin","tempFo","atan","fo","sqrt","SLayerItem","createTypedArrayConstructor","init","getOwnPropertyDescriptorModule","propertyKey","descriptor","index1","index2","temp","substring","dataArr","grad","SLinearGradient","cur","console","log","setStyle","parseFill","SGraphSvgItem","isLoadOver","_url","_width","_height","imgWidth","imgHeight","Url","Image","onload","onerror","Width","Height","SAspectRatioMode","$join","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","stringFromCharCode","fromCharCode","ucs2decode","counter","charCodeAt","extra","digitToBasic","digit","adapt","delta","numPoints","firstTime","k","currentValue","inputLength","bias","basicLength","handledCPCount","m","handledCPCountPlusOne","qMinusT","baseMinusT","label","encoded","labels","ArrayIterators","Uint8Array","arrayValues","values","arrayKeys","arrayEntries","entries","nativeTypedArrayIterator","CORRECT_ITER_NAME","typedArrayValues","NATIVE_ARRAY_BUFFER","redefineAll","toIndex","IEEE754","arrayFill","ARRAY_BUFFER","DATA_VIEW","PROTOTYPE","WRONG_LENGTH","WRONG_INDEX","NativeArrayBuffer","$ArrayBuffer","$DataView","$DataViewPrototype","ObjectPrototype","packIEEE754","pack","unpackIEEE754","unpack","packInt8","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","addGetter","Constructor","isLittleEndian","intIndex","store","byteLength","bytes","conversion","NaN","ArrayBufferPrototype","j","testView","nativeSetInt8","setInt8","getInt8","setUint8","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","ArrayBuffer","DataView","STextDirection","SGraphPropertyCommand","propName","oldProp","newProp","SGraphRectItem","_radius","Radius","isNaN","$some","some","SPath","STextBaseLine","SPaintEngineType","SLineJoinStyle","SPaintState","SPaintEngine","SCanvasPaintEngine_1","SPaintEngine_1","SPaintState_1","SSvgPaintEngine_1","SAspectRatioMode_1","SLineCapStyle_1","SLineJoinStyle_1","SPaintEngineType_1","STextAlign_1","STextBaseLine_1","STextDirection_1","SLine_1","SPoint_1","SRect_1","SSize_1","SPolygonUtil_1","SBrush_1","SCanvasView_1","SColor_1","SFont_1","SGradient_1","SGradientStop_1","SLinearGradient_1","SPainter_1","SPath_1","SPen_1","SRadialGradient_1","CONVERT_TO_STRING","first","position","originalArray","pathList","sPath","oA","download","click","SBoardItem","SRectSelectItem","SRelationState","SIconTextItem","Transparency","STooltipItem","SPolylineItem","SLineItem","SLayerItem_1","STooltipItem_1","ItemColor_1","Transparency_1","ItemOrder_1","SItemFactory_1","SZoneParser_1","SFloorParser_1","SIconTextItem_1","SPolylineItem_1","SLineItem_1","SRelationState_1","SItemStatus_1","SPolygonItem_1","SRectSelectItem_1","SBoardItem_1","old","dummy","Wrapper","NewTarget","NewTargetPrototype","Uint8ArrayPrototype","arrayToString","arrayJoin","IS_NOT_ARRAY_METHOD","$fill","wrappedWellKnownSymbolModule","NAME","Symbol","pointArr","windowOrder","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferModule","createPropertyDescriptor","toPrimitive","typedArrayFrom","definePropertyModule","nativeDefineProperty","nativeGetOwnPropertyDescriptor","round","NATIVE_ARRAY_BUFFER_VIEWS","TYPED_ARRAY_TAG","TypedArray","TypedArrayPrototype","isTypedArray","fromList","klass","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","writable","getOwnPropertyDescriptor","wrapper","CLAMPED","CONSTRUCTOR_NAME","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructor","TypedArrayConstructorPrototype","exported","addElement","typedArrayOffset","$length","$len","_builder","version","append","SVG","getStyle","getSvgMatrix","pointsToStr","strBuilder","points_1","builder","__spreadArrays","s","il","jl","zoneOrder","likeSpaceOrder","columnOrder","virtualWallOrder","doorOrder","polygonOrder","lineOrder","polylineOrder","imageOrder","textOrder","markOrder","shadeOrder","rectSelectOrder","highLightOrder","RelationOrder","sceneMarkOrder","screenX","screenY","clientX","clientY","altKey","ctrlKey","m13","m14","m23","m24","m31","m32","m33","m34","m41","m42","m43","m44","Infinity","LN2","mantissaLength","exponent","mantissa","exponentLength","eMax","eBias","rt","sign","nBits","Cancel","write","expires","domain","secure","cookie","isNumber","Date","toGMTString","read","decodeURIComponent","now","reset","dz","sx","sy","rotX","rotY","rotZ","matZ","matX","matY","transpose","_b","_c","_d","_e","_f","detMat","det","ret","rect1","rect2","line1","line2","k1","b1","k2","b2","intersectionX","intersectionY","SP","sum","blur","render","_vm","_h","$createElement","_self","staticClass","_m","attrs","on","saveTopo","issueTopo","staticRenderFns","_v","_l","class","chiceStatus","$event","openTool","activeIcon","icon","_s","drawer","direction","handleClose","_defineProperty","obj","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread2","getOwnPropertyDescriptors","pressEnter","model","$$v","baseItemVal","expression","title","baseItem","choiceLegend","drawItem","baseEditItems","require","methods","mounted","component","components","props","computed","SETCHOICELEHEND","leftData","setTimeout","choiceStatus","directives","rawName","itemType","textMsg","changeColor","staticStyle","changeFontSize","changeBackground","backgroundcolor","minRows","maxRows","changeText","bus","borderLineOption","borderStyle","watch","changeWidth","linewidth","changeLineStyle","linestyle","changeLinewidth","changeFillcolor","changeHeight","fillcolor","beforeAvatarUpload","changeLineWidth","asyncGeneratorStep","gen","_next","_throw","arg","info","_asyncToGenerator","self","err","CancelToken","axiosservice","retry","retryDelay","credentials","downFile","link","display","removeChild","msSaveBlob","use","withCredentials","ProjectID","resp","commit","confirm","confirmButtonText","cancelButtonText","reload","catch","alert","getCookie","unescape","getJson","postJson","fetchJson","postupload","requestData","post","responseType","contentType","contentDisposition","decodeURI","axios","baseApi","saveGroup","postParams","httputils","readGroup","fileReader","readAsDataURL","addEventListener","dataURLtoBlob","ftype","lastModified","reader","onloadend","xhr","open","send","onreadystatechange","readyState","baseUrl","uploadKey","imgType","readAsArrayBuffer","binary","atob","dataURI","formatDate","0","1","2","3","emitChoice","Properties","Type","linkStyle","property","ref","havItem","canvasWidth","canvasHeight","_arrayWithHoles","_iterableToArrayLimit","_arr","_n","_arrayLikeToArray","arr2","_unsupportedIterableToArray","o","minLen","arrayLikeToArray","_nonIterableRest","_slicedToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","_classCallCheck","_defineProperties","_createClass","protoProps","staticProps","_assertThisInitialized","ReferenceError","_getPrototypeOf","_superPropBase","_get","Reflect","superPropBase","_setPrototypeOf","_inherits","subClass","superClass","_isNativeReflectConstruct","Proxy","_typeof","_possibleConstructorReturn","assertThisInitialized","_createSuper","Derived","hasNativeReflectConstruct","isNativeReflectConstruct","Super","possibleConstructorReturn","selectable","oldStatus","newStatus","_editCmd","_isEditStatus","selectChange","layout","toggleItem","bol","_showType","Full","anchorList","itemAspectRatio","imgAspectRatio","imgHwRatio","showType","Equivalency","AutoFit","Centrum","imgUrl","GetUrlRelativePath","arrUrl","relUrl","oldSize","newSize","computeImgSize","imgSrc","isUrlIdentical","onResize","_construct","Parent","Class","_arrayWithoutHoles","_iterableToArray","iter","_nonIterableSpread","_toConsumableArray","arrayWithoutHoles","iterableToArray","nonIterableSpread","l","_line","_verAndLeve","_activeFillColor","showSelect","LeftButton","findNearestPoint","addPoint","activeFillColor","bool","verAndLeve","hexDigits","random","getTime","rgbaNum","Nodes","Markers","Relations","copyString","element","removeItem","ctrl","arrToSelect","lefttop","mapToScene","left","top","rightbottom","isIn","addRectSelect","groupSelect","toData","ID","sessionStorage","setItem","select","execCommand","copyList","Pos","moveable","startItem","endItem","setPointList","Line","StrokeColor","LineStyle","isTransform","Size","Zorder","Text","Font","BackgroundColor","hexify","FillColor","TextPos","textItem","IsActive","isActive","AttachObjectIds","LineDash","boolean","_leftTop","_rightBottom","calRect","xs","ys","minx","maxx","miny","maxy","fi","calTriangel","listChange","vueOnMouseDown","editCmd","addLine","clearCmdStatus","addTextItem","addExplainItem","addImageItem","addRectItem","addTriangleItem","addCircleItem","addArrowsItem","addEuqipment","getItem","Scale","Z","Rolate","lineItem","finishCreated","Num","rectItem","triangleItem","arrowItem","circleItem","styleType","changeStyle","styleValue","List","colorlist","MarkType","addMarker","createBaseLineEdit","createBaseTextEdit","createBaseImageEdit","createBaseExpainEdit","dom","accept","onchange","files","FileReader","showTooltip","$refs","baseTopo","offsetWidth","offsetHeight","initBusEvent","getElementById","oncontextmenu","readtopoMsg","readMapmsg","doms","Elements","CategoryID","BuildingID","FloorID","Note","Log","Mark","CommandList","GraphId","Id","parseData","Content","parser","msg","EntityList","topoUndo","topoRedo","paste","isLock","deleteItem","SImageShowType","endPos","$includes","isAbsoluteURL","combineURLs","baseURL","requestedURL","checkCorrectnessOfIteration","iterable","executor","resolvePromise","token","cancel","SGraphMoveCommand","SImageItem","regexpFlags","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","re","charsAdded","strCopy","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","skipTempReset","prev","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","createIteratorConstructor","getIterator","$fetch","Headers","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","plus","sequences","percentSequence","percentDecode","sequence","deserialize","find","replacer","serialize","parseSearchParams","attribute","attributes","validateArgumentsLength","passed","required","URLSearchParamsIterator","kind","URLSearchParamsConstructor","entryIterator","entryNext","URLSearchParamsPrototype","getAll","found","entriesIndex","sliceIndex","fetch","LinkedList","selfIntersection","segmentNew","segmentId","myFill","above","below","otherFill","segmentCopy","seg","event_root","eventCompare","p1_isStart","p1_1","p1_2","p2_isStart","p2_1","p2_2","comp","pointsCompare","pointsSame","pointAboveOrOnLine","eventAdd","ev","other_pt","insertBefore","here","isStart","pt","other","eventAddSegmentStart","primary","ev_start","eventAddSegmentEnd","ev_end","eventAddSegment","eventUpdateEnd","segmentChop","eventDivide","ns","primaryPolyInverted","secondaryPolyInverted","status_root","statusCompare","ev1","ev2","a1","a2","pointsCollinear","statusFindSurrounding","findTransition","checkIntersection","linesIntersect","a1_equ_b1","a2_equ_b2","a1_between","pointBetween","a2_between","alongA","alongB","isEmpty","getHead","vert","surrounding","before","after","checkBothIntersections","eve","tempStatus","inside","toggle","segmentUpdate","rewind","insert","exists","statusRemove","pt1","pt2","forward","arraySpeciesCreate","IS_CONCAT_SPREADABLE","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","E","$copyWithin","RE","IndexedObject","nativeJoin","ES3_STRINGS","Start","textBaseLine","Top","textDirection","Inherit","ACCESSORS","max","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","deleteCount","insertCount","actualDeleteCount","actualStart","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","nativeObjectCreate","objectKeys","getOwnPropertyNamesModule","getOwnPropertyNamesExternal","getOwnPropertySymbolsModule","propertyIsEnumerableModule","shared","sharedKey","hiddenKeys","uid","defineWellKnownSymbol","HIDDEN","SYMBOL","TO_PRIMITIVE","$stringify","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","QObject","USE_SETTER","findChild","setSymbolDescriptor","P","Attributes","ObjectPrototypeDescriptor","tag","symbol","isSymbol","$defineProperty","$defineProperties","properties","$getOwnPropertySymbols","$propertyIsEnumerable","$create","V","$getOwnPropertyDescriptor","$getOwnPropertyNames","names","IS_OBJECT_PROTOTYPE","keyFor","useSetter","useSimple","FORCED_JSON_STRINGIFY","space","$replacer","valueOf","SOrderSetType","chains","warn","chainStart","first_match","matches_head","matches_pt1","second_match","next_match","head","tail","setMatch","chainNew","chainMatch","addToHead","grow","grow2","oppo","oppo2","chainRemoveHead","chainRemoveTail","chainClose","chainAddHead","chainAddTail","chainConnect","reverseF","reverseChain","appendChain","chainReverse","chain1","chain2","tail2","head2","chainJoin","INCORRECT_ITERATION","argument","Unselect","Infected","_transparency","_isInfected","HighLightFlag","transparency","isInfected","clickPoint","RoomLocalName","my","nextSegmentId","curVert","segmentRemove","txt","segs","$every","every","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","toNumber","maxCode","digits","NumberWrapper","isNull","mode","IgnoreAspectRatio","scaled","KeepAspectRatio","KeepAspectRatioByExpanding","transposed","polybooljs_1","minDis","ds","bgX","smX","bgY","smY","PTL","outlineList","Outer","Inner","indexArr","intersectObj","axArr","dotAll","cache","thrower","options","argument0","argument1","_parent","_zOrder","_inverseScale","_rotate","_visible","_isMoving","_enabled","_selected","_resizeable","_mouseDownPos","cursor","_lastGrab","sortItemZOrder","worldTransform","contains","itemPath","acceptEvent","toChildMouseEvent","onClick","toParentChange","onMouseLeave","onMouseEnter","clickSelect","FunctionPrototype","FunctionPrototypeToString","nameRE","p1","p2","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","settle","cookies","buildFullPath","parseHeaders","isURLSameOrigin","requestHeaders","auth","Authorization","btoa","fullPath","toUpperCase","responseURL","responseHeaders","getAllResponseHeaders","responseData","responseText","statusText","onabort","ontimeout","timeoutErrorMessage","xsrfValue","setRequestHeader","onDownloadProgress","onUploadProgress","upload","abort","startPoint","endPoint","nativeKeys","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","specificCreate","selection","check","ignoreDuplicateOf","fns","_nodeId","_clockseq","rng","_lastMSecs","_lastNSecs","clockseq","seedBytes","msecs","nsecs","dt","tl","tmh","FormData","isView","isFunction","pipe","product","assignValue","extend","stripBOM","content","rnds","ii","normalizedName","$indexOf","nativeIndexOf","NEGATIVE_ZERO","$reduce","addToUnscopables","el","middle","createInstance","defaultConfig","all","promises","spread","default","$find","anchorPoint","_showText","_isActive","_activeColor","_showAnchor","changeAnchorPoint","showAnchor","show","hide","adjusted","showText","unioned","activeColor","sWidth","IS_RIGHT","memo","_strArray","gap","REPLACE_SUPPORTS_NAMED_GROUPS","groups","REPLACE_KEEPS_$0","REPLACE","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","arg2","forceStringMethod","stringMethod","regexMethod","ArrayIteratorMethods","TO_STRING_TAG","ArrayValues","canHandle","findAddPos","Enter","drawBaseLine","Butt","lineJoinStyle","Miter","miterLimit","dashOffset","cmdList","addCommand","addPath","closePath","lineTo","arc","startAngle","endAngle","anticlockwise","arcTo","quadraticCurveTo","cp1x","cp1y","bezierCurveTo","cp2x","cp2y","ellipse","pList","copyConstructorProperties","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","getRandomValues","crypto","msCrypto","rnds8","nativeLastIndexOf","lastIndexOf","relativeURL","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","isPrototypeOf","opera","TYPED_ARRAY_TAG_REQIRED","TypedArrayConstructorsList","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","ARRAY","exportTypedArrayStaticMethod","_needDraw","_origin","_scale","scalable","wheelZoom","minScale","maxScale","_lastFrameTime","_midKeyPos","_touchState","_touchPoint","_beforeLength","_afterLength","canvasView","bindEvent","requestAnimationFrame","loop","toDataURL","imageUrl","saveSvg","svgData","scaleByPoint","zoom","ctx","MidButton","onMouseWheel","deltaY","onKeyPress","onTouchStart","touches","Zoom","getDistance","onTouchMove","viewZoom","onTouchEnd","onclick","ondblclick","onmousedown","onmousemove","onmouseup","onwheel","onkeydown","onkeypress","onkeyup","ontouchstart","ontouchmove","ontouchend","onresize","currTime","timeToCall","gapLenght","tempScale","getMiddlePoint","_canvas","imageSmoothingEnabled","Canvas","setMatrix","beginPath","stroke","fill","points_2","drawWay","setFont","fillText","measureText","setTextAlign","setBaseLine","setTextDirection","setPen","setBrush","setComposite","setShadow","setClip","strokeStyle","setLineDash","lineDashOffset","setLineCapStyle","Round","lineCap","fillStyle","drawGradient_1","createLinearGradient","createRadialGradient","globalCompositeOperation","gcoList","End","Left","Alphabetic","textBaseline","Hanging","Middle","Ideographic","LTR","_pen","_brush","_shadow","_clip","ang","startAng","HX","HandDirection","toFixed","HY","FX","FaceDirection","FY","dotProduct","leftTop","adjust","dw","dh","intersected","SGraphLayoutType_1","SOrderSetType_1","_itemList","oldWidth","oldHeight","minWidth","minHeight","maxHeight","_curIndex","throttle","alignLeft","Bottom","alignBottom","alignCenter","Horizontal","alignHorizontal","alignMiddle","Right","alignRight","alignTop","Vertical","alignVertical","setTop","setBottom","After","setAfter","Before","setBefore","standardItem","curItem","mapFromScene","inverseScale","curItemCenter","nextItemCenter","curCenterY","nextCenterY","topCenter","bottomCenter","leftToRight","average","curCenterX","nextCenterX","leftCenter","rightCenter","sortItemList","Set","wait","timer","clearTimeout","getSize","calExtreme","fir","calItemBounding","resize","getNearestPoint","setCursor","difX","difY","resultX","resultY","cursorList","crossNum","clockDir","p3","handlers","eject","SGraphScene_1","SGraphView_1","SGraphAddCommand_1","SGraphMoveCommand_1","SGraphPointListDelete_1","SGraphPointListInsert_1","SGraphPointListUpdate_1","SGraphPropertyCommand_1","SImageItem_1","SAnchorItem_1","STextItem_1","SImageShowType_1","SLineStyle_1","STextOrigin_1","SGraphAreaGroupItem_1","SGraphPolyGroupItem_1","SGraphRectItem_1","SGraphSvgItem_1","Ax","Ay","Bx","By","Cx","Cy","d_py_ly","d_rx_lx","d_px_lx","d_ry_ly","dot","sqlen","pointsSameX","pointsSameY","pt3","dx1","dy1","dx2","dy2","a0","b0","adx","ady","bdx","bdy","axb","B","nativeSlice","fin","_state","stateStack","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList"],"mappings":"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","file":"static/js/chunk-2242f2f8.38a68f48.js","sourcesContent":["module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAAE/0lEQVRoBe1YXWgcVRS+Z2a3DVHZlsYoGEFFC22kNqi1Ij4EH5S81IqugviTzWY3yeZvV6uI4k9riFb3R7uz2/0pQbGCQRCKT4pgH3zTJ0XaYqVYg9RCMTTJdrO7czw3yZ3c2e4m+zNrg+y83HO+uffc83vn3GGs+TQ90PRA0wP/aw+Eosn9kVTqpkYZqTRKMJebSCQcyDCmZzHSqH0aasB8jh1kyG5GxGdCWvqxRhgBjRDKZQaPHrsH8oWfSHmV8wDs3HV21un1ehc4b9XTkAiQ0gC5giaU58oistsoIm9bpbiQs+QdwVg1Oto6ein3R0rIe+DRfftPfPP1iQsl3tUEWR6B8NTUFgT9vTLa2CgySYqMZftaJkgojHO5CSrcdsFT7ucEzUeKzJ5INOWTsXpoS4v443i6K5cv/EgKGY5RFPYmlcQu8vqThqIAl0HdvCMw+MKMgdVIGBvVuN5Yxgs3n9djBBgyAeA39fZbD4MdRxmwWWnyDZi/EjX4OghjszpkLC0Nx9IuSo+9JjmgjIz29GT9Xu9ftNFrpneMPR6KpvYVYVWzlqRQLHZ8a0afO0MJ3iY0IO9/FRj2PCF4HqGwlvyBjtMHBQYM/nS0qjv7+vouC6za0ZIIZPX5SbPybEG147isDBmEqqp65KKmiHXMZvLvyvOqpes2IHTk2H06Yr95Y2VizOv9w4wxNjbo/oW8/qGMU0SGI1ryfhmrhq7LgOXzvKDRhqtyAM50tDtMSsoKYfuWQ8SflTBFR5acnp6u6aO6urEksVIyoqXd/FyX51OmjDidzkUZk+mA05lRQRmUMXLE7pkL//hlrFK65iKORj/ZtsiunKYU2CY2ozz/kgr3KcGvNQajyc+oQXpWzKHaWAB1U6d/sPecwCoZa47AImYnZeWp35zfDLZAJZvyOfZWm5/q4ZKYT7JasZDj6VjVU5MBoXh6D32Y3KadgB3y+VznTdgazKjLdZG8fkCeQqnUE9FST8vYenTVBvDCxYIeo1FOv1PX2zG03mbF78d9/VMUhZMyXkA9whtCGVuLrtoAOvK8lLv3ykJtoA7TRcXUtMnvy9H826Coqpc8kTXm0A2OzefKdbPGNEFUZQDdcdt0xibE4pXxi7Fh93dFWMXs+FDfaVCUSXkBMuYJx9MPyVg5uioD5nLwPn1xtwphlMNzYGt5SfC1jrfc6OAGnBLreXpSmpK/EnaBlRsrNiAYS+2lUPfKggDhHStaYv7dABUGeEoJ+WRE58Iie0Xw5caKDFj6Sl5duL/uvvsuy36XBIY8J0n7KVlRHeAN+ptxp4wV0xUZMPP37AAt7JIXK0zxdXd352WsXhpalAN0Kl005CC2IBaOGnwJYl0D4vFP2ymcpo6Rcv9z/0j/9yXk1QUF3O5LoDBzS4HskaCWer6c4HUNyBQyh6nfWT2X+XXQzl4uJ7Be3O/zHKefSN+a5KAe5K2LCVth1jRg+SgDk/VUZ2/xG1YpYVZhimIboAMjY8iji1KWZUt2uGUN4IWL+aWfUyRr+aHU+blr5/Yjgm/U6B9y/U4N+kGTfMQXg1qi24QRYyhX/CIYTYzSmf9RMX5Nebpr2O/o2MXv2UKPkhFY+R1u9oBYcS1HxO25s+dfl1UoaQD9Dv+AvO+QJ24cGl4Na6kdQp+rDAjFUg/TsfmcmLDxRtyEOiZ4u7HxdGtq1PRA0wNNDzQ98F974F8crLKq35CrJAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAAE0klEQVRoBe0YW2hcRfScu1ubLbaJ2ATRCPXRgt32ox8VBK0bXw2F/igsiKBUk9SkCbXJpwoR6uPDbpLtrmazSQQ//CiiorG1Be3aLy0KQgXBUEX9KBu09dE0kt07xzM3O7ezd/du7r5U6B24mXPOnPecmTlZAH/4GfAz4GfAz8C1nAFsRvDx2dn23JV8DxLsBqRtbGMDEF4EhAtENG8Anj001Pd6I2wHGqFE6WDnsHXjLQdFzpxjWjd/m/hbx5+0cz1/N/EXJoBHTp2Ye4nhukewbg0FBdL5seTUDDu3r1E6vehpWADjyfSrRA7nEb9HovcIjawBkBNAt7NTYQC624tzXngacgZiR1PbOfPfsEH2c2Ug4uHOjrbRaDRqKpqa5W7xYJH6R2N2wMABEKQ7/+LwYN9hN/ca5bzUbxt1M+aFzhl9VPEhwm87wptfU3iz57oDiE/ObgWCDuUon4PPurq68gpv9lx3AHkzHyly0oBPi/AmI3UHQIKKAkAI/KsBeL6FYkenFghhvTOhrGCtvFVsOuLfCuZ75i8Jl8rREgYC3cP9PWcVr5yPJNJ7AMQ7ALhW4lJ+eKjPLk9Jcw7PtxABtXOtl4wSElGLYuK1FbiEiel58TLzPax4xxPTuwSZ7zJriEO2yLa8Yioz111CZXR6InFCHppIpu6VzOPJqZ0miLkV5z2J20yeA+Dr8Yot5RGQMpXk8gSjE29ObxMCPgGi0vL0YNNzCe0Ib2k9t7RkN3/rs1m8uLj8C+/2RhkPH4Kfg3fcukWPbXsoZL3CSs7MZkNiMXeKnd1p8RE8aJrml5x52fBJJX8EEffgbZ1fS1TJS9htXD18bhwu9FhiKsyH91u1zC3y29wiP6VwtzmWnN5LwvywZJ0PfwCM3c8N9pwpWatA8FxCTh0IGNFpBJjRcTf40MAzc9xKfOdYzyMa0WqdlzpqDoAPYUR3Yk0LZHTcDS70Qef0dabNDx/o+UineYVrCsC69wnuV0Zk/Q/19v6o8Eoz/8/wBMtHdR7G74q9kb5Pp3mFawpgLJnear0LygrCaQVWmqWT/HLPlOUxabQsfRViTQE4659LILOKHZiYfGszCPE+8ctt8SKeZD1fKDlOyAO17EJNAbCxLmXYmo01mSLcgcTT6U4zt/wxd6o3yiV+G75q39DyGAbxeZ2VhHglfvz4SoD6QgW46mtU1v9YIp21Swjxp5HBvk1OG9w7XeJ73XqcWMZ+P9j5H0KB0D39/U8uSJkjidTn/Jbs0uQF78yf3APdoNFcwap3ID45w78qcF9UGAiUUbA+M0+bdFx3ngP6NRC8rls5b/EjjOpyDBtS1kFzRasOwBRmRNfmpf4lP2/1EhjG3oPP7pvX5UcO7D/Ni2d0WjVw1QFwbxwpMuBa/7io+LhscoDG4yMDvfahVWtyRsN4weKxiVdlbZILUNUZiB07FqKFSxe4ZlsL+s6PDO2/s5xueVaYrvTLnyH4AnIf1fIrTZ6buVQqte7ywu9JzXn2Dk8qRc654HBFp3WZavmV7KoBcNMmJPNijv/o/3kxaiCckGv/5Vg1gMLWlvPx/M0dbf//AMp5zqW9HEDj6XK/upXnbx7V8y3Et8RlPpHyCvzAwECklta3eWH4mv0M+BnwM+Bn4FrNwD/XcIsgdQ+H+AAAAABJRU5ErkJggg==\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SItemFactory = void 0;\r\nconst SColumnItem_1 = require(\"../items/floor/SColumnItem\");\r\nconst SWallItem_1 = require(\"../items/floor/SWallItem\");\r\nconst SVirtualWallItem_1 = require(\"../items/floor/SVirtualWallItem\");\r\nconst SSpaceItem_1 = require(\"../items/floor/SSpaceItem\");\r\nconst SDoorItem_1 = require(\"../items/floor/SDoorItem\");\r\nconst SWindowItem_1 = require(\"../items/floor/SWindowItem\");\r\nconst ZoneItem_1 = require(\"../items/floor/ZoneItem\");\r\nclass SItemFactory {\r\n constructor() { }\r\n createColumn(data) {\r\n return new SColumnItem_1.SColumnItem(null, data);\r\n }\r\n createWall(data) {\r\n return new SWallItem_1.SWallItem(null, data);\r\n }\r\n createVirtualWall(data) {\r\n return new SVirtualWallItem_1.SVirtualWallItem(null, data);\r\n }\r\n createSpace(data) {\r\n return new SSpaceItem_1.SSpaceItem(null, data);\r\n }\r\n createDoor(data) {\r\n return new SDoorItem_1.SDoorItem(null, data);\r\n }\r\n createWindow(data) {\r\n return new SWindowItem_1.SWindowItem(null, data);\r\n }\r\n createZone(data) {\r\n return new ZoneItem_1.SZoneItem(null, data);\r\n }\r\n}\r\nexports.SItemFactory = SItemFactory;\r\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./legendList.vue?vue&type=style&index=0&id=3f760d04&scoped=true&lang=less&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./legendList.vue?vue&type=style&index=0&id=3f760d04&scoped=true&lang=less&\"","'use strict';\nvar aFunction = require('../internals/a-function');\nvar isObject = require('../internals/is-object');\n\nvar slice = [].slice;\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!(argsLength in factories)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.github.io/ecma262/#sec-function.prototype.bind\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = slice.call(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = partArgs.concat(slice.call(arguments));\n return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);\n };\n if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;\n return boundFunction;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SUndoStack = void 0;\r\nvar SObject_1 = require(\"../SObject\");\r\nvar SUndoStack = (function (_super) {\r\n __extends(SUndoStack, _super);\r\n function SUndoStack() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.cmdStack = Array();\r\n _this._index = -1;\r\n _this.isChange = false;\r\n return _this;\r\n }\r\n Object.defineProperty(SUndoStack.prototype, \"index\", {\r\n get: function () {\r\n return this._index;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SUndoStack.prototype, \"isEmpty\", {\r\n get: function () {\r\n return this.cmdStack.length <= 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SUndoStack.prototype.redo = function () {\r\n if (!this.canRedo()) {\r\n return;\r\n }\r\n this._index++;\r\n this.cmdStack[this._index].redo();\r\n this.isChange = true;\r\n };\r\n SUndoStack.prototype.undo = function () {\r\n if (!this.canUndo()) {\r\n return;\r\n }\r\n this.cmdStack[this._index].undo();\r\n this._index--;\r\n this.isChange = true;\r\n };\r\n SUndoStack.prototype.canRedo = function () {\r\n return this.index + 1 < this.cmdStack.length;\r\n };\r\n SUndoStack.prototype.canUndo = function () {\r\n return this.index >= 0;\r\n };\r\n SUndoStack.prototype.clear = function () {\r\n this.cmdStack.length = 0;\r\n this._index = -1;\r\n this.isChange = true;\r\n };\r\n SUndoStack.prototype.command = function (index) {\r\n if (index < 0 || index >= this.cmdStack.length) {\r\n return null;\r\n }\r\n return this.cmdStack[index];\r\n };\r\n SUndoStack.prototype.count = function () {\r\n return this.cmdStack.length;\r\n };\r\n SUndoStack.prototype.push = function (cmd) {\r\n this.cmdStack.length = this._index + 1;\r\n if (this._index >= 0 && cmd.mergeWith(this.cmdStack[this._index])) {\r\n return;\r\n }\r\n this.cmdStack.push(cmd);\r\n this._index = this.cmdStack.length - 1;\r\n this.isChange = true;\r\n };\r\n SUndoStack.prototype.toLog = function () {\r\n var stackList = [];\r\n for (var i = 0; i <= this.index; i++) {\r\n stackList.push({\r\n command: this.cmdStack[i].command,\r\n desc: this.cmdStack[i].desc,\r\n detail: this.cmdStack[i].toString()\r\n });\r\n }\r\n return stackList;\r\n };\r\n return SUndoStack;\r\n}(SObject_1.SObject));\r\nexports.SUndoStack = SUndoStack;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SWallItem = void 0;\r\nconst __1 = require(\"../..\");\r\nconst graph_1 = require(\"@persagy-web/graph\");\r\nclass SWallItem extends graph_1.SGraphAreaGroupItem {\r\n constructor(parent, data) {\r\n const style = {\r\n Default: {\r\n Stroke: \"#000000\",\r\n Fill: \"#000000\",\r\n LineWidth: 0,\r\n Effect: {}\r\n }\r\n };\r\n let tempArr = data.OutLine;\r\n let outline = [];\r\n if (tempArr && tempArr.length) {\r\n outline = tempArr.map(t => {\r\n return t.map(it => {\r\n it.Y = -it.Y;\r\n return it;\r\n });\r\n });\r\n }\r\n super(parent, {\r\n Outline: outline.length ? [outline] : [],\r\n Style: style\r\n });\r\n this.data = data;\r\n this.zOrder = __1.ItemOrder.wallOrder;\r\n }\r\n}\r\nexports.SWallItem = SWallItem;\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAAD2ElEQVRoBe1XS2sUQRD+epKwuYjJQfDiQRCRXFQw8aonH4iPiwf/wBo0yU8w4iV4SzbGB4gnLwb0qJ68J+ATCYLiRRA0F0kQg8mWVTPp2Z6Znpmemc0myBbM9rv6+6qrunqBrnQt0LVA1wJdC1SwgKqwdmuWPqIBrOAYKx/xP4XHGFPzaZv1pg10pH+GavBwBBsMVmEYxOUKDnJpGnYqC0vnCBB5aOAQgxlhgMMMUSx8mMH3+QBpE6Yug2YTNbzfHLEWJlPrhNKdd2gfmptgA9DiFrsK6lvChBrKWtOeE5ijQaz7LqAtO8LtvVkbO469yZtXnACRYlc4zoqDIBO/XceB0G+jLpC3P9iVvvKkBf4W+TvHek5wGYjCW11NK4sTUIowTadZ4Y1QqTvoZQa8yCAX0MNfk+vj6meoZ4auhPWgknsC5WNgmiZ5jxaJ2M4M9DcDfc3lgv+JlceUWNsur6gXH7DKa2rhhH7sQV0th21LpfgJaCUTapJPQlo2EnWOgIe4rDb09NxyCUMR8Arf8sCLTi9XcdYEIQHcTExRuI0ffjJKDKV2NHE0Mkb5/i/zqxEQDTYShN3s3y8xSxLsbtLkhBaVXP+X6dUJiJb2kIieQA86SEBIKHyXIib9nGkHY332JnFWNqVjLiSbNugq/94192dCaxyUF/l0XkT6bY0G7efugXBI4VfmjRVOBMrfQlrJDNUZ6Bx/rStZwCtc4js+H7zooVgAwy2AZWm1GBDwYnkb+DH1XDZwEioXwKK7PAHtNkXBN+iM5XaKBrC31SeQ5jbi81mWn6WzfFrPElesip2A53YDyQm0/FZaLlLWbcTyAl4/FSRQPZzifwNf8Aet95DET42f3XX11wVOMRdqF3hBppPdGuQGM+WjK3hZ5E6gLHjtNtryJlQhQbhldnHbKYHpNW4EyoIXt2niaeg2etes0uE/gLk8n0AV8KbPy66KqQBy9SYfgDIuooqdQHYiazd4Yn+fUA98oLanuBD08M4fd/xJP4F2gwdGQ/ACzv4A/IxratURuz/NTmArwI+r+wlgcRIF3Uf0JQl0CrxmY5JwfIHqpVJGYyBINtG3jczyOPCuZ7xt4klK1gQBO8oPuqTlZdwUIRHERKErVFREM/F96uM8OM+hdMHUz/VP6MdJTjDJN39V8OZGT6in0P/oBAFRVoREO8GbRArUoyegF7qQ2AHgBa6dgIxkkVCY4hn3Ihm2iM+L/jZJOgHZIJ1EdPttAi8gsgnIjDwS2wjejUAWiW0G707ARmIHgC9GwCQBnOemW5KSdTtKJCbkCu1K1wL/hwX+AbMwns/Zk36ZAAAAAElFTkSuQmCC\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pipeList.vue?vue&type=style&index=0&id=6a1e6063&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pipeList.vue?vue&type=style&index=0&id=6a1e6063&lang=less&scoped=true&\"","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SGraphPointListInsert = void 0;\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nconst index_1 = require(\"../index\");\r\nclass SGraphPointListInsert extends index_1.SGraphCommand {\r\n constructor(scene, item, pointList, pos, index = null) {\r\n super(scene);\r\n this.item = item;\r\n this.pos = pos;\r\n this.index = index;\r\n this.pointList = pointList;\r\n this.command = \"SGraphPointListInsert\";\r\n this.desc = `添加折点=${item.id}`;\r\n }\r\n redo() {\r\n const point = new draw_1.SPoint(this.pos.x, this.pos.y);\r\n if (this.index == null) {\r\n this.pointList.push(point);\r\n }\r\n else {\r\n this.pointList.splice(this.index, 0, point);\r\n }\r\n this.item.update();\r\n }\r\n undo() {\r\n if (this.index == null) {\r\n this.pointList.pop();\r\n }\r\n else {\r\n this.pointList.splice(this.index, 1);\r\n }\r\n this.item.update();\r\n }\r\n toString() {\r\n const pointList = `pointList=${JSON.stringify(this.pointList)}`;\r\n const pos = `pos=${JSON.stringify(this.pos)}`;\r\n const index = `index=${this.index}`;\r\n return `${index};\\n${pos};\\n${pointList}`;\r\n }\r\n}\r\nexports.SGraphPointListInsert = SGraphPointListInsert;\r\n","var toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\n\n// `ToIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length or index');\n return length;\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SZoneParser = void 0;\r\nconst SParser_1 = require(\"./SParser\");\r\nclass SZoneParser extends SParser_1.SParser {\r\n constructor() {\r\n super(...arguments);\r\n this.zoneList = [];\r\n }\r\n parseData(data) {\r\n if (data && data.length) {\r\n data.forEach((t) => {\r\n this.addZone(t);\r\n });\r\n }\r\n }\r\n addZone(t) {\r\n let item = this.factory.createZone(t);\r\n this.zoneList.push(item);\r\n }\r\n}\r\nexports.SZoneParser = SZoneParser;\r\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYYAAAACCAYAAABc1nufAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAABhqADAAQAAAABAAAAAgAAAADLzuZsAAAALklEQVRIDe3QwQ0AMAjEsKP77wyoL4ZwpCzgStK7CBAgQIDAF3gcCBAgQIDAFRhHHAED52HtXAAAAABJRU5ErkJggg==\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./topoTooltip.vue?vue&type=style&index=0&id=6fee0f2a&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./topoTooltip.vue?vue&type=style&index=0&id=6fee0f2a&lang=less&scoped=true&\"","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAFKADAAQAAAABAAAAFAAAAACRFdLHAAABe0lEQVQ4EbWVPUjDUBDH/5eECjq5CIIgVF0UxUGwnarg4i666ioUJwehLaItnVUUOqmrCE4iFUHFQcS6COKguLsoLiLm47wXaWyGJv3yQZK7e/f/8fJy70JQg1nDDqKwEXH9em86vrGIFxA55MK2cAbGZL0cXz7hHElMEba5HxaeQLgU6IUvqVaHMCHaBAwMGN5rKtgSrdbK8OVtsNIlFEvzTYQ4+VuOhqSgZuB6iftM20m2BJgrcTdbzimxdtU0MH/PnY7pFGXTuzp6cNIUsFDidvPTPmbwMBGev17R2xTwLYI2jVCQkioy86hl2o9r19Z8EDTwo6yM0Htq3NgH052CECiViRt7DQPLQgLm5Fhl03E9V45VewauUImyNzzGhKNMTE9Xg1TGQ4HM+BDYcqUoyCZs8qCUxINs0KEkhpZFFdi0MGaEMWR4CSoA9/JCjRh/QA27cHDQCEQO8KxoF5TWgGqOllgsDRaIqWDd41cLxfqHBquW08JfwA8ofnwo2dU8+wAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAAEhElEQVRoBe1YTWhUVxQ+5z0naf13oSjqoiAiXTQW4rhtV2op/myy6FKavGhMIXHVlYobEZJIk4y+pG1WrgQFF/5gIfsJaC2WovizUFpohSIkbepk7uk5b7zjfTPvvblvZvKzmAt599z/7zv3u/fcCUArtTzQ8kDLAy0PNOABbGDsogwdmZraCP8WOklhFoCyRHT1dL93LW6xVXENS1H/3a1b7er5y71EmCWEfQHgucJuBs2OpRIE17mQhGXJCDAoZ9Sf2lMsLmRJMVik7MLzlx1EkAnAvsNbBl5Crda66pckAosmofHxH3fOq4Wsw54lkQJgJxCtSwJT2YaIvw2e6vm4st4sN2UHcrmrm+Zpdh+yZxWWtDuvCltlIRXtWRNDgk0PEhqDptQERJ/Dl7/fD0rxIcMsEmXn1dwulgIGWNlIl/AFyyaPDswA4Zc8/2fvxzs/v7ejrdQEeFtpaNQ/yNOdEb2mAo3wGglneFQe0MlnVrsz3xw//peGNjzmf6VtydGpvQN1nwEmcZbXYBLRCRH+YXL3GUbeRf5rg3x/d/eL6N4A09PTqx48ejLLY9p1n7VtsNnzvNe6HJXXTUAmiyPhoONt37Lhh66urmLUolF1l3KTnxSL6qFuQ8BXg/09O3U5LnfiGmzqOcCc5X7nKvsqUBd///Pvzsr6pLJS6lOznSNBTf1L/4YIyASRJAg2sOvvXhrz90sfm8RS2BvqR7X1L/0bJiCTNIMEX26hHeDLouYV2jQCMhG74o8gNz58r36g0N1kVCWZHWZjph2XRkKy6PDoRC9fj5dNACyJ/8Bxjw72fX3HrI+yRycnP+KrdWO5DeFN0o1V7sdG6jhgDhZ7aNz3OBjkSg+wUquARxePDZysDV5GLLyFsHzIzvsytqEzIODF89Hge27LAjaJb6DQAeZYaaV/mbtuAlo2acGP5CYOVd1OGD7AHMys9F83gUA2WC0b0fzAyXjPD41NfkFFulF5xfJhD+2A4zjWO8ByTZfqlY14XsCXnwp8UF2AAx9m4NnsWyi/h+T8rGmDdfyEKNggSyWhpoEXZO+C3VwBe0NAEX61BS/jrAnUC17Lpux5Ey2T4DN03qziJ7W1fKwJ1AteZIOkrkeCD6E2Cg5ZH2ArAo2AD2meV5PfEvJSZfOcATlkouOm2oHEQNZs8PxE7h041T0hiPkpLtkZ+egkBNvU+oe6bJPHnoFmgyekExq8AIt+ANLTvr6uWRvguk8kgcUAf7rPC1yuF5a8ioTlC9Sco4rAUoHXIEwSfNhTHWCZI0SgdGuE3zbBQgheUoStClI8SPQssonyfDCn8dEkEO0jsB4eIrDapZ+44aZuNPJvR3x/m1Eum42C1xMJiR2b19/TZdu86inh+36Go+M1DjBHzEn4vwyPMQOfD3he+YdLs8Cb66S1qwjIBDYkVgJ4wRpJoCYJxAuk6IoZYdNoXuZvVoolIAvE7UTl4ssFXnAkEpAOtUgsJ3grAkkklhu8NYEoEisBfCoCJgm2D9sGKRm3opKcCblCVxSoFpiWB+r3wP8SPZuW4VYVQwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAFKADAAQAAAABAAAAFAAAAACRFdLHAAABp0lEQVQ4Ec1VPUsDQRB9kxyCBERsrP0qFCSVFiokgljfL9AmlSj+Bf9C8KPRRn+BtQjRQgutRNBCtLcREYIQc7e+t/HiXcDuhAzcXmb27dvbNzMbg8y5Ag4wjggD3k+GgJFpPGPZ2j7UcAEeMYE2ignEv4toYQMvMIvNk+3iHA7LGVDiGB4wjHnvvuOGuJlkKvM2NLCFFcO+m+SOTzBcEnzRAyozFvJ7Vn08whlxp4zd9eCqjFUQYEqH6hxTZNu2kwHuuXXOh4hTUhRIuGnHGVzdaV1FXIXMRA5O/xMGFDLCF89qKEOapS3GkneNaZM5PjEWifNud4i5ViFyMdmsrXtm7a9yAF5R+imVJksIGO0SpX+ovGZRNh87cSV8YCGTTU3oywZxi5q9edyRG8En5rh54P1kKLCwh3CNNWvmnpTcj9zpTemnDlDRpk1Jcaj5Y8ZESD/DIXFXaRilCokL1edBt9HVTr0doGxGJJRmolMmRdaLq7sxzoTiyl3D/icMeDW1fB8YqujcGr96qwNkqjNZxEcJ6GjmQ37QWulLrn+4YLVFjn8B37X+n2+67hx8AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAABfElEQVRoBe3ZW0oDMRQG4D91O4KLcAsFC9oFCLZbsFvoBVyALSq4mBZ8cxO+i03ndEjHks50Lrn8QfMynUwe/i85w0AP8D8Yd+BJXzLGOpWpZ01O9QTfWGOhB9Yzwgl1lEnCA4/7OYUf9HCHB/V6tIbspgBI2cjOa1wcMgoCGGKsXg5zZD+KErpXH/sdz0PnMXPMM3M5FSdgdlZqf4uldRKk5WQDBJIQ4jQgIUQ5IBFENSABxHkAOaIegBhRH0CKaAYgRDQHkCHaAYgQ7QEkiG4AAkR3QGSEG0BEhDtAJIRbQASEe0BghB9AQIQ/QCCEX0AAhH+AZ0QYgEdEOIAnRFiAB0R4gGNEHIBDRDyAI0RcQBVC4RYj9SZLqkZ8gKQr+y+2BoID0AHBA2iJ4AIIYq5vst7EyupPlJQTH6AhghPQAMELqEIAg6zx+C5Liiaf3LEN+Q5I7f9uPAJfWcxPE5X7BExK82Ln4a+z3d+YR+lcZ7qPmb5KJ/BfSboDrgYj0CEQvVYAAAAASUVORK5CYII=\"","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SColor = void 0;\r\nvar base_1 = require(\"@persagy-web/base\");\r\nvar SColor = (function () {\r\n function SColor(r, g, b, a) {\r\n this._value = 0xff;\r\n if (r == undefined) {\r\n this._value = 0xff;\r\n }\r\n else if (typeof r == \"string\") {\r\n this.value = r;\r\n }\r\n else if (r instanceof SColor) {\r\n this._value = r._value;\r\n }\r\n else if (a == undefined) {\r\n this.setRgb(r, g, b);\r\n }\r\n else {\r\n this.setRgba(r, g, b, a);\r\n }\r\n }\r\n SColor.rgb = function (r, g, b) {\r\n return new SColor(r, g, b);\r\n };\r\n SColor.rgba = function (r, g, b, a) {\r\n return new SColor(r, g, b, a);\r\n };\r\n Object.defineProperty(SColor.prototype, \"red\", {\r\n get: function () {\r\n return (this._value >> 24) & 0xff;\r\n },\r\n set: function (v) {\r\n var r = (Math.floor(v) & 0xff) << 24;\r\n this._value = (this._value & 0x00ffffff) | r;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SColor.prototype, \"green\", {\r\n get: function () {\r\n return (this._value >> 16) & 0xff;\r\n },\r\n set: function (v) {\r\n var r = (Math.floor(v) & 0xff) << 16;\r\n this._value = (this._value & 0xff00ffff) | r;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SColor.prototype, \"blue\", {\r\n get: function () {\r\n return (this._value >> 8) & 0xff;\r\n },\r\n set: function (v) {\r\n var r = (Math.floor(v) & 0xff) << 8;\r\n this._value = (this._value & 0xffff00ff) | r;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SColor.prototype, \"alpha\", {\r\n get: function () {\r\n return this._value & 0xff;\r\n },\r\n set: function (v) {\r\n var r = Math.floor(v) & 0xff;\r\n this._value = (this._value & 0xffffff00) | r;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SColor.prototype, \"value\", {\r\n get: function () {\r\n return \"#\" + base_1.SStringUtil.num2Hex(this._value, 8);\r\n },\r\n set: function (v) {\r\n if (v.substr(0, 1) != \"#\") {\r\n return;\r\n }\r\n this._value = parseInt(v.substr(1), 16);\r\n if (v.length == 7) {\r\n this._value = (this._value << 8) + 0xff;\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SColor.prototype.setRgb = function (r, g, b) {\r\n this._value =\r\n (r << 24) +\r\n (g << 16) +\r\n (b << 8) +\r\n 0xff;\r\n };\r\n SColor.prototype.setRgba = function (r, g, b, a) {\r\n this._value =\r\n (r << 24) +\r\n (g << 16) +\r\n (b << 8) +\r\n a;\r\n };\r\n SColor.prototype.toRgb = function () {\r\n return \"rgb(\" + this.red + \", \" + this.green + \", \" + this.blue + \")\";\r\n };\r\n SColor.prototype.toRgba = function () {\r\n return \"rgba(\" + this.red + \", \" + this.green + \", \" + this.blue + \", \" + this.alpha /\r\n 255.0 + \")\";\r\n };\r\n SColor.prototype.toVal = function () {\r\n return \"#\" + base_1.SStringUtil.num2Hex(this._value, 6);\r\n };\r\n SColor.Transparent = new SColor(\"#00000000\");\r\n SColor.Black = new SColor(\"#000000\");\r\n SColor.DarkBlue = new SColor(\"#000080\");\r\n SColor.Blue = new SColor(\"#0000FF\");\r\n SColor.DarkGreen = new SColor(\"#008000\");\r\n SColor.Green = new SColor(\"#00FF00\");\r\n SColor.DarkCyan = new SColor(\"#008080\");\r\n SColor.Cyan = new SColor(\"#00FFFF\");\r\n SColor.DarkRed = new SColor(\"#800000\");\r\n SColor.Red = new SColor(\"#FF0000\");\r\n SColor.DarkMagenta = new SColor(\"#800080\");\r\n SColor.Magenta = new SColor(\"#FF00FF\");\r\n SColor.DarkYellow = new SColor(\"#808000\");\r\n SColor.Yellow = new SColor(\"#FFFF00\");\r\n SColor.White = new SColor(\"#FFFFFF\");\r\n SColor.DarkGray = new SColor(\"#808080\");\r\n SColor.Gray = new SColor(\"#A0A0A0\");\r\n SColor.LightGray = new SColor(\"#C0C0C0\");\r\n return SColor;\r\n}());\r\nexports.SColor = SColor;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SPolygonItem = void 0;\r\nconst graph_1 = require(\"@persagy-web/graph\");\r\nconst base_1 = require(\"@persagy-web/base/\");\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nconst __1 = require(\"..\");\r\nconst SMathUtil_1 = require(\"../utils/SMathUtil\");\r\nclass SPolygonItem extends graph_1.SGraphItem {\r\n constructor(parent) {\r\n super(parent);\r\n this.minX = Number.MAX_SAFE_INTEGER;\r\n this.maxX = Number.MIN_SAFE_INTEGER;\r\n this.minY = Number.MAX_SAFE_INTEGER;\r\n this.maxY = Number.MIN_SAFE_INTEGER;\r\n this.pointList = [];\r\n this._status = __1.SItemStatus.Normal;\r\n this._strokeColor = new draw_1.SColor(\"#0091FF\");\r\n this._fillColor = new draw_1.SColor(\"#1EE887\");\r\n this._lineStyle = graph_1.SLineStyle.Solid;\r\n this._lineWidth = 4;\r\n this.closeFlag = false;\r\n this.lastPoint = null;\r\n this.curIndex = -1;\r\n this.curPoint = null;\r\n this.len = 10;\r\n this.scenceLen = 15;\r\n this.isAlt = false;\r\n this.undoStack = new base_1.SUndoStack();\r\n }\r\n get getPointList() {\r\n return this.pointList;\r\n }\r\n set setPointList(arr) {\r\n this.pointList = arr;\r\n this.update();\r\n }\r\n get status() {\r\n return this._status;\r\n }\r\n set status(value) {\r\n this._status = value;\r\n this.undoStack.clear();\r\n this.update();\r\n }\r\n get strokeColor() {\r\n return this._strokeColor;\r\n }\r\n set strokeColor(v) {\r\n this._strokeColor = v;\r\n this.update();\r\n }\r\n get fillColor() {\r\n return this._fillColor;\r\n }\r\n set fillColor(v) {\r\n this._fillColor = v;\r\n this.update();\r\n }\r\n get lineStyle() {\r\n return this._lineStyle;\r\n }\r\n set lineStyle(v) {\r\n this._lineStyle = v;\r\n this.update();\r\n }\r\n get lineWidth() {\r\n return this._lineWidth;\r\n }\r\n set lineWidth(v) {\r\n this._lineWidth = v;\r\n this.update();\r\n }\r\n insertPoint(x, y, i = null) {\r\n const point = new draw_1.SPoint(x, y);\r\n if (i == null) {\r\n this.pointList.push(point);\r\n }\r\n else {\r\n this.pointList.splice(i, 0, point);\r\n }\r\n this.update();\r\n return point;\r\n }\r\n deletePoint(i = null) {\r\n let point = null;\r\n if (i != null) {\r\n if (i >= this.pointList.length || i < 0) {\r\n point = null;\r\n }\r\n else {\r\n point = new draw_1.SPoint(this.pointList[i].x, this.pointList[i].y);\r\n this.pointList.splice(i, 1);\r\n }\r\n }\r\n else {\r\n if (this.pointList.length) {\r\n point = this.pointList[this.pointList.length - 1];\r\n this.pointList.pop();\r\n }\r\n else {\r\n point = null;\r\n }\r\n }\r\n this.curIndex = -1;\r\n this.curPoint = null;\r\n this.update();\r\n return point;\r\n }\r\n movePoint(x, y, i) {\r\n let point = null;\r\n if (i >= this.pointList.length || i < 0) {\r\n return null;\r\n }\r\n if (this.pointList.length) {\r\n this.pointList[i].x = x;\r\n this.pointList[i].y = y;\r\n }\r\n point = this.pointList[i];\r\n return point;\r\n }\r\n drawShowPolygon(painter, pointList) {\r\n painter.save();\r\n painter.pen.lineCapStyle = draw_1.SLineCapStyle.Square;\r\n painter.pen.color = this.strokeColor;\r\n painter.brush.color = this.fillColor;\r\n painter.pen.lineWidth = painter.toPx(this.lineWidth);\r\n if (this.lineStyle == graph_1.SLineStyle.Dashed) {\r\n painter.pen.lineDash = [\r\n painter.toPx(this.lineWidth * 3),\r\n painter.toPx(this.lineWidth * 7)\r\n ];\r\n }\r\n else if (this.lineStyle == graph_1.SLineStyle.Dotted) {\r\n painter.pen.lineDash = [\r\n painter.toPx(this.lineWidth),\r\n painter.toPx(this.lineWidth)\r\n ];\r\n }\r\n if (this.selected) {\r\n painter.shadow.shadowBlur = 10;\r\n painter.shadow.shadowColor = new draw_1.SColor(`#00000033`);\r\n painter.shadow.shadowOffsetX = 5;\r\n painter.shadow.shadowOffsetY = 5;\r\n }\r\n else {\r\n painter.shadow.shadowColor = draw_1.SColor.Transparent;\r\n }\r\n painter.drawPolygon([...pointList]);\r\n painter.restore();\r\n }\r\n drawCreatePolygon(painter, pointList) {\r\n painter.pen.lineCapStyle = draw_1.SLineCapStyle.Square;\r\n painter.pen.color = this.strokeColor;\r\n painter.pen.lineWidth = painter.toPx(this.lineWidth);\r\n if (this.lastPoint && pointList.length) {\r\n painter.drawLine(pointList[pointList.length - 1].x, pointList[pointList.length - 1].y, this.lastPoint.x, this.lastPoint.y);\r\n }\r\n painter.drawPolyline(pointList);\r\n painter.pen.color = draw_1.SColor.Transparent;\r\n painter.brush.color = new draw_1.SColor(this.fillColor.value);\r\n painter.pen.lineWidth = painter.toPx(this.lineWidth);\r\n if (this.lastPoint) {\r\n painter.drawPolygon([...pointList, this.lastPoint]);\r\n painter.pen.color = draw_1.SColor.Black;\r\n painter.brush.color = draw_1.SColor.White;\r\n pointList.forEach(item => {\r\n painter.drawCircle(item.x, item.y, painter.toPx(this.len / 2));\r\n });\r\n if (this.pointList.length) {\r\n if (SMathUtil_1.SMathUtil.pointDistance(this.lastPoint.x, this.lastPoint.y, this.pointList[0].x, this.pointList[0].y) < this.scenceLen) {\r\n painter.pen.color = draw_1.SColor.Black;\r\n painter.brush.color = draw_1.SColor.Red;\r\n painter.drawCircle(this.pointList[0].x, this.pointList[0].y, painter.toPx(this.len / 2));\r\n }\r\n }\r\n }\r\n else {\r\n painter.drawPolygon(pointList);\r\n }\r\n }\r\n drawEditPolygon(painter, pointList) {\r\n painter.pen.lineCapStyle = draw_1.SLineCapStyle.Square;\r\n painter.pen.color = this.strokeColor;\r\n painter.pen.lineWidth = painter.toPx(this.lineWidth);\r\n painter.brush.color = new draw_1.SColor(this.fillColor.value);\r\n painter.drawPolygon([...pointList]);\r\n painter.pen.color = draw_1.SColor.Black;\r\n painter.brush.color = draw_1.SColor.White;\r\n pointList.forEach((item, index) => {\r\n painter.brush.color = draw_1.SColor.White;\r\n if (index == this.curIndex) {\r\n painter.brush.color = new draw_1.SColor(\"#2196f3\");\r\n }\r\n painter.drawCircle(item.x, item.y, painter.toPx(this.len / 2));\r\n });\r\n }\r\n editPolygonPoint(event) {\r\n if (this.isAlt) {\r\n let lenIndex = -1;\r\n let curenLen = this.scenceLen;\r\n this.pointList.forEach((item, index) => {\r\n let dis = SMathUtil_1.SMathUtil.pointDistance(event.x, event.y, item.x, item.y);\r\n if (dis < curenLen) {\r\n curenLen = dis;\r\n lenIndex = index;\r\n }\r\n });\r\n if (lenIndex != -1) {\r\n if (this.pointList.length <= 3) {\r\n return;\r\n }\r\n const delePoint = new draw_1.SPoint(this.pointList[lenIndex].x, this.pointList[lenIndex].y);\r\n this.deletePoint(lenIndex);\r\n this.recordAction(graph_1.SGraphPointListDelete, [\r\n this.pointList,\r\n delePoint,\r\n lenIndex\r\n ]);\r\n }\r\n }\r\n else {\r\n this.curIndex = -1;\r\n this.curPoint = null;\r\n let lenIndex = -1;\r\n let curenLen = this.scenceLen;\r\n this.pointList.forEach((item, index) => {\r\n let dis = SMathUtil_1.SMathUtil.pointDistance(event.x, event.y, item.x, item.y);\r\n if (dis < curenLen) {\r\n curenLen = dis;\r\n lenIndex = index;\r\n }\r\n });\r\n this.curIndex = lenIndex;\r\n if (-1 == lenIndex) {\r\n let len = SMathUtil_1.SMathUtil.pointToLine(new draw_1.SPoint(event.x, event.y), new draw_1.SLine(this.pointList[0], this.pointList[1])), index = 0;\r\n if (this.pointList.length > 2) {\r\n for (let i = 1; i < this.pointList.length; i++) {\r\n let dis = SMathUtil_1.SMathUtil.pointToLine(new draw_1.SPoint(event.x, event.y), new draw_1.SLine(this.pointList[i], this.pointList[i + 1]));\r\n if (i + 1 == this.pointList.length) {\r\n dis = SMathUtil_1.SMathUtil.pointToLine(new draw_1.SPoint(event.x, event.y), new draw_1.SLine(this.pointList[i], this.pointList[0]));\r\n }\r\n if (dis.MinDis < len.MinDis) {\r\n len = dis;\r\n index = i;\r\n }\r\n }\r\n }\r\n if (len.Point) {\r\n if (len.MinDis <= this.scenceLen) {\r\n this.pointList.splice(index + 1, 0, len.Point);\r\n this.recordAction(graph_1.SGraphPointListInsert, [\r\n this.pointList,\r\n len.Point,\r\n index + 1\r\n ]);\r\n }\r\n else {\r\n super.onMouseDown(event);\r\n }\r\n }\r\n }\r\n else {\r\n this.curPoint = new draw_1.SPoint(this.pointList[this.curIndex].x, this.pointList[this.curIndex].y);\r\n }\r\n this.update();\r\n }\r\n }\r\n recordAction(SGraphCommand, any) {\r\n const sgraphcommand = new SGraphCommand(this.scene, this, ...any);\r\n this.undoStack.push(sgraphcommand);\r\n }\r\n undo() {\r\n if (this.status == __1.SItemStatus.Normal) {\r\n return;\r\n }\r\n this.undoStack.undo();\r\n }\r\n redo() {\r\n if (this.status == __1.SItemStatus.Normal) {\r\n return;\r\n }\r\n this.undoStack.redo();\r\n }\r\n onDoubleClick(event) {\r\n if (__1.SItemStatus.Normal == this.status) {\r\n this.status = __1.SItemStatus.Edit;\r\n this.grabItem(this);\r\n }\r\n else if (__1.SItemStatus.Edit == this.status) {\r\n this.status = __1.SItemStatus.Normal;\r\n this.releaseItem();\r\n }\r\n this.update();\r\n return true;\r\n }\r\n onKeyDown(event) {\r\n if (this.status == __1.SItemStatus.Normal) {\r\n return false;\r\n }\r\n else if (this.status == __1.SItemStatus.Create) {\r\n if (event.code == \"Enter\") {\r\n if (this.pointList.length > 2) {\r\n this.status = __1.SItemStatus.Normal;\r\n this.$emit(\"finishCreated\");\r\n this.releaseItem();\r\n }\r\n }\r\n }\r\n else if (this.status == __1.SItemStatus.Edit) {\r\n if (event.key == \"Alt\") {\r\n this.isAlt = true;\r\n }\r\n }\r\n this.update();\r\n return true;\r\n }\r\n onKeyUp(event) {\r\n if (this.status == __1.SItemStatus.Edit) {\r\n if (event.key == \"Alt\") {\r\n this.isAlt = false;\r\n }\r\n else if (event.keyCode == base_1.SKeyCode.Delete) {\r\n if (this.pointList.length > 3) {\r\n this.deletePoint(this.curIndex);\r\n }\r\n }\r\n }\r\n this.update();\r\n }\r\n onMouseDown(event) {\r\n if (event.shiftKey) {\r\n event = this.compare(event);\r\n }\r\n if (this.status == __1.SItemStatus.Create) {\r\n let len = -1;\r\n if (this.pointList.length) {\r\n len = SMathUtil_1.SMathUtil.pointDistance(event.x, event.y, this.pointList[0].x, this.pointList[0].y);\r\n }\r\n if (this.pointList.length > 2 && len > 0 && len < this.scenceLen) {\r\n this.status = __1.SItemStatus.Normal;\r\n this.$emit(\"finishCreated\");\r\n this.releaseItem();\r\n }\r\n else {\r\n this.insertPoint(event.x, event.y);\r\n let pos = new draw_1.SPoint(event.x, event.y);\r\n this.recordAction(graph_1.SGraphPointListInsert, [this.pointList, pos]);\r\n }\r\n }\r\n else if (this.status == __1.SItemStatus.Edit) {\r\n this.editPolygonPoint(event);\r\n }\r\n else {\r\n return super.onMouseDown(event);\r\n }\r\n return true;\r\n }\r\n onMouseEnter(event) {\r\n return true;\r\n }\r\n onMouseLeave(event) {\r\n return true;\r\n }\r\n onMouseMove(event) {\r\n if (event.shiftKey) {\r\n event = this.compare(event);\r\n }\r\n if (this.status == __1.SItemStatus.Create) {\r\n this.lastPoint = new draw_1.SPoint();\r\n this.lastPoint.x = event.x;\r\n this.lastPoint.y = event.y;\r\n this.update();\r\n }\r\n else if (this.status == __1.SItemStatus.Edit) {\r\n if (event.buttons == 1) {\r\n if (-1 != this.curIndex) {\r\n this.pointList[this.curIndex].x = event.x;\r\n this.pointList[this.curIndex].y = event.y;\r\n }\r\n }\r\n this.update();\r\n }\r\n else {\r\n return super.onMouseMove(event);\r\n }\r\n return true;\r\n }\r\n compare(event) {\r\n if (this.pointList.length) {\r\n let last = new draw_1.SPoint(event.x, event.y);\r\n if (this.status == __1.SItemStatus.Create) {\r\n last = this.pointList[this.pointList.length - 1];\r\n }\r\n else if (this.status == __1.SItemStatus.Edit) {\r\n if (this.curIndex > 0) {\r\n last = this.pointList[this.curIndex - 1];\r\n }\r\n }\r\n const dx = Math.abs(event.x - last.x);\r\n const dy = Math.abs(event.y - last.y);\r\n if (dy > dx) {\r\n event.x = last.x;\r\n }\r\n else {\r\n event.y = last.y;\r\n }\r\n }\r\n return event;\r\n }\r\n onMouseUp(event) {\r\n if (this.status == __1.SItemStatus.Edit) {\r\n if (-1 != this.curIndex) {\r\n const pos = new draw_1.SPoint(this.pointList[this.curIndex].x, this.pointList[this.curIndex].y);\r\n this.recordAction(graph_1.SGraphPointListUpdate, [\r\n this.pointList,\r\n this.curPoint,\r\n pos,\r\n this.curIndex\r\n ]);\r\n }\r\n }\r\n else if (this.status == __1.SItemStatus.Normal) {\r\n this.moveToOrigin(this.x, this.y);\r\n return super.onMouseUp(event);\r\n }\r\n return true;\r\n }\r\n moveToOrigin(x, y) {\r\n super.moveToOrigin(x, y);\r\n this.pointList = this.pointList.map(t => {\r\n t.x = t.x + x;\r\n t.y = t.y + y;\r\n return t;\r\n });\r\n this.x = 0;\r\n this.y = 0;\r\n }\r\n onResize(event) {\r\n return true;\r\n }\r\n cancelOperate() {\r\n if (this.status == __1.SItemStatus.Create) {\r\n this.parent = null;\r\n }\r\n else if (this.status == __1.SItemStatus.Edit) {\r\n this.status = __1.SItemStatus.Normal;\r\n }\r\n this.update();\r\n }\r\n boundingRect() {\r\n if (this.pointList.length) {\r\n this.minX = this.pointList[0].x;\r\n this.maxX = this.pointList[0].x;\r\n this.minY = this.pointList[0].y;\r\n this.maxY = this.pointList[0].y;\r\n this.pointList.forEach(it => {\r\n let x = it.x, y = it.y;\r\n if (x < this.minX) {\r\n this.minX = x;\r\n }\r\n if (y < this.minY) {\r\n this.minY = y;\r\n }\r\n if (x > this.maxX) {\r\n this.maxX = x;\r\n }\r\n if (y > this.maxY) {\r\n this.maxY = y;\r\n }\r\n });\r\n }\r\n return new draw_1.SRect(this.minX, this.minY, this.maxX - this.minX, this.maxY - this.minY);\r\n }\r\n contains(x, y) {\r\n let arr = this.pointList;\r\n if (arr.length < 3 || !draw_1.SPolygonUtil.pointIn(x, y, arr)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n onDraw(painter) {\r\n this.scenceLen = painter.toPx(this.len);\r\n if (this.status == __1.SItemStatus.Normal) {\r\n this.drawShowPolygon(painter, this.pointList);\r\n }\r\n else if (this.status == __1.SItemStatus.Create) {\r\n this.drawCreatePolygon(painter, this.pointList);\r\n }\r\n else {\r\n this.drawEditPolygon(painter, this.pointList);\r\n }\r\n }\r\n}\r\nexports.SPolygonItem = SPolygonItem;\r\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAAD/0lEQVRoBe1YSY8NURT+jja1RGuEWFiIsDD0kkRMbQqR9IakE7EQYoGgfwCSXrRhYaO6O1jYWFiIIIZggWZlWkhIJDoIG0MMMQ89HN+telXvVr2u96ree90WqpJ695xzzzn3O+eeO7wCsifLQJaBLANZBv7nDMigBO/oJCi2QrCa/ufyrSP/ke1ryrpJ30OLHK7G2NUNQFXQgd3ox0GCqy0KsEWqMvbwooOk6TTgHZygyeY0ZpXqVi+AdjfrYfCCpyyXsyybt2x72E4n4Dl851cK3LevyjSiXRtYNg/pdJjvmGDbMAWtaJa+QOYTZrZE1GcraaszA/3YQRA2+H3YLW2xwKoE3vjPDxo7WoIOwbpAS/ABDTgU8INMVB6Ao7NZ35MtnDewTHotflDJygMQNEYQXo/wg8pWHoBGAqjBkAaQfBdy9B1TOXaAdI5iCeX9CH5ZOl9zdNTuJ+VruNDvWbpAh67lbnaKslE5+Vfq2OUZUjdM8l1IManAeiCBYrQltmlLTB3BfgpWBcIOXYI+nCFvn+Bx9oFZ5SUUuEpJKFaiUxe5Vp06j+AvkbbBJ3KYPADBj0QebSVjU8yulwfdUZ2LXlylWbTMUNQ2N07yABowjg7N1HtvnZut9xbeV0Gfr2NsbLs6jKf+fctmBS8Yd8lPcGWCz2wXBn6MbYknv/hKKBZ0d+gcTvvjQC44yQW3KeDjCEebuOgvFHSbxT+M1++dcrugr4gg+QxEnfShMSQSdIX4OGaXW+tPIt3m4GtOC974KD+AwgOsyzgs+Zh7kOBRRK+bs3cxIkvElheAuU0CS60RXmGXvLD4eNLRjSyh5ojCLDi6OCJLxJYXQCfM/cc+F24mGs0DeSJGtzVGXlRcXgDl1P8xnUkk5xi4d8oKrrGU7gToFMvLmYXyAgCWBQMbYkSJBezoVPzGZYKf6NoJHqAe6xnAnpAfxQEG4V8jQl1xTPpt1NR/u/sX0SshwUsuwGkFAxzRTwToHU6KGqv/OUZiAbaLuVsBR/QWf5e4tPfTz+YLv1qYM6Pkk34GjvE/rV3/Gpv9eurVuG8exnsW0JoAvCdvzXe7lMFUH5HFsukD6EFjyFvS/R/4yRlpwjbpDtm3iNkAbodkKZj0AUTv//H1/z3AIbwwABtYavlFG3SSEOzla3T8J2/rS2LadGvgtNbiDb+uae6OInhGUDMG9O2dFb5/Hl4lvkKk1c8Nmvz/wHEdQ/CdAXjjQLkVxj0eYI3rLpCn1c85KB2Ao2ZXALdBA9jPqCviEr3iEf/ut3QAUdA+VlM+k/99AOkXsRfAH14Dtwz41c0PcIja5AEIvhFTN4voPEunsZyr7xDFlA2TZSDLQJaBLAP/UQb+AuSY44vp4ccXAAAAAElFTkSuQmCC\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SGraphView = void 0;\r\nconst base_1 = require(\"@persagy-web/base\");\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nconst uuid_1 = require(\"uuid\");\r\nconst draw_2 = require(\"@persagy-web/draw\");\r\nclass SGraphView extends draw_1.SCanvasView {\r\n constructor(id) {\r\n super(id);\r\n this._scene = null;\r\n this.backgroundColor = draw_2.SColor.Transparent;\r\n this.rotate = 0;\r\n }\r\n get scene() {\r\n return this._scene;\r\n }\r\n set scene(v) {\r\n if (this._scene != null) {\r\n this._scene.view = null;\r\n }\r\n this._scene = v;\r\n if (this._scene != null) {\r\n this._scene.view = this;\r\n }\r\n this.update();\r\n }\r\n saveSceneSvg(name, width, height) {\r\n let url = URL.createObjectURL(new Blob([this.sceneSvgData(width, height)], {\r\n type: \"text/xml,charset=UTF-8\"\r\n }));\r\n base_1.SNetUtil.downLoad(name, url);\r\n }\r\n sceneSvgData(width, height) {\r\n if (null == this.scene) {\r\n return \"\";\r\n }\r\n let engine = new draw_1.SSvgPaintEngine(width, height);\r\n let painter = new draw_1.SPainter(engine);\r\n let s0 = this.scale;\r\n let x0 = this.origin.x;\r\n let y0 = this.origin.y;\r\n let rect = this.scene.allItemRect();\r\n this.fitRectToSize(width, height, rect);\r\n this.onDraw(painter);\r\n this.scale = s0;\r\n this.origin.x = x0;\r\n this.origin.y = y0;\r\n return engine.toSvg();\r\n }\r\n fitSceneToView() {\r\n if (null == this.scene) {\r\n return;\r\n }\r\n let rect = this.scene.allItemRect();\r\n this.fitRectToSize(this.width, this.height, rect);\r\n }\r\n fitSelectedToView() {\r\n if (null == this.scene) {\r\n return;\r\n }\r\n let rect = this.scene.selectedItemRect();\r\n this.fitRectToSize(this.width, this.height, rect);\r\n }\r\n fitItemToView(itemList) {\r\n if (null == this.scene) {\r\n return;\r\n }\r\n let rect = null;\r\n for (let item of itemList) {\r\n if (rect == null) {\r\n rect = item.boundingRect().translated(item.pos.x, item.pos.y);\r\n }\r\n else {\r\n rect.union(item.boundingRect().translated(item.pos.x, item.pos.y));\r\n }\r\n }\r\n this.fitRectToSize(this.width, this.height, rect);\r\n }\r\n mapFromScene(x, y) {\r\n if (x instanceof draw_1.SPoint) {\r\n return new draw_1.SPoint(x.x * this.scale + this.origin.x, x.y * this.scale + this.origin.y);\r\n }\r\n return new draw_1.SPoint(x * this.scale + this.origin.x, (y == undefined ? 0 : y) * this.scale + this.origin.y);\r\n }\r\n mapToScene(x, y) {\r\n if (x instanceof draw_1.SPoint) {\r\n return new draw_1.SPoint((x.x - this.origin.x) / this.scale, (x.y - this.origin.y) / this.scale);\r\n }\r\n return new draw_1.SPoint((x - this.origin.x) / this.scale, ((y == undefined ? 0 : y) - this.origin.y) / this.scale);\r\n }\r\n saveImageSize(name, type, width, height) {\r\n const can = document.createElement(\"CANVAS\");\r\n can.width = width;\r\n can.height = height;\r\n can.id = uuid_1.v1();\r\n const body = document.getElementsByTagName(\"body\")[0];\r\n body.appendChild(can);\r\n let engine = new draw_1.SCanvasPaintEngine(can.getContext(\"2d\"));\r\n let painter = new draw_1.SPainter(engine);\r\n let vi = new SGraphView(can.id);\r\n vi.scene = this.scene;\r\n vi.fitSceneToView();\r\n vi.backgroundColor = new draw_2.SColor(\"#FFFFFF\");\r\n vi.onDraw(painter);\r\n vi.saveImage(name, type);\r\n this.scene.view = this;\r\n can.remove();\r\n vi = null;\r\n }\r\n onDraw(painter) {\r\n painter.save();\r\n painter.clearRect(0, 0, this.width, this.height);\r\n painter.restore();\r\n if (this.scene == null) {\r\n return;\r\n }\r\n painter.save();\r\n this.drawBackground(painter);\r\n painter.restore();\r\n painter.save();\r\n painter.translate(this.origin.x, this.origin.y);\r\n painter.scale(this.scale, this.scale);\r\n painter.rotate(this.rotate);\r\n this.scene.drawScene(painter, new draw_1.SRect());\r\n painter.restore();\r\n painter.save();\r\n this.drawForeground(painter);\r\n painter.restore();\r\n }\r\n drawBackground(painter) {\r\n painter.brush.color = this.backgroundColor;\r\n painter.pen.color = draw_2.SColor.Transparent;\r\n painter.drawRect(0, 0, this.width, this.height);\r\n }\r\n drawForeground(painter) {\r\n }\r\n onDoubleClick(event) {\r\n if (this.scene != null) {\r\n let ce = this.toSceneMotionEvent(event);\r\n this.scene.onDoubleClick(ce);\r\n }\r\n }\r\n onMouseDown(event) {\r\n super.onMouseDown(event);\r\n if (this.scene != null) {\r\n let ce = this.toSceneMotionEvent(event);\r\n this.scene.onMouseDown(ce);\r\n }\r\n }\r\n onMouseMove(event) {\r\n super.onMouseMove(event);\r\n if (this.scene != null) {\r\n let ce = this.toSceneMotionEvent(event);\r\n this.scene.onMouseMove(ce);\r\n }\r\n }\r\n onMouseUp(event) {\r\n super.onMouseUp(event);\r\n if (this.scene != null) {\r\n let ce = this.toSceneMotionEvent(event);\r\n this.scene.onMouseUp(ce);\r\n }\r\n }\r\n onContextMenu(event) {\r\n if (this.scene != null) {\r\n let ce = this.toSceneMotionEvent(event);\r\n this.scene.onContextMenu(ce);\r\n }\r\n }\r\n onKeyDown(event) {\r\n if (this.scene != null) {\r\n this.scene.onKeyDown(event);\r\n }\r\n }\r\n onKeyUp(event) {\r\n if (this.scene != null) {\r\n this.scene.onKeyUp(event);\r\n }\r\n }\r\n fitRectToSize(width, height, rect) {\r\n if (null == rect || !rect.isValid()) {\r\n return;\r\n }\r\n this.scale = Math.min(width / rect.width, height / rect.height) * 0.8;\r\n let center = rect.center();\r\n this.origin.x = width / 2.0 - center.x * this.scale;\r\n this.origin.y = height / 2.0 - center.y * this.scale;\r\n }\r\n toSceneMotionEvent(event) {\r\n let se = new base_1.SMouseEvent(event);\r\n se.matrix.translate(this.origin.x, this.origin.y);\r\n se.matrix.scale(this.scale, this.scale);\r\n se.matrix.rotate(this.rotate);\r\n const mp = new draw_1.SPoint(event.offsetX, event.offsetY).matrixTransform(se.matrix.inversed());\r\n se.x = mp.x;\r\n se.y = mp.y;\r\n return se;\r\n }\r\n}\r\nexports.SGraphView = SGraphView;\r\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAACVUlEQVRoBe1YvU7cQBD+xkQcAkV5gIgWKOig4FFQUiSR0FUHOuA5+CkQBT+iyyNEipIHSBH69AQKpESKIiQEZw+zd94z9o1vzZ0tsLRudvebb8cz387aawP+8gp4BbwCXgGvQI0VoFFj3zk4OkvNZbyV8WSM3YFwmbLbgYO33Wp+stQi7asiJJXD/FHFLci242gHeU9KIHC4f/Hm0VcAdJfOjo0vK0gEUCdtt6OiPMsf3o68B7JuZU/8BPNSFyc6l1peznLMuChPm6thVjHNVgvMJ/Dcy+RXwK/AmAqo74GyH3Vjxjj00VvaHiBw/51CjPu8oB/bHs/J47vw0hJgxnRyM75K+tleYkvPyfKKjdUSSk1lbuwfns6nsHjAHAUR4Q0irICjuT6H8Lvfz3aMLTnAze0cHLflAPIjYPwjCuQIMniFYacxiPYQdwLAojj4ledAwwOmLxpuMGMLwRuxPZDE9xBCNDCXGn9M1ZvSSsi6J9D39nrzqx1nW2MznCw+6rjMBDpE+DxJjVVXMIZjuMLLObG6PCR2dwkRLgLQfjIl6ckmDCWQ/6LoRTRF51tra38Ta36v1frwR6zvd09O1oNbXmLwrPh6Lb4mtFkRuC37ZlazuRMAXW+2mrva5HGxOOFvLj/yXnoHSVLjlVlCmv/KMZ9A5RI7buBXwCFQ5Wb3U4ix0D2dVh7KkBtIDHlWdwLgGXkG9/425Hl5Rrz2e6DACtCN/Od80mGu9AXplpBUgnK5E5Dg835SKf4qgXpfiHoZ176EfAKV1Ix36hXwCngFaqPAA9HJorQ0TfsXAAAAAElFTkSuQmCC\"","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O.constructor))(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","var toPositiveInteger = require('../internals/to-positive-integer');\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw RangeError('Wrong offset');\n return offset;\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.STextAlign = void 0;\r\nvar STextAlign;\r\n(function (STextAlign) {\r\n STextAlign[STextAlign[\"Start\"] = 0] = \"Start\";\r\n STextAlign[STextAlign[\"End\"] = 1] = \"End\";\r\n STextAlign[STextAlign[\"Right\"] = 2] = \"Right\";\r\n STextAlign[STextAlign[\"Left\"] = 3] = \"Left\";\r\n STextAlign[STextAlign[\"Center\"] = 4] = \"Center\";\r\n})(STextAlign = exports.STextAlign || (exports.STextAlign = {}));\r\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./topoEditer.vue?vue&type=style&index=0&lang=less&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./topoEditer.vue?vue&type=style&index=0&lang=less&\"","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseImagePro.vue?vue&type=style&index=0&id=038bf034&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseImagePro.vue?vue&type=style&index=0&id=038bf034&lang=less&scoped=true&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SBrush = void 0;\r\nvar SBrushType_1 = require(\"./enums/SBrushType\");\r\nvar _1 = require(\"./\");\r\nvar SBrush = (function () {\r\n function SBrush(brush) {\r\n this.type = SBrushType_1.SBrushType.Color;\r\n this._color = _1.SColor.Black;\r\n this._gradient = null;\r\n if (brush == undefined) {\r\n return;\r\n }\r\n if (brush instanceof _1.SGradient) {\r\n this.gradient = brush;\r\n }\r\n else if (brush instanceof SBrush) {\r\n this.type = brush.type;\r\n this.color = new _1.SColor(brush.color);\r\n }\r\n else {\r\n this.color = new _1.SColor(brush);\r\n }\r\n }\r\n Object.defineProperty(SBrush.prototype, \"color\", {\r\n get: function () {\r\n return this._color;\r\n },\r\n set: function (value) {\r\n this.type = SBrushType_1.SBrushType.Color;\r\n this._color = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SBrush.prototype, \"gradient\", {\r\n get: function () {\r\n return this._gradient;\r\n },\r\n set: function (value) {\r\n this._gradient = value;\r\n this.type = SBrushType_1.SBrushType.Gradient;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return SBrush;\r\n}());\r\nexports.SBrush = SBrush;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SGradientStop = void 0;\r\nvar SGradientStop = (function () {\r\n function SGradientStop(pos, color) {\r\n this._pos = 0;\r\n this.pos = pos;\r\n this.color = color;\r\n }\r\n Object.defineProperty(SGradientStop.prototype, \"pos\", {\r\n get: function () {\r\n return this._pos;\r\n },\r\n set: function (value) {\r\n if (value < 0) {\r\n value = 0;\r\n }\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n this._pos = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return SGradientStop;\r\n}());\r\nexports.SGradientStop = SGradientStop;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SGraphPolyGroupItem = void 0;\r\nconst lib_1 = require(\"@persagy-web/draw/lib\");\r\nconst SGraphShape_1 = require(\"./SGraphShape\");\r\nclass SGraphPolyGroupItem extends SGraphShape_1.SGraphShape {\r\n constructor(parent, data) {\r\n super(parent, data.Style);\r\n this.minX = Number.MAX_SAFE_INTEGER;\r\n this.maxX = Number.MIN_SAFE_INTEGER;\r\n this.minY = Number.MAX_SAFE_INTEGER;\r\n this.maxY = Number.MIN_SAFE_INTEGER;\r\n this.pointList = [];\r\n if (data.Outline.length && data.Outline[0] && data.Outline[0].length) {\r\n this.minX = data.Outline[0][0].X;\r\n this.maxX = this.minX;\r\n this.minY = data.Outline[0][0].Y;\r\n this.maxY = this.minY;\r\n this.pointList = data.Outline.map((t) => {\r\n return t.map((it) => {\r\n let x = it.X, y = it.Y;\r\n if (x < this.minX) {\r\n this.minX = x;\r\n }\r\n if (y < this.minY) {\r\n this.minY = y;\r\n }\r\n if (x > this.maxX) {\r\n this.maxX = x;\r\n }\r\n if (y > this.maxY) {\r\n this.maxY = y;\r\n }\r\n return new lib_1.SPoint(x, y);\r\n });\r\n });\r\n }\r\n }\r\n boundingRect() {\r\n return new lib_1.SRect(this.minX, this.minY, this.maxX - this.minX, this.maxY - this.minY);\r\n }\r\n contains(x, y) {\r\n let arr = this.pointList;\r\n for (let i = 0; i < arr.length; i++) {\r\n if (lib_1.SPolygonUtil.pointIn(x, y, arr[i])) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n onDraw(painter) {\r\n super.onDraw(painter);\r\n this.pointList.forEach((t) => {\r\n painter.drawPolygon(t);\r\n });\r\n }\r\n}\r\nexports.SGraphPolyGroupItem = SGraphPolyGroupItem;\r\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $sort = [].sort;\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n return $sort.call(aTypedArray(this), comparefn);\n});\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SObject = void 0;\r\nvar SObjectObserver_1 = require(\"./SObjectObserver\");\r\nvar SObject = (function () {\r\n function SObject() {\r\n this.name = \"\";\r\n this.listeners = {};\r\n this.id = \"\";\r\n }\r\n SObject.prototype.connect = function (name, receiver, callback) {\r\n var observerList = this.listeners[name];\r\n if (!observerList) {\r\n this.listeners[name] = [];\r\n }\r\n else {\r\n for (var _i = 0, observerList_1 = observerList; _i < observerList_1.length; _i++) {\r\n var observer = observerList_1[_i];\r\n if (observer.compar(receiver)) {\r\n return;\r\n }\r\n }\r\n }\r\n this.listeners[name].push(new SObjectObserver_1.SObjectObserver(receiver, callback));\r\n };\r\n SObject.prototype.disconnect = function (name, receiver) {\r\n var observerList = this.listeners[name];\r\n if (!observerList) {\r\n return;\r\n }\r\n var length = observerList.length;\r\n for (var i = 0; i < length; i++) {\r\n var observer = observerList[i];\r\n if (observer.compar(receiver)) {\r\n observerList.splice(i, 1);\r\n break;\r\n }\r\n }\r\n if (observerList.length == 0) {\r\n delete this.listeners[name];\r\n }\r\n };\r\n SObject.prototype.$emit = function (name) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var observerList = this.listeners[name];\r\n if (!observerList) {\r\n return;\r\n }\r\n for (var _a = 0, observerList_2 = observerList; _a < observerList_2.length; _a++) {\r\n var observer = observerList_2[_a];\r\n observer.notify(this, args);\r\n }\r\n };\r\n return SObject;\r\n}());\r\nexports.SObject = SObject;\r\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","/*\n * @copyright 2016 Sean Connelly (@voidqk), http://syntheti.cc\n * @license MIT\n * @preserve Project Home: https://github.com/voidqk/polybooljs\n */\n\nvar BuildLog = require('./lib/build-log');\nvar Epsilon = require('./lib/epsilon');\nvar Intersecter = require('./lib/intersecter');\nvar SegmentChainer = require('./lib/segment-chainer');\nvar SegmentSelector = require('./lib/segment-selector');\nvar GeoJSON = require('./lib/geojson');\n\nvar buildLog = false;\nvar epsilon = Epsilon();\n\nvar PolyBool;\nPolyBool = {\n\t// getter/setter for buildLog\n\tbuildLog: function(bl){\n\t\tif (bl === true)\n\t\t\tbuildLog = BuildLog();\n\t\telse if (bl === false)\n\t\t\tbuildLog = false;\n\t\treturn buildLog === false ? false : buildLog.list;\n\t},\n\t// getter/setter for epsilon\n\tepsilon: function(v){\n\t\treturn epsilon.epsilon(v);\n\t},\n\n\t// core API\n\tsegments: function(poly){\n\t\tvar i = Intersecter(true, epsilon, buildLog);\n\t\tpoly.regions.forEach(i.addRegion);\n\t\treturn {\n\t\t\tsegments: i.calculate(poly.inverted),\n\t\t\tinverted: poly.inverted\n\t\t};\n\t},\n\tcombine: function(segments1, segments2){\n\t\tvar i3 = Intersecter(false, epsilon, buildLog);\n\t\treturn {\n\t\t\tcombined: i3.calculate(\n\t\t\t\tsegments1.segments, segments1.inverted,\n\t\t\t\tsegments2.segments, segments2.inverted\n\t\t\t),\n\t\t\tinverted1: segments1.inverted,\n\t\t\tinverted2: segments2.inverted\n\t\t};\n\t},\n\tselectUnion: function(combined){\n\t\treturn {\n\t\t\tsegments: SegmentSelector.union(combined.combined, buildLog),\n\t\t\tinverted: combined.inverted1 || combined.inverted2\n\t\t}\n\t},\n\tselectIntersect: function(combined){\n\t\treturn {\n\t\t\tsegments: SegmentSelector.intersect(combined.combined, buildLog),\n\t\t\tinverted: combined.inverted1 && combined.inverted2\n\t\t}\n\t},\n\tselectDifference: function(combined){\n\t\treturn {\n\t\t\tsegments: SegmentSelector.difference(combined.combined, buildLog),\n\t\t\tinverted: combined.inverted1 && !combined.inverted2\n\t\t}\n\t},\n\tselectDifferenceRev: function(combined){\n\t\treturn {\n\t\t\tsegments: SegmentSelector.differenceRev(combined.combined, buildLog),\n\t\t\tinverted: !combined.inverted1 && combined.inverted2\n\t\t}\n\t},\n\tselectXor: function(combined){\n\t\treturn {\n\t\t\tsegments: SegmentSelector.xor(combined.combined, buildLog),\n\t\t\tinverted: combined.inverted1 !== combined.inverted2\n\t\t}\n\t},\n\tpolygon: function(segments){\n\t\treturn {\n\t\t\tregions: SegmentChainer(segments.segments, epsilon, buildLog),\n\t\t\tinverted: segments.inverted\n\t\t};\n\t},\n\n\t// GeoJSON converters\n\tpolygonFromGeoJSON: function(geojson){\n\t\treturn GeoJSON.toPolygon(PolyBool, geojson);\n\t},\n\tpolygonToGeoJSON: function(poly){\n\t\treturn GeoJSON.fromPolygon(PolyBool, epsilon, poly);\n\t},\n\n\t// helper functions for common operations\n\tunion: function(poly1, poly2){\n\t\treturn operate(poly1, poly2, PolyBool.selectUnion);\n\t},\n\tintersect: function(poly1, poly2){\n\t\treturn operate(poly1, poly2, PolyBool.selectIntersect);\n\t},\n\tdifference: function(poly1, poly2){\n\t\treturn operate(poly1, poly2, PolyBool.selectDifference);\n\t},\n\tdifferenceRev: function(poly1, poly2){\n\t\treturn operate(poly1, poly2, PolyBool.selectDifferenceRev);\n\t},\n\txor: function(poly1, poly2){\n\t\treturn operate(poly1, poly2, PolyBool.selectXor);\n\t}\n};\n\nfunction operate(poly1, poly2, selector){\n\tvar seg1 = PolyBool.segments(poly1);\n\tvar seg2 = PolyBool.segments(poly2);\n\tvar comb = PolyBool.combine(seg1, seg2);\n\tvar seg3 = selector(comb);\n\treturn PolyBool.polygon(seg3);\n}\n\nif (typeof window === 'object')\n\twindow.PolyBool = PolyBool;\n\nmodule.exports = PolyBool;\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAFKADAAQAAAABAAAAFAAAAACRFdLHAAABmUlEQVQ4Ea2VP0jDUBDG79K0gptLQRCEqItiEQwYqVIFF/eiqyIoKB2KuCk46KiCUrHi31UEJ5GKoFKLiKlDQRwU907iotY0Od/rkKYQk4Y2ELh3930/LrzjgsAeIhI2tvcl0ScE+NnrU9SN3/js1DsiGliCJXaviGDYK8iqR4Tr+Nz0CK4n9trJ0F8R8JaAbqyiamPmHWLeCAq+DpF/pmbowGHzsZnlaiFW3dpWkvsinCVYC25x+jEnuWmqBmZUtQ31QqwuQFVVm40iXQIJ6ZqB6Vyu6UeDFBAGhZbgRU1A1lkjfhXO2YV1I9Ib5POtNQG/A4EGQEyyN8XmtEfX6CVzn51wgjpeymAo9DHQJx+z6c9yCBMvhvt7j5yAolOxXMNxAWElrMir5Zx95Nght9w9PMmAcMZgS/aIyqxrhyLhp6LIC5W2/0+4uXPQqWnaM9sUpwjgOhZ2KAIYZUsm6vf7u8wOeYIVonYGLzkTiCgcsvE48WI2tURjRMYkP4t8OZYKRBJLKqbIQ8DWl8TlnFX/BcvJ9fwF/AFmxKSOjcx7JQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAAAj0lEQVRoBe3YMQ7CMBBEUQdx11RUnIOKitOG3u0vFqSXLpF2nLyxm6zlIkCAAAECBOYEjtf7c80t31e+9YjZBB8w67/WfX+B5+M89me/dL+fWVtouh0NaCAK2EIRMI9rIBPGAA1EwDyugUwYAzQQAfO4BjJhDNBABMzj/gtlwhjgDERA4wQIECBAgMBfC3wBWGUJqYa+rNwAAAAASUVORK5CYII=\"","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $slice = [].slice;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line no-undef\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = $slice.call(aTypedArray(this), start, end);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAAEs0lEQVRoBe1YS4gcRRj+anZxdSEefBEFZdGLuLAXYcEEQXIQhBj14gujBALiI4ZswFM86UlwYScmEgiID3xdTFQI5CCCuIcFLwuCF2WJEBZjPChsVjFbfl9VV3f1TM901z4SB+eHnq75639X1d//X8AQhhH4f0fAbJn7c9aWZB80W6KrVVIygH+GDlztRdv8fXnC3oS/MAmLb0rOGTyAMfyA581vJfwG/2yOA217Mw3eS1segcFOjkcq7TK4zLnvOHeadB/gFXOhki4BuTEHTthxRnuGRr1KndsS9Ir0TzrxJldllquyksibk6/fgTl7Lw34nMbfnkvTQFEGFvgs8TnPR3Abnwk+012rY/ALcY/hoPme88mwPgeO2iewhnep7bpI4yI3ziyuxZfYb36P8MXwpL0Bq3iYLs4QOVVM4BJa2IcD5tMI12iY7oA3/pNcusFFjmdwAB/CmLUc329gbQtH8QxJZhn9G3PSFp5MdSLNAW0b4Fs+PvKGWWUUe/Ci+Tk3ImVw3N6Jf/AFnZjM2C7xfX/KdmrugD+wP1KZ3/MyHtjBTPJHis1dtG17PXHzuRM6E2O4u+nBHu0S2Avhs00w/mIW+W7j37aTPB/7KeZBPndk4s7xfZb7/CReNnK8AAXguN3DlVhw20kBki7gjYKo96jZCvg8/xPF+FRp8Bwj/35J7Gf2Giy7Pf0C8b1KlDVmqXewnQY+bv4u8bfts3TgvQynFHtXk+9EL0Ul2RS8l4iQ5xfdgY0pvPFnSPcS0f1kthzNMs5APDEoCQCLGWpbpjOmqBz3U1YwGDya/zF4qyvb+MjvymnqBha73GrFdMpgSsMBYp0BV/Gu30K+tllmREbcR2oct5TyvPb8ZRe5ZsEojJDBU6Uzoe/ECn7NdY1xs9XUTt2HuLMRWS00crRQMl5T/sCmGi/OVsZ7SH8c6APYtvqK3+ecWMUFzEV9UUVTlKp4yWsq/SrbrBeqeJdShKU6cL5CeEiVFVO1qCreKh09BaU6UH9meqpqPJGko/sMdO6ztn2K+/GjTP2tFWacI+6eCnwTlHg7odBh8DS/BR93EsT/m6xAvKQTMXM2PluBa4qq4p2ImGPdEboY1jugNtDX+OKahlJdDCoPlIvSYc2VFjGflz3tUNIp3TVQ74DPw/NOjr4FK9hdkqnaRuVBKoinsy5SrxDaUbWeNd8Aqax3QFQWp/RyYHEYqudjUG1j8HWM6jsWrXhikEzf6ATs6TDo9y4b0otSDbh6WA9TWTNSUKsw246H6MQxIvttJxVzxxxtZzHnG5zQpamYk85aaJ6y2vYIV+J1J1Fd2CjPQ1Ujk1pOS6BvbHw5rf8GrzH7bGI5LaH/0Yam2RaSA7r60O0B2IALfBs476LnEOv4UeTjbkyypSPhmqW5A7JPVx+6PQggJ9RJuWak42AHmqq3Dqx4fBcW+mGllH0p/bBENz8DsSG9rlXUK4zjq66KNfD6cnk3o3yYqHBgNXsFr1WCMQN9sRWcGOirxeCE3uFy17eBO7hFRuLpfOxLEl2hnHJ5/qpf7uaWRYOBvF6P7M+Hna1pZ5meE25skJZGN6ZrS7gH3oEticpQ6DACwwhcuQj8C1VPeGj4u6b3AAAAAElFTkSuQmCC\"","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\u0009\\u000A\\u000D #%/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\u0009\\u000A\\u000D #/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\n// eslint-disable-next-line no-control-regex\nvar TAB_AND_NEW_LINE = /[\\u0009\\u000A\\u000D]/g;\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, index;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n radix = HEX_START.test(part) ? 16 : 8;\n part = part.slice(radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n number = parseInt(part, radix);\n }\n numbers.push(number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = numbers.pop();\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var char = function () {\n return input.charAt(pointer);\n };\n\n if (char() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (char()) {\n if (pieceIndex == 8) return;\n if (char() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(char())) {\n value = value * 16 + parseInt(char(), 16);\n pointer++;\n length++;\n }\n if (char() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (char()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (char() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(char())) return;\n while (DIGIT.test(char())) {\n number = parseInt(char(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (char() == ':') {\n pointer++;\n if (!char()) return;\n } else if (char()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n result.unshift(host % 256);\n host = floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[index].toString(16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n var code = codeAt(char, 0);\n return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, char, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n char = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (char && ALPHA.test(char)) {\n buffer += char.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n buffer += char.toLowerCase();\n } else if (char == ':') {\n if (stateOverride && (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && char == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (char == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (char == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (char == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (char == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (char == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (char != '/' && char != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (char == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += char;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (char == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (char == '[') seenBracket = true;\n else if (char == ']') seenBracket = false;\n buffer += char;\n } break;\n\n case PORT:\n if (DIGIT.test(char)) {\n buffer += char;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (char == '/' || char == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (char == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (char == '/' || char == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += char;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (char != '/' && char != '\\\\') continue;\n } else if (!stateOverride && char == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n state = PATH;\n if (char != '/') continue;\n } break;\n\n case PATH:\n if (\n char == EOF || char == '/' ||\n (char == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (char == '?' || char == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(char, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n if (char == \"'\" && isSpecial(url)) url.query += '%27';\n else if (char == '#') url.query += '%23';\n else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = String(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, String(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URL(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = String(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, String(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = String(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, pathname + '', PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = String(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = String(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.STextItem = void 0;\r\nconst SObjectItem_1 = require(\"./SObjectItem\");\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nconst __1 = require(\"..\");\r\nconst __2 = require(\"..\");\r\nclass STextItem extends SObjectItem_1.SObjectItem {\r\n constructor(parent, str = \"\") {\r\n super(parent);\r\n this._painter = null;\r\n this._text = \"\";\r\n this._textArr = [];\r\n this._color = new draw_1.SColor(\"#333333\");\r\n this._backgroundColor = draw_1.SColor.Transparent;\r\n this._strokeColor = draw_1.SColor.Transparent;\r\n this._lineWidth = 1;\r\n this._borderStyle = __1.SLineStyle.None;\r\n this._originPosition = __2.STextOrigin.LeftTop;\r\n this.maxWidth = undefined;\r\n this._text = str;\r\n this._font = new draw_1.SFont(\"sans-serif\", 12);\r\n this.height = 12;\r\n }\r\n get text() {\r\n return this._text;\r\n }\r\n set text(v) {\r\n this._text = v;\r\n this._textArr = this.text.split(/\\n/g);\r\n this.drawFormatText();\r\n this.update();\r\n }\r\n get color() {\r\n return this._color;\r\n }\r\n set color(v) {\r\n this._color = v;\r\n this.update();\r\n }\r\n get font() {\r\n return this._font;\r\n }\r\n set font(v) {\r\n this._font = v;\r\n this.drawFormatText();\r\n this.update();\r\n }\r\n get backgroundColor() {\r\n return this._backgroundColor;\r\n }\r\n set backgroundColor(v) {\r\n this._backgroundColor = v;\r\n this.update();\r\n }\r\n get strokeColor() {\r\n return this._strokeColor;\r\n }\r\n set strokeColor(v) {\r\n this._strokeColor = v;\r\n this.update();\r\n }\r\n get lineWidth() {\r\n return this._lineWidth;\r\n }\r\n set lineWidth(v) {\r\n this._lineWidth = v;\r\n this.update();\r\n }\r\n get borderStyle() {\r\n return this._borderStyle;\r\n }\r\n set borderStyle(v) {\r\n this._borderStyle = v;\r\n this.update();\r\n }\r\n get originPosition() {\r\n return this._originPosition;\r\n }\r\n set originPosition(v) {\r\n this._originPosition = v;\r\n this.update();\r\n }\r\n boundingRect() {\r\n return new draw_1.SRect(-this.origin.x, -this.origin.y, this.width, this.height);\r\n }\r\n moveToOrigin(x, y) {\r\n this.moveTo(this.x + x, this.y + y);\r\n }\r\n drawShowText(painter) {\r\n painter.translate(-this.origin.x, -this.origin.y);\r\n if (this.selected) {\r\n painter.shadow.shadowBlur = 10;\r\n painter.shadow.shadowColor = new draw_1.SColor(`#00000033`);\r\n painter.shadow.shadowOffsetX = 5;\r\n painter.shadow.shadowOffsetY = 5;\r\n }\r\n else {\r\n painter.shadow.shadowColor = draw_1.SColor.Transparent;\r\n }\r\n painter.brush.color = this.backgroundColor;\r\n painter.pen.lineWidth = this.lineWidth;\r\n painter.pen.color = this.strokeColor;\r\n painter.drawRect(0, 0, this.width, this.height);\r\n painter.brush.color = new draw_1.SColor(this.color);\r\n painter.shadow.shadowColor = draw_1.SColor.Transparent;\r\n painter.font = this.font;\r\n this._textArr.forEach((text, index) => {\r\n painter.drawText(text, this.font.size / 4, index * (this.font.size * 1.25) + this.font.size / 4, this.maxWidth);\r\n });\r\n }\r\n drawFormatText() {\r\n if (this._painter instanceof draw_1.SPainter) {\r\n this._painter.save();\r\n this._painter.font = this.font;\r\n let textMaxWidth = 0;\r\n let fontSize = this.font.size;\r\n this._textArr.forEach((text, index) => {\r\n let textWidth = this._painter\r\n ? this._painter.textWidth(text) + fontSize / 2\r\n : fontSize / 2;\r\n if (textWidth > textMaxWidth) {\r\n textMaxWidth = textWidth;\r\n }\r\n });\r\n this.width = textMaxWidth;\r\n this.height = fontSize * 1.25 * this._textArr.length + fontSize / 8;\r\n if (this.originPosition == __2.STextOrigin.Center) {\r\n this.origin = new draw_1.SPoint(this.width / 2, this.height / 2);\r\n }\r\n this._painter.restore();\r\n }\r\n }\r\n onDraw(painter) {\r\n if (!(this._painter instanceof draw_1.SPainter)) {\r\n this._painter = painter;\r\n this.drawFormatText();\r\n }\r\n this.drawShowText(painter);\r\n }\r\n}\r\nexports.STextItem = STextItem;\r\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./baseTextPro.vue?vue&type=style&index=0&id=d7a9815e&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./baseTextPro.vue?vue&type=style&index=0&id=d7a9815e&lang=less&scoped=true&\"","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAFKADAAQAAAABAAAAFAAAAACRFdLHAAABOUlEQVQ4EWNkQAP379/nePnyvRKaMF7uH2bmv9YmencZGRn/sKCrfPryzbr//xk80cXx8v/8ZThy4uy5////mzOiKzxy4owNUMIFXZwA3wEob8/IwqaBYSABjVilDx8/3QCUqGdlZNYGe3n69Ok5QIEkYBiwY9WBXfANMzNzUWpq6llkaab58+dLAA2aBBSUQZYgxAaF19+/f/vQ1bH8/PlTCCgJ8vq0jIyMBnQFuPgzZsy4CpQTQZdnQheglD9qIKUhyMAwAsMQo7QhJxSBOW0PA8N/M3FxwXtUMdDGwuQI0CFeIMewAMGv379/g9gOwEKiAcQgBgCzqyhQ3RN0tSzJycn3Zs6cuR+owBEoaY+uABcf6E2glv9N6PLg8hAowTR37lylP3/+sKErwMVnZ2d/l5iY+AJdHgCrJGNmPYZ55wAAAABJRU5ErkJggg==\"","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.lastindexof\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n return $lastIndexOf.apply(aTypedArray(this), arguments);\n});\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SGraphLayoutType = void 0;\r\nvar SGraphLayoutType;\r\n(function (SGraphLayoutType) {\r\n SGraphLayoutType[SGraphLayoutType[\"Vertical\"] = 0] = \"Vertical\";\r\n SGraphLayoutType[SGraphLayoutType[\"Horizontal\"] = 1] = \"Horizontal\";\r\n SGraphLayoutType[SGraphLayoutType[\"Left\"] = 2] = \"Left\";\r\n SGraphLayoutType[SGraphLayoutType[\"Right\"] = 3] = \"Right\";\r\n SGraphLayoutType[SGraphLayoutType[\"Top\"] = 4] = \"Top\";\r\n SGraphLayoutType[SGraphLayoutType[\"Bottom\"] = 5] = \"Bottom\";\r\n SGraphLayoutType[SGraphLayoutType[\"Center\"] = 6] = \"Center\";\r\n SGraphLayoutType[SGraphLayoutType[\"Middle\"] = 7] = \"Middle\";\r\n})(SGraphLayoutType = exports.SGraphLayoutType || (exports.SGraphLayoutType = {}));\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAAFMElEQVRoBe1YS2gkRRiu6pn4yKqsbxRXRC9iYC9CwBVBPAiCrnqJD6JimBhMdDUT8KQn9yRkVtedyJgQUYOPXHyC4EEEMYeAFyHgRRGzLOj6WNzdrJrp/v2+mqmhptM9XZ1s3B2cPnT99df/rMdf/19K9b7eDPy/Z0Bvl/vTr9bElT319Ni26ApcJd0I9xw406t22vdlrVa77GSoBySUL13ndEHfvqMgK2NjY7+6+K3Cp8WBg/Pzl4dr9UciJfdqpW8VkUKSYVrrUJR8HSj9UaG/+Pa+kZGjSXR5cFtyALPdf3JdlxFunlMiF+ZRrLQ+DuUv7eiTClZlLRevQ7xpB16Zmb25HkUfKFG7HHmwS4dKybKI/lFrOcIxwFcDvk4pPbhhdbRaLQbB/c+Mj37jyvGFN+XAy9XZB6IoegMzf75VBMO/hakVdV7hk3Kp9LvFu21lbu4S9Vd4Dxwpw5HddgxGnAqC4PFnJ0bftzjfNrcDND6MovesAq3Vb6KDcnm8tAAnIovv1ML4oDIzN6wlqoioSy1tIQgezOtELge4bcIw+srOPAxe0UFx7+T4yA/WiDztgZn56yWqfwyHBsjHlSgUgtvybCdvB3hgT6yr7+yep/HFnf179g0P/5nH6DjtwYWFi+rH1pasE/Bi9YI+daPvwS7GBab1GW1wGs2B5bbhzCcZXzn0+oBWUopE3Qm6aykP2+SnQKvPRem58lNPrLg6KAMrsVdF6zj42E4ICkaXUvtdujTYawUY59fX6t+3QmUQPDY1MfqWK3RxcfGc1V/+qMCAJ4FPS1EizPBru664uDw0NPSPyz9dnX1URdGbBocQ29dfvMHnnkhT5MpWvKSs8Yw2PLAuAY0//POxz2D8BPCdZAakIS15XBnNIIBIhg93itHpEqTAnZS1WLC099mOaD0djzacedywd1iarJa0ZrUcwoZMhOHm5+q0uKQ20wHmNlj2PWSGklCfqz91BXHPN7eNi86GsdUMr0uJO4Q6DAo6jW53PAHecIjjhcgJs1NtbSLL8UuKBxajmRORoBvnWkrAT9oxyq4cqi2jfwuiUgG6j8IeO6ySiqJcipketKQ1AUabOM63n8SbpKOTvFwO2NzGFWhDpYvzhZN4k3R0kpfLAcRxr7DbSWHWWF4dG85AfJ8dqM4+hMTtHaNY1FVxA3hJAXdTHO/Tb/K2kzo6kOA9PDkx+m47QXsvcwWkmRKTrZESxwTghm3H+Pd4O8epXR2u7jid7Wc6wDKwFdqQz5uU2HKjZXqAxisLddgI4gwb3ha6IVsPEkGd1N0aTAEyHTA1rKgl8jO0yd9ytyvL5DZID1ycFwyeeF7EWoE6yM/S06d+znSAwnB0P2TLT4tMQUkbH3Mb1MJfNCiy/6Qlj0vZkImEsfmxbrZwp7bNkDRCFuDw4jjHoWg3ixGXlonZNVfuvAs3dhX4TtuJyVyVtPFkjjIp28iFLqPTVZICe4dFXPvPQ8GLlIMVQTrdN5hUyORNpymvUdg002kjX7+A7bWfY1mftwNna0HjtYU4C6yQ+HoAj0+xj9UYYCXF2WN/Mx953WqMsqnDtxqjTm8HSMxala8HhPnRCUElxWIEsLcs0hoeU4U16mHKo+w89TB5vLcQie2X9qxiagWk2/GM1fIxzjMMNyPZmXlWscZ09cOWdYIHu2ufFq0TbO3jrikDUUlhj6c+7uKKXeLFeFY87rpOWJhlYNc9r1vj3TZemsbTdJd2K7B36NuKku3k7XoHtnNyerJ7M9Cbgf9gBv4FufJ9bWWcAFUAAAAASUVORK5CYII=\"","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","// (c) Copyright 2017, Sean Connelly (@voidqk), http://syntheti.cc\n// MIT License\n// Project Home: https://github.com/voidqk/polybooljs\n\n//\n// convert between PolyBool polygon format and GeoJSON formats (Polygon and MultiPolygon)\n//\n\nvar GeoJSON = {\n\t// convert a GeoJSON object to a PolyBool polygon\n\ttoPolygon: function(PolyBool, geojson){\n\n\t\t// converts list of LineString's to segments\n\t\tfunction GeoPoly(coords){\n\t\t\t// check for empty coords\n\t\t\tif (coords.length <= 0)\n\t\t\t\treturn PolyBool.segments({ inverted: false, regions: [] });\n\n\t\t\t// convert LineString to segments\n\t\t\tfunction LineString(ls){\n\t\t\t\t// remove tail which should be the same as head\n\t\t\t\tvar reg = ls.slice(0, ls.length - 1);\n\t\t\t\treturn PolyBool.segments({ inverted: false, regions: [reg] });\n\t\t\t}\n\n\t\t\t// the first LineString is considered the outside\n\t\t\tvar out = LineString(coords[0]);\n\n\t\t\t// the rest of the LineStrings are considered interior holes, so subtract them from the\n\t\t\t// current result\n\t\t\tfor (var i = 1; i < coords.length; i++)\n\t\t\t\tout = PolyBool.selectDifference(PolyBool.combine(out, LineString(coords[i])));\n\n\t\t\treturn out;\n\t\t}\n\n\t\tif (geojson.type === 'Polygon'){\n\t\t\t// single polygon, so just convert it and we're done\n\t\t\treturn PolyBool.polygon(GeoPoly(geojson.coordinates));\n\t\t}\n\t\telse if (geojson.type === 'MultiPolygon'){\n\t\t\t// multiple polygons, so union all the polygons together\n\t\t\tvar out = PolyBool.segments({ inverted: false, regions: [] });\n\t\t\tfor (var i = 0; i < geojson.coordinates.length; i++)\n\t\t\t\tout = PolyBool.selectUnion(PolyBool.combine(out, GeoPoly(geojson.coordinates[i])));\n\t\t\treturn PolyBool.polygon(out);\n\t\t}\n\t\tthrow new Error('PolyBool: Cannot convert GeoJSON object to PolyBool polygon');\n\t},\n\n\t// convert a PolyBool polygon to a GeoJSON object\n\tfromPolygon: function(PolyBool, eps, poly){\n\t\t// make sure out polygon is clean\n\t\tpoly = PolyBool.polygon(PolyBool.segments(poly));\n\n\t\t// test if r1 is inside r2\n\t\tfunction regionInsideRegion(r1, r2){\n\t\t\t// we're guaranteed no lines intersect (because the polygon is clean), but a vertex\n\t\t\t// could be on the edge -- so we just average pt[0] and pt[1] to produce a point on the\n\t\t\t// edge of the first line, which cannot be on an edge\n\t\t\treturn eps.pointInsideRegion([\n\t\t\t\t(r1[0][0] + r1[1][0]) * 0.5,\n\t\t\t\t(r1[0][1] + r1[1][1]) * 0.5\n\t\t\t], r2);\n\t\t}\n\n\t\t// calculate inside heirarchy\n\t\t//\n\t\t// _____________________ _______ roots -> A -> F\n\t\t// | A | | F | | |\n\t\t// | _______ _______ | | ___ | +-- B +-- G\n\t\t// | | B | | C | | | | | | | |\n\t\t// | | ___ | | ___ | | | | | | | +-- D\n\t\t// | | | D | | | | E | | | | | G | | |\n\t\t// | | |___| | | |___| | | | | | | +-- C\n\t\t// | |_______| |_______| | | |___| | |\n\t\t// |_____________________| |_______| +-- E\n\n\t\tfunction newNode(region){\n\t\t\treturn {\n\t\t\t\tregion: region,\n\t\t\t\tchildren: []\n\t\t\t};\n\t\t}\n\n\t\tvar roots = newNode(null);\n\n\t\tfunction addChild(root, region){\n\t\t\t// first check if we're inside any children\n\t\t\tfor (var i = 0; i < root.children.length; i++){\n\t\t\t\tvar child = root.children[i];\n\t\t\t\tif (regionInsideRegion(region, child.region)){\n\t\t\t\t\t// we are, so insert inside them instead\n\t\t\t\t\taddChild(child, region);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// not inside any children, so check to see if any children are inside us\n\t\t\tvar node = newNode(region);\n\t\t\tfor (var i = 0; i < root.children.length; i++){\n\t\t\t\tvar child = root.children[i];\n\t\t\t\tif (regionInsideRegion(child.region, region)){\n\t\t\t\t\t// oops... move the child beneath us, and remove them from root\n\t\t\t\t\tnode.children.push(child);\n\t\t\t\t\troot.children.splice(i, 1);\n\t\t\t\t\ti--;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// now we can add ourselves\n\t\t\troot.children.push(node);\n\t\t}\n\n\t\t// add all regions to the root\n\t\tfor (var i = 0; i < poly.regions.length; i++){\n\t\t\tvar region = poly.regions[i];\n\t\t\tif (region.length < 3) // regions must have at least 3 points (sanity check)\n\t\t\t\tcontinue;\n\t\t\taddChild(roots, region);\n\t\t}\n\n\t\t// with our heirarchy, we can distinguish between exterior borders, and interior holes\n\t\t// the root nodes are exterior, children are interior, children's children are exterior,\n\t\t// children's children's children are interior, etc\n\n\t\t// while we're at it, exteriors are counter-clockwise, and interiors are clockwise\n\n\t\tfunction forceWinding(region, clockwise){\n\t\t\t// first, see if we're clockwise or counter-clockwise\n\t\t\t// https://en.wikipedia.org/wiki/Shoelace_formula\n\t\t\tvar winding = 0;\n\t\t\tvar last_x = region[region.length - 1][0];\n\t\t\tvar last_y = region[region.length - 1][1];\n\t\t\tvar copy = [];\n\t\t\tfor (var i = 0; i < region.length; i++){\n\t\t\t\tvar curr_x = region[i][0];\n\t\t\t\tvar curr_y = region[i][1];\n\t\t\t\tcopy.push([curr_x, curr_y]); // create a copy while we're at it\n\t\t\t\twinding += curr_y * last_x - curr_x * last_y;\n\t\t\t\tlast_x = curr_x;\n\t\t\t\tlast_y = curr_y;\n\t\t\t}\n\t\t\t// this assumes Cartesian coordinates (Y is positive going up)\n\t\t\tvar isclockwise = winding < 0;\n\t\t\tif (isclockwise !== clockwise)\n\t\t\t\tcopy.reverse();\n\t\t\t// while we're here, the last point must be the first point...\n\t\t\tcopy.push([copy[0][0], copy[0][1]]);\n\t\t\treturn copy;\n\t\t}\n\n\t\tvar geopolys = [];\n\n\t\tfunction addExterior(node){\n\t\t\tvar poly = [forceWinding(node.region, false)];\n\t\t\tgeopolys.push(poly);\n\t\t\t// children of exteriors are interior\n\t\t\tfor (var i = 0; i < node.children.length; i++)\n\t\t\t\tpoly.push(getInterior(node.children[i]));\n\t\t}\n\n\t\tfunction getInterior(node){\n\t\t\t// children of interiors are exterior\n\t\t\tfor (var i = 0; i < node.children.length; i++)\n\t\t\t\taddExterior(node.children[i]);\n\t\t\t// return the clockwise interior\n\t\t\treturn forceWinding(node.region, true);\n\t\t}\n\n\t\t// root nodes are exterior\n\t\tfor (var i = 0; i < roots.children.length; i++)\n\t\t\taddExterior(roots.children[i]);\n\n\t\t// lastly, construct the approrpriate GeoJSON object\n\n\t\tif (geopolys.length <= 0) // empty GeoJSON Polygon\n\t\t\treturn { type: 'Polygon', coordinates: [] };\n\t\tif (geopolys.length == 1) // use a GeoJSON Polygon\n\t\t\treturn { type: 'Polygon', coordinates: geopolys[0] };\n\t\treturn { // otherwise, use a GeoJSON MultiPolygon\n\t\t\ttype: 'MultiPolygon',\n\t\t\tcoordinates: geopolys\n\t\t};\n\t}\n};\n\nmodule.exports = GeoJSON;\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SAnchorItem = void 0;\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nconst SGraphItem_1 = require(\"../SGraphItem\");\r\nconst uuid_1 = require(\"uuid\");\r\nclass SAnchorItem extends SGraphItem_1.SGraphItem {\r\n constructor(parent = null) {\r\n super(parent);\r\n this.width = 3;\r\n this.height = 3;\r\n this.isConnected = false;\r\n this.dis = 3;\r\n this.sceneDis = 3;\r\n this.id = uuid_1.v1();\r\n }\r\n onDraw(painter) {\r\n this.sceneDis = painter.toPx(this.dis);\r\n painter.pen.lineWidth = painter.toPx(1);\r\n painter.pen.color = new draw_1.SColor(\"#2196f3\");\r\n painter.brush.color = draw_1.SColor.White;\r\n if (this.isConnected) {\r\n painter.brush.color = painter.pen.color;\r\n }\r\n painter.drawRect(-this.width / 2, -this.height / 2, this.width, this.height);\r\n }\r\n}\r\nexports.SAnchorItem = SAnchorItem;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.STextOrigin = void 0;\r\nvar STextOrigin;\r\n(function (STextOrigin) {\r\n STextOrigin[STextOrigin[\"LeftTop\"] = 0] = \"LeftTop\";\r\n STextOrigin[STextOrigin[\"Center\"] = 1] = \"Center\";\r\n})(STextOrigin = exports.STextOrigin || (exports.STextOrigin = {}));\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SRadialGradient = void 0;\r\nvar _1 = require(\"./\");\r\nvar SRadialGradient = (function (_super) {\r\n __extends(SRadialGradient, _super);\r\n function SRadialGradient(x1, y1, r1, x2, y2, r2) {\r\n var _this = _super.call(this) || this;\r\n if (x1 instanceof _1.SPoint && r1 instanceof _1.SPoint) {\r\n _this.start = new _1.SPoint(x1);\r\n _this.end = new _1.SPoint(r1);\r\n _this.r1 = y1;\r\n _this.r2 = x2;\r\n }\r\n else {\r\n _this.start = new _1.SPoint(x1, y1);\r\n _this.end = new _1.SPoint(x2, y2);\r\n _this.r1 = r1;\r\n _this.r2 = r2;\r\n }\r\n return _this;\r\n }\r\n SRadialGradient.prototype.value = function () {\r\n var str = \"SRadialGradient{\";\r\n str += this.x1 + \",\" + this.y1 + \",\" + this.r1 + \";\";\r\n str += this.x2 + \",\" + this.y2 + \",\" + this.r2 + \";\";\r\n this.stopList.forEach(function (t) {\r\n str += t.pos + \",\" + t.color.value + \";\";\r\n });\r\n return str + \"}\";\r\n };\r\n return SRadialGradient;\r\n}(_1.SGradient));\r\nexports.SRadialGradient = SRadialGradient;\r\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SBrushType = void 0;\r\nvar SBrushType;\r\n(function (SBrushType) {\r\n SBrushType[SBrushType[\"Color\"] = 0] = \"Color\";\r\n SBrushType[SBrushType[\"Gradient\"] = 1] = \"Gradient\";\r\n})(SBrushType = exports.SBrushType || (exports.SBrushType = {}));\r\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toOffset = require('../internals/to-offset');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line no-undef\n new Int8Array(1).set({});\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, FORCED);\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SStringUtil = void 0;\r\nvar SStringUtil = (function () {\r\n function SStringUtil() {\r\n }\r\n SStringUtil.num2Hex = function (n, len) {\r\n if (len === void 0) { len = 2; }\r\n var hex = \"\";\r\n var numStr = [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\",\r\n \"5\",\r\n \"6\",\r\n \"7\",\r\n \"8\",\r\n \"9\",\r\n \"a\",\r\n \"b\",\r\n \"c\",\r\n \"d\",\r\n \"e\",\r\n \"f\"\r\n ];\r\n while (len > 0) {\r\n hex = numStr[n & 0x0f] + hex;\r\n n = n >> 4;\r\n len--;\r\n }\r\n return hex;\r\n };\r\n return SStringUtil;\r\n}());\r\nexports.SStringUtil = SStringUtil;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SPoint = void 0;\r\nvar SPoint = (function () {\r\n function SPoint(x, y) {\r\n if (x == undefined) {\r\n this.x = 0;\r\n this.y = 0;\r\n }\r\n else if (x instanceof SPoint) {\r\n this.x = x.x;\r\n this.y = x.y;\r\n }\r\n else {\r\n this.x = x;\r\n this.y = y;\r\n }\r\n }\r\n SPoint.prototype.setPoint = function (x, y) {\r\n if (x instanceof SPoint) {\r\n this.x = x.x;\r\n this.y = x.y;\r\n }\r\n else {\r\n this.x = x;\r\n this.y = y;\r\n }\r\n };\r\n SPoint.prototype.manhattanLength = function () {\r\n return Math.abs(this.x) + Math.abs(this.y);\r\n };\r\n SPoint.prototype.matrixTransform = function (mat) {\r\n var p = new SPoint();\r\n p.x = this.x * mat.a + this.y * mat.b + mat.e;\r\n p.y = this.x * mat.c + this.y * mat.d + mat.f;\r\n return p;\r\n };\r\n SPoint.prototype.translate = function (dx, dy) {\r\n this.x += dx;\r\n this.y += dy;\r\n };\r\n return SPoint;\r\n}());\r\nexports.SPoint = SPoint;\r\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (aTypedArrayConstructor(speciesConstructor(O, O.constructor)))(length);\n });\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SCompositeType = void 0;\r\nvar SCompositeType;\r\n(function (SCompositeType) {\r\n SCompositeType[SCompositeType[\"Copy\"] = 0] = \"Copy\";\r\n SCompositeType[SCompositeType[\"DestinationAtop\"] = 1] = \"DestinationAtop\";\r\n SCompositeType[SCompositeType[\"DestinationIn\"] = 2] = \"DestinationIn\";\r\n SCompositeType[SCompositeType[\"DestinationOut\"] = 3] = \"DestinationOut\";\r\n SCompositeType[SCompositeType[\"DestinationOver\"] = 4] = \"DestinationOver\";\r\n SCompositeType[SCompositeType[\"Lighter\"] = 5] = \"Lighter\";\r\n SCompositeType[SCompositeType[\"SourceAtop\"] = 6] = \"SourceAtop\";\r\n SCompositeType[SCompositeType[\"SourceIn\"] = 7] = \"SourceIn\";\r\n SCompositeType[SCompositeType[\"SourceOut\"] = 8] = \"SourceOut\";\r\n SCompositeType[SCompositeType[\"SourceOver\"] = 9] = \"SourceOver\";\r\n SCompositeType[SCompositeType[\"Xor\"] = 10] = \"Xor\";\r\n})(SCompositeType = exports.SCompositeType || (exports.SCompositeType = {}));\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAADkElEQVRoBe1ZS08UQRCuGgV8gHLwYoR4Aw56woN/wL9giB6EhMdlMYv+CE88YogJguzNGH6AidEfoInc9WQUHwmJT9bEsOyU1bPTM9090zPNMqySzISk6/FVdVVXd0/tAFA+5QocaAWwXev55Yc1zZbgAvPdoWwXED5pesnk4O5Wpick1GU87gJKxRCNp8qlkCSRMyZx+0rAy3H/36vbrwDgrp4dCV9yQXwA3NP1knPFSXz22PYZMN3ymXgNRKOBHHGT9/IVEyN4V1yabZpMrlia7kjIygT+dZnKCpQVOOAKaO+Boq+4A8aWME+Lr7AzgEDROwUJGonZQ4GqU21s+Dx5YQkQwal4Mvoc0yYV63QbE+fGa1tIMyHqWXrwaFiTGQyR7/kIZ8GHq0D+UKRG+BjRJiF0cQM3NL+8WuUG5KVH8BPR4xbE/jSbez2m1p4AwCU2eGMauPAe4VMbTuiaQLdDvceJL0ITeA3Ekxl/aKIPhW0h6RYBX1Rnp59J3hyFTmBMebt8kQnsIcLjbuwZywtGYASWcZaONc9DrLdvIYQtD3AphiYpPoRNDmSHV3TLP4GbdyYnvyVRSUmlcusrS28urK3Nen9olIAG2Vcf+zqWRMcSH6jK52cwlgDYEwDcnqtML6jgoukw4eeufvk9cAM4WRVf5BZS/XaMLhPo2FJbJiorYFmYjonttxDBSND9ZYTCjRm/Q6HObdwHpl9hb9eTuYmJHxkmkWqxVuunemMMkLgNQXGz9LKfzGuUr9CRyEFI2BMAOs0Gra8MplXIRy0NE/w3DvXGvaXl1evVylTm1ciYa369scH3f78wDKyVIXTvNBR6BkRAPtH6wsbGSdvsQicwQfA20D7kGRXA3/x9M7OZ4x8AXHI6wx+xLhJRUH4ObAC2v09xDPfT4qCWbkDqEJG3Ib1nH7+4GGJL2p9gC/HOUB57Ahy87eOUYh+Qiysr56mBb/nDVl+ou2xiFD7WIe5gFw3Pzcx8UfRWsvWLTN/WhWwhEQBX452cmelohaVMjqpO2LgGL+3NsZAEhFMuv/oz8pw5kcJHOsNGgbiThSWgTknAfaXlydJZTDLF2hlw3fOZHg9RmRbfoVTgEHNIuC4TSCxJhwVlBTq84InpjnwFrPd1IlVDkGi1tT4lo4/KwaVdlcbUGqu9BzRNHiP/oZeKy2/FW2auuNRJAuGR30LtV4D/lWpfl1LjvAJ/ATVDGPliqDSWAAAAAElFTkSuQmCC\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SSpaceItem = void 0;\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nconst __1 = require(\"../..\");\r\nconst graph_1 = require(\"@persagy-web/graph\");\r\nclass SSpaceItem extends graph_1.SGraphAreaGroupItem {\r\n constructor(parent, data) {\r\n super(parent, {\r\n Outline: [\r\n data.OutLine.map(t => {\r\n return t.map(it => {\r\n it.Y = -it.Y;\r\n return it;\r\n });\r\n })\r\n ],\r\n Style: {\r\n Default: {\r\n Stroke: \"#2b2b2b\",\r\n Fill: \"#f1fffd80\",\r\n LineWidth: 1,\r\n Effect: {}\r\n },\r\n Selected: {\r\n Stroke: \"#2b2b2b\",\r\n Fill: \"#1abc9c\",\r\n LineWidth: 1,\r\n Effect: {}\r\n },\r\n Disabled: {\r\n Stroke: \"#2b2b2b\",\r\n Fill: \"#afafaf\",\r\n LineWidth: 1,\r\n Effect: {}\r\n },\r\n Highlight: {\r\n Stroke: \"#2b2b2b\",\r\n Fill: \"#fbb029\",\r\n LineWidth: 1,\r\n Effect: {}\r\n }\r\n }\r\n });\r\n this._highLightFlag = false;\r\n this._showBaseName = false;\r\n this._nameSize = 10;\r\n this._nameTransform = false;\r\n this._nameColor = \"#000000\";\r\n this.data = data;\r\n this.zOrder = __1.ItemOrder.spaceOrder;\r\n this.name = data.Name || \"\";\r\n }\r\n get highLightFlag() {\r\n return this._highLightFlag;\r\n }\r\n set highLightFlag(value) {\r\n this._highLightFlag = value;\r\n this.update();\r\n }\r\n get showBaseName() {\r\n return this._showBaseName;\r\n }\r\n set showBaseName(value) {\r\n this._showBaseName = value;\r\n this.update();\r\n }\r\n get nameSize() {\r\n return this._nameSize;\r\n }\r\n set nameSize(value) {\r\n this._nameSize = value;\r\n this.update();\r\n }\r\n get nameTransform() {\r\n return this._nameTransform;\r\n }\r\n set nameTransform(value) {\r\n this._nameTransform = value;\r\n this.update();\r\n }\r\n get nameColor() {\r\n return this._nameColor;\r\n }\r\n set nameColor(value) {\r\n this._nameColor = value;\r\n this.update();\r\n }\r\n setStyle() {\r\n let status = \"Default\";\r\n if (this.style) {\r\n if (this.highLightFlag) {\r\n status = \"Highlight\";\r\n }\r\n else if (this.enabled) {\r\n if (this.selected) {\r\n status = \"Selected\";\r\n }\r\n }\r\n else {\r\n status = \"Disabled\";\r\n }\r\n }\r\n return status;\r\n }\r\n onDraw(painter) {\r\n super.onDraw(painter);\r\n if (this.showBaseName) {\r\n if (this.name && this.name != \"null\") {\r\n painter.brush.color = new draw_1.SColor(this.nameColor);\r\n if (this.nameTransform) {\r\n painter.font.size = this.nameSize;\r\n }\r\n else {\r\n painter.font.size = painter.toPx(this.nameSize);\r\n }\r\n painter.font.textAlign = draw_1.STextAlign.Center;\r\n painter.drawText(this.name, this.data.Location.Points[0].X, -this.data.Location.Points[0].Y);\r\n }\r\n }\r\n }\r\n}\r\nexports.SSpaceItem = SSpaceItem;\r\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SFloorParser = void 0;\r\nconst SParser_1 = require(\"./SParser\");\r\nclass SFloorParser extends SParser_1.SParser {\r\n constructor() {\r\n super(...arguments);\r\n this.wallList = [];\r\n this.columnList = [];\r\n this.doorList = [];\r\n this.casementList = [];\r\n this.virtualWallList = [];\r\n this.spaceList = [];\r\n }\r\n parseData(data) {\r\n if (data.Walls) {\r\n data.Walls.forEach((t) => {\r\n this.addWall(t);\r\n });\r\n }\r\n if (data.Columns) {\r\n data.Columns.forEach((t) => {\r\n this.addColumn(t);\r\n });\r\n }\r\n if (data.Windows) {\r\n data.Windows.forEach((t) => {\r\n this.addCasement(t);\r\n });\r\n }\r\n if (data.VirtualWalls) {\r\n data.VirtualWalls.forEach((t) => {\r\n this.addVirtualWall(t);\r\n });\r\n }\r\n if (data.Doors) {\r\n data.Doors.forEach((t) => {\r\n this.addDoor(t);\r\n });\r\n }\r\n if (data.Spaces) {\r\n data.Spaces.forEach((t) => {\r\n this.addSpace(t);\r\n });\r\n }\r\n }\r\n addWall(t) {\r\n let item = this.factory.createWall(t);\r\n this.wallList.push(item);\r\n }\r\n addColumn(t) {\r\n let item = this.factory.createColumn(t);\r\n this.columnList.push(item);\r\n }\r\n addCasement(t) {\r\n let item = this.factory.createWindow(t);\r\n this.casementList.push(item);\r\n }\r\n addVirtualWall(t) {\r\n let item = this.factory.createVirtualWall(t);\r\n this.virtualWallList.push(item);\r\n }\r\n addDoor(t) {\r\n let item = this.factory.createDoor(t);\r\n this.doorList.push(item);\r\n }\r\n addSpace(t) {\r\n let item = this.factory.createSpace(t);\r\n this.spaceList.push(item);\r\n }\r\n}\r\nexports.SFloorParser = SFloorParser;\r\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./property.vue?vue&type=style&index=0&id=0da4547e&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./property.vue?vue&type=style&index=0&id=0da4547e&lang=less&scoped=true&\"","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAACQUlEQVRoBe1Yv08UURD+5s4ECcTEYGVCKRQ2BGNjyf9Aw19AFDSxoaWkUZPLWfA3GNTEnkYDBcECK2gMxM5KE2ICyvjdL283+97t5uYeZzGb7N3bb+Z9M/PN7l5uAD9cAVfAFRinAlIavKFNKJ6U+qVyEGzjqazG6GsxQwafyqyvf6kYGP9GhYymAz6/ITggfszzjOtzXOEX11dtX8Esu7bRXuc/XvHyaxuqoSXeJP2meM6SY47fD4nlcxKE4rcpWh95539wbpEluKBlk8Fes60/c17Zi6Yu4k+ggDreYE32s665dUNvkfsxC9nkOdG1ZePn3FsXVQrot7CGFazLToFlVEBHlC009ZgCvO3SDiygyjPQIRC8T5p8VoQ1ecfLnlB9AbM+3XWVAnoELwP7U0K9eCPogOAb1vEpZbYF7meyx+fhlPgICgB2IaKFIKkBZVwMfo2W30KKI5J8SJ1rkL/OuIovUI3+4EYNQcKqYOc1elhwr+PRwNdoYUM5UN6Bco6xengBY5Wfwb0D3gGjAn4LGQU0b/cOmCU0EngHjAKat3sHzBIaCbwDRgHN270DZgmNBGk6IKgb86q8PU0Bypln6OiPC0PWobA0BQB3I9nMRPCh4TQFKB4EM1IsBHEDOPqxSlPvc8j+kfOc24W8WhM+YJGT7e8F25CAvYBtvYNL3GPS88xhiecyk78ZzUfwg7Ydjg336HfCf+VnnBWdRv1LDPYCGvqCiTwviRM3Cz6zI+FbLr7LLa6AK+AK/CcK/AW/f16c00E7aQAAAABJRU5ErkJggg==\"","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar bind = require('../internals/function-bind');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\n\n// `Reflect.construct` method\n// https://tc39.github.io/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SGraphPointListDelete = void 0;\r\nconst index_1 = require(\"../index\");\r\nclass SGraphPointListDelete extends index_1.SGraphCommand {\r\n constructor(scene, item, pointList, pos, index = null) {\r\n super(scene);\r\n this.item = item;\r\n this.index = index;\r\n this.pointList = pointList;\r\n this.pos = pos;\r\n this.command = \"SGraphPointListDelete\";\r\n this.desc = `删除折点=${item.id}`;\r\n }\r\n redo() {\r\n if (this.index == null) {\r\n this.pointList.pop();\r\n }\r\n else {\r\n this.pointList.splice(this.index, 1);\r\n }\r\n this.item.update();\r\n }\r\n undo() {\r\n if (this.pos == null)\r\n return;\r\n if (this.index == null) {\r\n this.pointList.push(this.pos);\r\n }\r\n else {\r\n this.pointList.splice(this.index, 0, this.pos);\r\n }\r\n this.item.update();\r\n }\r\n toString() {\r\n const pointList = `pointList=${JSON.stringify(this.pointList)}`;\r\n const pos = `pos=${JSON.stringify(this.pos)}`;\r\n const index = `index=${this.index}`;\r\n return `${index};\\n${pos};\\n${pointList}`;\r\n }\r\n}\r\nexports.SGraphPointListDelete = SGraphPointListDelete;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SObjectObserver = exports.SObject = exports.SMouseEvent = exports.SMatrix = exports.SStringUtil = exports.SStringBuilder = exports.SNetUtil = exports.SUndoStack = exports.SUndoCommand = exports.SKeyCode = exports.STouchState = exports.SMouseButton = void 0;\r\nvar SMouseButton_1 = require(\"./enums/SMouseButton\");\r\nObject.defineProperty(exports, \"SMouseButton\", { enumerable: true, get: function () { return SMouseButton_1.SMouseButton; } });\r\nvar STouchState_1 = require(\"./enums/STouchState\");\r\nObject.defineProperty(exports, \"STouchState\", { enumerable: true, get: function () { return STouchState_1.STouchState; } });\r\nvar SKeyCode_1 = require(\"./enums/SKeyCode\");\r\nObject.defineProperty(exports, \"SKeyCode\", { enumerable: true, get: function () { return SKeyCode_1.SKeyCode; } });\r\nvar SUndoCommand_1 = require(\"./undo/SUndoCommand\");\r\nObject.defineProperty(exports, \"SUndoCommand\", { enumerable: true, get: function () { return SUndoCommand_1.SUndoCommand; } });\r\nvar SUndoStack_1 = require(\"./undo/SUndoStack\");\r\nObject.defineProperty(exports, \"SUndoStack\", { enumerable: true, get: function () { return SUndoStack_1.SUndoStack; } });\r\nvar SNetUtil_1 = require(\"./utils/SNetUtil\");\r\nObject.defineProperty(exports, \"SNetUtil\", { enumerable: true, get: function () { return SNetUtil_1.SNetUtil; } });\r\nvar SStringBuilder_1 = require(\"./utils/SStringBuilder\");\r\nObject.defineProperty(exports, \"SStringBuilder\", { enumerable: true, get: function () { return SStringBuilder_1.SStringBuilder; } });\r\nvar SStringUtil_1 = require(\"./utils/SStringUtil\");\r\nObject.defineProperty(exports, \"SStringUtil\", { enumerable: true, get: function () { return SStringUtil_1.SStringUtil; } });\r\nvar SMatrix_1 = require(\"./SMatrix\");\r\nObject.defineProperty(exports, \"SMatrix\", { enumerable: true, get: function () { return SMatrix_1.SMatrix; } });\r\nvar SMouseEvent_1 = require(\"./SMouseEvent\");\r\nObject.defineProperty(exports, \"SMouseEvent\", { enumerable: true, get: function () { return SMouseEvent_1.SMouseEvent; } });\r\nvar SObject_1 = require(\"./SObject\");\r\nObject.defineProperty(exports, \"SObject\", { enumerable: true, get: function () { return SObject_1.SObject; } });\r\nvar SObjectObserver_1 = require(\"./SObjectObserver\");\r\nObject.defineProperty(exports, \"SObjectObserver\", { enumerable: true, get: function () { return SObjectObserver_1.SObjectObserver; } });\r\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isRegExp = require('../internals/is-regexp');\nvar getFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar setInternalState = require('../internals/internal-state').set;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar FORCED = DESCRIPTORS && isForced('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n})));\n\n// `RegExp` constructor\n// https://tc39.github.io/ecma262/#sec-regexp-constructor\nif (FORCED) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = this instanceof RegExpWrapper;\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var sticky;\n\n if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) {\n return pattern;\n }\n\n if (CORRECT_NEW) {\n if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source;\n } else if (pattern instanceof RegExpWrapper) {\n if (flagsAreUndefined) flags = getFlags.call(pattern);\n pattern = pattern.source;\n }\n\n if (UNSUPPORTED_Y) {\n sticky = !!flags && flags.indexOf('y') > -1;\n if (sticky) flags = flags.replace(/y/g, '');\n }\n\n var result = inheritIfRequired(\n CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags),\n thisIsRegExp ? this : RegExpPrototype,\n RegExpWrapper\n );\n\n if (UNSUPPORTED_Y && sticky) setInternalState(result, { sticky: sticky });\n\n return result;\n };\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n var keys = getOwnPropertyNames(NativeRegExp);\n var index = 0;\n while (keys.length > index) proxy(keys[index++]);\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.github.io/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SGraphScene = void 0;\r\nconst base_1 = require(\"@persagy-web/base\");\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nconst SGraphItem_1 = require(\"./SGraphItem\");\r\nconst SGraphSelectContainer_1 = require(\"./SGraphSelectContainer\");\r\nclass SGraphScene {\r\n constructor() {\r\n this.view = null;\r\n this.root = new SGraphItem_1.SGraphItem();\r\n this.grabItem = null;\r\n this.hoverItem = null;\r\n this.selectContainer = new SGraphSelectContainer_1.SGraphSelectContainer();\r\n this.root.scene = this;\r\n this.addItem(this.selectContainer);\r\n }\r\n addItem(item) {\r\n item.parent = this.root;\r\n }\r\n removeItem(item) {\r\n item.parent = null;\r\n }\r\n drawScene(painter, rect) {\r\n this.root.onPaint(painter, rect);\r\n }\r\n drawBackground(painter, rect) {\r\n }\r\n drawForeground(painter, rect) {\r\n }\r\n allItemRect(flag = true) {\r\n let rect = null;\r\n for (let item of this.root.children) {\r\n if ((flag && item.visible) || !flag) {\r\n if (rect == null) {\r\n rect = item\r\n .boundingRect()\r\n .translated(item.pos.x, item.pos.y);\r\n }\r\n else {\r\n rect.union(item.boundingRect().translated(item.pos.x, item.pos.y));\r\n }\r\n }\r\n }\r\n return rect;\r\n }\r\n selectedItemRect() {\r\n let rect = null;\r\n for (let item of this.root.children) {\r\n if (!item.selected) {\r\n continue;\r\n }\r\n if (rect == null) {\r\n rect = item.boundingRect().translated(item.pos.x, item.pos.y);\r\n }\r\n else {\r\n rect.union(item.boundingRect().translated(item.pos.x, item.pos.y));\r\n }\r\n }\r\n return rect;\r\n }\r\n selectedItems() {\r\n let itemList = Array();\r\n for (let item of this.root.children) {\r\n if (item.selected) {\r\n itemList.push(item);\r\n }\r\n }\r\n return itemList;\r\n }\r\n onDoubleClick(event) {\r\n if (this.grabItem != null) {\r\n return this.grabItem.onDoubleClick(this.toGrabItemMotionEvent(this.grabItem, event));\r\n }\r\n return this.root.onDoubleClick(event);\r\n }\r\n onMouseDown(event) {\r\n if (this.grabItem != null) {\r\n return this.grabItem.onMouseDown(this.toGrabItemMotionEvent(this.grabItem, event));\r\n }\r\n const flag = this.root.onMouseDown(event);\r\n if (!flag) {\r\n this.selectContainer.clear();\r\n }\r\n return flag;\r\n }\r\n onMouseMove(event) {\r\n if (this.grabItem != null) {\r\n return this.grabItem.onMouseMove(this.toGrabItemMotionEvent(this.grabItem, event));\r\n }\r\n return this.root.onMouseMove(event);\r\n }\r\n onMouseUp(event) {\r\n if (this.grabItem != null) {\r\n return this.grabItem.onMouseUp(this.toGrabItemMotionEvent(this.grabItem, event));\r\n }\r\n return this.root.onMouseUp(event);\r\n }\r\n onContextMenu(event) {\r\n if (this.grabItem != null) {\r\n return this.grabItem.onContextMenu(this.toGrabItemMotionEvent(this.grabItem, event));\r\n }\r\n return this.root.onContextMenu(event);\r\n }\r\n onKeyDown(event) {\r\n if (this.grabItem != null) {\r\n return this.grabItem.onKeyDown(event);\r\n }\r\n return this.root.onKeyDown(event);\r\n }\r\n onKeyUp(event) {\r\n if (this.grabItem != null) {\r\n return this.grabItem.onKeyUp(event);\r\n }\r\n return this.root.onKeyUp(event);\r\n }\r\n toGrabItemMotionEvent(item, event) {\r\n let se = Object.assign({}, event);\r\n se.matrix = new base_1.SMatrix();\r\n if (this.view) {\r\n se.matrix.translate(this.view.origin.x, this.view.origin.y);\r\n se.matrix.scale(this.view.scale, this.view.scale);\r\n se.matrix.rotate(this.view.rotate);\r\n }\r\n se.matrix.multiply(item.scene2itemMattrix());\r\n let p = new draw_1.SPoint(event.offsetX, event.offsetY).matrixTransform(se.matrix.inversed());\r\n se.x = p.x;\r\n se.y = p.y;\r\n return se;\r\n }\r\n}\r\nexports.SGraphScene = SGraphScene;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SArrowStyleType = void 0;\r\nvar SArrowStyleType;\r\n(function (SArrowStyleType) {\r\n SArrowStyleType[SArrowStyleType[\"None\"] = 0] = \"None\";\r\n SArrowStyleType[SArrowStyleType[\"Basic\"] = 1] = \"Basic\";\r\n SArrowStyleType[SArrowStyleType[\"Triangle\"] = 2] = \"Triangle\";\r\n SArrowStyleType[SArrowStyleType[\"Diamond\"] = 3] = \"Diamond\";\r\n SArrowStyleType[SArrowStyleType[\"Square\"] = 4] = \"Square\";\r\n SArrowStyleType[SArrowStyleType[\"Circle\"] = 5] = \"Circle\";\r\n})(SArrowStyleType = exports.SArrowStyleType || (exports.SArrowStyleType = {}));\r\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SGradient = void 0;\r\nvar _1 = require(\"./\");\r\nvar SGradient = (function () {\r\n function SGradient() {\r\n this.start = new _1.SPoint();\r\n this.end = new _1.SPoint();\r\n this.stopList = [];\r\n }\r\n Object.defineProperty(SGradient.prototype, \"x1\", {\r\n get: function () {\r\n return this.start.x;\r\n },\r\n set: function (value) {\r\n this.start.x = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SGradient.prototype, \"y1\", {\r\n get: function () {\r\n return this.start.y;\r\n },\r\n set: function (value) {\r\n this.start.y = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SGradient.prototype, \"x2\", {\r\n get: function () {\r\n return this.end.x;\r\n },\r\n set: function (value) {\r\n this.end.x = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SGradient.prototype, \"y2\", {\r\n get: function () {\r\n return this.end.y;\r\n },\r\n set: function (value) {\r\n this.end.y = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SGradient.prototype.addColorStop = function (pos, color) {\r\n this.stopList.push(new _1.SGradientStop(pos, color));\r\n };\r\n SGradient.prototype.setStart = function (x, y) {\r\n this.start.x = x;\r\n this.start.y = y;\r\n };\r\n SGradient.prototype.setEnd = function (x, y) {\r\n this.end.x = x;\r\n this.end.y = y;\r\n };\r\n return SGradient;\r\n}());\r\nexports.SGradient = SGradient;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ItemColor = void 0;\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nclass ItemColor {\r\n}\r\nexports.ItemColor = ItemColor;\r\nItemColor.wallColor = new draw_1.SColor(\"#2b2b2b\");\r\nItemColor.columnColor = draw_1.SColor.Black;\r\nItemColor.virtualWallColor = draw_1.SColor.Black;\r\nItemColor.spaceColor = new draw_1.SColor(\"#f1fffd80\");\r\nItemColor.doorColor = new draw_1.SColor(\"#f5b36f\");\r\nItemColor.windowColor = new draw_1.SColor(\"#fcd6ff\");\r\nItemColor.sceneMarkColor = new draw_1.SColor(\"#00000080\");\r\nItemColor.shadeColor = new draw_1.SColor(\"#00000080\");\r\nItemColor.highLightPointColor = new draw_1.SColor(\"#ff8d00\");\r\nItemColor.highLightLineColor = new draw_1.SColor(\"#409EFF\");\r\nItemColor.rectSelectOutColor = new draw_1.SColor(\"#3e78f9e8\");\r\nItemColor.rectSelectInColor = new draw_1.SColor(\"#8cf2fd73\");\r\nItemColor.spaceBorderColor = new draw_1.SColor(\"#2b2b2b\");\r\nItemColor.selectColor = new draw_1.SColor(\"#1abc9c\");\r\nItemColor.spaceHighColor = new draw_1.SColor(\"#fbb029\");\r\nItemColor.zoneUnselectColor = new draw_1.SColor(\"#cecece\");\r\nItemColor.zoneInfectedColor = new draw_1.SColor(\"#ff0000\");\r\nItemColor.zoneInfectedBorder = new draw_1.SColor(\"#e2675c\");\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SGraphAddCommand = void 0;\r\nconst SGraphCommand_1 = require(\"./SGraphCommand\");\r\nclass SGraphAddCommand extends SGraphCommand_1.SGraphCommand {\r\n constructor(scene, item) {\r\n super(scene);\r\n this.item = item;\r\n this.parent = item.parent;\r\n this.command = \"SGraphAddCommand\";\r\n this.desc = `添加对象=${item.id}`;\r\n }\r\n mergeWith(command) {\r\n return false;\r\n }\r\n redo() {\r\n this.item.parent = this.parent;\r\n this.parent.update();\r\n }\r\n undo() {\r\n this.item.parent = null;\r\n this.parent.update();\r\n }\r\n}\r\nexports.SGraphAddCommand = SGraphAddCommand;\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAFKADAAQAAAABAAAAFAAAAACRFdLHAAABw0lEQVQ4Ec1VzUrDQBDe2QSlCAoF8Wz9AUUICHpQQQPiuU9QDwYL/hxaX6AvYD1ohWo92CfoWYToQQ8KQkEqKPYuQkFBirW760zS1G3xmEOXhNnJfvuxM9/MBhgOpRQ/OD6LmQbvIz8YUiphTcVebdtu0jfXdc3yU3WMczACDNmmkI3U1kYVACR4ZLmTS6WYrYO0eWV4KDJP/vtH/Q7NtLbWngIwN7W9uQrZXGFcSfECDK4VU1dthD+x0MQN4GvkCiUv0JTwLZMfDNy7gnuXgRsTJoX5IwUjsr3dZCYAkc0e5dfx5HHFpZ8KwRiepJTeSZ7ruP3DfAb9ZeLi+kIY894nNKk0WqFalDM9bMXYEvkgwCsbLDB8YBFxOgzLjpF4jLiAauvh8ZlU+78cGLyxCPfX6rKC4o10sP05ldmZSQvILxaLA7XP74W2mi0QnUxG+H3acWr0KVsoRHldzilDmS2IZ0DyRnSw/zaRSHyFLkroIXu9ieemHJWoaPVQSBRsTcfAMCU2MOUPu+KUgbrpwGHxox+nPjep0YWvc7m7A0hNJHUoZ8Com3AgWTcOO2WUCIkr9Bz2PmHo11f4FywJF+Yv4Bck5/OHgzcQTAAAAABJRU5ErkJggg==\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./editer.vue?vue&type=style&index=0&id=ffa02112&lang=less&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./editer.vue?vue&type=style&index=0&id=ffa02112&lang=less&scoped=true&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYIAAAACCAYAAABVPdvlAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAABgqADAAQAAAABAAAAAgAAAAC4xsGjAAAAUUlEQVRIDe3UsQ0AIAgFUeL+6zifSmNhjobK4khoMDQvfCMi5ulVdL5V5R7L6KLLmydzxH+MLp+4DM7sneZBd8o9VtNFFxbgqfeiCwvwtH0vGycl6teijwfrAAAAAElFTkSuQmCC\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.STouchState = void 0;\r\nvar STouchState;\r\n(function (STouchState) {\r\n STouchState[STouchState[\"None\"] = 0] = \"None\";\r\n STouchState[STouchState[\"Move\"] = 1] = \"Move\";\r\n STouchState[STouchState[\"Zoom\"] = 2] = \"Zoom\";\r\n})(STouchState = exports.STouchState || (exports.STouchState = {}));\r\n","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SPainter = void 0;\r\nvar base_1 = require(\"@persagy-web/base\");\r\nvar _1 = require(\"./\");\r\nvar SCompositeType_1 = require(\"./enums/SCompositeType\");\r\nvar SArrowStyleType_1 = require(\"./enums/SArrowStyleType\");\r\nvar SShadow_1 = require(\"./SShadow\");\r\nvar SPainter = (function (_super) {\r\n __extends(SPainter, _super);\r\n function SPainter(engine) {\r\n var _this = _super.call(this) || this;\r\n if (engine instanceof _1.SCanvasView) {\r\n _this.engine = new _1.SCanvasPaintEngine(engine.canvas);\r\n }\r\n else {\r\n _this.engine = engine;\r\n }\r\n _this.pen = new _1.SPen();\r\n _this.brush = new _1.SBrush();\r\n _this.font = new _1.SFont();\r\n _this.composite = SCompositeType_1.SCompositeType.SourceOver;\r\n _this.shadow = new SShadow_1.SShadow();\r\n return _this;\r\n }\r\n Object.defineProperty(SPainter.prototype, \"pen\", {\r\n get: function () {\r\n return this.engine.state.pen;\r\n },\r\n set: function (value) {\r\n this.engine.state.pen = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SPainter.prototype, \"brush\", {\r\n get: function () {\r\n return this.engine.state.brush;\r\n },\r\n set: function (value) {\r\n this.engine.state.brush = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SPainter.prototype, \"font\", {\r\n get: function () {\r\n return this.engine.state.font;\r\n },\r\n set: function (value) {\r\n this.engine.state.font = value;\r\n this.engine.changeFont(value);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SPainter.prototype, \"composite\", {\r\n get: function () {\r\n return this.engine.state._composite;\r\n },\r\n set: function (value) {\r\n this.engine.state._composite = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SPainter.prototype, \"shadow\", {\r\n get: function () {\r\n return this.engine.state.shadow;\r\n },\r\n set: function (value) {\r\n this.engine.state.shadow = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SPainter.prototype, \"clip\", {\r\n get: function () {\r\n return this.engine.state.clip;\r\n },\r\n set: function (value) {\r\n this.engine.state.clip = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SPainter.prototype, \"worldTransform\", {\r\n get: function () {\r\n return this.engine.state.matrix;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SPainter.prototype.save = function () {\r\n this.engine.save();\r\n };\r\n SPainter.prototype.restore = function () {\r\n this.engine.restore();\r\n };\r\n SPainter.prototype.translate = function (x, y) {\r\n this.engine.translate(x, y);\r\n };\r\n SPainter.prototype.scale = function (x, y) {\r\n this.engine.scale(x, y);\r\n };\r\n SPainter.prototype.rotate = function (angle) {\r\n this.engine.rotate(angle);\r\n };\r\n SPainter.prototype.transform = function (m11, m12, m21, m22, dx, dy) {\r\n this.engine.transform(m11, m12, m21, m22, dx, dy);\r\n };\r\n SPainter.prototype.setTransform = function (m11, m12, m21, m22, dx, dy) {\r\n this.engine.setTransform(m11, m12, m21, m22, dx, dy);\r\n };\r\n SPainter.prototype.resetTransform = function () {\r\n this.engine.resetTransform();\r\n };\r\n SPainter.prototype.clearRect = function (x, y, w, h) {\r\n if (x instanceof _1.SRect) {\r\n this.engine.clearRect(x);\r\n }\r\n else if (x instanceof _1.SPoint && y instanceof _1.SPoint) {\r\n this.engine.clearRect(new _1.SRect(x, y));\r\n }\r\n else if (x instanceof _1.SPoint && y instanceof _1.SSize) {\r\n this.engine.clearRect(new _1.SRect(x, y));\r\n }\r\n else {\r\n this.engine.clearRect(new _1.SRect(x, y, w, h));\r\n }\r\n };\r\n SPainter.prototype.drawRect = function (x, y, w, h) {\r\n if (x instanceof _1.SRect) {\r\n if (x.x < x.right && x.y < x.bottom) {\r\n this.engine.drawRect(x);\r\n }\r\n }\r\n else if (x instanceof _1.SPoint && y instanceof _1.SPoint) {\r\n if (x.x < y.x && x.y < y.y) {\r\n this.engine.drawRect(new _1.SRect(x, y));\r\n }\r\n }\r\n else if (x instanceof _1.SPoint && y instanceof _1.SSize) {\r\n this.engine.drawRect(new _1.SRect(x, y));\r\n }\r\n else {\r\n this.engine.drawRect(new _1.SRect(x, y, w, h));\r\n }\r\n };\r\n SPainter.prototype.drawRoundRect = function (x, y, w, h, radius) {\r\n var rect;\r\n var r;\r\n if (x instanceof _1.SRect) {\r\n rect = x;\r\n r = y;\r\n }\r\n else if (x instanceof _1.SPoint && y instanceof _1.SSize) {\r\n rect = new _1.SRect(x, y);\r\n r = w;\r\n }\r\n else if (x instanceof _1.SPoint && y instanceof _1.SPoint) {\r\n rect = new _1.SRect(x, y);\r\n r = w;\r\n }\r\n else {\r\n rect = new _1.SRect(x, y, w, h);\r\n r = radius;\r\n }\r\n if (rect != null && r != null) {\r\n this.engine.drawRoundRect(rect, r);\r\n }\r\n };\r\n SPainter.prototype.drawCircle = function (cx, cy, r) {\r\n this.engine.drawCircle(cx, cy, r);\r\n };\r\n SPainter.prototype.drawEllipse = function (cx, cy, rx, ry) {\r\n this.engine.drawEllipse(cx, cy, rx, ry);\r\n };\r\n SPainter.prototype.drawLine = function (x1, y1, x2, y2) {\r\n if (x1 instanceof _1.SLine) {\r\n this.engine.drawLine(x1);\r\n }\r\n else if (x1 instanceof _1.SPoint && y1 instanceof _1.SPoint) {\r\n this.engine.drawLine(new _1.SLine(x1, y1));\r\n }\r\n else {\r\n this.engine.drawLine(new _1.SLine(x1, y1, x2, y2));\r\n }\r\n };\r\n SPainter.prototype.drawPolyline = function (points) {\r\n this.engine.drawPolyline(points);\r\n };\r\n SPainter.prototype.drawPolygon = function (points) {\r\n this.engine.drawPolygon(points);\r\n };\r\n SPainter.prototype.drawPath = function (path) {\r\n this.engine.drawPath(path);\r\n };\r\n SPainter.prototype.drawText = function (text, x, y, maxWidth) {\r\n this.engine.drawText(text, x, y, maxWidth);\r\n };\r\n SPainter.prototype.drawImage = function (img, x, y, width, height) {\r\n this.engine.drawImage(img, x, y, width, height);\r\n };\r\n SPainter.prototype.toPx = function (p) {\r\n return p / this.engine.state.matrix.a;\r\n };\r\n SPainter.prototype.textWidth = function (text) {\r\n return this.engine.textWidth(text);\r\n };\r\n SPainter.prototype.drawArrowLine = function (x1, y1, x2, y2, st) {\r\n var line, style;\r\n if (x1 instanceof _1.SLine) {\r\n line = x1;\r\n style = y1;\r\n }\r\n else if (x1 instanceof _1.SPoint && y1 instanceof _1.SPoint) {\r\n line = new _1.SLine(x1, y1);\r\n style = x2;\r\n }\r\n else {\r\n line = new _1.SLine(x1, y1, x2, y2);\r\n style = st;\r\n }\r\n this.engine.drawLine(line);\r\n if (style) {\r\n if (style.begin) {\r\n if (style.begin == SArrowStyleType_1.SArrowStyleType.Basic) {\r\n this.drawBasicArrow(line, false);\r\n }\r\n else if (style.begin == SArrowStyleType_1.SArrowStyleType.Triangle) {\r\n this.drawTriangleArrow(line, false);\r\n }\r\n else if (style.begin == SArrowStyleType_1.SArrowStyleType.Diamond) {\r\n this.drawDiamondArrow(line, false);\r\n }\r\n else if (style.begin == SArrowStyleType_1.SArrowStyleType.Square) {\r\n this.drawSquareArrow(line, false);\r\n }\r\n else if (style.begin == SArrowStyleType_1.SArrowStyleType.Circle) {\r\n this.drawCircleArrow(line, false);\r\n }\r\n }\r\n if (style.end) {\r\n if (style.end == SArrowStyleType_1.SArrowStyleType.Basic) {\r\n this.drawBasicArrow(line, true);\r\n }\r\n else if (style.end == SArrowStyleType_1.SArrowStyleType.Triangle) {\r\n this.drawTriangleArrow(line, true);\r\n }\r\n else if (style.end == SArrowStyleType_1.SArrowStyleType.Diamond) {\r\n this.drawDiamondArrow(line, true);\r\n }\r\n else if (style.end == SArrowStyleType_1.SArrowStyleType.Square) {\r\n this.drawSquareArrow(line, true);\r\n }\r\n else if (style.end == SArrowStyleType_1.SArrowStyleType.Circle) {\r\n this.drawCircleArrow(line, true);\r\n }\r\n }\r\n }\r\n };\r\n SPainter.prototype.drawBasicArrow = function (line, isEnd) {\r\n if (isEnd === void 0) { isEnd = true; }\r\n var d = this.toPx(10);\r\n var x1 = d * Math.cos(Math.PI / 4);\r\n var y1 = d * Math.sin(Math.PI / 4);\r\n var tempFo = Math.atan(line.dy / line.dx);\r\n var fo = line.dx > 0 ? tempFo : tempFo + Math.PI;\r\n this.save();\r\n if (isEnd) {\r\n this.translate(line.x2, line.y2);\r\n this.rotate((fo * 180) / Math.PI);\r\n this.engine.drawPolyline([\r\n new _1.SPoint(-x1, y1),\r\n new _1.SPoint(0, 0),\r\n new _1.SPoint(-x1, -y1)\r\n ]);\r\n }\r\n else {\r\n this.translate(line.x1, line.y1);\r\n this.rotate((fo * 180) / Math.PI);\r\n this.engine.drawPolyline([\r\n new _1.SPoint(x1, y1),\r\n new _1.SPoint(0, 0),\r\n new _1.SPoint(x1, -y1)\r\n ]);\r\n }\r\n this.restore();\r\n };\r\n SPainter.prototype.drawTriangleArrow = function (line, isEnd) {\r\n if (isEnd === void 0) { isEnd = true; }\r\n var d = this.toPx(10);\r\n var x1 = d * Math.cos(Math.PI / 12);\r\n var y1 = d * Math.sin(Math.PI / 12);\r\n var tempFo = Math.atan(line.dy / line.dx);\r\n var fo = line.dx > 0 ? tempFo : tempFo + Math.PI;\r\n this.save();\r\n if (isEnd) {\r\n this.translate(line.x2, line.y2);\r\n this.rotate((fo * 180) / Math.PI);\r\n this.engine.drawPolygon([\r\n new _1.SPoint(-x1, y1),\r\n new _1.SPoint(0, 0),\r\n new _1.SPoint(-x1, -y1)\r\n ]);\r\n }\r\n else {\r\n this.translate(line.x1, line.y1);\r\n this.rotate((fo * 180) / Math.PI);\r\n this.engine.drawPolygon([\r\n new _1.SPoint(x1, y1),\r\n new _1.SPoint(0, 0),\r\n new _1.SPoint(x1, -y1)\r\n ]);\r\n }\r\n this.restore();\r\n };\r\n SPainter.prototype.drawDiamondArrow = function (line, isEnd) {\r\n if (isEnd === void 0) { isEnd = true; }\r\n var d = this.toPx(5);\r\n var x1 = d * Math.cos(Math.PI / 4);\r\n var y1 = d * Math.sin(Math.PI / 4);\r\n var tempFo = Math.atan(line.dy / line.dx);\r\n var fo = line.dx > 0 ? tempFo : tempFo + Math.PI;\r\n this.save();\r\n if (isEnd) {\r\n this.translate(line.x2, line.y2);\r\n this.rotate((fo * 180) / Math.PI);\r\n this.engine.drawPolygon([\r\n new _1.SPoint(-x1, y1),\r\n new _1.SPoint(0, 0),\r\n new _1.SPoint(-x1, -y1),\r\n new _1.SPoint(-Math.sqrt(2) * d, 0)\r\n ]);\r\n }\r\n else {\r\n this.translate(line.x1, line.y1);\r\n this.rotate((fo * 180) / Math.PI);\r\n this.engine.drawPolygon([\r\n new _1.SPoint(x1, y1),\r\n new _1.SPoint(0, 0),\r\n new _1.SPoint(x1, -y1),\r\n new _1.SPoint(Math.sqrt(2) * d, 0)\r\n ]);\r\n }\r\n this.restore();\r\n };\r\n SPainter.prototype.drawSquareArrow = function (line, isEnd) {\r\n if (isEnd === void 0) { isEnd = true; }\r\n var d = this.toPx(5);\r\n var tempFo = Math.atan(line.dy / line.dx);\r\n var fo = line.dx > 0 ? tempFo : tempFo + Math.PI;\r\n this.save();\r\n if (isEnd) {\r\n this.translate(line.x2, line.y2);\r\n this.rotate((fo * 180) / Math.PI);\r\n this.engine.drawPolygon([\r\n new _1.SPoint(-d, d / 2),\r\n new _1.SPoint(0, d / 2),\r\n new _1.SPoint(0, -d / 2),\r\n new _1.SPoint(-d, -d / 2)\r\n ]);\r\n }\r\n else {\r\n this.translate(line.x1, line.y1);\r\n this.rotate((fo * 180) / Math.PI);\r\n this.engine.drawPolygon([\r\n new _1.SPoint(0, d / 2),\r\n new _1.SPoint(d, d / 2),\r\n new _1.SPoint(d, -d / 2),\r\n new _1.SPoint(0, -d / 2)\r\n ]);\r\n }\r\n this.restore();\r\n };\r\n SPainter.prototype.drawCircleArrow = function (line, isEnd) {\r\n if (isEnd === void 0) { isEnd = true; }\r\n var d = this.toPx(5);\r\n var tempFo = Math.atan(line.dy / line.dx);\r\n var fo = line.dx > 0 ? tempFo : tempFo + Math.PI;\r\n this.save();\r\n if (isEnd) {\r\n this.translate(line.x2, line.y2);\r\n this.rotate((fo * 180) / Math.PI);\r\n this.engine.drawCircle(-d / 2, 0, d / 2);\r\n }\r\n else {\r\n this.translate(line.x1, line.y1);\r\n this.rotate((fo * 180) / Math.PI);\r\n this.engine.drawCircle(d / 2, 0, d / 2);\r\n }\r\n this.restore();\r\n };\r\n return SPainter;\r\n}(base_1.SObject));\r\nexports.SPainter = SPainter;\r\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SLayerItem = void 0;\r\nconst graph_1 = require(\"@persagy-web/graph\");\r\nclass SLayerItem extends graph_1.SGraphItem {\r\n}\r\nexports.SLayerItem = SLayerItem;\r\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar has = require('../internals/has');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\n// `Reflect.get` method\n// https://tc39.github.io/ecma262/#sec-reflect.get\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var descriptor, prototype;\n if (anObject(target) === receiver) return target[propertyKey];\n if (descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey)) return has(descriptor, 'value')\n ? descriptor.value\n : descriptor.get === undefined\n ? undefined\n : descriptor.get.call(receiver);\n if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver);\n}\n\n$({ target: 'Reflect', stat: true }, {\n get: get\n});\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SGraphShape = void 0;\r\nconst SGraphItem_1 = require(\"../SGraphItem\");\r\nconst lib_1 = require(\"@persagy-web/draw/lib\");\r\nclass SGraphShape extends SGraphItem_1.SGraphItem {\r\n constructor(parent, style) {\r\n super(parent);\r\n this.style = style;\r\n }\r\n setStyle() {\r\n let status = \"Default\";\r\n if (this.style) {\r\n if (this.enabled) {\r\n if (this.selected) {\r\n status = \"Selected\";\r\n }\r\n }\r\n else {\r\n status = \"Disabled\";\r\n }\r\n }\r\n return status;\r\n }\r\n parseFill(str) {\r\n const index1 = str.indexOf(\"{\");\r\n const index2 = str.indexOf(\"}\");\r\n const temp = str.substring(index1 + 1, index2 - 1);\r\n const dataArr = temp.split(\";\");\r\n if (str.indexOf(\"SLinearGradient\") > -1) {\r\n try {\r\n const grad = new lib_1.SLinearGradient(...dataArr[0].split(\",\"), ...dataArr[1].split(\",\"));\r\n for (let i = 2; i < dataArr.length; i++) {\r\n const cur = dataArr[i].split(\",\");\r\n grad.addColorStop(Number(cur[0]), new lib_1.SColor(cur[1]));\r\n }\r\n return grad;\r\n }\r\n catch (e) {\r\n console.log(\"渐变颜色格式有误\", e, str);\r\n }\r\n }\r\n else if (str.indexOf(\"SRadialGradient\") > -1) {\r\n try {\r\n const grad = new lib_1.SRadialGradient(...dataArr[0].split(\",\"), ...dataArr[1].split(\",\"));\r\n for (let i = 2; i < dataArr.length; i++) {\r\n const cur = dataArr[i].split(\",\");\r\n grad.addColorStop(Number(cur[0]), new lib_1.SColor(cur[1]));\r\n }\r\n return grad;\r\n }\r\n catch (e) {\r\n console.log(\"渐变颜色格式有误\", e, str);\r\n }\r\n }\r\n return undefined;\r\n }\r\n onDraw(painter) {\r\n const status = this.setStyle();\r\n if (this.style && this.style[status]) {\r\n const grad = this.parseFill(this.style[status].Fill);\r\n if (grad) {\r\n painter.brush.gradient = grad;\r\n }\r\n else {\r\n painter.brush.color = new lib_1.SColor(this.style[status].Fill);\r\n }\r\n painter.pen.color = new lib_1.SColor(this.style[status].Stroke);\r\n painter.pen.lineWidth = this.style[status].LineWidth;\r\n }\r\n else {\r\n painter.brush.color = lib_1.SColor.White;\r\n }\r\n }\r\n}\r\nexports.SGraphShape = SGraphShape;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SGraphSvgItem = void 0;\r\nconst SGraphShape_1 = require(\"./SGraphShape\");\r\nconst lib_1 = require(\"@persagy-web/draw/lib\");\r\nclass SGraphSvgItem extends SGraphShape_1.SGraphShape {\r\n constructor(parent, data) {\r\n super(parent, data.Style);\r\n this.isLoadOver = false;\r\n this._url = \"\";\r\n this._width = 0;\r\n this._height = 0;\r\n this.imgWidth = 0;\r\n this.imgHeight = 0;\r\n if (data.Url) {\r\n this.img = new Image();\r\n this.url = data.Url;\r\n this.img.onload = (e) => {\r\n this.isLoadOver = true;\r\n this.update();\r\n };\r\n this.img.onerror = (e) => {\r\n this.isLoadOver = false;\r\n this.update();\r\n console.log(\"加载图片错误!\", e);\r\n };\r\n }\r\n this.width = data.Width;\r\n this.height = data.Height;\r\n this.moveTo(data.X, data.Y);\r\n }\r\n get url() {\r\n return this._url;\r\n }\r\n set url(v) {\r\n if (this._url == v) {\r\n return;\r\n }\r\n this._url = v;\r\n if (!this.img) {\r\n this.img = new Image();\r\n }\r\n this.img.src = v;\r\n }\r\n get width() {\r\n return this._width;\r\n }\r\n set width(v) {\r\n if (v == this._width) {\r\n return;\r\n }\r\n this._width = v;\r\n this.update();\r\n }\r\n get height() {\r\n return this._height;\r\n }\r\n set height(v) {\r\n if (v == this._height) {\r\n return;\r\n }\r\n this._height = v;\r\n this.update();\r\n }\r\n boundingRect() {\r\n return new lib_1.SRect(0, 0, this.width, this.height);\r\n }\r\n onDraw(painter) {\r\n if (this.isLoadOver) {\r\n painter.drawImage(this.img, 0, 0, this.width, this.height);\r\n }\r\n }\r\n}\r\nexports.SGraphSvgItem = SGraphSvgItem;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SAspectRatioMode = void 0;\r\nvar SAspectRatioMode;\r\n(function (SAspectRatioMode) {\r\n SAspectRatioMode[SAspectRatioMode[\"IgnoreAspectRatio\"] = 0] = \"IgnoreAspectRatio\";\r\n SAspectRatioMode[SAspectRatioMode[\"KeepAspectRatio\"] = 1] = \"KeepAspectRatio\";\r\n SAspectRatioMode[SAspectRatioMode[\"KeepAspectRatioByExpanding\"] = 2] = \"KeepAspectRatioByExpanding\";\r\n})(SAspectRatioMode = exports.SAspectRatioMode || (exports.SAspectRatioMode = {}));\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAACj0lEQVRoBe1Zv08UQRT+3t6qIMQfkcqEUi1sDMTG0v/BhlCd5KKyYg4KY0dpIyTmKNaazoAk9jQQLYwWWmFjIHZWGNEEznm+ueNk2Zvd2TDsXTPT7Ox73/v1vZm95B3gl2fAM+AZ6CcDZAv+ohE3wJi24crSB0RxPao9yPIfZCmO5DR0tO/9jplz44e2lKRFw9wNahLhA4O2RL9DxHtQ9AdEqg3lUcX8NG1GoEXBf9Ny8Rkg4EGwJohHRXSdGbfleSwnwQ1rfNY6BjaDOOGA9kGYP3Pp/NLM5ORPMx5YbMRjousugCqv69H991l2L5eXLzR39x5BYV4SP6dxUnQifrelvYA2Qx3LibmottJ5Oe3nISnPFxqvtsC8eug/twDrHWD878Da3OPykk+SMRvV3hBRmyjKvwPWAuRcty4RVYKFZJCy9xVCKx5z/hGyFyCXSM7h9/rDqc2yk076fzJdeyfkbeuPSFKe3lsLIGYpAOvSUrlXvV0EXofrEWLCZwT0trepd6K14n6R3wLh0LwyFWZ4Man+jCrGxzQ6oPBO3mc0jS/ybj1CRZz0E+ML6Cf7OrbvgO+AIwP+CDkS6GzuO+BMoaMD3wFHAp3NfQecKXR04DvgSKCzue+AM4WODkrpgAwAKo55FTYvpQBwMGjMgFVrXGjUnVBYSgEK6qopHwW+YpK7yEopQIYg46akZKJ9yyR3kZ36WEUGszdlnroh8/PL6cT0hC8cCsdmqtUfad1J350LiON45PdBeA3094bM9+/K+O6eTJYHMhMi7MrQfEUuuowO8fWsop0omtrOxFsU9vG6xcGvA3oGbs7qfywKLcZF+UOjKtO2qsbvEz7Jw3jkCvnzIM+AZ8Az0FcG/gEyCJdTYEyTpQAAAABJRU5ErkJggg==\"","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = [].join;\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.join\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('join', function join(separator) {\n return $join.apply(aTypedArray(this), arguments);\n});\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line max-statements\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n for (var k = base; /* no condition */; k += base) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n }\n return encoded.join('.');\n};\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = ArrayIterators.values;\nvar arrayKeys = ArrayIterators.keys;\nvar arrayEntries = ArrayIterators.entries;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];\n\nvar CORRECT_ITER_NAME = !!nativeTypedArrayIterator\n && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined);\n\nvar typedArrayValues = function values() {\n return arrayValues.call(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME);\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME);\n","'use strict';\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefineAll = require('../internals/redefine-all');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar $DataView = global[DATA_VIEW];\nvar $DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar RangeError = global.RangeError;\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = bytes.slice(start, start + count);\n return isLittleEndian ? pack : pack.reverse();\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: arrayFill.call(new Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new NativeArrayBuffer(); // eslint-disable-line no-new\n new NativeArrayBuffer(1.5); // eslint-disable-line no-new\n new NativeArrayBuffer(NaN); // eslint-disable-line no-new\n return NativeArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new NativeArrayBuffer(toIndex(length));\n };\n var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf($DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var nativeSetInt8 = $DataViewPrototype.setInt8;\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.STextDirection = void 0;\r\nvar STextDirection;\r\n(function (STextDirection) {\r\n STextDirection[STextDirection[\"Inherit\"] = 0] = \"Inherit\";\r\n STextDirection[STextDirection[\"LTR\"] = 1] = \"LTR\";\r\n STextDirection[STextDirection[\"RTL\"] = 2] = \"RTL\";\r\n})(STextDirection = exports.STextDirection || (exports.STextDirection = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SGraphPropertyCommand = void 0;\r\nconst SGraphCommand_1 = require(\"./SGraphCommand\");\r\nclass SGraphPropertyCommand extends SGraphCommand_1.SGraphCommand {\r\n constructor(scene, item, propName, oldProp, newProp) {\r\n super(scene);\r\n this.item = item;\r\n this.propName = propName;\r\n this.oldProp = oldProp;\r\n this.newProp = newProp;\r\n this.command = \"SGraphPropertyCommand\";\r\n this.command = `更新属性=${item.id}`;\r\n }\r\n redo() {\r\n this.item[this.propName] = this.newProp;\r\n this.item.update();\r\n }\r\n undo() {\r\n this.item[this.propName] = this.oldProp;\r\n this.item.update();\r\n }\r\n toString() {\r\n const propName = `propName=${this.propName}`;\r\n const oldProp = `oldProp=${JSON.stringify(this.oldProp)}`;\r\n const newProp = `newProp=${JSON.stringify(this.newProp)}`;\r\n return `${propName};\\n${oldProp};\\n${newProp}`;\r\n }\r\n}\r\nexports.SGraphPropertyCommand = SGraphPropertyCommand;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SKeyCode = void 0;\r\nvar SKeyCode;\r\n(function (SKeyCode) {\r\n SKeyCode[SKeyCode[\"Enter\"] = 13] = \"Enter\";\r\n SKeyCode[SKeyCode[\"Esc\"] = 27] = \"Esc\";\r\n SKeyCode[SKeyCode[\"Delete\"] = 46] = \"Delete\";\r\n SKeyCode[SKeyCode[\"Z\"] = 90] = \"Z\";\r\n})(SKeyCode = exports.SKeyCode || (exports.SKeyCode = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SGraphRectItem = void 0;\r\nconst SGraphShape_1 = require(\"./SGraphShape\");\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nclass SGraphRectItem extends SGraphShape_1.SGraphShape {\r\n constructor(parent, data) {\r\n super(parent, data.Style);\r\n this._width = 0;\r\n this._height = 0;\r\n this._radius = 0;\r\n this.width = data.Width;\r\n this.height = data.Height;\r\n this.moveTo(data.X, data.Y);\r\n if (data.Radius && !isNaN(data.Radius)) {\r\n this.radius = Number(data.Radius);\r\n }\r\n }\r\n get width() {\r\n return this._width;\r\n }\r\n set width(v) {\r\n if (v == this._width) {\r\n return;\r\n }\r\n this._width = v;\r\n this.update();\r\n }\r\n get height() {\r\n return this._height;\r\n }\r\n set height(v) {\r\n if (v == this._height) {\r\n return;\r\n }\r\n this._height = v;\r\n this.update();\r\n }\r\n get radius() {\r\n return this._radius;\r\n }\r\n set radius(v) {\r\n if (v == this._radius) {\r\n return;\r\n }\r\n this._radius = v;\r\n this.update();\r\n }\r\n boundingRect() {\r\n return new draw_1.SRect(0, 0, this.width, this.height);\r\n }\r\n onDraw(painter) {\r\n super.onDraw(painter);\r\n if (this.radius != 0) {\r\n painter.drawRoundRect(0, 0, this.width, this.height, this.radius);\r\n }\r\n else {\r\n painter.drawRect(0, 0, this.width, this.height);\r\n }\r\n }\r\n}\r\nexports.SGraphRectItem = SGraphRectItem;\r\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SCompositeType = exports.SArrowStyleType = exports.SRadialGradient = exports.SPen = exports.SPath = exports.SPainter = exports.SLinearGradient = exports.SGradientStop = exports.SGradient = exports.SFont = exports.SColor = exports.SCanvasView = exports.SBrush = exports.SPolygonUtil = exports.SSize = exports.SRect = exports.SPoint = exports.SLine = exports.STextDirection = exports.STextBaseLine = exports.STextAlign = exports.SPaintEngineType = exports.SLineJoinStyle = exports.SLineCapStyle = exports.SBrushType = exports.SAspectRatioMode = exports.SSvgPaintEngine = exports.SPaintState = exports.SPaintEngine = exports.SCanvasPaintEngine = void 0;\r\nvar SCanvasPaintEngine_1 = require(\"./engines/SCanvasPaintEngine\");\r\nObject.defineProperty(exports, \"SCanvasPaintEngine\", { enumerable: true, get: function () { return SCanvasPaintEngine_1.SCanvasPaintEngine; } });\r\nvar SPaintEngine_1 = require(\"./engines/SPaintEngine\");\r\nObject.defineProperty(exports, \"SPaintEngine\", { enumerable: true, get: function () { return SPaintEngine_1.SPaintEngine; } });\r\nvar SPaintState_1 = require(\"./engines/SPaintState\");\r\nObject.defineProperty(exports, \"SPaintState\", { enumerable: true, get: function () { return SPaintState_1.SPaintState; } });\r\nvar SSvgPaintEngine_1 = require(\"./engines/SSvgPaintEngine\");\r\nObject.defineProperty(exports, \"SSvgPaintEngine\", { enumerable: true, get: function () { return SSvgPaintEngine_1.SSvgPaintEngine; } });\r\nvar SAspectRatioMode_1 = require(\"./enums/SAspectRatioMode\");\r\nObject.defineProperty(exports, \"SAspectRatioMode\", { enumerable: true, get: function () { return SAspectRatioMode_1.SAspectRatioMode; } });\r\nvar SBrushType_1 = require(\"./enums/SBrushType\");\r\nObject.defineProperty(exports, \"SBrushType\", { enumerable: true, get: function () { return SBrushType_1.SBrushType; } });\r\nvar SLineCapStyle_1 = require(\"./enums/SLineCapStyle\");\r\nObject.defineProperty(exports, \"SLineCapStyle\", { enumerable: true, get: function () { return SLineCapStyle_1.SLineCapStyle; } });\r\nvar SLineJoinStyle_1 = require(\"./enums/SLineJoinStyle\");\r\nObject.defineProperty(exports, \"SLineJoinStyle\", { enumerable: true, get: function () { return SLineJoinStyle_1.SLineJoinStyle; } });\r\nvar SPaintEngineType_1 = require(\"./enums/SPaintEngineType\");\r\nObject.defineProperty(exports, \"SPaintEngineType\", { enumerable: true, get: function () { return SPaintEngineType_1.SPaintEngineType; } });\r\nvar STextAlign_1 = require(\"./enums/STextAlign\");\r\nObject.defineProperty(exports, \"STextAlign\", { enumerable: true, get: function () { return STextAlign_1.STextAlign; } });\r\nvar STextBaseLine_1 = require(\"./enums/STextBaseLine\");\r\nObject.defineProperty(exports, \"STextBaseLine\", { enumerable: true, get: function () { return STextBaseLine_1.STextBaseLine; } });\r\nvar STextDirection_1 = require(\"./enums/STextDirection\");\r\nObject.defineProperty(exports, \"STextDirection\", { enumerable: true, get: function () { return STextDirection_1.STextDirection; } });\r\nvar SLine_1 = require(\"./types/SLine\");\r\nObject.defineProperty(exports, \"SLine\", { enumerable: true, get: function () { return SLine_1.SLine; } });\r\nvar SPoint_1 = require(\"./types/SPoint\");\r\nObject.defineProperty(exports, \"SPoint\", { enumerable: true, get: function () { return SPoint_1.SPoint; } });\r\nvar SRect_1 = require(\"./types/SRect\");\r\nObject.defineProperty(exports, \"SRect\", { enumerable: true, get: function () { return SRect_1.SRect; } });\r\nvar SSize_1 = require(\"./types/SSize\");\r\nObject.defineProperty(exports, \"SSize\", { enumerable: true, get: function () { return SSize_1.SSize; } });\r\nvar SPolygonUtil_1 = require(\"./utils/SPolygonUtil\");\r\nObject.defineProperty(exports, \"SPolygonUtil\", { enumerable: true, get: function () { return SPolygonUtil_1.SPolygonUtil; } });\r\nvar SBrush_1 = require(\"./SBrush\");\r\nObject.defineProperty(exports, \"SBrush\", { enumerable: true, get: function () { return SBrush_1.SBrush; } });\r\nvar SCanvasView_1 = require(\"./SCanvasView\");\r\nObject.defineProperty(exports, \"SCanvasView\", { enumerable: true, get: function () { return SCanvasView_1.SCanvasView; } });\r\nvar SColor_1 = require(\"./SColor\");\r\nObject.defineProperty(exports, \"SColor\", { enumerable: true, get: function () { return SColor_1.SColor; } });\r\nvar SFont_1 = require(\"./SFont\");\r\nObject.defineProperty(exports, \"SFont\", { enumerable: true, get: function () { return SFont_1.SFont; } });\r\nvar SGradient_1 = require(\"./SGradient\");\r\nObject.defineProperty(exports, \"SGradient\", { enumerable: true, get: function () { return SGradient_1.SGradient; } });\r\nvar SGradientStop_1 = require(\"./SGradientStop\");\r\nObject.defineProperty(exports, \"SGradientStop\", { enumerable: true, get: function () { return SGradientStop_1.SGradientStop; } });\r\nvar SLinearGradient_1 = require(\"./SLinearGradient\");\r\nObject.defineProperty(exports, \"SLinearGradient\", { enumerable: true, get: function () { return SLinearGradient_1.SLinearGradient; } });\r\nvar SPainter_1 = require(\"./SPainter\");\r\nObject.defineProperty(exports, \"SPainter\", { enumerable: true, get: function () { return SPainter_1.SPainter; } });\r\nvar SPath_1 = require(\"./SPath\");\r\nObject.defineProperty(exports, \"SPath\", { enumerable: true, get: function () { return SPath_1.SPath; } });\r\nvar SPen_1 = require(\"./SPen\");\r\nObject.defineProperty(exports, \"SPen\", { enumerable: true, get: function () { return SPen_1.SPen; } });\r\nvar SRadialGradient_1 = require(\"./SRadialGradient\");\r\nObject.defineProperty(exports, \"SRadialGradient\", { enumerable: true, get: function () { return SRadialGradient_1.SRadialGradient; } });\r\nvar SArrowStyleType_1 = require(\"./enums/SArrowStyleType\");\r\nObject.defineProperty(exports, \"SArrowStyleType\", { enumerable: true, get: function () { return SArrowStyleType_1.SArrowStyleType; } });\r\nvar SCompositeType_1 = require(\"./enums/SCompositeType\");\r\nObject.defineProperty(exports, \"SCompositeType\", { enumerable: true, get: function () { return SCompositeType_1.SCompositeType; } });\r\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SParser = void 0;\r\nconst __1 = require(\"..\");\r\nclass SParser {\r\n constructor(factory = null) {\r\n this.factory = new __1.SItemFactory();\r\n if (factory) {\r\n this.factory = factory;\r\n }\r\n }\r\n}\r\nexports.SParser = SParser;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SGraphAreaGroupItem = void 0;\r\nconst lib_1 = require(\"@persagy-web/draw/lib\");\r\nconst SGraphShape_1 = require(\"./SGraphShape\");\r\nclass SGraphAreaGroupItem extends SGraphShape_1.SGraphShape {\r\n constructor(parent, data) {\r\n super(parent, data.Style);\r\n this.minX = Number.MAX_SAFE_INTEGER;\r\n this.maxX = Number.MIN_SAFE_INTEGER;\r\n this.minY = Number.MAX_SAFE_INTEGER;\r\n this.maxY = Number.MIN_SAFE_INTEGER;\r\n this.pointList = [];\r\n this.pathList = [];\r\n if (data.Outline.length && data.Outline[0] && data.Outline[0].length) {\r\n let tempArr = data.Outline;\r\n this.minX = tempArr[0][0][0].X;\r\n this.maxX = this.minX;\r\n this.minY = tempArr[0][0][0].Y;\r\n this.maxY = this.minY;\r\n this.pointList = tempArr.map((t) => {\r\n let sPath = new lib_1.SPath();\r\n let tempArr = t.map((it) => {\r\n let array = it.map((item) => {\r\n let x = item.X, y = item.Y;\r\n if (x < this.minX) {\r\n this.minX = x;\r\n }\r\n if (y < this.minY) {\r\n this.minY = y;\r\n }\r\n if (x > this.maxX) {\r\n this.maxX = x;\r\n }\r\n if (y > this.maxY) {\r\n this.maxY = y;\r\n }\r\n return new lib_1.SPoint(x, y);\r\n });\r\n sPath.polygon(array);\r\n return array;\r\n });\r\n this.pathList.push(sPath);\r\n return tempArr;\r\n });\r\n }\r\n }\r\n boundingRect() {\r\n return new lib_1.SRect(this.minX, this.minY, this.maxX - this.minX, this.maxY - this.minY);\r\n }\r\n contains(x, y) {\r\n for (let j = 0; j < this.pointList.length; j++) {\r\n let arr = this.pointList[j];\r\n if (arr.length < 1 || !lib_1.SPolygonUtil.pointIn(x, y, arr[0])) {\r\n continue;\r\n }\r\n if (arr.length == 1) {\r\n return true;\r\n }\r\n let flag = false;\r\n for (let i = 1; i < arr.length; i++) {\r\n if (lib_1.SPolygonUtil.pointIn(x, y, arr[i])) {\r\n flag = true;\r\n break;\r\n }\r\n }\r\n if (flag) {\r\n continue;\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n onDraw(painter) {\r\n super.onDraw(painter);\r\n this.pathList.forEach((t) => {\r\n painter.drawPath(t);\r\n });\r\n }\r\n}\r\nexports.SGraphAreaGroupItem = SGraphAreaGroupItem;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SNetUtil = void 0;\r\nvar SNetUtil = (function () {\r\n function SNetUtil() {\r\n }\r\n SNetUtil.downLoad = function (name, url) {\r\n var oA = document.createElement(\"a\");\r\n oA.download = name;\r\n oA.href = url;\r\n document.body.appendChild(oA);\r\n oA.click();\r\n oA.remove();\r\n };\r\n return SNetUtil;\r\n}());\r\nexports.SNetUtil = SNetUtil;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SBoardItem = exports.SRectSelectItem = exports.SPolygonItem = exports.SItemStatus = exports.SRelationState = exports.SIconTextItem = exports.SZoneParser = exports.SFloorParser = exports.SParser = exports.SItemFactory = exports.Transparency = exports.ItemOrder = exports.ItemColor = exports.STooltipItem = exports.SPolylineItem = exports.SLineItem = exports.SLayerItem = void 0;\r\nconst SLayerItem_1 = require(\"./items/SLayerItem\");\r\nObject.defineProperty(exports, \"SLayerItem\", { enumerable: true, get: function () { return SLayerItem_1.SLayerItem; } });\r\nconst STooltipItem_1 = require(\"./items/STooltipItem\");\r\nObject.defineProperty(exports, \"STooltipItem\", { enumerable: true, get: function () { return STooltipItem_1.STooltipItem; } });\r\nconst ItemColor_1 = require(\"./config/ItemColor\");\r\nObject.defineProperty(exports, \"ItemColor\", { enumerable: true, get: function () { return ItemColor_1.ItemColor; } });\r\nconst Transparency_1 = require(\"./config/Transparency\");\r\nObject.defineProperty(exports, \"Transparency\", { enumerable: true, get: function () { return Transparency_1.Transparency; } });\r\nconst ItemOrder_1 = require(\"./config/ItemOrder\");\r\nObject.defineProperty(exports, \"ItemOrder\", { enumerable: true, get: function () { return ItemOrder_1.ItemOrder; } });\r\nconst SItemFactory_1 = require(\"./factories/SItemFactory\");\r\nObject.defineProperty(exports, \"SItemFactory\", { enumerable: true, get: function () { return SItemFactory_1.SItemFactory; } });\r\nconst SZoneParser_1 = require(\"./parser/SZoneParser\");\r\nObject.defineProperty(exports, \"SZoneParser\", { enumerable: true, get: function () { return SZoneParser_1.SZoneParser; } });\r\nconst SFloorParser_1 = require(\"./parser/SFloorParser\");\r\nObject.defineProperty(exports, \"SFloorParser\", { enumerable: true, get: function () { return SFloorParser_1.SFloorParser; } });\r\nconst SParser_1 = require(\"./parser/SParser\");\r\nObject.defineProperty(exports, \"SParser\", { enumerable: true, get: function () { return SParser_1.SParser; } });\r\nconst SIconTextItem_1 = require(\"./items/SIconTextItem\");\r\nObject.defineProperty(exports, \"SIconTextItem\", { enumerable: true, get: function () { return SIconTextItem_1.SIconTextItem; } });\r\nconst SPolylineItem_1 = require(\"./items/SPolylineItem\");\r\nObject.defineProperty(exports, \"SPolylineItem\", { enumerable: true, get: function () { return SPolylineItem_1.SPolylineItem; } });\r\nconst SLineItem_1 = require(\"./items/SLineItem\");\r\nObject.defineProperty(exports, \"SLineItem\", { enumerable: true, get: function () { return SLineItem_1.SLineItem; } });\r\nconst SRelationState_1 = require(\"./enums/SRelationState\");\r\nObject.defineProperty(exports, \"SRelationState\", { enumerable: true, get: function () { return SRelationState_1.SRelationState; } });\r\nconst SItemStatus_1 = require(\"./enums/SItemStatus\");\r\nObject.defineProperty(exports, \"SItemStatus\", { enumerable: true, get: function () { return SItemStatus_1.SItemStatus; } });\r\nconst SPolygonItem_1 = require(\"./items/SPolygonItem\");\r\nObject.defineProperty(exports, \"SPolygonItem\", { enumerable: true, get: function () { return SPolygonItem_1.SPolygonItem; } });\r\nconst SRectSelectItem_1 = require(\"./items/SRectSelectItem\");\r\nObject.defineProperty(exports, \"SRectSelectItem\", { enumerable: true, get: function () { return SRectSelectItem_1.SRectSelectItem; } });\r\nconst SBoardItem_1 = require(\"./items/floor/SBoardItem\");\r\nObject.defineProperty(exports, \"SBoardItem\", { enumerable: true, get: function () { return SBoardItem_1.SBoardItem; } });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SGraphPointListUpdate = void 0;\r\nconst index_1 = require(\"../index\");\r\nclass SGraphPointListUpdate extends index_1.SGraphCommand {\r\n constructor(scene, item, pointList, old, pos, index) {\r\n super(scene);\r\n this.item = item;\r\n this.old = old;\r\n this.pos = pos;\r\n this.index = index;\r\n this.pointList = pointList;\r\n this.command = \"SGraphPointListUpdate\";\r\n this.desc = `更新折点=${item.id}`;\r\n }\r\n redo() {\r\n this.pointList[this.index].x = this.pos.x;\r\n this.pointList[this.index].y = this.pos.y;\r\n this.item.update();\r\n }\r\n undo() {\r\n this.pointList[this.index].x = this.old.x;\r\n this.pointList[this.index].y = this.old.y;\r\n this.item.update();\r\n }\r\n toString() {\r\n const pointList = `pointList=${JSON.stringify(this.pointList)}`;\r\n const old = `old=${JSON.stringify(this.old)}`;\r\n const pos = `pos=${JSON.stringify(this.pos)}`;\r\n const index = `index=${this.index}`;\r\n return `${index};\\n${old};\\n${pos};\\n${pointList}`;\r\n }\r\n}\r\nexports.SGraphPointListUpdate = SGraphPointListUpdate;\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAAEYElEQVRoBe1Y3YtVVRT/rTuOiREmiuNDDz0F9qFJJkX0IL5EL31QFkSRNjmO49yysoggzRr6jjx3nJqifKmgCPoDIqiHnsqHSCRFRUqZQAhqzGnGm6vfvnPPPnufzrlz77nn5BBnw+Ws9dt7r6+99t5rX6BsZQTKCJQR+H9HYFTvwvvaV5STlaIEN+SO6xJcwBjO4e2i9BTrwDT2QrGSxt+PfXpbEU5IEUIbMgNdw+9BOtDT1HESi3ANBuRcnjqLWQFVE5j9jvHG5isxjT2GyLMVswI13czc/zDB0DoE61CVHxL6MkH5r8ABvZyRfyXFmgXE34NqbnpzE2QN/gMjdGCF5QXnLW0IxXoEGPKwLph8UyjQtTTwe9oTBaaC54mt5u8ex85JLMQqDMppB8tERooyTXcmzW7cMSKRTMExGv4aLkGVuf+7M/oyrsuow2cmI2WZRTQnjmILjb3JE6MY5oad5tE5QfzZWN+dvBvu8LAMTD4pNKZLGdGj1L/cseELPCZ3W96sUA3f0smbLSY4hUtxNR6RSYt1SOSzAnW8TL2R8cLiYREe92wRUfRiK1Mp2tSKK/AnXvLGdch070BN1zGqj8b0jjBtfo5h4KY9RAfe8HDFDuzXGz2sA6Y7B8x5rrxx/Y17lNWPb6RrUB9epBPHHaiCOu+GzzQsOZyuucnuHAjQTwfWx9QMY5PMxLCI3SRTPKcGI6BBXY8J7IxhbbHZN/GoLmO5cIQOLLOaBJ/z1LnX8q2IQD/i3AfsELNvelnsDcpJi7VBZF+BC9y4rvHgduzBE23oDIeYiP8WMpS1GDONdLRQO0Q2BwI1adPvKRDm9pD84mGtmKqc4V7YFRtyO2p6XwxryXbuwOzGHWPEovQT/MTb9q2WmpI6h3GAUr7xupSvN1MQttk6d6CGAcq+wZNf4VE4INH57nW2YMzdsIDyhC+FsJkX3GRqNRuOst/OHBhXc1mN2NmGEHyKHfKVh3XCbJcjlGEuQrdtZSrd4gJpdGcOTONVps5SK0xwlifHk5bPSvTRAZOGYTPpqRjHuPaGUNq3fQcCNYXaZk+Q4oU8SuLmvbGtYXaoQHmk/oWnQzbtG23EtBEGN7fkr/iOUVlrhwkO4zqswQapW6xbItAPqGOLFSN0oYdahuSYxWJEeyswgW2e8UaI8FWVp/FG5mIeq4Izhmw0ZUlYx7shm/Sd24F3dAUnxivGTzAsXycJ7ArrF3OxxUuKjQj0oTS5czswwxcV4J7Lk4zLU2kCu8ar8jFlfOnJUbwJU7oktNYOmKNM4Htfwe7mCytBXE5QL1MWmHKkLWfdlVjhpjtgNq4plf0b90dcy3dV0W27nGDFutdTo3iYT9ANHkYm/RQKtErj98UnXFReGs/W1Y13dtOQ5BWY/Tvcj8BFtbypXHEVg/qca0qyA1N4nQOXuAPnEf0Mn6CrQnv+7UCgt9L4B8MB8/C7EH+zzJj9H2oemleaVEagjEAZgTIC/2UE/gGodwxXdeYHTQAAAABJRU5ErkJggg==\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SLineCapStyle = void 0;\r\nvar SLineCapStyle;\r\n(function (SLineCapStyle) {\r\n SLineCapStyle[SLineCapStyle[\"Butt\"] = 0] = \"Butt\";\r\n SLineCapStyle[SLineCapStyle[\"Round\"] = 1] = \"Round\";\r\n SLineCapStyle[SLineCapStyle[\"Square\"] = 2] = \"Square\";\r\n})(SLineCapStyle = exports.SLineCapStyle || (exports.SLineCapStyle = {}));\r\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar arrayJoin = [].join;\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return arrayJoin.call(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.fill\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n return $fill.apply(aTypedArray(this), arguments);\n});\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SWindowItem = void 0;\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nconst __1 = require(\"../..\");\r\nconst graph_1 = require(\"@persagy-web/graph\");\r\nclass SWindowItem extends graph_1.SGraphItem {\r\n constructor(parent, data) {\r\n super(parent);\r\n this.pointArr = [];\r\n this.minX = Number.MAX_SAFE_INTEGER;\r\n this.maxX = Number.MIN_SAFE_INTEGER;\r\n this.minY = Number.MAX_SAFE_INTEGER;\r\n this.maxY = Number.MIN_SAFE_INTEGER;\r\n this.data = data;\r\n this.zOrder = __1.ItemOrder.windowOrder;\r\n if (this.data.OutLine.length) {\r\n this.pointArr = this.data.OutLine[0].map((t) => {\r\n let x = t.X, y = -t.Y;\r\n if (x < this.minX) {\r\n this.minX = x;\r\n }\r\n if (y < this.minY) {\r\n this.minY = y;\r\n }\r\n if (x > this.maxX) {\r\n this.maxX = x;\r\n }\r\n if (y > this.maxY) {\r\n this.maxY = y;\r\n }\r\n return new draw_1.SPoint(x, y);\r\n });\r\n }\r\n }\r\n boundingRect() {\r\n return new draw_1.SRect(this.minX, this.minY, this.maxX - this.minX, this.maxY - this.minY);\r\n }\r\n onDraw(painter) {\r\n painter.pen.color = __1.ItemColor.windowColor;\r\n painter.pen.lineWidth = painter.toPx(1);\r\n painter.drawPolyline(this.pointArr);\r\n }\r\n}\r\nexports.SWindowItem = SWindowItem;\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYMAAAACCAYAAAC6/7DbAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAABg6ADAAQAAAABAAAAAgAAAAA/YArgAAAAR0lEQVRIDWNgYGDYCsT/oTSQgoNRcUhQjIbDaDjAMwWQMZoeRtPDsEwPTEi+AlUI2MCoOCRURsNhNByQ88doehhND8MqPQAA6XbdawHob9MAAAAASUVORK5CYII=\"","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n nativeDefineProperty(it, key, { get: function () {\n return getInternalState(this)[key];\n } });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n return isTypedArrayIndex(target, key = toPrimitive(key, true))\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n if (isTypedArrayIndex(target, key = toPrimitive(key, true))\n && isObject(descriptor)\n && has(descriptor, 'value')\n && !has(descriptor, 'get')\n && !has(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!has(descriptor, 'writable') || descriptor.writable)\n && (!has(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({\n global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAABVklEQVRoBe1XbQ7CIAwtxnu50+gv4xH0Cou/9DTzYiJIwspHxhYbwfn4sbQrK32Pl0GJMMAAGAADYOCfGVAe/FV39KTO+y0bGxroqAZb4tbX6Yo/e79l4/kubrDPzdv84ce4AxyEogdps00tDWXkrWkXl5QHYIs/qUs8uarfa1tPAmClEuJU9/rG3UX2SR38/DgPj/lJy428hMI8+9Bd5I0AiOI8PLYoKZ/8BxIiunPEH9hSeYISyhIS0qr5q4lIJqjeOCuVkD003H83BlzPdwdZsn5eQu7ESw6N5OtvvtD5xVYkIXtFdbe8PNSW3tpaMRphAB1ZlY1AR1aDdnRkNVifsWb+KsE/jDspHivZ/AYa5+GxUp6JeBlA2klNpEtC/AqNjiyhx7yYswNSnZRUngBHGYCQVtGRBbyPTn4H0JGNDIlZ6MjEqBRIhI5MgESkAANgQIaBF3JwSW+PHKZWAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAAAiUlEQVRoBe3YMQ7CMBBE0TXivpyFE4eelL9YkF5KSztO3thNZjwECBAgQIDAnsCZ93Xtbd93fvSI3QQfsOs/87y9wOuc29ovLXzdWUdouxwNaCAKOEIRMI9rIBPGAA1EwDyugUwYAzQQAfO4BjJhDNBABMzj/gtlwhjgDkRA4wQIECBAgMBfC3wAlo8IV8DRXQAAAAAASUVORK5CYII=\"","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SSvgPaintEngine = void 0;\r\nvar base_1 = require(\"@persagy-web/base\");\r\nvar __1 = require(\"..\");\r\nvar SSvgPaintEngine = (function (_super) {\r\n __extends(SSvgPaintEngine, _super);\r\n function SSvgPaintEngine(w, h) {\r\n var _this = _super.call(this) || this;\r\n _this._builder = new base_1.SStringBuilder();\r\n _this.version = \"1.1\";\r\n _this.width = 0;\r\n _this.height = 0;\r\n _this.width = w;\r\n _this.height = h;\r\n _this._builder.append(\"<?xml version='1.0' standalone='no'?>\");\r\n _this._builder.append(\"<!DOCTYPE svg PUBLIC \\\"-//W3C//DTD SVG 1.1//EN\\\"\");\r\n _this._builder.append(\" \\\"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\\\">\");\r\n _this._builder.append(\"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"\");\r\n _this._builder.append(\"version=\\\"\" + _this.version + \"\\\" width=\\\"\" + w + \"\\\" height=\\\"\" + h + \"\\\">\");\r\n return _this;\r\n }\r\n Object.defineProperty(SSvgPaintEngine.prototype, \"type\", {\r\n get: function () {\r\n return __1.SPaintEngineType.SVG;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SSvgPaintEngine.prototype.toSvg = function () {\r\n return this._builder.toString(\"\\n\") + \"</svg>\\n\";\r\n };\r\n SSvgPaintEngine.prototype.clearRect = function (rect) { };\r\n SSvgPaintEngine.prototype.drawRect = function (rect) {\r\n this._builder.append(\"<rect x=\\\"\" + rect.x + \"\\\" y=\\\"\" + rect.y + \"\\\" width=\\\"\" + rect.width + \"\\\" height=\\\"\" + rect.height + \"\\\" \" + this.getStyle(true, true, false) + \" \" + this.getSvgMatrix() + \"/>\");\r\n };\r\n SSvgPaintEngine.prototype.drawCircle = function (cx, cy, r) {\r\n this._builder.append(\"<circle cx=\\\"\" + cx + \"\\\" cy=\\\"\" + cy + \"\\\" r=\\\"\" + r + \"\\\" \" + this.getStyle(true, true, false) + \" \" + this.getSvgMatrix() + \"/>\");\r\n };\r\n SSvgPaintEngine.prototype.drawEllipse = function (cx, cy, rx, ry) {\r\n this._builder.append(\"<ellipse cx=\\\"\" + cx + \"\\\" cy=\\\"\" + cy + \"\\\" rx=\\\"\" + rx + \"\\\" ry=\\\"\" + ry + \"\\\" \" + this.getStyle(true, true, false) + \" \" + this.getSvgMatrix() + \"/>\");\r\n };\r\n SSvgPaintEngine.prototype.drawLine = function (line) {\r\n this._builder.append(\"<line x1=\\\"\" + line.x1 + \"\\\" y1=\\\"\" + line.y1 + \"\\\" x2=\\\"\" + line.x2 + \"\\\" y2=\\\"\" + line.y2 + \"\\\" \" + this.getStyle(false, true, false) + \" \" + this.getSvgMatrix() + \"/>\");\r\n };\r\n SSvgPaintEngine.prototype.drawPolyline = function (points) {\r\n this._builder.append(\"<polyline points=\\\"\" + SSvgPaintEngine.pointsToStr(points) + \"\\\" \" + this.getStyle(false, true, false) + \" \" + this.getSvgMatrix() + \"/>\");\r\n };\r\n SSvgPaintEngine.prototype.drawPolygon = function (points) {\r\n this._builder.append(\"<polygon points=\\\"\" + SSvgPaintEngine.pointsToStr(points) + \"\\\" \" + this.getStyle(true, true, false) + \" \" + this.getSvgMatrix() + \"/>\");\r\n };\r\n SSvgPaintEngine.prototype.drawPath = function (path) {\r\n };\r\n SSvgPaintEngine.prototype.drawText = function (text, x, y, maxWidth) {\r\n this._builder.append(\"<text x=\\\"\" + x + \"\\\" y=\\\"\" + y + \"\\\" \" + this.getStyle(true, false, true) + \" \" + this.getSvgMatrix() + \">\" + text + \"</text>>\");\r\n };\r\n SSvgPaintEngine.prototype.drawImage = function (img, x, y, width, height) {\r\n };\r\n SSvgPaintEngine.prototype.textWidth = function (text) {\r\n return 0;\r\n };\r\n SSvgPaintEngine.prototype.changeFont = function (font) { };\r\n SSvgPaintEngine.prototype.getSvgMatrix = function () {\r\n return \"transform=\\\"matrix(\" + this.state.matrix.a + \", \" + this.state.matrix.b + \", \" + this.state.matrix.c + \", \" + this.state.matrix.d + \", \" + this.state.matrix.e + \", \" + this.state.matrix.f + \")\\\"\";\r\n };\r\n SSvgPaintEngine.pointsToStr = function (points) {\r\n var strBuilder = new base_1.SStringBuilder();\r\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\r\n var p = points_1[_i];\r\n strBuilder.append(p.x + \",\" + p.y);\r\n }\r\n return strBuilder.toString(\" \");\r\n };\r\n SSvgPaintEngine.prototype.getStyle = function (brush, pen, font) {\r\n if (brush === void 0) { brush = false; }\r\n if (pen === void 0) { pen = false; }\r\n if (font === void 0) { font = false; }\r\n var builder = new base_1.SStringBuilder();\r\n builder.append('style=\"');\r\n if (pen) {\r\n builder.append(\"stroke:rgba(\" + this.state.pen.color.red + \", \" + this.state.pen.color.green + \", \" + this.state.pen.color.blue + \", \" + this.state.pen.color.alpha /\r\n 255.0 + \");\");\r\n builder.append(\"stroke-width:\" + this.state.pen.lineWidth + \";\");\r\n }\r\n else {\r\n builder.append(\"stroke-width:0;\");\r\n }\r\n if (brush) {\r\n builder.append(\"fill:rgba(\" + this.state.brush.color.red + \", \" + this.state.brush.color.green + \", \" + this.state.brush.color.blue + \", \" + this.state.brush.color\r\n .alpha / 255.0 + \");\");\r\n }\r\n else {\r\n builder.append(\"fill:rgba(0,0,0,0);\");\r\n }\r\n if (font) {\r\n builder.append(\"font-size:\" + this.state.font.size + \"px;\");\r\n }\r\n builder.append('\"');\r\n return builder.toString(\"\");\r\n };\r\n SSvgPaintEngine.prototype.drawRoundRect = function () { };\r\n return SSvgPaintEngine;\r\n}(__1.SPaintEngine));\r\nexports.SSvgPaintEngine = SSvgPaintEngine;\r\n","\"use strict\";\r\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SObjectObserver = void 0;\r\nvar SObjectObserver = (function () {\r\n function SObjectObserver(receiver, callback) {\r\n this.receiver = null;\r\n this.receiver = receiver;\r\n this.callback = callback;\r\n }\r\n SObjectObserver.prototype.notify = function () {\r\n var _a;\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n (_a = this.callback).call.apply(_a, __spreadArrays([this.receiver], args));\r\n };\r\n SObjectObserver.prototype.compar = function (receiver) {\r\n return receiver == this.receiver;\r\n };\r\n return SObjectObserver;\r\n}());\r\nexports.SObjectObserver = SObjectObserver;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ItemOrder = void 0;\r\nclass ItemOrder {\r\n}\r\nexports.ItemOrder = ItemOrder;\r\nItemOrder.spaceOrder = 200;\r\nItemOrder.zoneOrder = 800;\r\nItemOrder.likeSpaceOrder = 1000;\r\nItemOrder.columnOrder = 1200;\r\nItemOrder.wallOrder = 1600;\r\nItemOrder.virtualWallOrder = 2000;\r\nItemOrder.doorOrder = 2400;\r\nItemOrder.windowOrder = 2800;\r\nItemOrder.polygonOrder = 4000;\r\nItemOrder.lineOrder = 5000;\r\nItemOrder.polylineOrder = 6000;\r\nItemOrder.imageOrder = 7000;\r\nItemOrder.textOrder = 8000;\r\nItemOrder.markOrder = 9900;\r\nItemOrder.shadeOrder = 12000;\r\nItemOrder.rectSelectOrder = 9999900;\r\nItemOrder.highLightOrder = 999900;\r\nItemOrder.RelationOrder = 999900;\r\nItemOrder.sceneMarkOrder = 9999900;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SMouseEvent = void 0;\r\nvar SMatrix_1 = require(\"./SMatrix\");\r\nvar SMouseEvent = (function () {\r\n function SMouseEvent(event) {\r\n this.matrix = new SMatrix_1.SMatrix();\r\n this.type = event.type;\r\n this.screenX = event.screenX;\r\n this.screenY = event.screenY;\r\n this.clientX = event.clientX;\r\n this.clientY = event.clientY;\r\n this.offsetX = event.offsetX;\r\n this.offsetY = event.offsetY;\r\n this.altKey = event.altKey;\r\n this.ctrlKey = event.ctrlKey;\r\n this.shiftKey = event.shiftKey;\r\n this.buttons = event.buttons;\r\n if (event instanceof SMouseEvent) {\r\n this.x = event.x;\r\n this.y = event.y;\r\n this.matrix.m11 = event.matrix.m11;\r\n this.matrix.m12 = event.matrix.m12;\r\n this.matrix.m13 = event.matrix.m13;\r\n this.matrix.m14 = event.matrix.m14;\r\n this.matrix.m21 = event.matrix.m21;\r\n this.matrix.m22 = event.matrix.m22;\r\n this.matrix.m23 = event.matrix.m23;\r\n this.matrix.m24 = event.matrix.m24;\r\n this.matrix.m31 = event.matrix.m31;\r\n this.matrix.m32 = event.matrix.m32;\r\n this.matrix.m33 = event.matrix.m33;\r\n this.matrix.m34 = event.matrix.m34;\r\n this.matrix.m41 = event.matrix.m41;\r\n this.matrix.m42 = event.matrix.m42;\r\n this.matrix.m43 = event.matrix.m43;\r\n this.matrix.m44 = event.matrix.m44;\r\n }\r\n else {\r\n this.x = event.offsetX;\r\n this.y = event.offsetY;\r\n }\r\n }\r\n return SMouseEvent;\r\n}());\r\nexports.SMouseEvent = SMouseEvent;\r\n","// IEEE754 conversions based on https://github.com/feross/ieee754\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = 1 / 0;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = new Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n if (number * (c = pow(2, -exponent)) < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8);\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8);\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8);\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8);\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SMatrix = void 0;\r\nvar SMatrix = (function () {\r\n function SMatrix() {\r\n this.m11 = 1;\r\n this.m21 = 0;\r\n this.m31 = 0;\r\n this.m41 = 0;\r\n this.m12 = 0;\r\n this.m22 = 1;\r\n this.m32 = 0;\r\n this.m42 = 0;\r\n this.m13 = 0;\r\n this.m23 = 0;\r\n this.m33 = 1;\r\n this.m43 = 0;\r\n this.m14 = 0;\r\n this.m24 = 0;\r\n this.m34 = 0;\r\n this.m44 = 1;\r\n }\r\n Object.defineProperty(SMatrix.prototype, \"a\", {\r\n get: function () {\r\n return this.m11;\r\n },\r\n set: function (v) {\r\n this.m11 = v;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SMatrix.prototype, \"b\", {\r\n get: function () {\r\n return this.m12;\r\n },\r\n set: function (v) {\r\n this.m12 = v;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SMatrix.prototype, \"c\", {\r\n get: function () {\r\n return this.m21;\r\n },\r\n set: function (v) {\r\n this.m21 = v;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SMatrix.prototype, \"d\", {\r\n get: function () {\r\n return this.m22;\r\n },\r\n set: function (v) {\r\n this.m22 = v;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SMatrix.prototype, \"e\", {\r\n get: function () {\r\n return this.m41;\r\n },\r\n set: function (v) {\r\n this.m41 = v;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SMatrix.prototype, \"f\", {\r\n get: function () {\r\n return this.m42;\r\n },\r\n set: function (v) {\r\n this.m42 = v;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SMatrix.prototype, \"is2D\", {\r\n get: function () {\r\n return true;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SMatrix.prototype, \"isIdentity\", {\r\n get: function () {\r\n return (this.m11 == 1 &&\r\n this.m21 == 0 &&\r\n this.m31 == 0 &&\r\n this.m41 == 0 &&\r\n this.m12 == 0 &&\r\n this.m22 == 1 &&\r\n this.m32 == 0 &&\r\n this.m42 == 0 &&\r\n this.m13 == 0 &&\r\n this.m23 == 0 &&\r\n this.m33 == 1 &&\r\n this.m43 == 0 &&\r\n this.m14 == 0 &&\r\n this.m24 == 0 &&\r\n this.m34 == 0 &&\r\n this.m44 == 1);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SMatrix.prototype.reset = function () {\r\n this.m11 = 1;\r\n this.m21 = 0;\r\n this.m31 = 0;\r\n this.m41 = 0;\r\n this.m12 = 0;\r\n this.m22 = 1;\r\n this.m32 = 0;\r\n this.m42 = 0;\r\n this.m13 = 0;\r\n this.m23 = 0;\r\n this.m33 = 1;\r\n this.m43 = 0;\r\n this.m14 = 0;\r\n this.m24 = 0;\r\n this.m34 = 0;\r\n this.m44 = 1;\r\n return this;\r\n };\r\n SMatrix.prototype.multiply = function (mat) {\r\n var _a;\r\n _a = [\r\n this.m11 * mat.m11 +\r\n this.m21 * mat.m12 +\r\n this.m31 * mat.m13 +\r\n this.m41 * mat.m14,\r\n this.m11 * mat.m21 +\r\n this.m21 * mat.m22 +\r\n this.m31 * mat.m23 +\r\n this.m41 * mat.m24,\r\n this.m11 * mat.m31 +\r\n this.m21 * mat.m32 +\r\n this.m31 * mat.m33 +\r\n this.m41 * mat.m34,\r\n this.m11 * mat.m41 +\r\n this.m21 * mat.m42 +\r\n this.m31 * mat.m43 +\r\n this.m41 * mat.m44,\r\n this.m12 * mat.m11 +\r\n this.m22 * mat.m12 +\r\n this.m32 * mat.m13 +\r\n this.m42 * mat.m14,\r\n this.m12 * mat.m21 +\r\n this.m22 * mat.m22 +\r\n this.m32 * mat.m23 +\r\n this.m42 * mat.m24,\r\n this.m12 * mat.m31 +\r\n this.m22 * mat.m32 +\r\n this.m32 * mat.m33 +\r\n this.m42 * mat.m34,\r\n this.m12 * mat.m41 +\r\n this.m22 * mat.m42 +\r\n this.m32 * mat.m43 +\r\n this.m42 * mat.m44,\r\n this.m13 * mat.m11 +\r\n this.m23 * mat.m12 +\r\n this.m33 * mat.m13 +\r\n this.m43 * mat.m14,\r\n this.m13 * mat.m21 +\r\n this.m23 * mat.m22 +\r\n this.m33 * mat.m23 +\r\n this.m43 * mat.m24,\r\n this.m13 * mat.m31 +\r\n this.m23 * mat.m32 +\r\n this.m33 * mat.m33 +\r\n this.m43 * mat.m34,\r\n this.m13 * mat.m41 +\r\n this.m23 * mat.m42 +\r\n this.m33 * mat.m43 +\r\n this.m43 * mat.m44,\r\n this.m14 * mat.m11 +\r\n this.m24 * mat.m12 +\r\n this.m34 * mat.m13 +\r\n this.m44 * mat.m14,\r\n this.m14 * mat.m21 +\r\n this.m24 * mat.m22 +\r\n this.m34 * mat.m23 +\r\n this.m44 * mat.m24,\r\n this.m14 * mat.m31 +\r\n this.m24 * mat.m32 +\r\n this.m34 * mat.m33 +\r\n this.m44 * mat.m34,\r\n this.m14 * mat.m41 +\r\n this.m24 * mat.m42 +\r\n this.m34 * mat.m43 +\r\n this.m44 * mat.m44\r\n ], this.m11 = _a[0], this.m21 = _a[1], this.m31 = _a[2], this.m41 = _a[3], this.m12 = _a[4], this.m22 = _a[5], this.m32 = _a[6], this.m42 = _a[7], this.m13 = _a[8], this.m23 = _a[9], this.m33 = _a[10], this.m43 = _a[11], this.m14 = _a[12], this.m24 = _a[13], this.m34 = _a[14], this.m44 = _a[15];\r\n return this;\r\n };\r\n SMatrix.prototype.translate = function (dx, dy, dz) {\r\n if (dz === void 0) { dz = 0; }\r\n var mat = new SMatrix();\r\n mat.m41 = dx;\r\n mat.m42 = dy;\r\n mat.m43 = dz;\r\n this.multiply(mat);\r\n return this;\r\n };\r\n SMatrix.prototype.scale = function (sx, sy) {\r\n var mat = new SMatrix();\r\n mat.m11 = sx;\r\n mat.m22 = sy;\r\n this.multiply(mat);\r\n return this;\r\n };\r\n SMatrix.prototype.rotate = function (rotX, rotY, rotZ) {\r\n var matZ = new SMatrix();\r\n if (rotY != undefined && rotZ != undefined) {\r\n var matX = new SMatrix();\r\n matX.m22 = Math.cos((rotX * Math.PI) / 180);\r\n matX.m32 = -Math.sin((rotX * Math.PI) / 180);\r\n matX.m23 = Math.sin((rotX * Math.PI) / 180);\r\n matX.m33 = Math.cos((rotX * Math.PI) / 180);\r\n this.multiply(matX);\r\n var matY = new SMatrix();\r\n matY.m11 = Math.cos((rotY * Math.PI) / 180);\r\n matY.m31 = Math.sin((rotY * Math.PI) / 180);\r\n matY.m13 = -Math.sin((rotY * Math.PI) / 180);\r\n matY.m33 = Math.cos((rotY * Math.PI) / 180);\r\n this.multiply(matY);\r\n matZ.m11 = Math.cos((rotZ * Math.PI) / 180);\r\n matZ.m21 = -Math.sin((rotZ * Math.PI) / 180);\r\n matZ.m12 = Math.sin((rotZ * Math.PI) / 180);\r\n matZ.m22 = Math.cos((rotZ * Math.PI) / 180);\r\n this.multiply(matZ);\r\n return this;\r\n }\r\n else {\r\n matZ.m11 = Math.cos((rotX * Math.PI) / 180);\r\n matZ.m21 = -Math.sin((rotX * Math.PI) / 180);\r\n matZ.m12 = Math.sin((rotX * Math.PI) / 180);\r\n matZ.m22 = Math.cos((rotX * Math.PI) / 180);\r\n this.multiply(matZ);\r\n return this;\r\n }\r\n };\r\n SMatrix.prototype.transpose = function () {\r\n var _a, _b, _c, _d, _e, _f;\r\n _a = [this.m21, this.m12], this.m12 = _a[0], this.m21 = _a[1];\r\n _b = [this.m31, this.m13], this.m13 = _b[0], this.m31 = _b[1];\r\n _c = [this.m41, this.m14], this.m14 = _c[0], this.m41 = _c[1];\r\n _d = [this.m32, this.m23], this.m23 = _d[0], this.m32 = _d[1];\r\n _e = [this.m42, this.m24], this.m24 = _e[0], this.m42 = _e[1];\r\n _f = [this.m43, this.m34], this.m34 = _f[0], this.m43 = _f[1];\r\n return this;\r\n };\r\n SMatrix.prototype.inversed = function () {\r\n var detMat = this.det();\r\n var d = this.value();\r\n var ret = new SMatrix();\r\n ret.m11 = detMat.m11 / d;\r\n ret.m21 = detMat.m21 / d;\r\n ret.m31 = detMat.m31 / d;\r\n ret.m41 = detMat.m41 / d;\r\n ret.m12 = detMat.m12 / d;\r\n ret.m22 = detMat.m22 / d;\r\n ret.m32 = detMat.m32 / d;\r\n ret.m42 = detMat.m42 / d;\r\n ret.m13 = detMat.m13 / d;\r\n ret.m23 = detMat.m23 / d;\r\n ret.m33 = detMat.m33 / d;\r\n ret.m43 = detMat.m43 / d;\r\n ret.m14 = detMat.m14 / d;\r\n ret.m24 = detMat.m24 / d;\r\n ret.m34 = detMat.m34 / d;\r\n ret.m44 = detMat.m44 / d;\r\n return ret;\r\n };\r\n SMatrix.prototype.det = function () {\r\n var m = new SMatrix();\r\n m.m11 =\r\n this.m22 * this.m33 * this.m44 +\r\n this.m32 * this.m43 * this.m24 +\r\n this.m42 * this.m23 * this.m34 -\r\n this.m42 * this.m33 * this.m24 -\r\n this.m32 * this.m23 * this.m44 -\r\n this.m22 * this.m43 * this.m34;\r\n m.m12 = -(this.m12 * this.m33 * this.m44 +\r\n this.m32 * this.m43 * this.m14 +\r\n this.m42 * this.m13 * this.m34 -\r\n this.m42 * this.m33 * this.m14 -\r\n this.m32 * this.m13 * this.m44 -\r\n this.m12 * this.m43 * this.m34);\r\n m.m13 =\r\n this.m12 * this.m23 * this.m44 +\r\n this.m22 * this.m43 * this.m14 +\r\n this.m42 * this.m13 * this.m24 -\r\n this.m42 * this.m23 * this.m14 -\r\n this.m22 * this.m13 * this.m44 -\r\n this.m12 * this.m43 * this.m24;\r\n m.m14 = -(this.m12 * this.m23 * this.m34 +\r\n this.m22 * this.m33 * this.m14 +\r\n this.m32 * this.m13 * this.m24 -\r\n this.m32 * this.m23 * this.m14 -\r\n this.m22 * this.m13 * this.m34 -\r\n this.m12 * this.m33 * this.m24);\r\n m.m21 = -(this.m21 * this.m33 * this.m44 +\r\n this.m31 * this.m43 * this.m24 +\r\n this.m41 * this.m23 * this.m34 -\r\n this.m41 * this.m33 * this.m24 -\r\n this.m31 * this.m23 * this.m44 -\r\n this.m21 * this.m43 * this.m34);\r\n m.m22 =\r\n this.m11 * this.m33 * this.m44 +\r\n this.m31 * this.m43 * this.m14 +\r\n this.m41 * this.m13 * this.m34 -\r\n this.m41 * this.m33 * this.m14 -\r\n this.m31 * this.m13 * this.m44 -\r\n this.m11 * this.m43 * this.m34;\r\n m.m23 = -(this.m11 * this.m23 * this.m44 +\r\n this.m21 * this.m43 * this.m14 +\r\n this.m41 * this.m13 * this.m24 -\r\n this.m41 * this.m23 * this.m14 -\r\n this.m21 * this.m13 * this.m44 -\r\n this.m11 * this.m43 * this.m24);\r\n m.m24 =\r\n this.m11 * this.m23 * this.m34 +\r\n this.m21 * this.m33 * this.m14 +\r\n this.m31 * this.m13 * this.m24 -\r\n this.m31 * this.m23 * this.m14 -\r\n this.m21 * this.m13 * this.m34 -\r\n this.m11 * this.m33 * this.m24;\r\n m.m31 =\r\n this.m21 * this.m32 * this.m44 +\r\n this.m31 * this.m42 * this.m24 +\r\n this.m41 * this.m22 * this.m34 -\r\n this.m41 * this.m32 * this.m24 -\r\n this.m31 * this.m22 * this.m44 -\r\n this.m21 * this.m42 * this.m34;\r\n m.m32 = -(this.m11 * this.m32 * this.m44 +\r\n this.m31 * this.m42 * this.m14 +\r\n this.m41 * this.m12 * this.m34 -\r\n this.m41 * this.m32 * this.m14 -\r\n this.m31 * this.m12 * this.m44 -\r\n this.m11 * this.m42 * this.m34);\r\n m.m33 =\r\n this.m11 * this.m22 * this.m44 +\r\n this.m21 * this.m42 * this.m14 +\r\n this.m41 * this.m12 * this.m24 -\r\n this.m41 * this.m22 * this.m14 -\r\n this.m21 * this.m12 * this.m44 -\r\n this.m11 * this.m42 * this.m24;\r\n m.m34 = -(this.m11 * this.m22 * this.m34 +\r\n this.m21 * this.m32 * this.m14 +\r\n this.m31 * this.m12 * this.m24 -\r\n this.m31 * this.m22 * this.m14 -\r\n this.m21 * this.m12 * this.m34 -\r\n this.m11 * this.m32 * this.m24);\r\n m.m41 = -(this.m21 * this.m32 * this.m43 +\r\n this.m31 * this.m42 * this.m23 +\r\n this.m41 * this.m22 * this.m33 -\r\n this.m41 * this.m32 * this.m23 -\r\n this.m31 * this.m22 * this.m43 -\r\n this.m21 * this.m42 * this.m33);\r\n m.m42 =\r\n this.m11 * this.m32 * this.m43 +\r\n this.m31 * this.m42 * this.m13 +\r\n this.m41 * this.m12 * this.m33 -\r\n this.m41 * this.m32 * this.m13 -\r\n this.m31 * this.m12 * this.m43 -\r\n this.m11 * this.m42 * this.m33;\r\n m.m43 = -(this.m11 * this.m22 * this.m43 +\r\n this.m21 * this.m42 * this.m13 +\r\n this.m41 * this.m12 * this.m23 -\r\n this.m41 * this.m22 * this.m13 -\r\n this.m21 * this.m12 * this.m43 -\r\n this.m11 * this.m42 * this.m23);\r\n m.m44 =\r\n this.m11 * this.m22 * this.m33 +\r\n this.m21 * this.m32 * this.m13 +\r\n this.m31 * this.m12 * this.m23 -\r\n this.m31 * this.m22 * this.m13 -\r\n this.m21 * this.m12 * this.m33 -\r\n this.m11 * this.m32 * this.m23;\r\n return m;\r\n };\r\n SMatrix.prototype.value = function () {\r\n return (this.m11 *\r\n (this.m22 * this.m33 * this.m44 +\r\n this.m32 * this.m43 * this.m24 +\r\n this.m42 * this.m23 * this.m34 -\r\n this.m42 * this.m33 * this.m24 -\r\n this.m32 * this.m23 * this.m44 -\r\n this.m22 * this.m43 * this.m34) -\r\n this.m21 *\r\n (this.m12 * this.m33 * this.m44 +\r\n this.m32 * this.m43 * this.m14 +\r\n this.m42 * this.m13 * this.m34 -\r\n this.m42 * this.m33 * this.m14 -\r\n this.m32 * this.m13 * this.m44 -\r\n this.m12 * this.m43 * this.m34) +\r\n this.m31 *\r\n (this.m12 * this.m23 * this.m44 +\r\n this.m22 * this.m43 * this.m14 +\r\n this.m42 * this.m13 * this.m24 -\r\n this.m42 * this.m23 * this.m14 -\r\n this.m22 * this.m13 * this.m44 -\r\n this.m12 * this.m43 * this.m24) -\r\n this.m41 *\r\n (this.m12 * this.m23 * this.m34 +\r\n this.m22 * this.m33 * this.m14 +\r\n this.m32 * this.m13 * this.m24 -\r\n this.m32 * this.m23 * this.m14 -\r\n this.m22 * this.m13 * this.m34 -\r\n this.m12 * this.m33 * this.m24));\r\n };\r\n return SMatrix;\r\n}());\r\nexports.SMatrix = SMatrix;\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAACoElEQVRoBe1YPWsVQRQ944tfaGERsdSggmDEQhFs09hYaGVnfFUQNdb+ABu7PCPpfGJpYdAuiPgDNKQwhYIIKUQEUwY1Mbmeedk37jq7s29fZj+EGRjmzr0z955zZ3ZnGCCUkIGQgZCBkIEdZEBZczvStXQ+FdOq7dPdiOVMcMPS+VV4JbDLL7bqvdkrAKzHYGh7n6RQ3ojZssT4nC0O+p010Ife/gbiXjvyGoKJnkrhE6bVybg5VZ6Rd9Sfi2yLuKvOp47zpOxn15O76t0EAtXnPBkxrEAyH9X3wgpUn/NkxLSDLDmi7l7OuVLGFtKn73ZR5hTva7y3ZRD4ZVAKDhq5JME/AYUvBqvCCczKVTyS0oj4/wYUXvH+dK1HQqCwiec9uSObbP9uL8MyRxA4MfpfgT14SkiLFixBi8R2F65gEhzFP4EptUGolxj2hSOuN5NzeYaOclutcu4VPJRTbCdYx5j5Q2yLxxNc5rxR1tRS3GGqmwzlHfWBFl2HL9vnQCaBvC20ZiILDhi5QUIegW8xrIfxRspdsViwQUU3AcHnmKMRvMfFWL8RoptACwsJlILJRL8BHTeBW1ji73DF4FS4jo6cNf0GCG4CSumnlPsGpz6IgHnMyTGjq1lwE9DgzqDLVVgyOIX/9HW85R1nEs+kZfQ1Cc5j2mCalaO80+j3nn//x19JboH1Iw+qVbbF7zomSIawhXu0HI+s1jvTYAT07DkZ57vcSwIdi5xV1fxgoP1RMItA/hbqw7yplrEXF5jlJ6z6ZtmIMjgBDXdKfefzYpsExtl7wLqs1XWWwbdQFsqu7MMajnBNRkmsjI/6Mbft6Si8tYV2fjVoq590vhLVLJrD62dE+88sxbZQppv6DP89gfpSFyKHDIQMeMnAH/WDhjoumpjWAAAAAElFTkSuQmCC\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SMathUtil = void 0;\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nclass SMathUtil {\r\n static pointDistance(x1, y1, x2, y2) {\r\n return Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));\r\n }\r\n static rectIntersection(rect1, rect2) {\r\n let minX = rect1.x < rect2.x ? rect1.x : rect2.x;\r\n let minY = rect1.y < rect2.y ? rect1.y : rect2.y;\r\n let maxX = rect1.right > rect2.right ? rect1.right : rect2.right;\r\n let maxY = rect1.bottom > rect2.bottom ? rect2.bottom : rect2.bottom;\r\n return (rect1.width + rect2.width > maxX - minX &&\r\n rect1.height + rect2.height > maxY - minY);\r\n }\r\n static lineIntersection(line1, line2) {\r\n let k1 = line1.dy / line1.dx;\r\n let b1 = line1.y1 - k1 * line1.x1;\r\n let k2 = line2.dy / line2.dx;\r\n let b2 = line2.y1 - k2 * line2.x1;\r\n if (k1 == k2) {\r\n if (b1 == b2) {\r\n return \"repeat\";\r\n }\r\n return null;\r\n }\r\n let intersectionX = (b2 - b1) / (k1 - k2);\r\n let intersectionY = k1 * intersectionX + b1;\r\n let minX = Math.min(line1.x1, line1.x2);\r\n let maxX = Math.min(line2.x1, line2.x2);\r\n if (intersectionX >= minX && intersectionX <= maxX) {\r\n return new draw_1.SPoint(intersectionX, intersectionY);\r\n }\r\n return null;\r\n }\r\n static transferToArray(SP) {\r\n return SP.map((t) => {\r\n return [t.x, t.y];\r\n });\r\n }\r\n static transferToSPoint(arr) {\r\n return arr.map((t) => {\r\n return new draw_1.SPoint(t[0], t[1]);\r\n });\r\n }\r\n static calculateArea(arr) {\r\n let sum = 0;\r\n let n = arr.length;\r\n arr[n] = arr[0];\r\n for (let i = 1; i <= n; i++) {\r\n sum += arr[i].x * arr[i - 1].y - arr[i - 1].x * arr[i].y;\r\n }\r\n return sum / 2;\r\n }\r\n}\r\nexports.SMathUtil = SMathUtil;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SShadow = void 0;\r\nvar SColor_1 = require(\"./SColor\");\r\nvar SShadow = (function () {\r\n function SShadow(blur, color) {\r\n this.shadowBlur = 0;\r\n this.shadowColor = null;\r\n this.shadowOffsetX = 0;\r\n this.shadowOffsetY = 0;\r\n if (blur == undefined) {\r\n return;\r\n }\r\n if (blur instanceof SShadow) {\r\n this.shadowBlur = blur.shadowBlur;\r\n this.shadowColor = blur.shadowColor;\r\n this.shadowOffsetX = blur.shadowOffsetX;\r\n this.shadowOffsetY = blur.shadowOffsetY;\r\n }\r\n else {\r\n this.shadowBlur = blur;\r\n this.shadowColor = color || SColor_1.SColor.Black;\r\n }\r\n }\r\n return SShadow;\r\n}());\r\nexports.SShadow = SShadow;\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"editer\"},[_c('div',{staticClass:\"top-bar\"},[_vm._m(0),_c('div',{staticClass:\"right\"},[_c('img',{attrs:{\"src\":require(\"./../assets/images/download.png\"),\"alt\":\"\"}}),_c('img',{attrs:{\"src\":require(\"./../assets/images/save.png\"),\"alt\":\"\"},on:{\"click\":_vm.saveTopo}}),_c('img',{attrs:{\"src\":require(\"./../assets/images/issue.png\"),\"alt\":\"\"},on:{\"click\":_vm.issueTopo}})])]),_c('topo-editer')],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"left\"},[_c('div',{staticClass:\"project-name\"},[_vm._v(\"项目名称***\")]),_c('div',{staticClass:\"project-type\"},[_vm._v(\"/ 项目分类\")]),_c('div',{staticClass:\"project-save\"},[_vm._v(\"自动保存成功-V2.2\")])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"topo-editer\"},[_c('div',{staticClass:\"top-bar\"},[_c('topToolBar')],1),_c('div',{staticClass:\"contents\"},[_c('div',{staticClass:\"left-bar\"},[_c('leftToolBar')],1),_c('div',{staticClass:\"base-topo-editer\"},[_c('baseTopoEditer')],1),_c('div',{staticClass:\"right-bar\"},[_c('rightPropertyBar')],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"left-tool-bar\"},[_c('div',{staticClass:\"btn-list\"},[_c('ul',_vm._l((_vm.leftData),function(item,index){return _c('li',{key:index,class:{ 'btn-active': _vm.chiceStatus==index },on:{\"click\":function($event){return _vm.openTool(index)}}},[_c('img',{attrs:{\"width\":\"20px\",\"height\":\"20px\",\"src\":_vm.chiceStatus==index ? item.activeIcon : item.icon,\"alt\":\"\"}}),_c('span',[_vm._v(_vm._s(item.name))])])}),0)]),_c('el-drawer',{attrs:{\"size\":\"220px\",\"with-header\":false,\"destroy-on-close\":true,\"visible\":_vm.drawer,\"direction\":_vm.direction,\"modal\":false,\"modal-append-to-body\":false,\"show-close\":true,\"before-close\":_vm.handleClose,\"wrapperClosable\":false},on:{\"update:visible\":function($event){_vm.drawer=$event}}},[_c('legendList',{attrs:{\"chiceStatus\":_vm.chiceStatus}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty\";\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}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"lengend-list\"},[(_vm.chiceStatus==0)?_c('div',{staticClass:\"base-item-list\"},[_c('Input',{staticClass:\"baseItemInput\",attrs:{\"width\":188,\"iconType\":\"search\"},on:{\"pressEnter\":_vm.pressEnter},model:{value:(_vm.baseItemVal),callback:function ($$v) {_vm.baseItemVal=$$v},expression:\"baseItemVal\"}}),_vm._l((_vm.baseEditItems),function(item,index){return _c('div',{key:index,staticClass:\"lengend-item\"},[_c('span',{staticClass:\"legend-title\"},[_vm._v(_vm._s(item.title))]),_vm._l((item.itemList),function(itemList,i){return _c('div',{key:i,staticClass:\"legend-content\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(itemList.title))]),_c('ul',_vm._l((itemList.itemList),function(baseItem,k){return _c('li',{key:k,class:{ 'btn-active': _vm.choiceLegend== baseItem.id },attrs:{\"title\":baseItem.name},on:{\"click\":function($event){return _vm.drawItem(baseItem.id)}}},[_c('img',{staticClass:\"icon\",attrs:{\"src\":baseItem.icon}}),_c('span',{staticClass:\"iconName\"},[_vm._v(_vm._s(baseItem.name))])])}),0)])})],2)})],2):_vm._e(),(_vm.chiceStatus==1)?_c('equipmentList'):_vm._e(),(_vm.chiceStatus==3)?_c('pipeList'):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nexport const baseEditItems = [{\r\n title: '基础组件',\r\n itemList: [{\r\n title: '通用元素',\r\n itemList: [{\r\n name: '线条',\r\n id: \"EditBaseLine\",\r\n icon:require(\"./../../../assets/images/leftImgs/\"+\"EditBaseLine.png\"),\r\n activeIcon:require(\"./../../../assets/images/leftImgs/\"+ \"EditBaseLine\"+\"Active\"+\".png\")\r\n },\r\n {\r\n name: '文本框',\r\n id: \"EditBasetext\",\r\n icon:require(\"./../../../assets/images/leftImgs/\"+\"EditBasetext.png\"),\r\n activeIcon:require(\"./../../../assets/images/leftImgs/\"+ \"EditBasetext\"+\"Active\"+\".png\")\r\n },\r\n {\r\n name: '图片',\r\n id: \"EditBaseImage\",\r\n icon:require(\"./../../../assets/images/leftImgs/\"+\"EditBaseImage.png\"),\r\n activeIcon:require(\"./../../../assets/images/leftImgs/\"+ \"EditBaseImage\"+\"Active\"+\".png\")\r\n },\r\n {\r\n name: '批注',\r\n id: \"BaseExplain\",\r\n icon:require(\"./../../../assets/images/leftImgs/\"+\"EditBasePostil.png\"),\r\n activeIcon:require(\"./../../../assets/images/leftImgs/\"+ \"EditBasePostil\"+\"Active\"+\".png\")\r\n }\r\n ]\r\n },\r\n {\r\n title: '图形',\r\n itemList: [{\r\n name: '矩形',\r\n id: \"EditBaseRect\",\r\n icon:require(\"./../../../assets/images/leftImgs/\"+\"EditBaseRect.png\"),\r\n activeIcon:require(\"./../../../assets/images/leftImgs/\"+ \"EditBaseRect\"+\"Active\"+\".png\")\r\n },\r\n {\r\n name: '三角形',\r\n id: \"EditBaseTriangle\",\r\n icon:require(\"./../../../assets/images/leftImgs/\"+\"EditBaseTriangle.png\"),\r\n activeIcon:require(\"./../../../assets/images/leftImgs/\"+ \"EditBaseTriangle\"+\"Active\"+\".png\")\r\n },\r\n {\r\n name: '箭头',\r\n id: \"EditBaseArrows\",\r\n icon:require(\"./../../../assets/images/leftImgs/\"+\"EditBaseArrows.png\"),\r\n activeIcon:require(\"./../../../assets/images/leftImgs/\"+ \"EditBaseArrows\"+\"Active\"+\".png\")\r\n }\r\n ]\r\n },\r\n {\r\n title: '联通方式',\r\n itemList: [{\r\n name: '弯头',\r\n id: \"EditEuqipment\",\r\n icon:require(\"./../../../assets/images/leftImgs/\"+\"wantou.png\"),\r\n activeIcon:require(\"./../../../assets/images/leftImgs/\"+ \"wantou\"+\"Active\"+\".png\")\r\n },\r\n {\r\n name: '三通',\r\n id: \"santong\",\r\n icon:require(\"./../../../assets/images/leftImgs/\"+\"santong.png\"),\r\n activeIcon:require(\"./../../../assets/images/leftImgs/\"+ \"santong\"+\"Active\"+\".png\")\r\n },\r\n {\r\n name: '四通',\r\n id: \"sitong\",\r\n icon:require(\"./../../../assets/images/leftImgs/\"+\"sitong.png\"),\r\n activeIcon:require(\"./../../../assets/images/leftImgs/\"+ \"sitong\"+\"Active\"+\".png\")\r\n }\r\n ]\r\n },\r\n {\r\n title: '动态取值',\r\n itemList: [{\r\n name: '公式',\r\n id: \"equation\",\r\n icon:require(\"./../../../assets/images/leftImgs/\"+\"equation.png\"),\r\n activeIcon:require(\"./../../../assets/images/leftImgs/\"+ \"equation\"+\"Active\"+\".png\")\r\n },\r\n {\r\n name: '信息点',\r\n id: \"infoPoint\",\r\n icon:require(\"./../../../assets/images/leftImgs/\"+\"infoPoint.png\"),\r\n activeIcon:require(\"./../../../assets/images/leftImgs/\"+ \"infoPoint\"+\"Active\"+\".png\")\r\n },\r\n {\r\n name: '设备组',\r\n id: \"equipList\",\r\n icon:require(\"./../../../assets/images/leftImgs/\"+\"equipList.png\"),\r\n activeIcon:require(\"./../../../assets/images/leftImgs/\"+ \"equipList\"+\"Active\"+\".png\")\r\n },\r\n {\r\n name: '通用实例',\r\n id: \"publicItem\",\r\n icon:require(\"./../../../assets/images/leftImgs/\"+\"publicItem.png\"),\r\n activeIcon:require(\"./../../../assets/images/leftImgs/\"+ \"publicItem\"+\"Active\"+\".png\")\r\n }\r\n ]\r\n },\r\n ]\r\n}]","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pipe-list\"},[_c('Input',{staticClass:\"baseItemInput\",attrs:{\"width\":188,\"iconType\":\"search\"},on:{\"pressEnter\":_vm.pressEnter},model:{value:(_vm.baseItemVal),callback:function ($$v) {_vm.baseItemVal=$$v},expression:\"baseItemVal\"}}),_vm._m(0)],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"type\"},[_c('li',{staticClass:\"type-item\"},[_c('div',{staticClass:\"type-title\"},[_c('i',{staticClass:\"el-icon-caret-bottom\"}),_c('span',[_vm._v(\"空调水\")])]),_c('ul',{staticClass:\"itemList\"},[_c('li',[_c('div'),_c('span',[_vm._v(\"冷/热水供水管\")])]),_c('li',[_c('div'),_c('span',[_vm._v(\"冷/热水回水管\")])]),_c('li',[_c('div'),_c('span',[_vm._v(\"冷却回水管\")])]),_c('li',[_c('div'),_c('span',[_vm._v(\"膨胀水管\")])])])]),_c('li',{staticClass:\"type-item\"},[_c('div',{staticClass:\"type-title\"},[_c('i',{staticClass:\"el-icon-caret-bottom\"}),_c('span',[_vm._v(\"空调水\")])]),_c('ul',{staticClass:\"itemList\"},[_c('li',[_c('div'),_c('span',[_vm._v(\"冷/热水供水管\")])]),_c('li',[_c('div'),_c('span',[_vm._v(\"冷/热水回水管\")])]),_c('li',[_c('div'),_c('span',[_vm._v(\"冷却回水管\")])]),_c('li',[_c('div'),_c('span',[_vm._v(\"膨胀水管\")])])])]),_c('li',{staticClass:\"type-item\"},[_c('div',{staticClass:\"type-title\"},[_c('i',{staticClass:\"el-icon-caret-bottom\"}),_c('span',[_vm._v(\"给排水\")])]),_c('ul',{staticClass:\"itemList\"},[_c('li',[_c('div'),_c('span',[_vm._v(\"冷/热水供水管\")])]),_c('li',[_c('div'),_c('span',[_vm._v(\"冷/热水回水管\")])]),_c('li',[_c('div'),_c('span',[_vm._v(\"冷却回水管\")])]),_c('li',[_c('div'),_c('span',[_vm._v(\"膨胀水管\")])])])])])}]\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"pipe-list\">\r\n <Input\r\n class=\"baseItemInput\"\r\n :width=\"188\"\r\n iconType=\"search\"\r\n v-model=\"baseItemVal\"\r\n @pressEnter=\"pressEnter\"\r\n />\r\n <ul class=\"type\">\r\n <li class=\"type-item\">\r\n <div class=\"type-title\">\r\n <i class=\"el-icon-caret-bottom\"></i>\r\n <span>空调水</span>\r\n </div>\r\n <ul class=\"itemList\">\r\n <li>\r\n <div></div>\r\n <span>冷/热水供水管</span>\r\n </li>\r\n <li>\r\n <div></div>\r\n <span>冷/热水回水管</span>\r\n </li>\r\n <li>\r\n <div></div>\r\n <span>冷却回水管</span>\r\n </li>\r\n <li>\r\n <div></div>\r\n <span>膨胀水管</span>\r\n </li>\r\n </ul>\r\n </li>\r\n <li class=\"type-item\">\r\n <div class=\"type-title\">\r\n <i class=\"el-icon-caret-bottom\"></i>\r\n <span>空调水</span>\r\n </div>\r\n <ul class=\"itemList\">\r\n <li>\r\n <div></div>\r\n <span>冷/热水供水管</span>\r\n </li>\r\n <li>\r\n <div></div>\r\n <span>冷/热水回水管</span>\r\n </li>\r\n <li>\r\n <div></div>\r\n <span>冷却回水管</span>\r\n </li>\r\n <li>\r\n <div></div>\r\n <span>膨胀水管</span>\r\n </li>\r\n </ul>\r\n </li>\r\n <li class=\"type-item\">\r\n <div class=\"type-title\">\r\n <i class=\"el-icon-caret-bottom\"></i>\r\n <span>给排水</span>\r\n </div>\r\n <ul class=\"itemList\">\r\n <li>\r\n <div></div>\r\n <span>冷/热水供水管</span>\r\n </li>\r\n <li>\r\n <div></div>\r\n <span>冷/热水回水管</span>\r\n </li>\r\n <li>\r\n <div></div>\r\n <span>冷却回水管</span>\r\n </li>\r\n <li>\r\n <div></div>\r\n <span>膨胀水管</span>\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n </div>\r\n</template>\r\n<script>\r\nexport default {\r\n data() {\r\n return {};\r\n },\r\n methods: {},\r\n mounted() {},\r\n};\r\n</script>\r\n<style lang=\"less\" scoped>\r\nul,\r\nli {\r\n margin: 0;\r\n padding: 0;\r\n list-style-type: none;\r\n}\r\n.pipe-list {\r\n width: 100%;\r\n height: 100%;\r\n .type {\r\n padding: 12px;\r\n box-sizing: border-box;\r\n .type-item {\r\n .type-title {\r\n margin: 12px 0 14px 0;\r\n span {\r\n width: 14px;\r\n color: #1f2429;\r\n margin-left: 4px;\r\n }\r\n }\r\n .itemList {\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n flex-wrap: wrap;\r\n li {\r\n width: 60px;\r\n height: 62px;\r\n border-radius: 2px;\r\n cursor: pointer;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n padding: 4px;\r\n box-sizing: border-box;\r\n span {\r\n color: #646a73;\r\n font-size: 10px;\r\n line-height: 11px;\r\n }\r\n div {\r\n width: 32px;\r\n height: 4px;\r\n background: #fa9900;\r\n margin: 6px 0 8px 0;\r\n }\r\n }\r\n li:hover {\r\n background: #f5f6f7;\r\n cursor: pointer;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pipeList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pipeList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./pipeList.vue?vue&type=template&id=6a1e6063&scoped=true&\"\nimport script from \"./pipeList.vue?vue&type=script&lang=js&\"\nexport * from \"./pipeList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./pipeList.vue?vue&type=style&index=0&id=6a1e6063&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6a1e6063\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"equip-list\"},[_c('Input',{staticClass:\"baseItemInput\",attrs:{\"width\":188,\"iconType\":\"search\"},on:{\"pressEnter\":_vm.pressEnter},model:{value:(_vm.baseItemVal),callback:function ($$v) {_vm.baseItemVal=$$v},expression:\"baseItemVal\"}}),_vm._m(0)],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',[_c('li',[_c('div',{staticClass:\"left\"},[_c('div',{staticClass:\"icon\"})]),_c('div',{staticClass:\"right\"},[_c('div',{staticClass:\"t\"},[_vm._v(\"立式水泵\")]),_c('div',{staticClass:\"b\"},[_vm._v(\"W3456112345B33\")])])])])}]\n\nexport { render, staticRenderFns }","<!-- 设备列表 -->\r\n<template>\r\n <div class=\"equip-list\">\r\n <Input\r\n class=\"baseItemInput\"\r\n :width=\"188\"\r\n iconType=\"search\"\r\n v-model=\"baseItemVal\"\r\n @pressEnter=\"pressEnter\"\r\n />\r\n <ul>\r\n <li>\r\n <div class=\"left\">\r\n <div class=\"icon\"></div>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"t\">立式水泵</div>\r\n <div class=\"b\">W3456112345B33</div>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n</template>\r\n<script>\r\nexport default {\r\n data() {\r\n return {};\r\n },\r\n};\r\n</script>\r\n<style lang=\"less\" scoped>\r\nul,\r\nli {\r\n margin: 0;\r\n padding: 0;\r\n list-style-type: none;\r\n}\r\n.equip-list {\r\n width: 100%;\r\n height: 100%;\r\n ul {\r\n li {\r\n width: 100%;\r\n height: 48px;\r\n display: flex;\r\n cursor: pointer;\r\n .left {\r\n width: 28px;\r\n display: flex;\r\n height: 100%;\r\n align-items: center;\r\n .icon {\r\n width: 100%;\r\n height: 28px;\r\n background: red;\r\n border-radius: 50% 50%;\r\n }\r\n }\r\n .right {\r\n padding: 4px;\r\n box-sizing: border-box;\r\n .t {\r\n font-size: 14px;\r\n color: #1f2429;\r\n }\r\n .b {\r\n font-size: 10px;\r\n color: #8d9399;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./equipmentList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./equipmentList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./equipmentList.vue?vue&type=template&id=35449f9e&scoped=true&\"\nimport script from \"./equipmentList.vue?vue&type=script&lang=js&\"\nexport * from \"./equipmentList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./equipmentList.vue?vue&type=style&index=0&id=35449f9e&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"35449f9e\",\n null\n \n)\n\nexport default component.exports","<!--左侧工具栏 -- 图例列表-->\r\n<template>\r\n <div class=\"lengend-list\">\r\n <!-- 基础图例 -->\r\n <div class=\"base-item-list\" v-if=\"chiceStatus==0\">\r\n <Input\r\n class=\"baseItemInput\"\r\n :width=\"188\"\r\n iconType=\"search\"\r\n v-model=\"baseItemVal\"\r\n @pressEnter=\"pressEnter\"\r\n />\r\n <div class=\"lengend-item\" v-for=\"(item,index) in baseEditItems\" :key=\"index\">\r\n <span class=\"legend-title\">{{item.title}}</span>\r\n <div class=\"legend-content\" v-for=\"(itemList,i) in item.itemList\" :key=\"i\">\r\n <div class=\"title\">{{itemList.title}}</div>\r\n <ul>\r\n <li\r\n :class=\"{ 'btn-active': choiceLegend== baseItem.id }\"\r\n v-for=\"(baseItem,k) in itemList.itemList\"\r\n :key=\"k\"\r\n @click=\"drawItem(baseItem.id)\"\r\n :title=\"baseItem.name\"\r\n >\r\n <img class=\"icon\" :src=\"baseItem.icon\" />\r\n <span class=\"iconName\">{{baseItem.name}}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- 设备类 -->\r\n <equipmentList v-if=\"chiceStatus==1\"></equipmentList>\r\n <!-- 管线类 -->\r\n <pipeList v-if=\"chiceStatus==3\"></pipeList>\r\n </div>\r\n</template>\r\n<script>\r\nimport { baseEditItems } from \"./data\";\r\nimport { mapMutations, mapState } from \"vuex\";\r\nimport pipeList from \"./pipeList.vue\";\r\nimport equipmentList from \"./equipmentList.vue\";\r\nexport default {\r\n components: { pipeList, equipmentList },\r\n props: [\"chiceStatus\"],\r\n data() {\r\n return {\r\n baseEditItems,\r\n baseItemVal: \"\", //基础组件搜索\r\n // choiceLegend: \"\" //选中绘制类型\r\n };\r\n },\r\n computed: {\r\n ...mapState([\"choiceLegend\"]),\r\n },\r\n methods: {\r\n ...mapMutations([\"SETCHOICELEHEND\"]),\r\n drawItem(item) {\r\n this.SETCHOICELEHEND(item);\r\n },\r\n pressEnter() {},\r\n },\r\n};\r\n</script>\r\n<style scoped lang=\"less\">\r\n.lengend-list {\r\n width: 100%;\r\n .base-item-list {\r\n .baseItemInput {\r\n margin: 12px 0;\r\n }\r\n .lengend-item {\r\n width: 100%;\r\n .legend-title {\r\n display: block;\r\n font-size: 14px;\r\n height: 38px;\r\n line-height: 38px;\r\n margin-left: 10px;\r\n color: #8d9399;\r\n border-top: 1px solid #eee;\r\n }\r\n .legend-content {\r\n padding: 0 10 10px 10px;\r\n box-sizing: border-box;\r\n .title {\r\n margin-left: 10px;\r\n font-weight: bold;\r\n color: #1f2429;\r\n font-size: 14px;\r\n padding-top: 16px;\r\n padding-bottom: 16px;\r\n }\r\n ul {\r\n display: flex;\r\n flex-wrap: wrap;\r\n border-bottom: 1px solid #eee;\r\n li {\r\n font-size: 12px;\r\n width: 52px;\r\n height: 52px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-direction: column;\r\n padding: 4px;\r\n box-sizing: border-box;\r\n margin: 0 10px 16px 10px;\r\n .icon {\r\n width: 28px;\r\n height: 28px;\r\n // background: red;\r\n }\r\n .iconName {\r\n width: 100%;\r\n display: flex;\r\n justify-content: center;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n }\r\n cursor: pointer;\r\n }\r\n li:hover {\r\n background: #f5f6f7;\r\n }\r\n .btn-active {\r\n background: #e1f2ff !important;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./legendList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./legendList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./legendList.vue?vue&type=template&id=3f760d04&scoped=true&\"\nimport script from \"./legendList.vue?vue&type=script&lang=js&\"\nexport * from \"./legendList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./legendList.vue?vue&type=style&index=0&id=3f760d04&scoped=true&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3f760d04\",\n null\n \n)\n\nexport default component.exports","<!-- 左侧工具栏 -->\r\n<template>\r\n <div class=\"left-tool-bar\">\r\n <div class=\"btn-list\">\r\n <ul>\r\n <li\r\n v-for=\"(item,index) in leftData\"\r\n :key=\"index\"\r\n :class=\"{ 'btn-active': chiceStatus==index }\"\r\n @click=\"openTool(index)\"\r\n >\r\n <img\r\n width=\"20px\"\r\n height=\"20px\"\r\n :src=\"chiceStatus==index ? item.activeIcon : item.icon\"\r\n alt\r\n />\r\n <span>{{item.name}}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <el-drawer\r\n size=\"220px\"\r\n :with-header=\"false\"\r\n :destroy-on-close=\"true\"\r\n :visible.sync=\"drawer\"\r\n :direction=\"direction\"\r\n :modal=\"false\"\r\n :modal-append-to-body=\"false\"\r\n :show-close=\"true\"\r\n :before-close=\"handleClose\"\r\n :wrapperClosable=\"false\"\r\n >\r\n <legendList :chiceStatus=\"chiceStatus\"></legendList>\r\n </el-drawer>\r\n </div>\r\n</template>\r\n<script>\r\nconst leftData = [\r\n {\r\n id: \"tongyong\",\r\n name: \"通用\",\r\n icon: require(\"./../../assets/images/leftImgs/tongyong.png\"),\r\n activeIcon: require(\"./../../assets/images/leftImgs/tongyongactive.png\"),\r\n },\r\n {\r\n id: \"equipment\",\r\n name: \"设备\",\r\n icon: require(\"./../../assets/images/leftImgs/equipment.png\"),\r\n activeIcon: require(\"./../../assets/images/leftImgs/equipmentactive.png\"),\r\n },\r\n {\r\n id: \"equipList\",\r\n name: \"设备组\",\r\n icon: require(\"./../../assets/images/leftImgs/equipList.png\"),\r\n activeIcon: require(\"./../../assets/images/leftImgs/equipListActive.png\"),\r\n },\r\n {\r\n id: \"guanxian\",\r\n name: \"管线\",\r\n icon: require(\"./../../assets/images/leftImgs/guanxian.png\"),\r\n activeIcon: require(\"./../../assets/images/leftImgs/guanxianactive.png\"),\r\n },\r\n {\r\n id: \"space\",\r\n name: \"空间\",\r\n icon: require(\"./../../assets/images/leftImgs/space.png\"),\r\n activeIcon: require(\"./../../assets/images/leftImgs/spaceactive.png\"),\r\n },\r\n {\r\n id: \"same\",\r\n name: \"同类\",\r\n icon: require(\"./../../assets/images/leftImgs/same.png\"),\r\n activeIcon: require(\"./../../assets/images/leftImgs/sameactive.png\"),\r\n },\r\n];\r\nimport legendList from \"./leftToolBar/legendList.vue\";\r\nimport { mapMutations } from \"vuex\";\r\nexport default {\r\n components: { legendList },\r\n data() {\r\n return {\r\n drawer: false,\r\n chiceStatus: -1, //选中按钮状态\r\n direction: \"ltr\",\r\n leftData,\r\n };\r\n },\r\n methods: {\r\n ...mapMutations([\"SETCHOICELEHEND\"]),\r\n handleClose() {\r\n this.drawer = false;\r\n },\r\n openTool(val) {\r\n if (val != this.chiceStatus) {\r\n this.chiceStatus = val;\r\n if (this.drawer) {\r\n this.drawer = false;\r\n 4;\r\n setTimeout(() => {\r\n this.drawer = true;\r\n }, 300);\r\n } else {\r\n this.drawer = true;\r\n }\r\n } else {\r\n this.drawer = !this.drawer;\r\n this.chiceStatus = -1;\r\n }\r\n },\r\n choiceStatus() {\r\n this.chiceStatus = 0;\r\n this.drawer = false;\r\n this.SETCHOICELEHEND(\"\");\r\n },\r\n },\r\n};\r\n</script>\r\n<style lang=\"less\" scoped>\r\nul,\r\nli {\r\n margin: 0;\r\n padding: 0;\r\n list-style-type: none;\r\n}\r\n.left-tool-bar {\r\n background: rgba(255, 255, 255, 1);\r\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\r\n box-sizing: border-box;\r\n height: calc(~\"100% - 2px\");\r\n .btn-list {\r\n height: 100%;\r\n ul {\r\n width: 54px;\r\n height: 100%;\r\n border-top: 1px solid #eee;\r\n border-right: 1px solid #eee;\r\n li {\r\n width: 100%;\r\n height: 58px;\r\n border-bottom: 1px solid #eee;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n flex-direction: column;\r\n cursor: pointer;\r\n span {\r\n color: #8d9399;\r\n font-size: 12px;\r\n }\r\n }\r\n li:hover {\r\n background: #e4e5e7;\r\n }\r\n .btn-active {\r\n background: #e1f2ff !important;\r\n span {\r\n color: #0091ff;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n.el-drawer__wrapper {\r\n left: 64px;\r\n top: 50px;\r\n // background: rgba(255, 255, 255, 1);\r\n // box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\r\n width: 242px;\r\n}\r\n</style>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./leftToolBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./leftToolBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./leftToolBar.vue?vue&type=template&id=29693e14&scoped=true&\"\nimport script from \"./leftToolBar.vue?vue&type=script&lang=js&\"\nexport * from \"./leftToolBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./leftToolBar.vue?vue&type=style&index=0&id=29693e14&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"29693e14\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"right-property-bar\"},[_c('property')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"propertys\"},[_c('baseTextProVue',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.itemType == 'BaseText' || _vm.itemType == 'BaseExplain' ),expression:\"itemType == 'BaseText' || itemType == 'BaseExplain' \"}],attrs:{\"strokeColor\":_vm.strokeColor,\"fontSize\":_vm.fontSize,\"textMsg\":_vm.textMsg,\"backgroundColor\":_vm.backgroundColor}}),_c('baseLinePro',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.itemType == 'BaseLine'),expression:\"itemType == 'BaseLine'\"}],attrs:{\"strokeColor\":_vm.strokeColor,\"lineStyle\":_vm.lineStyle,\"lineWidth\":_vm.lineWidth}}),_c('BaseGraphy',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.itemType == 'BaseRect' || _vm.itemType == 'BaseTriangle' || _vm.itemType == 'BaseArrow'|| _vm.itemType == 'BaseCircle'),expression:\"itemType == 'BaseRect' || itemType == 'BaseTriangle' || itemType == 'BaseArrow'|| itemType == 'BaseCircle'\"}],attrs:{\"lineStyle\":_vm.lineStyle,\"lineWidth\":_vm.lineWidth,\"strokeColor\":_vm.strokeColor,\"fillColor\":_vm.fillColor,\"Url\":_vm.Url,\"Width\":_vm.Width,\"Height\":_vm.Height}}),_c('BaseImagePro',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.itemType == 'BaseImage'),expression:\"itemType == 'BaseImage'\"}],attrs:{\"lineStyle\":_vm.lineStyle,\"lineWidth\":_vm.lineWidth,\"strokeColor\":_vm.strokeColor,\"Url\":_vm.Url,\"Width\":_vm.Width,\"Height\":_vm.Height}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"base-text\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"属性\")]),_c('ul',[_c('li',[_c('div',{staticClass:\"small-title\"},[_vm._v(\"边框\")]),_c('div',{staticClass:\"property\"},[_c('div',{staticClass:\"color-box\"},[_c('div',{staticClass:\"cololorSelect\"},[_c('el-color-picker',{staticClass:\"fix-box-1\",attrs:{\"show-alpha\":\"\"},on:{\"change\":_vm.changeColor},model:{value:(_vm.color),callback:function ($$v) {_vm.color=$$v},expression:\"color\"}})],1),_c('span',[_vm._v(\"颜色\")])]),_c('div',{staticClass:\"line-width\"},[_c('el-input-number',{staticStyle:{\"width\":\"80px\"},attrs:{\"controls-position\":\"right\",\"size\":\"mini\",\"min\":1,\"max\":20,\"maxlength\":100},on:{\"change\":_vm.changeFontSize},model:{value:(_vm.fontSize),callback:function ($$v) {_vm.fontSize=$$v},expression:\"fontSize\"}}),_c('span',[_vm._v(\"字号\")])],1),_c('div',{staticClass:\"color-box\"},[_c('div',{staticClass:\"cololorSelect\"},[_c('el-color-picker',{staticClass:\"fix-box-1\",attrs:{\"show-alpha\":\"\"},on:{\"change\":_vm.changeBackground},model:{value:(_vm.backgroundcolor),callback:function ($$v) {_vm.backgroundcolor=$$v},expression:\"backgroundcolor\"}})],1),_c('span',[_vm._v(\"背景颜色\")])])])]),_c('li',[_c('el-input',{attrs:{\"type\":\"textarea\",\"autosize\":{ minRows: 2, maxRows: 4}},on:{\"input\":_vm.changeText},model:{value:(_vm.text),callback:function ($$v) {_vm.text=$$v},expression:\"text\"}}),_c('span',[_vm._v(\"文本\")])],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nconst bus = new Vue()\r\nexport default bus","<!-- 基本的文本属性框 -->\r\n<template>\r\n <div class=\"base-text\">\r\n <div class=\"title\">属性</div>\r\n <ul>\r\n <li>\r\n <div class=\"small-title\">边框</div>\r\n <div class=\"property\">\r\n <div class=\"color-box\">\r\n <div class=\"cololorSelect\">\r\n <el-color-picker show-alpha @change=\"changeColor\" class=\"fix-box-1\" v-model=\"color\"></el-color-picker>\r\n </div>\r\n <span>颜色</span>\r\n </div>\r\n <div class=\"line-width\">\r\n <el-input-number\r\n style=\"width:80px\"\r\n v-model=\"fontSize\"\r\n controls-position=\"right\"\r\n @change=\"changeFontSize\"\r\n size=\"mini\"\r\n :min=\"1\"\r\n :max=\"20\"\r\n :maxlength=\"100\"\r\n ></el-input-number>\r\n <span>字号</span>\r\n </div>\r\n <div class=\"color-box\">\r\n <div class=\"cololorSelect\">\r\n <el-color-picker\r\n @change=\"changeBackground\"\r\n show-alpha\r\n class=\"fix-box-1\"\r\n v-model=\"backgroundcolor\"\r\n ></el-color-picker>\r\n </div>\r\n <span>背景颜色</span>\r\n </div>\r\n </div>\r\n </li>\r\n <li>\r\n <el-input\r\n type=\"textarea\"\r\n @input=\"changeText\"\r\n :autosize=\"{ minRows: 2, maxRows: 4}\"\r\n v-model=\"text\"\r\n ></el-input>\r\n <span>文本</span>\r\n </li>\r\n </ul>\r\n </div>\r\n</template>\r\n<script>\r\nimport bus from \"@/bus/bus\";\r\nexport default {\r\n props: [\"strokeColor\", \"fontSize\", \"backgroundColor\", \"textMsg\"],\r\n data() {\r\n return {\r\n size: 0, //font-size\r\n text: \"\", //文本\r\n color: \"\",\r\n backgroundcolor: \"\",\r\n borderLineOption: [\r\n {\r\n id: \"solid\",\r\n src: require(\"@/assets/images/solidLine.png\"),\r\n },\r\n {\r\n id: \"dashed\",\r\n src: require(\"@/assets/images/dashedLine.png\"),\r\n },\r\n {\r\n id: \"dotted\",\r\n src: require(\"@/assets/images/dotLine.png\"),\r\n },\r\n ],\r\n borderStyle: \"solid\",\r\n };\r\n },\r\n methods: {\r\n // 改变文字\r\n changeText(val) {\r\n bus.$emit(\"updateStyle\", \"text\", val);\r\n },\r\n // 改变颜色\r\n changeColor(val) {\r\n bus.$emit(\"updateStyle\", \"strokeColor\", val);\r\n },\r\n // 改变背景颜色\r\n changeBackground(val) {\r\n bus.$emit(\"updateStyle\", \"backgroundColor\", val);\r\n },\r\n // 改变字体大小\r\n changeFontSize(val) {\r\n bus.$emit(\"updateStyle\", \"font\", val);\r\n },\r\n },\r\n mounted() {\r\n // console.log(Select)\r\n },\r\n watch: {\r\n strokeColor(val) {\r\n this.color = val;\r\n },\r\n fontSize(val) {\r\n this.size = val;\r\n },\r\n backgroundColor(val) {\r\n this.backgroundcolor = val;\r\n },\r\n\r\n textMsg(val) {\r\n this.text = val;\r\n },\r\n },\r\n};\r\n</script>\r\n<style lang=\"less\" scoped>\r\nul,\r\nli {\r\n margin: 0;\r\n padding: 0;\r\n list-style-type: none;\r\n}\r\n.base-text {\r\n .title {\r\n height: 47px;\r\n border-bottom: 1px solid #979797;\r\n color: #646c73;\r\n font-size: 16px;\r\n padding-left: 12px;\r\n box-sizing: border-box;\r\n }\r\n ul {\r\n width: calc(~\"100% - 24px\");\r\n margin: -1px 12px 0 12px;\r\n li {\r\n border-top: 1px solid #979797;\r\n .small-title {\r\n font-size: 12px;\r\n color: #8d9399;\r\n margin: 12px 0;\r\n }\r\n .property {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-around;\r\n .color-box {\r\n display: flex;\r\n align-items: center;\r\n flex-direction: column;\r\n .cololorSelect {\r\n width: 32px;\r\n height: 20px;\r\n overflow: hidden;\r\n position: relative;\r\n margin: 4px 0;\r\n .fix-box-1 {\r\n margin-top: -8px;\r\n margin-left: -8px;\r\n /deep/ .el-color-picker__trigger {\r\n width: 200px;\r\n height: 200px;\r\n }\r\n }\r\n }\r\n }\r\n .line-width {\r\n display: flex;\r\n align-items: center;\r\n flex-direction: column;\r\n margin-left: 8px;\r\n position: relative;\r\n }\r\n span {\r\n font-size: 12px;\r\n color: #1f2429;\r\n margin-top: 4px;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./baseTextPro.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./baseTextPro.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./baseTextPro.vue?vue&type=template&id=d7a9815e&scoped=true&\"\nimport script from \"./baseTextPro.vue?vue&type=script&lang=js&\"\nexport * from \"./baseTextPro.vue?vue&type=script&lang=js&\"\nimport style0 from \"./baseTextPro.vue?vue&type=style&index=0&id=d7a9815e&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d7a9815e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"base-line\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"属性\")]),_c('ul',[_c('li',[_c('div',{staticClass:\"small-title\"},[_vm._v(\"边框\")]),_c('div',{staticClass:\"property\"},[_c('div',{staticClass:\"color-box\"},[_c('div',{staticClass:\"cololorSelect\"},[_c('el-color-picker',{staticClass:\"fix-box-1\",attrs:{\"show-alpha\":\"\"},on:{\"change\":_vm.changeColor},model:{value:(_vm.color),callback:function ($$v) {_vm.color=$$v},expression:\"color\"}})],1),_c('span',[_vm._v(\"颜色\")])]),_c('div',{staticClass:\"line-width\"},[_c('el-input-number',{staticStyle:{\"width\":\"80px\"},attrs:{\"controls-position\":\"right\",\"size\":\"mini\",\"min\":1,\"max\":20,\"maxlength\":100},on:{\"change\":_vm.changeWidth},model:{value:(_vm.linewidth),callback:function ($$v) {_vm.linewidth=$$v},expression:\"linewidth\"}}),_c('span',[_vm._v(\"线宽\")])],1),_c('div',{staticClass:\"line-width\"},[_c('a-select',{staticStyle:{\"width\":\"80px\"},attrs:{\"default-value\":_vm.borderLineOption[0].id},on:{\"change\":_vm.changeLineStyle},model:{value:(_vm.linestyle),callback:function ($$v) {_vm.linestyle=$$v},expression:\"linestyle\"}},_vm._l((_vm.borderLineOption),function(item){return _c('a-select-option',{key:item.id,attrs:{\"label\":item.src,\"value\":item.id}},[_c('img',{attrs:{\"src\":item.src,\"alt\":\"\",\"width\":\"60\"}})])}),1),_c('span',[_vm._v(\"线型\")])],1)])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!-- 基本线的属性框 -->\r\n<template>\r\n <div class=\"base-line\">\r\n <div class=\"title\">属性</div>\r\n <ul>\r\n <li>\r\n <div class=\"small-title\">边框</div>\r\n <div class=\"property\">\r\n <div class=\"color-box\">\r\n <div class=\"cololorSelect\">\r\n <el-color-picker show-alpha @change=\"changeColor\" class=\"fix-box-1\" v-model=\"color\"></el-color-picker>\r\n </div>\r\n <span>颜色</span>\r\n </div>\r\n <div class=\"line-width\">\r\n <el-input-number\r\n style=\"width:80px\"\r\n v-model=\"linewidth\"\r\n controls-position=\"right\"\r\n @change=\"changeWidth\"\r\n size=\"mini\"\r\n :min=\"1\"\r\n :max=\"20\"\r\n :maxlength=\"100\"\r\n ></el-input-number>\r\n <span>线宽</span>\r\n </div>\r\n <div class=\"line-width\">\r\n <a-select\r\n style=\"width: 80px\"\r\n v-model=\"linestyle\"\r\n :default-value=\"borderLineOption[0].id\"\r\n @change=\"changeLineStyle\"\r\n >\r\n <a-select-option\r\n v-for=\"item in borderLineOption\"\r\n :key=\"item.id\"\r\n :label=\"item.src\"\r\n :value=\"item.id\"\r\n >\r\n <img :src=\"item.src\" alt width=\"60\" />\r\n </a-select-option>\r\n </a-select>\r\n <span>线型</span>\r\n </div>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n</template>\r\n<script>\r\nimport bus from \"@/bus/bus\";\r\nexport default {\r\n props: [\"strokeColor\", \"lineStyle\", \"lineWidth\"],\r\n data() {\r\n return {\r\n color: \"\",\r\n linewidth: \"\",\r\n linestyle: \"\",\r\n borderLineOption: [\r\n {\r\n id: \"Solid\",\r\n src: require(\"@/assets/images/solidLine.png\"),\r\n },\r\n {\r\n id: \"Dashed\",\r\n src: require(\"@/assets/images/dashedLine.png\"),\r\n },\r\n {\r\n id: \"Dotted\",\r\n src: require(\"@/assets/images/dotLine.png\"),\r\n },\r\n ],\r\n };\r\n },\r\n methods: {\r\n // 改变线宽\r\n changeWidth(val) {\r\n bus.$emit(\"updateStyle\", \"lineWidth\", val);\r\n },\r\n // 改变颜色\r\n changeColor(val) {\r\n bus.$emit(\"updateStyle\", \"strokeColor\", val);\r\n },\r\n // 改变线样式\r\n changeLineStyle(val) {\r\n bus.$emit(\"updateStyle\", \"lineStyle\", val);\r\n },\r\n },\r\n mounted() {\r\n // console.log(Select)\r\n },\r\n watch: {\r\n strokeColor(val) {\r\n this.color = val;\r\n },\r\n lineWidth(val) {\r\n this.linewidth = val;\r\n },\r\n lineStyle(val) {\r\n this.linestyle = val;\r\n },\r\n },\r\n};\r\n</script>\r\n<style lang=\"less\" scoped>\r\nul,\r\nli {\r\n margin: 0;\r\n padding: 0;\r\n list-style-type: none;\r\n}\r\n.base-line {\r\n .title {\r\n height: 47px;\r\n border-bottom: 1px solid #979797;\r\n color: #646c73;\r\n font-size: 16px;\r\n padding-left: 12px;\r\n box-sizing: border-box;\r\n }\r\n ul {\r\n width: calc(~\"100% - 24px\");\r\n margin: -1px 12px 0 12px;\r\n li {\r\n border-top: 1px solid #979797;\r\n .small-title {\r\n font-size: 12px;\r\n color: #8d9399;\r\n margin: 12px 0;\r\n }\r\n .property {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-around;\r\n .color-box {\r\n display: flex;\r\n align-items: center;\r\n flex-direction: column;\r\n .cololorSelect {\r\n width: 32px;\r\n height: 20px;\r\n overflow: hidden;\r\n position: relative;\r\n margin: 4px 0;\r\n .fix-box-1 {\r\n margin-top: -8px;\r\n margin-left: -8px;\r\n /deep/ .el-color-picker__trigger {\r\n width: 200px;\r\n height: 200px;\r\n }\r\n }\r\n }\r\n }\r\n .line-width {\r\n display: flex;\r\n align-items: center;\r\n flex-direction: column;\r\n margin-left: 8px;\r\n position: relative;\r\n }\r\n span {\r\n font-size: 12px;\r\n color: #1f2429;\r\n margin-top: 4px;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./baseLinePro.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./baseLinePro.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./baseLinePro.vue?vue&type=template&id=12c7c60f&scoped=true&\"\nimport script from \"./baseLinePro.vue?vue&type=script&lang=js&\"\nexport * from \"./baseLinePro.vue?vue&type=script&lang=js&\"\nimport style0 from \"./baseLinePro.vue?vue&type=style&index=0&id=12c7c60f&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"12c7c60f\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"base-graphy\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"属性\")]),_c('ul',[_c('li',[_c('div',{staticClass:\"small-title\"},[_vm._v(\"尺寸大小\")]),_c('div',{staticClass:\"property\"},[_c('div',[_c('span',[_vm._v(\"W\")]),_c('el-input',{staticStyle:{\"width\":\"74px\",\"margin-left\":\"6px\"},attrs:{\"size\":\"mini\",\"placeholder\":\"请输入内容\"},model:{value:(_vm.width),callback:function ($$v) {_vm.width=$$v},expression:\"width\"}})],1),_c('div',[_c('span',[_vm._v(\"H\")]),_c('el-input',{staticStyle:{\"width\":\"74px\",\"margin-left\":\"6px\"},attrs:{\"size\":\"mini\",\"placeholder\":\"请输入内容\"},model:{value:(_vm.height),callback:function ($$v) {_vm.height=$$v},expression:\"height\"}})],1),_c('i',{staticClass:\"el-icon-link\"})])]),_c('li',[_c('div',{staticClass:\"small-title\"},[_vm._v(\"边框\")]),_c('div',{staticClass:\"property\"},[_c('div',{staticClass:\"color-box\"},[_c('div',{staticClass:\"cololorSelect\"},[_c('el-color-picker',{staticClass:\"fix-box-1\",attrs:{\"show-alpha\":\"\"},on:{\"change\":_vm.changeColor},model:{value:(_vm.color),callback:function ($$v) {_vm.color=$$v},expression:\"color\"}})],1),_c('span',[_vm._v(\"颜色\")])]),_c('div',{staticClass:\"line-width\"},[_c('el-input-number',{staticStyle:{\"width\":\"80px\"},attrs:{\"controls-position\":\"right\",\"size\":\"mini\",\"min\":1,\"max\":20,\"maxlength\":100},on:{\"change\":_vm.changeLinewidth},model:{value:(_vm.linewidth),callback:function ($$v) {_vm.linewidth=$$v},expression:\"linewidth\"}}),_c('span',[_vm._v(\"线宽\")])],1),_c('div',{staticClass:\"line-width\"},[_c('a-select',{staticStyle:{\"width\":\"80px\"},attrs:{\"default-value\":_vm.borderLineOption[0].id},on:{\"change\":_vm.changeLineStyle},model:{value:(_vm.linestyle),callback:function ($$v) {_vm.linestyle=$$v},expression:\"linestyle\"}},_vm._l((_vm.borderLineOption),function(item){return _c('a-select-option',{key:item.id,attrs:{\"label\":item.src,\"value\":item.id}},[_c('img',{attrs:{\"src\":item.src,\"alt\":\"\",\"width\":\"60\"}})])}),1),_c('span',[_vm._v(\"线形\")])],1)])]),_c('li',[_c('div',{staticClass:\"small-title\"},[_vm._v(\"填充\")]),_c('div',{staticClass:\"property property-push\"},[_c('div',{staticClass:\"color-box\"},[_c('div',{staticClass:\"cololorSelect\"},[_c('el-color-picker',{staticClass:\"fix-box-1\",attrs:{\"show-alpha\":\"\"},on:{\"change\":_vm.changeFillcolor},model:{value:(_vm.fillColor),callback:function ($$v) {_vm.fillColor=$$v},expression:\"fillColor\"}})],1),_c('span',[_vm._v(\"颜色\")])])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!-- 基本图形的属性框 -->\r\n<template>\r\n <div class=\"base-graphy\">\r\n <div class=\"title\">属性</div>\r\n <ul>\r\n <li>\r\n <div class=\"small-title\">尺寸大小</div>\r\n <div class=\"property\">\r\n <div>\r\n <span>W</span>\r\n <el-input\r\n style=\"width:74px;margin-left:6px\"\r\n size=\"mini\"\r\n v-model=\"width\"\r\n placeholder=\"请输入内容\"\r\n ></el-input>\r\n </div>\r\n <div>\r\n <span>H</span>\r\n <el-input\r\n style=\"width:74px;margin-left:6px\"\r\n size=\"mini\"\r\n v-model=\"height\"\r\n placeholder=\"请输入内容\"\r\n ></el-input>\r\n </div>\r\n <i class=\"el-icon-link\"></i>\r\n </div>\r\n </li>\r\n <li>\r\n <div class=\"small-title\">边框</div>\r\n <div class=\"property\">\r\n <div class=\"color-box\">\r\n <div class=\"cololorSelect\">\r\n <el-color-picker @change=\"changeColor\" show-alpha class=\"fix-box-1\" v-model=\"color\"></el-color-picker>\r\n </div>\r\n <span>颜色</span>\r\n </div>\r\n <div class=\"line-width\">\r\n <el-input-number\r\n style=\"width:80px\"\r\n v-model=\"linewidth\"\r\n controls-position=\"right\"\r\n @change=\"changeLinewidth\"\r\n size=\"mini\"\r\n :min=\"1\"\r\n :max=\"20\"\r\n :maxlength=\"100\"\r\n ></el-input-number>\r\n <span>线宽</span>\r\n </div>\r\n <div class=\"line-width\">\r\n <a-select\r\n style=\"width: 80px\"\r\n v-model=\"linestyle\"\r\n :default-value=\"borderLineOption[0].id\"\r\n @change=\"changeLineStyle\"\r\n >\r\n <a-select-option\r\n v-for=\"item in borderLineOption\"\r\n :key=\"item.id\"\r\n :label=\"item.src\"\r\n :value=\"item.id\"\r\n >\r\n <img :src=\"item.src\" alt width=\"60\" />\r\n </a-select-option>\r\n </a-select>\r\n <span>线形</span>\r\n </div>\r\n </div>\r\n </li>\r\n <li>\r\n <div class=\"small-title\">填充</div>\r\n <div class=\"property property-push\">\r\n <div class=\"color-box\">\r\n <div class=\"cololorSelect\">\r\n <el-color-picker\r\n show-alpha\r\n @change=\"changeFillcolor\"\r\n class=\"fix-box-1\"\r\n v-model=\"fillColor\"\r\n ></el-color-picker>\r\n </div>\r\n <span>颜色</span>\r\n </div>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n</template>\r\n<script>\r\nimport bus from \"@/bus/bus\";\r\nexport default {\r\n props: [\r\n \"strokeColor\",\r\n \"lineStyle\",\r\n \"lineWidth\",\r\n \"Width\",\r\n \"Height\",\r\n \"fillColor\",\r\n ],\r\n data() {\r\n return {\r\n width: 0,\r\n height: 0,\r\n color: \"#cccccc\", //颜色\r\n linewidth: 1,\r\n borderLineOption: [\r\n {\r\n id: \"Solid\",\r\n src: require(\"@/assets/images/solidLine.png\"),\r\n },\r\n {\r\n id: \"Dashed\",\r\n src: require(\"@/assets/images/dashedLine.png\"),\r\n },\r\n {\r\n id: \"Dotted\",\r\n src: require(\"@/assets/images/dotLine.png\"),\r\n },\r\n ],\r\n linestyle: \"Solid\",\r\n };\r\n },\r\n methods: {\r\n changeHeight(val) {\r\n bus.$emit(\"updateStyle\", \"height\", val);\r\n },\r\n changeWidth(val) {\r\n bus.$emit(\"updateStyle\", \"width\", val);\r\n },\r\n changeLinewidth(val) {\r\n bus.$emit(\"updateStyle\", \"lineWidth\", val);\r\n },\r\n changeFillcolor(val) {\r\n bus.$emit(\"updateStyle\", \"fillColor\", val);\r\n },\r\n changeColor(val) {\r\n bus.$emit(\"updateStyle\", \"strokeColor\", val);\r\n },\r\n // 改变线样式\r\n changeLineStyle(val) {\r\n bus.$emit(\"updateStyle\", \"lineStyle\", val);\r\n },\r\n },\r\n watch: {\r\n strokeColor(val) {\r\n this.color = val;\r\n },\r\n lineWidth(val) {\r\n this.linewidth = val;\r\n },\r\n lineStyle(val) {\r\n this.linestyle = val;\r\n },\r\n Width(val) {\r\n this.width = val;\r\n },\r\n Height(val) {\r\n this.height = val;\r\n },\r\n fillColor(val) {\r\n this.fillcolor = val;\r\n },\r\n },\r\n mounted() {\r\n // console.log(Select)\r\n },\r\n};\r\n</script>\r\n<style lang=\"less\" scoped>\r\nul,\r\nli {\r\n margin: 0;\r\n padding: 0;\r\n list-style-type: none;\r\n}\r\n.base-graphy {\r\n .title {\r\n height: 47px;\r\n border-bottom: 1px solid #979797;\r\n color: #646c73;\r\n font-size: 16px;\r\n padding-left: 12px;\r\n box-sizing: border-box;\r\n }\r\n ul {\r\n width: calc(~\"100% - 24px\");\r\n margin: -1px 12px 0 12px;\r\n li {\r\n border-top: 1px solid #979797;\r\n margin-bottom: 16px;\r\n .small-title {\r\n font-size: 12px;\r\n color: #8d9399;\r\n margin: 12px 0;\r\n }\r\n .property {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-around;\r\n .color-box {\r\n display: flex;\r\n align-items: center;\r\n flex-direction: column;\r\n .cololorSelect {\r\n width: 32px;\r\n height: 20px;\r\n overflow: hidden;\r\n position: relative;\r\n margin: 4px 0;\r\n .fix-box-1 {\r\n margin-top: -8px;\r\n margin-left: -8px;\r\n /deep/ .el-color-picker__trigger {\r\n width: 200px;\r\n height: 200px;\r\n }\r\n }\r\n }\r\n }\r\n .line-width {\r\n display: flex;\r\n align-items: center;\r\n flex-direction: column;\r\n margin-left: 8px;\r\n position: relative;\r\n }\r\n span {\r\n font-size: 12px;\r\n color: #1f2429;\r\n margin-top: 4px;\r\n }\r\n }\r\n .property-push {\r\n justify-content: start;\r\n .color-box {\r\n margin-left: 8px;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseGraphy.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseGraphy.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BaseGraphy.vue?vue&type=template&id=08fff782&scoped=true&\"\nimport script from \"./BaseGraphy.vue?vue&type=script&lang=js&\"\nexport * from \"./BaseGraphy.vue?vue&type=script&lang=js&\"\nimport style0 from \"./BaseGraphy.vue?vue&type=style&index=0&id=08fff782&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"08fff782\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"base-image\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"属性\")]),_c('ul',[_c('li',[_c('div',{staticClass:\"small-title\"},[_vm._v(\"尺寸大小\")]),_c('div',{staticClass:\"property\"},[_c('div',[_c('span',[_vm._v(\"W\")]),_c('el-input',{staticStyle:{\"width\":\"74px\",\"margin-left\":\"6px\"},attrs:{\"size\":\"mini\",\"placeholder\":\"请输入内容\"},on:{\"input\":_vm.changeWidth},model:{value:(_vm.width),callback:function ($$v) {_vm.width=$$v},expression:\"width\"}})],1),_c('div',[_c('span',[_vm._v(\"H\")]),_c('el-input',{staticStyle:{\"width\":\"74px\",\"margin-left\":\"6px\"},attrs:{\"size\":\"mini\",\"placeholder\":\"请输入内容\"},on:{\"input\":_vm.changeHeight},model:{value:(_vm.height),callback:function ($$v) {_vm.height=$$v},expression:\"height\"}})],1),_c('el-upload',{staticClass:\"avatar-uploader\",attrs:{\"action\":\"https://jsonplaceholder.typicode.com/posts/\",\"show-file-list\":false,\"before-upload\":_vm.beforeAvatarUpload}},[_c('i',{staticClass:\"el-icon-link\"})])],1)]),_c('li',[_c('div',{staticClass:\"small-title\"},[_vm._v(\"边框\")]),_c('div',{staticClass:\"property\"},[_c('div',{staticClass:\"color-box\"},[_c('div',{staticClass:\"cololorSelect\"},[_c('el-color-picker',{staticClass:\"fix-box-1\",attrs:{\"show-alpha\":\"\"},on:{\"change\":_vm.changeColor},model:{value:(_vm.color),callback:function ($$v) {_vm.color=$$v},expression:\"color\"}})],1),_c('span',[_vm._v(\"颜色\")])]),_c('div',{staticClass:\"line-width\"},[_c('el-input-number',{staticStyle:{\"width\":\"80px\"},attrs:{\"controls-position\":\"right\",\"size\":\"mini\",\"min\":1,\"max\":20,\"maxlength\":100},on:{\"change\":_vm.changeLineWidth},model:{value:(_vm.linewidth),callback:function ($$v) {_vm.linewidth=$$v},expression:\"linewidth\"}}),_c('span',[_vm._v(\"线宽\")])],1),_c('div',{staticClass:\"line-width\"},[_c('a-select',{staticStyle:{\"width\":\"80px\"},attrs:{\"default-value\":_vm.borderLineOption[0].id},on:{\"change\":_vm.changeLineStyle},model:{value:(_vm.linestyle),callback:function ($$v) {_vm.linestyle=$$v},expression:\"linestyle\"}},_vm._l((_vm.borderLineOption),function(item){return _c('a-select-option',{key:item.id,attrs:{\"label\":item.src,\"value\":item.id}},[_c('img',{attrs:{\"src\":item.src,\"alt\":\"\",\"width\":\"60\"}})])}),1),_c('span',[_vm._v(\"线型\")])],1)])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","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}","import axios from \"axios\"\r\nimport store from \"@/store\"\r\nimport { MessageBox } from \"element-ui\"\r\n\r\nconst CancelToken = axios.CancelToken\r\nlet cancel\r\n\r\n// 创建axios实例\r\nconst axiosservice = axios.create({\r\n timeout: 30000, // 请求超时时间\r\n retry: 4, //重新请求次数\r\n retryDelay: 1000, //重新请求的间隔\r\n credentials: true, // 接口每次请求会跨域携带cookie\r\n cancelToken: new CancelToken(function executor(c) {\r\n // executor 函数接收一个 cancel 函数作为参数\r\n cancel = c\r\n }),\r\n})\r\n\r\naxiosservice.interceptors.request.use(\r\n (config) => {\r\n config.withCredentials = true // 允许携带token ,这个是解决跨域产生的相关问题\r\n config.headers = {\r\n ProjectID: '1', //默认false,当预览开启的时候是true\r\n }\r\n return config\r\n },\r\n (error) => {\r\n return Promise.reject(error)\r\n }\r\n)\r\n\r\naxiosservice.interceptors.response.use(\r\n function (res) {\r\n //在这里对返回的数据进行处理\r\n //console.log('axios interceptors res = ', res.status, res)\r\n const resp = res.data\r\n if (resp.result === \"unauthc\") {\r\n store.commit(\"logined\", false)\r\n MessageBox.confirm(\"未登陆或登陆信息已失效, 是否重新登陆?\", \"提示\", {\r\n confirmButtonText: \"确定\",\r\n cancelButtonText: \"取消\",\r\n type: \"error\",\r\n })\r\n .then((resp) => {\r\n //console.log('--------------------------- confirm', resp)\r\n //router.push('/login')\r\n window.location.reload()\r\n })\r\n .catch((error) => {\r\n //console.log('--------------------------- cancel', error)\r\n console.log(\"\")\r\n })\r\n } else if (resp.result == \"unauthorization\") {\r\n MessageBox.alert(\"无权操作\", { title: \"警告\", type: \"error\" })\r\n }\r\n //console.log('axios interceptors resp2 = ', resp.success, resp.errorCode, resp.errorMessage, res)\r\n return res\r\n },\r\n function (err) {\r\n //Do something with response error\r\n console.log(\"axios interceptors err = \", err)\r\n return Promise.reject(err)\r\n }\r\n)\r\n\r\n/* 下载方法 */\r\nfunction downFile(blob, fileName) {\r\n // 非IE下载\r\n if (\"download\" in document.createElement(\"a\")) {\r\n const link = document.createElement(\"a\")\r\n link.href = window.URL.createObjectURL(blob) // 创建下载的链接\r\n link.download = fileName // 下载后文件名\r\n link.style.display = \"none\"\r\n document.body.appendChild(link)\r\n link.click() // 点击下载\r\n window.URL.revokeObjectURL(link.href) // 释放掉blob对象\r\n document.body.removeChild(link) // 下载完成移除元素\r\n } else {\r\n // IE10+下载\r\n window.navigator.msSaveBlob(blob, fileName)\r\n }\r\n}\r\n\r\nexport default {\r\n //获取cookie\r\n getCookie(name) {\r\n let arr,\r\n reg = new RegExp(\"(^| )\" + name + \"=([^;]*)(;|$)\")\r\n if ((arr = document.cookie.match(reg))) {\r\n return unescape(arr[2])\r\n } else {\r\n /* 如果没有参数,那么就获取本域下的所有cookie */\r\n return document.cookie\r\n }\r\n },\r\n\r\n async getJson(url, params) {\r\n try {\r\n const response = await axiosservice({\r\n url,\r\n params,\r\n method: \"get\",\r\n })\r\n return response.data\r\n } catch (err) {\r\n throw err\r\n }\r\n },\r\n async postJson(url, data) {\r\n try {\r\n const response = await axiosservice({\r\n url,\r\n data,\r\n method: \"post\",\r\n })\r\n return response.data\r\n } catch (err) {\r\n throw err\r\n }\r\n },\r\n async fetchJson(url, params, data) {\r\n try {\r\n const response = await axiosservice({\r\n url,\r\n params,\r\n data,\r\n method: \"post\",\r\n })\r\n return response\r\n } catch (err) {\r\n throw err\r\n }\r\n },\r\n async postupload(url, data) {\r\n try {\r\n const response = await axiosservice({\r\n url,\r\n data,\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\",\r\n },\r\n })\r\n return response.data\r\n } catch (err) {\r\n throw err\r\n }\r\n },\r\n download(url, requestData) {\r\n // 响应类型:arraybuffer, blob\r\n axiosservice\r\n .post(url, requestData, { responseType: \"blob\" })\r\n .then((resp) => {\r\n const headers = resp.headers\r\n const contentType = headers[\"content-type\"]\r\n\r\n console.log(\"响应头信息\", headers)\r\n if (!resp.data) {\r\n console.error(\"响应异常:\", resp)\r\n return false\r\n } else {\r\n console.log(\"下载文件:\", resp)\r\n const blob = new Blob([resp.data], { type: contentType })\r\n\r\n const contentDisposition = resp.headers[\"content-disposition\"]\r\n let fileName = \"unknown\"\r\n if (contentDisposition) {\r\n fileName = window.decodeURI(resp.headers[\"content-disposition\"].split(\"=\")[1])\r\n }\r\n console.log(\"文件名称:\", fileName)\r\n downFile(blob, fileName)\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(error)\r\n })\r\n },\r\n axios: axiosservice,\r\n}\r\n","// 登录校验接口\r\nimport httputils from '@/api/httputils'\r\nconst baseApi = '/graph/drafts/';\r\n\r\n//保存系统图\r\nexport function saveGroup(postParams: any): any {\r\n return httputils.postJson(`/labsl${baseApi}save`, postParams)\r\n}\r\n\r\n//读取系统图\r\nexport function readGroup(postParams: any): any {\r\n return httputils.postJson(`/labsl${baseApi}read`, postParams)\r\n}\r\n","<!-- 基本图片的属性框 -->\r\n<template>\r\n <div class=\"base-image\">\r\n <div class=\"title\">属性</div>\r\n <ul>\r\n <li>\r\n <div class=\"small-title\">尺寸大小</div>\r\n <div class=\"property\">\r\n <div>\r\n <span>W</span>\r\n <el-input\r\n style=\"width:74px;margin-left:6px\"\r\n size=\"mini\"\r\n v-model=\"width\"\r\n @input=\"changeWidth\"\r\n placeholder=\"请输入内容\"\r\n ></el-input>\r\n </div>\r\n <div>\r\n <span>H</span>\r\n <el-input\r\n style=\"width:74px;margin-left:6px\"\r\n size=\"mini\"\r\n v-model=\"height\"\r\n @input=\"changeHeight\"\r\n placeholder=\"请输入内容\"\r\n ></el-input>\r\n </div>\r\n <el-upload\r\n class=\"avatar-uploader\"\r\n action=\"https://jsonplaceholder.typicode.com/posts/\"\r\n :show-file-list=\"false\"\r\n :before-upload=\"beforeAvatarUpload\"\r\n >\r\n <i class=\"el-icon-link\"></i>\r\n </el-upload>\r\n </div>\r\n </li>\r\n <li>\r\n <div class=\"small-title\">边框</div>\r\n <div class=\"property\">\r\n <div class=\"color-box\">\r\n <div class=\"cololorSelect\">\r\n <el-color-picker show-alpha @change=\"changeColor\" class=\"fix-box-1\" v-model=\"color\"></el-color-picker>\r\n </div>\r\n <span>颜色</span>\r\n </div>\r\n <div class=\"line-width\">\r\n <el-input-number\r\n style=\"width:80px\"\r\n v-model=\"linewidth\"\r\n controls-position=\"right\"\r\n @change=\"changeLineWidth\"\r\n size=\"mini\"\r\n :min=\"1\"\r\n :max=\"20\"\r\n :maxlength=\"100\"\r\n ></el-input-number>\r\n <span>线宽</span>\r\n </div>\r\n <div class=\"line-width\">\r\n <a-select\r\n style=\"width: 80px\"\r\n v-model=\"linestyle\"\r\n :default-value=\"borderLineOption[0].id\"\r\n @change=\"changeLineStyle\"\r\n >\r\n <a-select-option\r\n v-for=\"item in borderLineOption\"\r\n :key=\"item.id\"\r\n :label=\"item.src\"\r\n :value=\"item.id\"\r\n >\r\n <img :src=\"item.src\" alt width=\"60\" />\r\n </a-select-option>\r\n </a-select>\r\n <span>线型</span>\r\n </div>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n</template>\r\n<script>\r\nimport bus from \"@/bus/bus\";\r\nconst baseUrl = \"/image-service/common/image_get?systemId=dataPlatform&key=\";\r\nimport { uploadGroup, getImageGroup } from \"@/api/editer\";\r\nexport default {\r\n props: [\"strokeColor\", \"lineStyle\", \"lineWidth\", \"Width\", \"Height\"],\r\n data() {\r\n return {\r\n width: 0,\r\n height: 0,\r\n color: \"#cccccc\", //颜色\r\n linewidth: 1,\r\n borderLineOption: [\r\n {\r\n id: \"Solid\",\r\n src: require(\"@/assets/images/solidLine.png\"),\r\n },\r\n {\r\n id: \"Dashed\",\r\n src: require(\"@/assets/images/dashedLine.png\"),\r\n },\r\n {\r\n id: \"Dotted\",\r\n src: require(\"@/assets/images/dotLine.png\"),\r\n },\r\n ],\r\n linestyle: \"solid\",\r\n url: \"\",\r\n };\r\n },\r\n methods: {\r\n changeHeight(val) {\r\n bus.$emit(\"updateStyle\", \"height\", val);\r\n },\r\n changeWidth(val) {\r\n bus.$emit(\"updateStyle\", \"width\", val);\r\n },\r\n changeLineWidth(val) {\r\n bus.$emit(\"updateStyle\", \"lineWidth\", val);\r\n },\r\n // 改变线样式\r\n changeLineStyle(val) {\r\n bus.$emit(\"updateStyle\", \"lineStyle\", val);\r\n },\r\n // 改变颜色\r\n changeColor(val) {\r\n bus.$emit(\"updateStyle\", \"strokeColor\", val);\r\n },\r\n beforeAvatarUpload(file) {\r\n let that = this;\r\n const fileReader = new FileReader();\r\n fileReader.readAsDataURL(file); //读取图片\r\n const ftype = file.type;\r\n const fname = file.name;\r\n const uploadKey = file.uid;\r\n const imgType = ftype.split(\".\")[ftype.length - 1];\r\n fileReader.addEventListener(\"load\", function () {\r\n // 读取完成\r\n let res = fileReader.result;\r\n //将canvas的base64位图片转换成图片png的file\r\n var blob = that.dataURLtoBlob(res, ftype);\r\n //将其转换成file对象\r\n let file = new File([blob], fname, {\r\n type: ftype,\r\n lastModified: Date.now(),\r\n }); //blob转file\r\n\r\n // try sending\r\n let reader = new FileReader();\r\n let fileType = file.name.split(\".\");\r\n let imgType = fileType[fileType.length - 1];\r\n let CreateTime = that.formatDate(new Date(file.lastModified));\r\n reader.onloadend = function () {\r\n // 这个事件在读取结束后,无论成功或者失败都会触发\r\n if (reader.error) {\r\n } else {\r\n // 构造 XMLHttpRequest 对象,发送文件 Binary 数据\r\n var xhr = new XMLHttpRequest();\r\n xhr.open(\r\n /* method */\r\n \"POST\",\r\n /* target url */\r\n \"/image-service/common/image_upload?systemId=dataPlatform&secret=9e0891a7a8c8e885&overwrite=true\" +\r\n \"&key=\" +\r\n uploadKey +\r\n \".\" +\r\n imgType\r\n );\r\n xhr.send(reader.result);\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState == 4) {\r\n if (xhr.status == 200) {\r\n that.url = baseUrl + uploadKey + \".\" + imgType;\r\n bus.$emit(\r\n \"updateStyle\",\r\n \"url\",\r\n baseUrl + uploadKey + \".\" + imgType\r\n );\r\n }\r\n }\r\n };\r\n }\r\n };\r\n reader.readAsArrayBuffer(file);\r\n });\r\n },\r\n dataURLtoBlob(dataURI, type) {\r\n var binary = atob(dataURI.split(\",\")[1]);\r\n var array = [];\r\n for (var i = 0; i < binary.length; i++) {\r\n array.push(binary.charCodeAt(i));\r\n }\r\n return new Blob([new Uint8Array(array)], { type: type });\r\n },\r\n formatDate(now) {\r\n let year = now.getFullYear();\r\n let month = now.getMonth() + 1;\r\n let date = now.getDate();\r\n let hour = now.getHours();\r\n let minute = now.getMinutes();\r\n let second = now.getSeconds();\r\n return (\r\n year +\r\n \"-\" +\r\n month +\r\n \"-\" +\r\n (date > 10 ? date : \"0\" + date) +\r\n \" \" +\r\n hour +\r\n \":\" +\r\n (minute > 10 ? minute : \"0\" + minute) +\r\n \":\" +\r\n (second > 10 ? second : \"0\" + second)\r\n );\r\n },\r\n },\r\n\r\n watch: {\r\n strokeColor(val) {\r\n this.color = val;\r\n },\r\n lineWidth(val) {\r\n this.linewidth = val;\r\n },\r\n lineStyle(val) {\r\n this.linestyle = val;\r\n },\r\n Width(val) {\r\n this.width = val;\r\n },\r\n Height(val) {\r\n this.height = val;\r\n },\r\n Url(val) {\r\n this.url = val;\r\n },\r\n },\r\n};\r\n</script>\r\n<style lang=\"less\" scoped>\r\nul,\r\nli {\r\n margin: 0;\r\n padding: 0;\r\n list-style-type: none;\r\n}\r\n.base-image {\r\n .title {\r\n height: 47px;\r\n border-bottom: 1px solid #979797;\r\n color: #646c73;\r\n font-size: 16px;\r\n padding-left: 12px;\r\n box-sizing: border-box;\r\n }\r\n ul {\r\n width: calc(~\"100% - 24px\");\r\n margin: -1px 12px 0 12px;\r\n li {\r\n border-top: 1px solid #979797;\r\n margin-bottom: 16px;\r\n .small-title {\r\n font-size: 12px;\r\n color: #8d9399;\r\n margin: 12px 0;\r\n }\r\n .property {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-around;\r\n .color-box {\r\n display: flex;\r\n align-items: center;\r\n flex-direction: column;\r\n .cololorSelect {\r\n width: 32px;\r\n height: 20px;\r\n overflow: hidden;\r\n position: relative;\r\n margin: 4px 0;\r\n .fix-box-1 {\r\n margin-top: -8px;\r\n margin-left: -8px;\r\n /deep/ .el-color-picker__trigger {\r\n width: 200px;\r\n height: 200px;\r\n }\r\n }\r\n }\r\n }\r\n .line-width {\r\n display: flex;\r\n align-items: center;\r\n flex-direction: column;\r\n margin-left: 8px;\r\n position: relative;\r\n }\r\n span {\r\n font-size: 12px;\r\n color: #1f2429;\r\n margin-top: 4px;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseImagePro.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseImagePro.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BaseImagePro.vue?vue&type=template&id=038bf034&scoped=true&\"\nimport script from \"./BaseImagePro.vue?vue&type=script&lang=js&\"\nexport * from \"./BaseImagePro.vue?vue&type=script&lang=js&\"\nimport style0 from \"./BaseImagePro.vue?vue&type=style&index=0&id=038bf034&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"038bf034\",\n null\n \n)\n\nexport default component.exports","<!--属性栏-->\r\n<template>\r\n <div class=\"propertys\">\r\n <baseTextProVue\r\n :strokeColor=\"strokeColor\"\r\n :fontSize=\"fontSize\"\r\n :textMsg=\"textMsg\"\r\n :backgroundColor=\"backgroundColor\"\r\n v-show=\"itemType == 'BaseText' || itemType == 'BaseExplain' \"\r\n ></baseTextProVue>\r\n <baseLinePro\r\n v-show=\"itemType == 'BaseLine'\"\r\n :strokeColor=\"strokeColor\"\r\n :lineStyle=\"lineStyle\"\r\n :lineWidth=\"lineWidth\"\r\n ></baseLinePro>\r\n <BaseGraphy\r\n :lineStyle=\"lineStyle\"\r\n :lineWidth=\"lineWidth\"\r\n :strokeColor=\"strokeColor\"\r\n :fillColor=\"fillColor\"\r\n :Url=\"Url\"\r\n :Width=\"Width\"\r\n :Height=\"Height\"\r\n v-show=\"itemType == 'BaseRect' || itemType == 'BaseTriangle' || itemType == 'BaseArrow'|| itemType == 'BaseCircle'\"\r\n ></BaseGraphy>\r\n <BaseImagePro\r\n :lineStyle=\"lineStyle\"\r\n :lineWidth=\"lineWidth\"\r\n :strokeColor=\"strokeColor\"\r\n :Url=\"Url\"\r\n :Width=\"Width\"\r\n :Height=\"Height\"\r\n v-show=\"itemType == 'BaseImage'\"\r\n ></BaseImagePro>\r\n </div>\r\n</template>\r\n<script>\r\nimport baseTextProVue from \"./baseTextPro.vue\";\r\nimport baseLinePro from \"./baseLinePro.vue\";\r\nimport BaseGraphy from \"./BaseGraphy\";\r\nimport BaseImagePro from \"./BaseImagePro\";\r\nimport bus from \"@/bus/bus\";\r\nconst lineStyle = {\r\n 0: \"Solid\",\r\n 1: \"Dashed\",\r\n /** 点线 */\r\n 2: \"Dotted\",\r\n /** 无 */\r\n 3: \"None\",\r\n};\r\nexport default {\r\n components: { baseTextProVue, baseLinePro, BaseGraphy, BaseImagePro },\r\n data() {\r\n return {\r\n itemType: \"\", // item 类型\r\n strokeColor: \"\", //线条颜色\r\n lineStyle: \"solid\", //线条样式\r\n lineWidth: 1, //线宽\r\n fontSize: 12, //字体大小\r\n textMsg: \"\", // 文本\r\n backgroundColor: \"\", // 背景色\r\n Width: 0, //item 宽\r\n Height: 0, //item 高\r\n Url: \"\", // 路径\r\n fillColor: \"\", //填充色\r\n };\r\n },\r\n mounted() {\r\n bus.$on(\"emitChoice\", this.emitChoice);\r\n },\r\n methods: {\r\n emitChoice(itemList) {\r\n console.log('itemList',itemList)\r\n if (itemList.length == 1) {\r\n this.itemType = itemList[0].data.Properties.Type\r\n ? itemList[0].data.Properties.Type\r\n : \"\";\r\n } else {\r\n this.itemType = \"\";\r\n }\r\n console.log(this.itemType);\r\n // 同步联动样式\r\n this.linkStyle(itemList);\r\n },\r\n // 同步样式\r\n linkStyle(itemList) {\r\n const item = itemList[0];\r\n if (this.itemType == \"BaseLine\") {\r\n this.strokeColor = item.strokeColor.toRgba();\r\n this.lineStyle = lineStyle[item.lineStyle];\r\n this.lineWidth = item.lineWidth;\r\n } else if (\r\n this.itemType == \"BaseText\" ||\r\n this.itemType == \"BaseExplain\"\r\n ) {\r\n this.strokeColor = item.strokeColor.toRgba();\r\n this.backgroundColor = item.backgroundColor.toRgba();\r\n this.textMsg = item.text;\r\n this.fontSize = item.font.size;\r\n } else if (this.itemType == \"BaseImage\") {\r\n this.Width = item.width; //item 宽\r\n this.Height = item.height; //item 高\r\n this.Url = item.url; // 路径\r\n this.lineStyle = lineStyle[item.lineStyle];\r\n this.lineWidth = item.lineWidth;\r\n this.strokeColor = item.strokeColor.toRgba();\r\n } else if (\r\n this.itemType == \"BaseRect\" ||\r\n this.itemType == \"BaseTriangle\" ||\r\n this.itemType == \"BaseArrow\" ||\r\n this.itemType == \"BaseCircle\"\r\n ) {\r\n this.Width = item.width; //item 宽\r\n this.Height = item.height; //item 高\r\n this.lineStyle = lineStyle[item.lineStyle];\r\n this.lineWidth = item.lineWidth;\r\n this.strokeColor = item.strokeColor.toRgba();\r\n this.fillColor = item.fillColor.toRgba()\r\n // 填充色\r\n }\r\n },\r\n },\r\n};\r\n</script>\r\n<style lang=\"less\" scoped>\r\n.propertys {\r\n}\r\n</style>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./property.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./property.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./property.vue?vue&type=template&id=0da4547e&scoped=true&\"\nimport script from \"./property.vue?vue&type=script&lang=js&\"\nexport * from \"./property.vue?vue&type=script&lang=js&\"\nimport style0 from \"./property.vue?vue&type=style&index=0&id=0da4547e&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0da4547e\",\n null\n \n)\n\nexport default component.exports","<!--右侧属性栏-->\r\n<template>\r\n <div class=\"right-property-bar\">\r\n <property></property>\r\n </div>\r\n</template>\r\n<script>\r\nimport property from \"./rightPropertyBar/property\";\r\nexport default {\r\n components: {\r\n property,\r\n },\r\n data() {\r\n return {\r\n\r\n };\r\n },\r\n};\r\n</script>\r\n<style lang=\"less\" scoped>\r\n.right-property-bar {\r\n background: rgba(255, 255, 255, 1);\r\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\r\n box-sizing: border-box;\r\n width: 240px;\r\n height: calc(~\"100% - 2px\");\r\n}\r\n</style>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rightPropertyBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rightPropertyBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./rightPropertyBar.vue?vue&type=template&id=b89b7e66&scoped=true&\"\nimport script from \"./rightPropertyBar.vue?vue&type=script&lang=js&\"\nexport * from \"./rightPropertyBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./rightPropertyBar.vue?vue&type=style&index=0&id=b89b7e66&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b89b7e66\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"baseTopo\",staticClass:\"baseTopo\",attrs:{\"id\":\"baseTopo\"}},[_c('topoTooltip',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showTooltip),expression:\"showTooltip\"}],ref:\"topoTooltip\",staticClass:\"topoTooltip-box\",attrs:{\"havItem\":_vm.havItem}}),_c('canvas',{attrs:{\"id\":\"persagy_topo\",\"width\":_vm.canvasWidth,\"height\":_vm.canvasHeight,\"tabindex\":\"0\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","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 _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","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}","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 _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}","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}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","import superPropBase from \"./superPropBase\";\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}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf\";\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}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\n\r\nimport { SGraphItem } from \"@persagy-web/graph/\";\r\nimport { SItemStatus } from \"@persagy-web/big\";\r\nimport { SMouseEvent } from \"@persagy-web/base/\";\r\n\r\n/**\r\n * 编辑基类\r\n *\r\n * @author 韩耀龙(han_yao_long@163.com)\r\n */\r\nexport class SGraphEdit extends SGraphItem {\r\n //////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n //属性\r\n /**编辑状态 */\r\n protected _status: SItemStatus = SItemStatus.Normal;\r\n get status(): SItemStatus {\r\n return this._status;\r\n }\r\n set status(value: SItemStatus) {\r\n const oldStatus = this._status;\r\n const newStatus = value;\r\n this._status = value;\r\n //状态变更触发事件\r\n this.$emit('statusChange', oldStatus, newStatus)\r\n this.update();\r\n }\r\n\r\n //////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n //函数\r\n /*\r\n * 构造函数\r\n *\r\n * @param parent 指向父对象\r\n */\r\n constructor(parent: SGraphItem | null) {\r\n super();\r\n if (parent) {\r\n this.parent = parent;\r\n }\r\n this.selectable = true\r\n }\r\n\r\n /**\r\n * 将类中得数据转换为方便存储格式的方法\r\n *\r\n * return any 针对item类型保持相应的格式\r\n */\r\n toData(): any {\r\n\r\n }\r\n onContextMenu(event: SMouseEvent): boolean {\r\n this.$emit('onContextMenu', event)\r\n return true\r\n }\r\n}\r\n","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\n\r\nimport { SGraphScene, SGraphItem } from \"@persagy-web/graph\";\r\nimport { SPoint } from \"@persagy-web/draw\";\r\nimport { SMouseEvent, SUndoStack, } from \"@persagy-web/base\";\r\nimport { SRectSelectItem } from \"@persagy-web/big\";\r\n\r\n/**\r\n * Graphy图形引擎编辑场景类\r\n *\r\n * @author 韩耀龙(han_yao_long@126.com)\r\n */\r\nexport class SGraphEditScene extends SGraphScene {\r\n /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n //属性\r\n /** undo/redo存储栈 */\r\n protected undoStack = new SUndoStack();\r\n // get undoStack(): SUndoStack {\r\n // return this._undoStack\r\n // }\r\n // // set undoStack(val: SUndoStack) {\r\n // // this._undoStack = val\r\n // // }\r\n /**编辑命令 */\r\n _editCmd: string = \"\"\r\n get editCmd(): string {\r\n return this._editCmd\r\n }\r\n set editCmd(val: string) {\r\n this._editCmd = val;\r\n }\r\n /**是否可编辑 */\r\n _isEditStatus: Boolean = true; // 是否可编辑\r\n set isEditStatus(bol: Boolean) {\r\n this._isEditStatus = bol;\r\n }\r\n get isEditStatus(): Boolean {\r\n return this._isEditStatus\r\n }\r\n /////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n //函数\r\n constructor() {\r\n super()\r\n // // 选择绑定选额item事件\r\n this.selectContainer.connect(\"selectChange\", this, this.selectChange);\r\n }\r\n\r\n /**\r\n * 选中item触发方法\r\n *\r\n * @param obj 变化后的对象\r\n */\r\n selectChange(obj: any) { }\r\n\r\n /**\r\n * 增加直线线段item\r\n * @param SMouseEvent 鼠标事件\r\n */\r\n addLine(event: SMouseEvent) {\r\n }\r\n\r\n /**\r\n * 增加折线线段item\r\n * @param SMouseEvent 鼠标事件\r\n */\r\n addPolyline(event: SMouseEvent) {\r\n }\r\n\r\n /**\r\n * 增加多边形item\r\n * @param SMouseEvent 鼠标事件\r\n */\r\n addPolygonItem(event: SMouseEvent) {\r\n }\r\n\r\n /**\r\n * 增加图片item\r\n * @param SMouseEvent 鼠标事件\r\n */\r\n addImgItem(event: SMouseEvent) {\r\n }\r\n\r\n /**\r\n * 增加文本item\r\n * @param SMouseEvent 鼠标事件\r\n */\r\n addTextItem(event: SMouseEvent) {\r\n }\r\n\r\n /**\r\n * 删除文本item\r\n * @param SMouseEvent 鼠标事件\r\n */\r\n deleiteItems(): void { }\r\n\r\n /**\r\n * 修改item样式\r\n * @param SMouseEvent 鼠标事件\r\n */\r\n updatedItems(): void { }\r\n\r\n /**\r\n * 对齐指定item\r\n * @param v\r\n */\r\n changeAlignItem(v: any): void {\r\n this.selectContainer.layout(v);\r\n }\r\n\r\n /**\r\n * 保存数据\r\n *\r\n * @return any 返回需要保存的数据\r\n */\r\n saveMsgItem(): any {\r\n }\r\n\r\n /**\r\n * 重做\r\n *\r\n * @return any\r\n */\r\n redo(): void {\r\n }\r\n\r\n /**\r\n * 撤销\r\n *\r\n * @return any\r\n */\r\n undo(): void {\r\n }\r\n\r\n /**\r\n * 完成创建的回调函数\r\n *\r\n * @param item 完成创建的item\r\n */\r\n finishCreated(item: SGraphItem) {\r\n }\r\n\r\n /**\r\n * 复制\r\n *\r\n */\r\n copy() { }\r\n\r\n /**\r\n * 粘贴\r\n *\r\n */\r\n paste() { }\r\n\r\n /**\r\n * 选中状态方法\r\n *\r\n * @param item SGraphItem\r\n */\r\n toggleItem(item: SGraphItem): void {\r\n this.selectContainer.clear()\r\n this.selectContainer.toggleItem(item)\r\n }\r\n\r\n /**\r\n * 框选\r\n */\r\n addRectSelect(event: SMouseEvent) {\r\n let point = new SPoint(event.x, event.y);\r\n let rect = new SRectSelectItem(null, point);\r\n this.addItem(rect);\r\n this.grabItem = rect;\r\n }\r\n\r\n}// Class GraphEditScene","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\n\r\nimport { SPainter, SRect, SSize, SColor, SPoint } from \"@persagy-web/draw\";\r\nimport { SImageShowType, STextOrigin } from \"@persagy-web/graph\";\r\nimport { SGraphItem, SAnchorItem,SLineStyle } from \"@persagy-web/graph\";\r\nimport { SItemStatus } from \"@persagy-web/big\";\r\nimport { SGraphEdit } from \"./../\"\r\n\r\n/**\r\n * 图片编辑类\r\n *\r\n * @author 韩耀龙(han_yao_long@163.com)\r\n */\r\nexport class SImageEdit extends SGraphEdit {\r\n //////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n //属性\r\n /** 图片dom */\r\n img: CanvasImageSource | undefined;\r\n /** 展示模式 */\r\n private _showType: SImageShowType = SImageShowType.Full;\r\n get showType(): SImageShowType {\r\n return this._showType;\r\n }\r\n set showType(v: SImageShowType) {\r\n this._showType = v;\r\n this.computeImgSize();\r\n this.update();\r\n }\r\n /** 边框色 */\r\n private _strokeColor: SColor = SColor.Transparent;\r\n get strokeColor(): SColor {\r\n return this._strokeColor;\r\n }\r\n set strokeColor(v: SColor) {\r\n this._strokeColor = v;\r\n this.update();\r\n }\r\n\r\n /** 边框宽度 */\r\n private _lineWidth: number = 1;\r\n get lineWidth(): number {\r\n return this._lineWidth;\r\n }\r\n set lineWidth(v: number) {\r\n this._lineWidth = v;\r\n this.update();\r\n }\r\n /** 原点位置 */\r\n private _originPosition: STextOrigin = STextOrigin.LeftTop;\r\n get originPosition(): STextOrigin {\r\n return this._originPosition;\r\n }\r\n set originPosition(v: STextOrigin) {\r\n this._originPosition = v;\r\n this.update();\r\n }\r\n\r\n /** 线条样式 */\r\n private _lineStyle: SLineStyle = SLineStyle.Solid;\r\n get lineStyle(): SLineStyle {\r\n return this._lineStyle;\r\n }\r\n set lineStyle(v: SLineStyle) {\r\n this._lineStyle = v;\r\n this.update();\r\n }\r\n /** 图片加载是否完成 */\r\n isLoadOver: boolean = false;\r\n\r\n /** 图片的宽度 */\r\n private imgWidth: number = this.width;\r\n\r\n /** 图片的高度 */\r\n private imgHeight: number = this.height;\r\n\r\n /** 图片地址 */\r\n private _url: string = \"\";\r\n get url(): string {\r\n return this._url;\r\n }\r\n set url(v: string) {\r\n this._url = v;\r\n this.img = new Image();\r\n this.img.onload = (e): void => {\r\n // @ts-ignore\r\n const imgSrc = e.path[0].src;\r\n if (this.isUrlIdentical(imgSrc)) {\r\n this.isLoadOver = true;\r\n this.computeImgSize();\r\n this.$emit(\"imgLoadOver\");\r\n this.update();\r\n }\r\n };\r\n this.img.onerror = (e): void => {\r\n // @ts-ignore\r\n const imgSrc = e.path[0].src;\r\n if (this.isUrlIdentical(imgSrc)) {\r\n this.isLoadOver = false;\r\n this.$emit(\"imgLoadOver\");\r\n this.update();\r\n console.log(\"加载图片错误!\", e);\r\n }\r\n };\r\n this.img.src = v;\r\n }\r\n /** 锚点list */\r\n anchorList: SAnchorItem[] = [];\r\n /** 宽度 */\r\n private _width: number = 64;\r\n /** 原点 */\r\n origin = new SPoint();\r\n get width(): number {\r\n return this._width;\r\n }\r\n set width(v: number) {\r\n if (v > 0) {\r\n if (v != this._width) {\r\n let w = this._width;\r\n this._width = v;\r\n this.onResize(\r\n new SSize(w, this._height),\r\n new SSize(this._width, this._height)\r\n );\r\n }\r\n }\r\n }\r\n\r\n /** 高度 */\r\n private _height: number = 64;\r\n get height(): number {\r\n return this._height;\r\n }\r\n set height(v: number) {\r\n if (v > 0) {\r\n if (v != this._height) {\r\n let h = this._height;\r\n this._height = v;\r\n this.onResize(\r\n new SSize(this._width, h),\r\n new SSize(this._width, this._height)\r\n );\r\n }\r\n }\r\n }\r\n /**编辑状态 */\r\n protected _status: SItemStatus = SItemStatus.Normal;\r\n get status(): SItemStatus {\r\n return this._status;\r\n }\r\n set status(value: SItemStatus) {\r\n const oldStatus = this._status;\r\n const newStatus = value;\r\n this._status = value;\r\n //状态变更触发事件\r\n this.$emit('StatusChange', oldStatus, newStatus)\r\n this.update();\r\n }\r\n\r\n //////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n //函数\r\n /**\r\n * 构造函数\r\n *\r\n * @param parent 指向父对象\r\n */\r\n constructor(parent: SGraphItem | null, url?: string) {\r\n super(parent);\r\n if (url) this.url = url;\r\n // this.initItem();\r\n this.origin = new SPoint(this.width / 2, this.height / 2);\r\n }\r\n\r\n /**\r\n * 将类中得数据转换为方便存储格式的方法\r\n *\r\n * return any 针对item类型保持相应的格式\r\n */\r\n toData(): any {\r\n\r\n }\r\n\r\n /**\r\n * 根据显示模式计算图片的宽高\r\n */\r\n computeImgSize(): void {\r\n if (this.isLoadOver) {\r\n // 要绘制图片的宽度\r\n let width = 0;\r\n // 要绘制图片的宽度\r\n let height = 0;\r\n // 图片item的宽高比\r\n let itemAspectRatio: number = this.width / this.height;\r\n // 原始图片的宽高比\r\n let imgAspectRatio: number =\r\n // @ts-ignore\r\n (this.img.width as number) / (this.img.height as number);\r\n // 原始图片的高宽比\r\n let imgHwRatio: number =\r\n // @ts-ignore\r\n (this.img.height as number) / (this.img.width as number);\r\n if (this.showType == SImageShowType.Full) {\r\n width = this.width;\r\n height = this.height;\r\n } else if (this.showType == SImageShowType.Equivalency) {\r\n if (itemAspectRatio > imgAspectRatio) {\r\n height = this.height;\r\n width = imgAspectRatio * height;\r\n } else if (itemAspectRatio < imgAspectRatio) {\r\n width = this.width;\r\n height = width * imgHwRatio;\r\n } else {\r\n width = this.width;\r\n height = this.height;\r\n }\r\n } else if (this.showType == SImageShowType.AutoFit) {\r\n // @ts-ignore\r\n this.width = this.img.width as number;\r\n // @ts-ignore\r\n this.height = this.img.height as number;\r\n width = this.width;\r\n height = this.height;\r\n }\r\n this.imgWidth = width;\r\n this.imgHeight = height;\r\n // 设置原点位置(默认左上角)\r\n if (this.originPosition == STextOrigin.Centrum) {\r\n this.origin = new SPoint(this.width / 2, this.height / 2);\r\n }\r\n }\r\n this.origin = new SPoint(this.width / 2, this.height / 2);\r\n this.update();\r\n } // Function computeImgSize()\r\n\r\n /**\r\n * 判断当前地址和回调地址是否相同\r\n *\r\n * @param imgUrl 图片回调地址\r\n * @return 当前地址和回调地址是否相同\r\n */\r\n private isUrlIdentical(imgUrl: string): boolean {\r\n if (this.url.indexOf(\"://\") == -1) {\r\n // eslint-disable-next-line max-len\r\n const reg = /^\\s*data:([a-z]+\\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\\-._~:@\\/?%\\s]*?)\\s*$/i;\r\n if (reg.test(this.url)) {\r\n return this.url == imgUrl;\r\n } else {\r\n return this.url == this.GetUrlRelativePath(imgUrl);\r\n }\r\n } else {\r\n return this.url == imgUrl;\r\n }\r\n } // Function isUrlIdentical()\r\n\r\n /**\r\n * 截取绝对路径中的相对路径\r\n * @param url 绝对路径\r\n *\r\n */\r\n private GetUrlRelativePath(url: string): string {\r\n const arrUrl = url.split(\"//\");\r\n const start = arrUrl[1].indexOf(\"/\");\r\n const relUrl = arrUrl[1].substring(start);\r\n return relUrl;\r\n } // Function GetUrlRelativePath()\r\n\r\n /**\r\n * 大小改变\r\n */\r\n resize(oldSize: SRect, newSize: SRect): void {\r\n this.width = newSize.width;\r\n this.height = newSize.height;\r\n this.update()\r\n }\r\n\r\n /**\r\n * Item对象边界区域\r\n *\r\n * @return\tSRect\r\n */\r\n boundingRect(): SRect {\r\n return new SRect(\r\n -this.origin.x,\r\n -this.origin.y,\r\n this.width * 1,\r\n this.height * 1\r\n );\r\n } // Function boundingRect()\r\n\r\n /**\r\n * 宽高发发生变化\r\n *\r\n * @param oldSize 改之前的大小\r\n * @param newSize 改之后大小\r\n * */\r\n protected onResize(oldSize: SSize, newSize: SSize): void {\r\n this.computeImgSize();\r\n this.update();\r\n } // Function onResize()\r\n\r\n /**\r\n * Item绘制操作\r\n *\r\n * @param painter 绘画类\r\n */\r\n onDraw(painter: SPainter): void {\r\n painter.translate(-this.origin.x, -this.origin.y);\r\n if (this.isLoadOver) {\r\n // @ts-ignore\r\n painter.drawImage(this.img, 0, 0, this.imgWidth, this.imgHeight);\r\n }\r\n if (this.selected) {\r\n painter.shadow.shadowBlur = 10;\r\n painter.shadow.shadowColor = new SColor(`#00000033`);\r\n painter.shadow.shadowOffsetX = 5;\r\n painter.shadow.shadowOffsetY = 5;\r\n } else {\r\n painter.shadow.shadowColor = SColor.Transparent;\r\n }\r\n if (this.lineStyle == SLineStyle.Dashed) {\r\n painter.pen.lineDash = [\r\n painter.toPx(this.lineWidth * 3),\r\n painter.toPx(this.lineWidth * 7)\r\n ];\r\n } else if (this.lineStyle == SLineStyle.Dotted) {\r\n painter.pen.lineDash = [\r\n painter.toPx(2 * this.lineWidth),\r\n painter.toPx(2 * this.lineWidth)\r\n ];\r\n }\r\n painter.pen.lineWidth = this.lineWidth;\r\n painter.pen.color = this.strokeColor;\r\n painter.brush.color = SColor.Transparent;\r\n painter.drawRect(0, 0, this.width, this.height);\r\n } // Function onDraw()\r\n\r\n} // Class SImageItem","import setPrototypeOf from \"./setPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import 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}","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}","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\n\r\n\r\nimport { SColor, SLine, SPainter, SPoint, SRect } from \"@persagy-web/draw/\";\r\nimport { SMouseButton, SMouseEvent, SUndoStack } from \"@persagy-web/base\";\r\nimport { SMathUtil } from \"@persagy-web/big/lib/utils/SMathUtil\";\r\nimport { SItemStatus } from \"@persagy-web/big\";\r\nimport {\r\n SGraphPointListInsert,\r\n SGraphPointListUpdate,\r\n SLineStyle,\r\n SGraphItem\r\n} from \"@persagy-web/graph/\";\r\nimport { SGraphEdit } from \"./../\"\r\n\r\n/**\r\n * 直线编辑类\r\n *\r\n * @author 韩耀龙(han_yao_long@163.com)\r\n */\r\nexport class SLineEdit extends SGraphEdit {\r\n ////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n //属性\r\n /** X坐标最小值 */\r\n private minX = Number.MAX_SAFE_INTEGER;\r\n /** X坐标最大值 */\r\n private maxX = Number.MIN_SAFE_INTEGER;\r\n /** Y坐标最小值 */\r\n private minY = Number.MAX_SAFE_INTEGER;\r\n /** Y坐标最大值 */\r\n private maxY = Number.MIN_SAFE_INTEGER;\r\n\r\n /** 线段 */\r\n private _line: SPoint[] = [];\r\n get line(): SPoint[] {\r\n return this._line;\r\n }\r\n set line(arr: SPoint[]) {\r\n this._line = arr;\r\n this.update();\r\n }\r\n\r\n /** 是否垂直水平绘制 */\r\n private _verAndLeve: Boolean = false;\r\n get verAndLeve(): Boolean {\r\n return this._verAndLeve;\r\n }\r\n set verAndLeve(bool: Boolean) {\r\n this._verAndLeve = bool;\r\n this.update();\r\n }\r\n\r\n /** 是否完成绘制 */\r\n protected _status: SItemStatus = SItemStatus.Normal;\r\n get status(): SItemStatus {\r\n return this._status;\r\n }\r\n set status(v: SItemStatus) {\r\n this._status = v;\r\n this.undoStack.clear();\r\n this.update();\r\n }\r\n\r\n /** 线条颜色 */\r\n private _strokeColor: SColor = SColor.Black;\r\n get strokeColor(): SColor {\r\n return this._strokeColor;\r\n }\r\n set strokeColor(v: SColor) {\r\n this._strokeColor = v;\r\n this.update();\r\n }\r\n\r\n /** 线条样式 */\r\n private _lineStyle: SLineStyle = SLineStyle.Solid;\r\n get lineStyle(): SLineStyle {\r\n return this._lineStyle;\r\n }\r\n set lineStyle(v: SLineStyle) {\r\n this._lineStyle = v;\r\n this.update();\r\n }\r\n\r\n /** 端点填充色 */\r\n private _fillColor: SColor = SColor.White;\r\n get fillColor(): SColor {\r\n return this._fillColor;\r\n }\r\n set fillColor(v: SColor) {\r\n this._fillColor = v;\r\n this.update();\r\n }\r\n\r\n /** 选中端点填充色 */\r\n private _activeFillColor: SColor = new SColor(\"#2196f3\");\r\n get activeFillColor(): SColor {\r\n return this._activeFillColor;\r\n }\r\n set activeFillColor(v: SColor) {\r\n this._activeFillColor = v;\r\n this.update();\r\n }\r\n\r\n /** 线条宽度 */\r\n private _lineWidth: number = 1;\r\n get lineWidth(): number {\r\n return this._lineWidth;\r\n }\r\n set lineWidth(v: number) {\r\n console.log('lineWidth',v)\r\n this._lineWidth = v;\r\n this.update();\r\n }\r\n\r\n /** 拖动灵敏度 */\r\n dis: number = 5;\r\n\r\n /** 拖动灵敏度 */\r\n private sceneDis: number = 5;\r\n\r\n /** 当前点索引 */\r\n curIndex: number = -1;\r\n\r\n /** 当前点坐标 */\r\n private curPoint: SPoint | null = null;\r\n\r\n /** undo/redo堆栈 */\r\n private undoStack: SUndoStack = new SUndoStack();\r\n\r\n /**\r\n * 构造函数\r\n *\r\n * @param parent 父级\r\n * */\r\n constructor(parent: SGraphItem | null);\r\n\r\n /**\r\n * 构造函数\r\n *\r\n * @param parent 父级\r\n * @param line 坐标集合\r\n * */\r\n constructor(parent: SGraphItem | null, line: SPoint[]);\r\n\r\n /**\r\n * 构造函数\r\n *\r\n * @param parent 父级\r\n * @param point 第一个点坐标\r\n * */\r\n constructor(parent: SGraphItem | null, point: SPoint);\r\n\r\n /**\r\n * 构造函数\r\n *\r\n * @param parent 父级\r\n * @param l 坐标集合|第一个点坐标\r\n * */\r\n constructor(parent: SGraphItem | null, l?: SPoint | SPoint[]) {\r\n super(parent);\r\n this.showSelect = false;\r\n if (l) {\r\n if (l instanceof SPoint) {\r\n this.line.push(l);\r\n } else {\r\n this.line = l;\r\n }\r\n } else {\r\n this.line = [];\r\n }\r\n }\r\n\r\n /**\r\n * 添加点至数组中\r\n *\r\n * @param p 添加的点\r\n * */\r\n private addPoint(p: SPoint): void {\r\n if (this.line.length < 2) {\r\n this.line.push(p);\r\n this.recordAction(SGraphPointListInsert, [this.line, p]);\r\n } else {\r\n this.line[1] = p;\r\n this.recordAction(SGraphPointListInsert, [this.line, p, 1]);\r\n this.status = SItemStatus.Normal;\r\n this.releaseItem();\r\n this.$emit(\"finishCreated\");\r\n }\r\n this.update();\r\n } // Function addPoint()\r\n\r\n /**\r\n * 鼠标双击事件\r\n *\r\n * @param\tevent 事件参数\r\n * @return\tboolean\r\n */\r\n onDoubleClick(event: SMouseEvent): boolean {\r\n if (this.status == SItemStatus.Normal) {\r\n this.status = SItemStatus.Edit;\r\n this.grabItem(this);\r\n } else if (this.status == SItemStatus.Edit) {\r\n this.status = SItemStatus.Normal;\r\n this.releaseItem();\r\n }\r\n this.update();\r\n return true;\r\n } // Function onDoubleClick()\r\n\r\n /**\r\n * 鼠标按下事件\r\n *\r\n * @param event 鼠标事件\r\n * @return 是否处理事件\r\n * */\r\n onMouseDown(event: SMouseEvent): boolean {\r\n this.curIndex = -1;\r\n this.curPoint = null;\r\n if (event.shiftKey || this._verAndLeve) {\r\n event = this.compare(event);\r\n }\r\n if (event.buttons == SMouseButton.LeftButton) {\r\n if (this.status == SItemStatus.Normal) {\r\n return super.onMouseDown(event);\r\n } else if (this.status == SItemStatus.Edit) {\r\n // 判断是否点击到端点上(获取端点索引值)\r\n this.findNearestPoint(new SPoint(event.x, event.y));\r\n } else if (this.status == SItemStatus.Create) {\r\n this.addPoint(new SPoint(event.x, event.y));\r\n return true;\r\n }\r\n }\r\n return true;\r\n } // Function onMouseDown()\r\n\r\n /**\r\n * 鼠标抬起事件\r\n *\r\n * @param\tevent 事件参数\r\n * @return\tboolean\r\n */\r\n onMouseUp(event: SMouseEvent): boolean {\r\n if (this.status == SItemStatus.Edit) {\r\n if (this.curIndex > -1) {\r\n const p = new SPoint(\r\n this.line[this.curIndex].x,\r\n this.line[this.curIndex].y\r\n );\r\n this.recordAction(SGraphPointListUpdate, [\r\n this.line,\r\n this.curPoint,\r\n p,\r\n this.curIndex\r\n ]);\r\n }\r\n } else if (this.status == SItemStatus.Normal) {\r\n this.moveToOrigin(this.x, this.y);\r\n return super.onMouseUp(event);\r\n }\r\n this.curIndex = -1;\r\n this.curPoint = null;\r\n return true;\r\n } // Function onMouseUp()\r\n\r\n /**\r\n * 鼠标抬起事件\r\n *\r\n * @param\tevent 事件参数\r\n * @return\tboolean\r\n */\r\n onKeyUp(event: KeyboardEvent): void {\r\n // 当 ESC 时\r\n if (27 == event.keyCode) {\r\n if (this.status == SItemStatus.Edit) {\r\n this.status = SItemStatus.Normal;\r\n this.releaseItem();\r\n } else if (this.status == SItemStatus.Create) {\r\n this.update()\r\n this.releaseItem();\r\n this.parent = null;\r\n }\r\n }\r\n } // Function onKeyUp()\r\n\r\n /**\r\n * 鼠标移动事件\r\n *\r\n * @param event 鼠标事件\r\n * @return 是否处理事件\r\n * */\r\n onMouseMove(event: SMouseEvent): boolean {\r\n if (event.shiftKey || this._verAndLeve) {\r\n event = this.compare(event);\r\n }\r\n if (this.status == SItemStatus.Create) {\r\n if (this.line[0] instanceof SPoint) {\r\n this.line[1] = new SPoint(event.x, event.y);\r\n }\r\n } else if (this.status == SItemStatus.Edit) {\r\n if (-1 != this.curIndex) {\r\n this.line[this.curIndex].x = event.x;\r\n this.line[this.curIndex].y = event.y;\r\n }\r\n } else {\r\n return super.onMouseMove(event);\r\n }\r\n this.update();\r\n return true;\r\n } // Function onMouseMove()\r\n\r\n /**\r\n * 获取点击点与Point[]中的点距离最近点\r\n *\r\n * @param p 鼠标点击点\r\n * */\r\n findNearestPoint(p: SPoint): void {\r\n let len = this.sceneDis;\r\n for (let i = 0; i < this.line.length; i++) {\r\n let dis = SMathUtil.pointDistance(\r\n p.x,\r\n p.y,\r\n this.line[i].x,\r\n this.line[i].y\r\n );\r\n if (dis < len) {\r\n len = dis;\r\n this.curIndex = i;\r\n this.curPoint = new SPoint(this.line[this.curIndex]);\r\n }\r\n }\r\n } // Function findNearestPoint()\r\n\r\n /**\r\n * 记录相关动作并推入栈中\r\n *\r\n * @param\tSGraphCommand 相关命令类\r\n * @param\tany 对应传入参数\r\n */\r\n protected recordAction(SGraphCommand: any, any: any[]): void {\r\n // 记录相关命令并推入堆栈中\r\n const command = new SGraphCommand(this.scene, this, ...any);\r\n this.undoStack.push(command);\r\n } // Function recordAction()\r\n\r\n /**\r\n * 移动后处理所有坐标,并肩原点置为场景原点\r\n *\r\n * @param x x坐标\r\n * @param y y坐标\r\n * */\r\n moveToOrigin(x: number, y: number): void {\r\n super.moveToOrigin(x, y);\r\n this.line = this.line.map(t => {\r\n t.x = t.x + x;\r\n t.y = t.y + y;\r\n return t;\r\n });\r\n this.x = 0;\r\n this.y = 0;\r\n } // Function moveToOrigin()\r\n\r\n /**\r\n * shift垂直水平创建或编辑\r\n *\r\n * @param event 事件\r\n * */\r\n compare(event: SMouseEvent): SMouseEvent {\r\n if (this.line.length) {\r\n let last = new SPoint(event.x, event.y);\r\n if (this.status == SItemStatus.Create) {\r\n last = this.line[0];\r\n } else if (this.status == SItemStatus.Edit) {\r\n if (this.curIndex == 1) {\r\n last = this.line[0];\r\n } else if (this.curIndex == 0) {\r\n last = this.line[1];\r\n }\r\n }\r\n const dx = Math.abs(event.x - last.x);\r\n const dy = Math.abs(event.y - last.y);\r\n if (dy > dx) {\r\n event.x = last.x;\r\n } else {\r\n event.y = last.y;\r\n }\r\n }\r\n return event;\r\n } // Function compare()\r\n\r\n /**\r\n * 判断点是否在区域内\r\n *\r\n * @param x\r\n * @param y\r\n * @return true-是\r\n */\r\n contains(x: number, y: number): boolean {\r\n if (this.line.length == 2) {\r\n let p = new SPoint(x, y);\r\n if (\r\n SMathUtil.pointToLine(p, new SLine(this.line[0], this.line[1]))\r\n .MinDis < this.dis\r\n ) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n } // Function contains()\r\n\r\n /**\r\n * 撤销操作\r\n *\r\n */\r\n undo(): void {\r\n if (this.status != SItemStatus.Normal) {\r\n this.undoStack.undo();\r\n }\r\n } // Function undo()\r\n\r\n /**\r\n * 重做操作\r\n *\r\n */\r\n redo(): void {\r\n if (this.status != SItemStatus.Normal) {\r\n this.undoStack.redo();\r\n }\r\n } // Function redo()\r\n\r\n /**\r\n * 取消操作item事件\r\n *\r\n * */\r\n cancelOperate(): void {\r\n if (this.status == SItemStatus.Create) {\r\n this.parent = null;\r\n this.releaseItem();\r\n } else if (this.status == SItemStatus.Edit) {\r\n this.status = SItemStatus.Normal;\r\n this.releaseItem();\r\n }\r\n } // Function cancelOperate()\r\n\r\n /**\r\n * Item对象边界区域\r\n *\r\n * @return\tSRect\r\n */\r\n boundingRect(): SRect {\r\n if (this.line.length) {\r\n this.minX = this.line[0].x;\r\n this.maxX = this.line[0].x;\r\n this.minY = this.line[0].y;\r\n this.maxY = this.line[0].y;\r\n this.line.forEach(it => {\r\n let x = it.x,\r\n y = it.y;\r\n if (x < this.minX) {\r\n this.minX = x;\r\n }\r\n if (y < this.minY) {\r\n this.minY = y;\r\n }\r\n if (x > this.maxX) {\r\n this.maxX = x;\r\n }\r\n if (y > this.maxY) {\r\n this.maxY = y;\r\n }\r\n });\r\n }\r\n return new SRect(\r\n this.minX,\r\n this.minY,\r\n this.maxX - this.minX,\r\n this.maxY - this.minY\r\n );\r\n } // Function boundingRect()\r\n\r\n /**\r\n * Item绘制操作\r\n *\r\n * @param painter painter对象\r\n */\r\n onDraw(painter: SPainter): void {\r\n this.sceneDis = painter.toPx(this.dis);\r\n painter.pen.lineWidth = painter.toPx(this.lineWidth);\r\n painter.pen.color = this.strokeColor;\r\n if (this.line.length == 2) {\r\n // 绘制直线\r\n painter.pen.color = this.strokeColor;\r\n if (this.lineStyle == SLineStyle.Dashed) {\r\n painter.pen.lineDash = [\r\n painter.toPx(this.lineWidth * 3),\r\n painter.toPx(this.lineWidth * 7)\r\n ];\r\n } else if (this.lineStyle == SLineStyle.Dotted) {\r\n painter.pen.lineDash = [\r\n painter.toPx(2 * this.lineWidth),\r\n painter.toPx(2 * this.lineWidth)\r\n ];\r\n }\r\n if (this.selected && this.status == SItemStatus.Normal) {\r\n painter.pen.lineWidth = painter.toPx(this.lineWidth * 2);\r\n painter.shadow.shadowBlur = 10;\r\n painter.shadow.shadowColor = new SColor(`#00000033`);\r\n painter.shadow.shadowOffsetX = 5;\r\n painter.shadow.shadowOffsetY = 5;\r\n }\r\n painter.drawLine(this.line[0], this.line[1]);\r\n if (\r\n this.status == SItemStatus.Edit ||\r\n this.status == SItemStatus.Create\r\n ) {\r\n // 绘制端点\r\n this.line.forEach((p, i): void => {\r\n painter.brush.color = this.fillColor;\r\n if (i == this.curIndex) {\r\n painter.brush.color = this.activeFillColor;\r\n }\r\n painter.drawCircle(p.x, p.y, painter.toPx(5));\r\n });\r\n }\r\n } else if (this.line.length == 1) {\r\n if (\r\n this.status == SItemStatus.Edit ||\r\n this.status == SItemStatus.Create\r\n ) {\r\n // 绘制端点\r\n painter.brush.color = this.fillColor;\r\n painter.drawCircle(\r\n this.line[0].x,\r\n this.line[0].y,\r\n painter.toPx(5)\r\n );\r\n }\r\n }\r\n } // Function onDraw()\r\n} // Class SLineItem","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\n\r\nimport {\r\n SGraphPointListDelete,\r\n SGraphPointListInsert,\r\n SGraphPointListUpdate,\r\n SLineStyle,\r\n SGraphItem\r\n} from \"@persagy-web/graph\";\r\nimport { SKeyCode, SMouseEvent, SUndoStack } from \"@persagy-web/base/\";\r\nimport {\r\n SColor,\r\n SLine,\r\n SLineCapStyle,\r\n SPainter,\r\n SPoint,\r\n SPolygonUtil,\r\n SRect\r\n} from \"@persagy-web/draw\";\r\nimport { SItemStatus } from \"@persagy-web/big\";\r\nimport { SMathUtil } from \"@persagy-web/big/lib/utils/SMathUtil\";\r\nimport {SGraphEdit} from \"..\"\r\n\r\n/**\r\n * 多边形编辑类\r\n *\r\n * @author 韩耀龙(han_yao_long@163.com)\r\n */\r\nexport class SPolygonEdit extends SGraphEdit {\r\n /** X坐标最小值 */\r\n private minX = Number.MAX_SAFE_INTEGER;\r\n /** X坐标最大值 */\r\n private maxX = Number.MIN_SAFE_INTEGER;\r\n /** Y坐标最小值 */\r\n private minY = Number.MAX_SAFE_INTEGER;\r\n /** Y坐标最大值 */\r\n private maxY = Number.MIN_SAFE_INTEGER;\r\n\r\n /** 轮廓线坐标 */\r\n private pointList: SPoint[] = [];\r\n // 获取当前状态\r\n get getPointList(): SPoint[] {\r\n return this.pointList;\r\n }\r\n // 编辑当前状态\r\n set setPointList(arr: SPoint[]) {\r\n this.pointList = arr;\r\n this.update();\r\n }\r\n /** 是否垂直水平绘制 */\r\n private _verAndLeve: Boolean = false;\r\n get verAndLeve(): Boolean {\r\n return this._verAndLeve;\r\n }\r\n set verAndLeve(bool: Boolean) {\r\n this._verAndLeve = bool;\r\n this.update();\r\n }\r\n // 当前状态\r\n protected _status: number = SItemStatus.Normal;\r\n // 获取当前状态\r\n get status(): SItemStatus {\r\n return this._status;\r\n }\r\n // 编辑当前状态\r\n set status(value: SItemStatus) {\r\n this._status = value;\r\n this.undoStack.clear();\r\n this.update();\r\n }\r\n\r\n /** 边框颜色 */\r\n _strokeColor: SColor = new SColor(\"#0091FF\");\r\n /** 画笔颜色 */\r\n get strokeColor(): SColor {\r\n return this._strokeColor;\r\n }\r\n set strokeColor(v: SColor) {\r\n this._strokeColor = v;\r\n this.update();\r\n }\r\n\r\n /** 填充颜色 */\r\n _fillColor: SColor = new SColor(\"#1EE887\");\r\n get fillColor(): SColor {\r\n return this._fillColor;\r\n }\r\n set fillColor(v: SColor) {\r\n this._fillColor = v;\r\n this.update();\r\n }\r\n\r\n /** 边框样式 */\r\n _lineStyle: SLineStyle = SLineStyle.Solid;\r\n get lineStyle(): SLineStyle {\r\n return this._lineStyle;\r\n }\r\n set lineStyle(v: SLineStyle) {\r\n this._lineStyle = v;\r\n this.update();\r\n }\r\n\r\n /** 边框的宽 只可输入像素宽*/\r\n _lineWidth: number = 4;\r\n get lineWidth(): number {\r\n return this._lineWidth;\r\n }\r\n set lineWidth(v: number) {\r\n this._lineWidth = v;\r\n this.update();\r\n }\r\n\r\n /** 是否闭合 */\r\n closeFlag: boolean = false;\r\n /** 鼠标移动点 */\r\n private lastPoint: SPoint | null = null;\r\n /** 当前鼠标获取顶点对应索引 */\r\n private curIndex: number = -1;\r\n /** 当前鼠标获取顶点对应坐标 */\r\n private curPoint: null | SPoint = null;\r\n /** 灵敏像素 */\r\n private len: number = 10;\r\n /** 场景像素 内部将灵敏像素换算为场景实际距离 */\r\n private scenceLen: number = 15;\r\n /** 场景像素 */\r\n private isAlt: boolean = false;\r\n /** undoredo堆栈 */\r\n protected undoStack: SUndoStack = new SUndoStack();\r\n\r\n /**\r\n * 构造函数\r\n *\r\n * @param parent 指向父对象\r\n */\r\n constructor(parent: SGraphItem | null) {\r\n super(parent);\r\n }\r\n\r\n //////////////////\r\n // 以下为对pointList 数组的操作方法\r\n\r\n /**\r\n * 储存新的多边形顶点\r\n *\r\n * @param x 点位得x坐标\r\n * @param y 点位得y坐标\r\n * @param i 储存所在索引\r\n * @return SPoint。添加的顶点\r\n */\r\n insertPoint(x: number, y: number, i: number | null = null): SPoint {\r\n const point = new SPoint(x, y);\r\n if (i == null) {\r\n this.pointList.push(point);\r\n } else {\r\n this.pointList.splice(i, 0, point);\r\n }\r\n this.update();\r\n return point;\r\n }\r\n\r\n /**\r\n * 删除点位\r\n *\r\n * @param i 删除点所在的索引\r\n * @return SPoint|null。索引不在数组范围则返回null\r\n */\r\n deletePoint(i: number | null = null): SPoint | null {\r\n let point = null;\r\n if (i != null) {\r\n if (i >= this.pointList.length || i < 0) {\r\n point = null;\r\n } else {\r\n point = new SPoint(this.pointList[i].x, this.pointList[i].y);\r\n this.pointList.splice(i, 1);\r\n }\r\n } else {\r\n if (this.pointList.length) {\r\n point = this.pointList[this.pointList.length - 1];\r\n this.pointList.pop();\r\n } else {\r\n point = null;\r\n }\r\n }\r\n this.curIndex = -1;\r\n this.curPoint = null;\r\n this.update();\r\n return point;\r\n }\r\n\r\n /**\r\n * 多边形顶点的移动位置\r\n *\r\n * @param x 点位得x坐标\r\n * @param y 点位得y坐标\r\n * @param i 点位得i坐标\r\n * @return 移动对应得点。如果索引无法找到移动顶点,则返回null\r\n */\r\n movePoint(x: number, y: number, i: number): SPoint | null {\r\n let point = null;\r\n if (i >= this.pointList.length || i < 0) {\r\n return null;\r\n }\r\n if (this.pointList.length) {\r\n this.pointList[i].x = x;\r\n this.pointList[i].y = y;\r\n }\r\n point = this.pointList[i];\r\n return point;\r\n }\r\n\r\n /**\r\n * 打印出多边形数组\r\n *\r\n * @return 顶点数组\r\n */\r\n PrintPointList(): SPoint[] {\r\n return this.pointList;\r\n }\r\n\r\n ////////////\r\n // 以下为三种状态下的绘制多边形方法\r\n\r\n /**\r\n * 展示状态 --绘制多边形数组\r\n *\r\n * @param painter 绘制类\r\n * @param pointList 绘制多边形数组\r\n */\r\n protected drawShowPolygon(painter: SPainter, pointList: SPoint[]): void {\r\n painter.save();\r\n painter.pen.lineCapStyle = SLineCapStyle.Square;\r\n painter.pen.color = this.strokeColor;\r\n painter.brush.color = this.fillColor;\r\n painter.pen.lineWidth = painter.toPx(this.lineWidth);\r\n if (this.lineStyle == SLineStyle.Dashed) {\r\n painter.pen.lineDash = [\r\n painter.toPx(this.lineWidth * 3),\r\n painter.toPx(this.lineWidth * 7)\r\n ];\r\n } else if (this.lineStyle == SLineStyle.Dotted) {\r\n painter.pen.lineDash = [\r\n painter.toPx(this.lineWidth),\r\n painter.toPx(this.lineWidth)\r\n ];\r\n }\r\n if (this.selected) {\r\n painter.shadow.shadowBlur = 10;\r\n painter.shadow.shadowColor = new SColor(`#00000033`);\r\n painter.shadow.shadowOffsetX = 5;\r\n painter.shadow.shadowOffsetY = 5;\r\n } else {\r\n painter.shadow.shadowColor = SColor.Transparent;\r\n }\r\n painter.drawPolygon([...pointList]);\r\n painter.restore();\r\n }\r\n\r\n /**\r\n * 创建状态 --绘制多边形数组\r\n *\r\n * @param painter 绘制类\r\n * @param pointList 绘制多边形数组\r\n */\r\n protected drawCreatePolygon(painter: SPainter, pointList: SPoint[]): void {\r\n painter.pen.lineCapStyle = SLineCapStyle.Square;\r\n painter.pen.color = this.strokeColor;\r\n painter.pen.lineWidth = painter.toPx(this.lineWidth);\r\n if (this.lastPoint && pointList.length) {\r\n painter.drawLine(\r\n pointList[pointList.length - 1].x,\r\n pointList[pointList.length - 1].y,\r\n this.lastPoint.x,\r\n this.lastPoint.y\r\n );\r\n }\r\n painter.drawPolyline(pointList);\r\n painter.pen.color = SColor.Transparent;\r\n painter.brush.color = new SColor(this.fillColor.value);\r\n painter.pen.lineWidth = painter.toPx(this.lineWidth);\r\n\r\n if (this.lastPoint) {\r\n painter.drawPolygon([...pointList, this.lastPoint]);\r\n // 绘制顶点块\r\n painter.pen.color = SColor.Black;\r\n painter.brush.color = SColor.White;\r\n pointList.forEach(item => {\r\n painter.drawCircle(item.x, item.y, painter.toPx(this.len / 2));\r\n });\r\n // 如果最后一个点在第一个点的灵敏度范围内,第一个点填充变红\r\n if (this.pointList.length) {\r\n if (\r\n SMathUtil.pointDistance(\r\n this.lastPoint.x,\r\n this.lastPoint.y,\r\n this.pointList[0].x,\r\n this.pointList[0].y\r\n ) < this.scenceLen\r\n ) {\r\n // 绘制第一个点的顶点块\r\n painter.pen.color = SColor.Black;\r\n painter.brush.color = SColor.Red;\r\n painter.drawCircle(\r\n this.pointList[0].x,\r\n this.pointList[0].y,\r\n painter.toPx(this.len / 2)\r\n );\r\n }\r\n }\r\n } else {\r\n painter.drawPolygon(pointList);\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * 编辑状态 --绘制多边形数组\r\n *\r\n * @param painter 绘制类\r\n * @param pointList 绘制多边形数组\r\n */\r\n protected drawEditPolygon(painter: SPainter, pointList: SPoint[]): void {\r\n // 展示多边形\r\n painter.pen.lineCapStyle = SLineCapStyle.Square;\r\n painter.pen.color = this.strokeColor;\r\n painter.pen.lineWidth = painter.toPx(this.lineWidth);\r\n painter.brush.color = new SColor(this.fillColor.value);\r\n painter.drawPolygon([...pointList]);\r\n // 绘制顶点块\r\n painter.pen.color = SColor.Black;\r\n painter.brush.color = SColor.White;\r\n pointList.forEach((item, index) => {\r\n painter.brush.color = SColor.White;\r\n if (index == this.curIndex) {\r\n painter.brush.color = new SColor(\"#2196f3\");\r\n }\r\n painter.drawCircle(item.x, item.y, painter.toPx(this.len / 2));\r\n });\r\n }\r\n\r\n /**\r\n * 编辑状态操作多边形数组\r\n *\r\n * @param event 鼠标事件\r\n *\r\n *\r\n */\r\n protected editPolygonPoint(event: SMouseEvent): void {\r\n // 判断是否为删除状态 isAlt = true为删除状态\r\n if (this.isAlt) {\r\n // 1 判断是否点击在多边形顶点\r\n let lenIndex = -1; // 当前点击到的点位索引;\r\n let curenLen = this.scenceLen; // 当前的灵敏度\r\n this.pointList.forEach((item, index) => {\r\n let dis = SMathUtil.pointDistance(\r\n event.x,\r\n event.y,\r\n item.x,\r\n item.y\r\n );\r\n if (dis < curenLen) {\r\n curenLen = dis;\r\n lenIndex = index;\r\n }\r\n });\r\n // 若点击到,对该索引对应的点做删除\r\n if (lenIndex != -1) {\r\n if (this.pointList.length <= 3) {\r\n return;\r\n }\r\n const delePoint = new SPoint(\r\n this.pointList[lenIndex].x,\r\n this.pointList[lenIndex].y\r\n );\r\n this.deletePoint(lenIndex);\r\n // 记录顶点操作记录压入堆栈\r\n this.recordAction(SGraphPointListDelete, [\r\n this.pointList,\r\n delePoint,\r\n lenIndex\r\n ]);\r\n }\r\n } else {\r\n // 1 判断是否点击在多边形顶点\r\n this.curIndex = -1;\r\n this.curPoint = null;\r\n let lenIndex = -1; // 当前点击到的点位索引;\r\n let curenLen = this.scenceLen; // 当前的灵敏度\r\n this.pointList.forEach((item, index) => {\r\n let dis = SMathUtil.pointDistance(\r\n event.x,\r\n event.y,\r\n item.x,\r\n item.y\r\n );\r\n if (dis < curenLen) {\r\n curenLen = dis;\r\n lenIndex = index;\r\n }\r\n });\r\n this.curIndex = lenIndex;\r\n // 2判断是否点击在多边形得边上\r\n if (-1 == lenIndex) {\r\n let len = SMathUtil.pointToLine(\r\n new SPoint(event.x, event.y),\r\n new SLine(this.pointList[0], this.pointList[1])\r\n ),\r\n index = 0;\r\n if (this.pointList.length > 2) {\r\n for (let i = 1; i < this.pointList.length; i++) {\r\n let dis = SMathUtil.pointToLine(\r\n new SPoint(event.x, event.y),\r\n new SLine(this.pointList[i], this.pointList[i + 1])\r\n );\r\n if (i + 1 == this.pointList.length) {\r\n dis = SMathUtil.pointToLine(\r\n new SPoint(event.x, event.y),\r\n new SLine(this.pointList[i], this.pointList[0])\r\n );\r\n }\r\n if (dis.MinDis < len.MinDis) {\r\n len = dis;\r\n index = i;\r\n }\r\n }\r\n }\r\n // 判断是否有点\r\n if (len.Point) {\r\n // 点在了多边形的边上\r\n if (len.MinDis <= this.scenceLen) {\r\n this.pointList.splice(index + 1, 0, len.Point);\r\n // 记录新增顶点操作记录压入堆栈\r\n this.recordAction(SGraphPointListInsert, [\r\n this.pointList,\r\n len.Point,\r\n index + 1\r\n ]);\r\n } else {\r\n //没点在多边形边上也没点在多边形顶点上\r\n super.onMouseDown(event);\r\n }\r\n }\r\n } else {\r\n // 当捕捉到顶点后 ,记录当前点的xy坐标,用于undo、redo操作\r\n this.curPoint = new SPoint(\r\n this.pointList[this.curIndex].x,\r\n this.pointList[this.curIndex].y\r\n );\r\n }\r\n // 刷新视图\r\n this.update();\r\n }\r\n }\r\n\r\n /////////////////////\r\n // undo、redo相关操作\r\n\r\n /**\r\n * 记录相关动作并推入栈中\r\n * @param\tSGraphCommand 相关命令类\r\n * @param\tany 对应传入参数\r\n */\r\n protected recordAction(SGraphCommand: any, any: any[]): void {\r\n // 记录相关命令并推入堆栈中\r\n const sgraphcommand = new SGraphCommand(this.scene, this, ...any);\r\n this.undoStack.push(sgraphcommand);\r\n }\r\n\r\n /**\r\n * 执行取消操作执行\r\n */\r\n undo(): void {\r\n if (this.status == SItemStatus.Normal) {\r\n return;\r\n }\r\n this.undoStack.undo();\r\n }\r\n\r\n /**\r\n * 执行重做操作执行\r\n */\r\n redo(): void {\r\n if (this.status == SItemStatus.Normal) {\r\n return;\r\n }\r\n this.undoStack.redo();\r\n }\r\n\r\n ///////////////////////////////\r\n // 以下为鼠标事件\r\n\r\n /**\r\n * 鼠标双击事件\r\n *\r\n * @param\tevent 事件参数\r\n * @return\tboolean\r\n */\r\n onDoubleClick(event: SMouseEvent): boolean {\r\n // 如果位show状态 双击改对象则需改为编辑状态\r\n if (SItemStatus.Normal == this.status) {\r\n this.status = SItemStatus.Edit;\r\n this.grabItem(this);\r\n } else if (SItemStatus.Edit == this.status) {\r\n this.status = SItemStatus.Normal;\r\n this.releaseItem();\r\n }\r\n this.update();\r\n return true;\r\n } // Function onDoubleClick()\r\n\r\n /**\r\n * 键盘事件\r\n *\r\n * @param\tevent 事件参数\r\n * @return\tboolean\r\n */\r\n\r\n onKeyDown(event: KeyboardEvent): boolean {\r\n if (this.status == SItemStatus.Normal) {\r\n return false;\r\n } else if (this.status == SItemStatus.Create) {\r\n if (event.code == \"Enter\") {\r\n // 当顶点大于二个时才又条件执行闭合操作并清空堆栈\r\n if (this.pointList.length > 2) {\r\n this.status = SItemStatus.Normal;\r\n //3 传递完成事件状态\r\n this.$emit(\"finishCreated\");\r\n //1 grabItem 置为null\r\n this.releaseItem();\r\n }\r\n }\r\n } else if (this.status == SItemStatus.Edit) {\r\n if (event.key == \"Alt\") {\r\n this.isAlt = true;\r\n }\r\n }\r\n this.update();\r\n return true;\r\n } // Function onKeyDown()\r\n\r\n /**\r\n * 键盘键抬起事件\r\n *\r\n * @param\tevent 事件参数\r\n * @return\tboolean\r\n */\r\n onKeyUp(event: KeyboardEvent): void {\r\n if (this.status == SItemStatus.Edit) {\r\n if (event.key == \"Alt\") {\r\n this.isAlt = false;\r\n } else if (event.keyCode == SKeyCode.Delete) {\r\n // 当多边形的顶点大于三个允许删除点\r\n if (this.pointList.length > 3) {\r\n this.deletePoint(this.curIndex);\r\n }\r\n }\r\n }\r\n this.update();\r\n } // Function onKeyUp()\r\n\r\n /**\r\n * 鼠标按下事件\r\n *\r\n * @param\tevent 事件参数\r\n * @return\tboolean\r\n */\r\n onMouseDown(event: SMouseEvent): boolean {\r\n if (event.shiftKey || this.verAndLeve) {\r\n event = this.compare(event);\r\n }\r\n // 如果状态为编辑状态则添加点\r\n if (this.status == SItemStatus.Create) {\r\n // 新增顶点\r\n let len = -1;\r\n if (this.pointList.length) {\r\n len = SMathUtil.pointDistance(\r\n event.x,\r\n event.y,\r\n this.pointList[0].x,\r\n this.pointList[0].y\r\n );\r\n }\r\n if (this.pointList.length > 2 && len > 0 && len < this.scenceLen) {\r\n this.status = SItemStatus.Normal;\r\n //3 传递完成事件状态\r\n this.$emit(\"finishCreated\");\r\n //1 grabItem 置为null\r\n this.releaseItem();\r\n } else {\r\n this.insertPoint(event.x, event.y);\r\n // 记录新增顶点操作记录压入堆栈\r\n let pos = new SPoint(event.x, event.y);\r\n this.recordAction(SGraphPointListInsert, [this.pointList, pos]);\r\n }\r\n } else if (this.status == SItemStatus.Edit) {\r\n // 对多边形数组做编辑操作\r\n this.editPolygonPoint(event);\r\n } else {\r\n return super.onMouseDown(event);\r\n }\r\n return true;\r\n } // Function onMouseDown()\r\n\r\n /**\r\n * 鼠标移入事件\r\n *\r\n * @param\tevent 事件参数\r\n * @return\tboolean\r\n */\r\n onMouseEnter(event: SMouseEvent): boolean {\r\n return true;\r\n } // Function onMouseEnter()\r\n\r\n /**\r\n * 鼠标移出事件\r\n *\r\n * @param\tevent 事件参数\r\n * @return\tboolean\r\n */\r\n\r\n onMouseLeave(event: SMouseEvent): boolean {\r\n return true;\r\n } // Function onMouseLeave()\r\n\r\n /**\r\n * 鼠标移动事件\r\n *\r\n * @param\tevent 事件参数\r\n * @return\tboolean\r\n */\r\n\r\n onMouseMove(event: SMouseEvent): boolean {\r\n if (event.shiftKey || this.verAndLeve) {\r\n event = this.compare(event);\r\n }\r\n if (this.status == SItemStatus.Create) {\r\n this.lastPoint = new SPoint();\r\n this.lastPoint.x = event.x;\r\n this.lastPoint.y = event.y;\r\n this.update();\r\n } else if (this.status == SItemStatus.Edit) {\r\n if (event.buttons == 1) {\r\n if (-1 != this.curIndex) {\r\n this.pointList[this.curIndex].x = event.x;\r\n this.pointList[this.curIndex].y = event.y;\r\n }\r\n }\r\n this.update();\r\n } else {\r\n return super.onMouseMove(event);\r\n }\r\n return true;\r\n } // Function onMouseMove()\r\n\r\n /**\r\n * shift垂直水平创建或编辑\r\n *\r\n * @param event 事件\r\n * */\r\n compare(event: SMouseEvent): SMouseEvent {\r\n if (this.pointList.length) {\r\n let last = new SPoint(event.x, event.y);\r\n if (this.status == SItemStatus.Create) {\r\n last = this.pointList[this.pointList.length - 1];\r\n } else if (this.status == SItemStatus.Edit) {\r\n if (this.curIndex > 1) {\r\n last = this.pointList[this.curIndex - 1];\r\n }\r\n }\r\n const dx = Math.abs(event.x - last.x);\r\n const dy = Math.abs(event.y - last.y);\r\n if (dy > dx) {\r\n event.x = last.x;\r\n } else {\r\n event.y = last.y;\r\n }\r\n }\r\n return event;\r\n } // Function compare()\r\n\r\n /**\r\n * 鼠标抬起事件\r\n *\r\n * @param\tevent 事件参数\r\n * @return\tboolean\r\n */\r\n onMouseUp(event: SMouseEvent): boolean {\r\n if (this.status == SItemStatus.Edit) {\r\n if (-1 != this.curIndex) {\r\n const pos = new SPoint(\r\n this.pointList[this.curIndex].x,\r\n this.pointList[this.curIndex].y\r\n );\r\n this.recordAction(SGraphPointListUpdate, [\r\n this.pointList,\r\n this.curPoint,\r\n pos,\r\n this.curIndex\r\n ]);\r\n }\r\n } else if (this.status == SItemStatus.Normal) {\r\n this.moveToOrigin(this.x, this.y);\r\n return super.onMouseUp(event);\r\n }\r\n return true;\r\n } // Function onMouseUp()\r\n\r\n /**\r\n * 移动后处理所有坐标,并肩原点置为场景原点\r\n *\r\n * @param x x坐标\r\n * @param y y坐标\r\n * */\r\n moveToOrigin(x: number, y: number): void {\r\n super.moveToOrigin(x, y);\r\n this.pointList = this.pointList.map(t => {\r\n t.x = t.x + x;\r\n t.y = t.y + y;\r\n return t;\r\n });\r\n this.x = 0;\r\n this.y = 0;\r\n } // Function moveToOrigin()\r\n\r\n /**\r\n * 适配事件\r\n *\r\n * @param\tevent 事件参数\r\n * @return\tboolean\r\n */\r\n onResize(event: SMouseEvent): boolean {\r\n return true;\r\n } // Function onResize()\r\n\r\n /**\r\n * 取消操作\r\n *\r\n */\r\n cancelOperate(): void {\r\n // 当状态为展示状态\r\n if (this.status == SItemStatus.Create) {\r\n // 闭合多边形\r\n this.parent = null;\r\n } else if (this.status == SItemStatus.Edit) {\r\n // 编辑状态\r\n this.status = SItemStatus.Normal;\r\n }\r\n this.update();\r\n } // Function cancelOperate()\r\n\r\n /**\r\n * Item对象边界区域\r\n *\r\n * @return SRect\r\n */\r\n boundingRect(): SRect {\r\n if (this.pointList.length) {\r\n this.minX = this.pointList[0].x;\r\n this.maxX = this.pointList[0].x;\r\n this.minY = this.pointList[0].y;\r\n this.maxY = this.pointList[0].y;\r\n this.pointList.forEach(it => {\r\n let x = it.x,\r\n y = it.y;\r\n if (x < this.minX) {\r\n this.minX = x;\r\n }\r\n if (y < this.minY) {\r\n this.minY = y;\r\n }\r\n if (x > this.maxX) {\r\n this.maxX = x;\r\n }\r\n if (y > this.maxY) {\r\n this.maxY = y;\r\n }\r\n });\r\n }\r\n return new SRect(\r\n this.minX,\r\n this.minY,\r\n this.maxX - this.minX,\r\n this.maxY - this.minY\r\n );\r\n } // Function boundingRect()\r\n\r\n /**\r\n * 判断点是否在区域内\r\n *\r\n * @param x\r\n * @param y\r\n */\r\n contains(x: number, y: number): boolean {\r\n let arr = this.pointList;\r\n if (arr.length < 3 || !SPolygonUtil.pointIn(x, y, arr)) {\r\n return false;\r\n }\r\n return true;\r\n } // Function contains()\r\n\r\n /**\r\n * Item绘制操作\r\n *\r\n * @param painter painter对象\r\n */\r\n onDraw(painter: SPainter): void {\r\n this.scenceLen = painter.toPx(this.len);\r\n // 当状态为展示状态\r\n if (this.status == SItemStatus.Normal) {\r\n // 闭合多边形\r\n this.drawShowPolygon(painter, this.pointList);\r\n } else if (this.status == SItemStatus.Create) {\r\n // 创建状态\r\n this.drawCreatePolygon(painter, this.pointList);\r\n } else {\r\n // 编辑状态\r\n this.drawEditPolygon(painter, this.pointList);\r\n }\r\n } // Function onDraw()\r\n}","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\nimport { SPainter, SRect, SColor, SFont, SPoint, SSize } from \"@persagy-web/draw\";\r\nimport { SGraphItem, STextOrigin, SLineStyle, SAnchorItem } from \"@persagy-web/graph/\";\r\nimport { SItemStatus } from \"@persagy-web/big\";\r\nimport { SGraphEdit } from \"..\"\r\n/**\r\n * 文本编辑类\r\n *\r\n * @author 韩耀龙(han_yao_long@163.com)\r\n */\r\nexport class STextEdit extends SGraphEdit {\r\n /////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n //属性\r\n /**编辑状态 */\r\n protected _status: SItemStatus = SItemStatus.Normal;\r\n get status(): SItemStatus {\r\n return this._status;\r\n }\r\n set status(value: SItemStatus) {\r\n const oldStatus = this._status;\r\n const newStatus = value;\r\n this._status = value;\r\n //状态变更触发事件\r\n this.$emit('StatusChange', oldStatus, newStatus)\r\n this.update();\r\n }\r\n /** 记录painter */\r\n private _painter: SPainter | null = null;\r\n\r\n /** 文本内容 */\r\n private _text: string = \"\";\r\n get text(): string {\r\n return this._text;\r\n }\r\n set text(v: string) {\r\n this._text = v;\r\n this._textArr = this.text.split(/\\n/g);\r\n this.drawFormatText();\r\n this.update();\r\n }\r\n\r\n /** 切割后的文本数组 */\r\n private _textArr: string[] = [];\r\n /** 锚点list */\r\n anchorList: SAnchorItem[] = [];\r\n /** 宽度 */\r\n private _width: number = 64;\r\n get width(): number {\r\n return this._width;\r\n }\r\n set width(v: number) {\r\n if (v > 0) {\r\n if (v != this._width) {\r\n let w = this._width;\r\n this._width = v;\r\n this.onResize(\r\n new SSize(w, this._height),\r\n new SSize(this._width, this._height)\r\n );\r\n }\r\n }\r\n }\r\n\r\n /** 高度 */\r\n private _height: number = 64;\r\n get height(): number {\r\n return this._height;\r\n }\r\n set height(v: number) {\r\n if (v > 0) {\r\n if (v != this._height) {\r\n let h = this._height;\r\n this._height = v;\r\n this.onResize(\r\n new SSize(this._width, h),\r\n new SSize(this._width, this._height)\r\n );\r\n }\r\n }\r\n }\r\n\r\n /** 原点 */\r\n origin = new SPoint();\r\n\r\n /**\r\n * 宽高发发生变化\r\n *\r\n * @param oldSize 改之前的大小\r\n * @param newSize 改之后大小\r\n * */\r\n protected onResize(oldSize: SSize, newSize: SSize) { } // Function onResize()\r\n\r\n /** 文本颜色 */\r\n private _color: SColor = new SColor(\"#333333\");\r\n get color(): SColor {\r\n return this._color;\r\n }\r\n set color(v: SColor) {\r\n this._color = v;\r\n this.update();\r\n }\r\n\r\n /** 字体 */\r\n private _font: SFont;\r\n get font(): SFont {\r\n return this._font;\r\n }\r\n set font(v: SFont) {\r\n this._font = v;\r\n this.drawFormatText();\r\n this.update();\r\n }\r\n\r\n /** 背景色 */\r\n private _backgroundColor: SColor = SColor.Transparent;\r\n get backgroundColor(): SColor {\r\n return this._backgroundColor;\r\n }\r\n set backgroundColor(v: SColor) {\r\n this._backgroundColor = v;\r\n this.update();\r\n }\r\n\r\n /** 边框色 */\r\n private _strokeColor: SColor = SColor.Transparent;\r\n get strokeColor(): SColor {\r\n return this._strokeColor;\r\n }\r\n set strokeColor(v: SColor) {\r\n this._strokeColor = v;\r\n console.log(this._strokeColor)\r\n this.update();\r\n }\r\n\r\n /** 边框宽度 */\r\n private _lineWidth: number = 1;\r\n get lineWidth(): number {\r\n return this._lineWidth;\r\n }\r\n set lineWidth(v: number) {\r\n this._lineWidth = v;\r\n this.update();\r\n }\r\n\r\n /** 边框样式 */\r\n private _borderStyle: SLineStyle = SLineStyle.None;\r\n get borderStyle(): SLineStyle {\r\n return this._borderStyle;\r\n }\r\n set borderStyle(v: SLineStyle) {\r\n this._borderStyle = v;\r\n this.update();\r\n }\r\n\r\n /** 原点位置 */\r\n private _originPosition: STextOrigin = STextOrigin.LeftTop;\r\n get originPosition(): STextOrigin {\r\n return this._originPosition;\r\n }\r\n set originPosition(v: STextOrigin) {\r\n this._originPosition = v;\r\n this.update();\r\n }\r\n\r\n /** 文本绘制最大宽 */\r\n maxWidth: number | undefined = undefined;\r\n\r\n /**\r\n * 构造函数\r\n *\r\n * @param parent 指向父Item\r\n * @param str 文本内容\r\n */\r\n constructor(parent: SGraphItem | null, str: string = \"\") {\r\n super(parent);\r\n this.showSelect = false;\r\n this._text = str;\r\n this._font = new SFont(\"sans-serif\", 12);\r\n this.height = 12;\r\n } // Constructor\r\n\r\n /**\r\n * 对象边界区域\r\n *\r\n * @return 边界区域\r\n */\r\n boundingRect(): SRect {\r\n return new SRect(\r\n -this.origin.x,\r\n -this.origin.y,\r\n this.width,\r\n this.height\r\n );\r\n } // Function boundingRect()\r\n\r\n /**\r\n * 移动后处理所有坐标,并肩原点置为场景原点\r\n *\r\n * @param x x坐标\r\n * @param y y坐标\r\n * */\r\n moveToOrigin(x: number, y: number): void {\r\n this.moveTo(this.x + x, this.y + y);\r\n } // Function moveToOrigin()\r\n\r\n /**\r\n * 绘制显示状态文本Item\r\n *\r\n * @param painter 绘制类\r\n */\r\n protected drawShowText(painter: SPainter): void {\r\n painter.translate(-this.origin.x, -this.origin.y);\r\n //绘制矩形轮廓\r\n if (this.selected) {\r\n painter.shadow.shadowBlur = 10;\r\n painter.shadow.shadowColor = new SColor(`#00000033`);\r\n painter.shadow.shadowOffsetX = 5;\r\n painter.shadow.shadowOffsetY = 5;\r\n } else {\r\n painter.shadow.shadowColor = SColor.Transparent;\r\n }\r\n painter.brush.color = this.backgroundColor;\r\n painter.pen.lineWidth = this.lineWidth;\r\n painter.pen.color = this.strokeColor;\r\n painter.drawRect(0, 0, this.width, this.height);\r\n\r\n //绘制文本\r\n painter.brush.color = new SColor(this.color);\r\n painter.shadow.shadowColor = SColor.Transparent;\r\n painter.font = this.font;\r\n this._textArr.forEach((text: string, index: number) => {\r\n painter.drawText(\r\n text,\r\n this.font.size / 4,\r\n index * (this.font.size * 1.25) + this.font.size / 4,\r\n this.maxWidth\r\n );\r\n });\r\n } // Function drawShowText()\r\n\r\n /**\r\n * 根据换行切割文本,绘制多行并计算外轮廓宽高\r\n *\r\n */\r\n protected drawFormatText(): void {\r\n if (this._painter instanceof SPainter) {\r\n this._painter.save();\r\n this._painter.font = this.font;\r\n let textMaxWidth = 0;\r\n let fontSize: number = this.font.size;\r\n this._textArr.forEach((text: string, index: number) => {\r\n let textWidth: number = this._painter\r\n ? this._painter.textWidth(text) + fontSize / 2\r\n : fontSize / 2;\r\n if (textWidth > textMaxWidth) {\r\n textMaxWidth = textWidth;\r\n }\r\n });\r\n // 在绘制文本后计算文本的宽高\r\n this.width = textMaxWidth;\r\n this.height = fontSize * 1.25 * this._textArr.length + fontSize / 8;\r\n // 设置原点位置(默认左上角)\r\n if (this.originPosition == STextOrigin.Centrum) {\r\n this.origin = new SPoint(this.width / 2, this.height / 2);\r\n }\r\n this._painter.restore();\r\n }\r\n } // Function drawFormatText()\r\n\r\n /**\r\n * Item绘制操作\r\n *\r\n * @param painter 绘画类\r\n */\r\n onDraw(painter: SPainter): void {\r\n if (!(this._painter instanceof SPainter)) {\r\n this._painter = painter;\r\n this.drawFormatText();\r\n }\r\n this.drawShowText(painter);\r\n } // Function onDraw()\r\n} // Class STextItem","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\n\r\nimport { SUndoCommand } from \"@persagy-web/base\";\r\nimport { SGraphScene } from \"@persagy-web/graph/\";\r\n\r\n/**\r\n * Graph命令基类\r\n *\r\n * @author 庞利祥(sybotan@126.com)\r\n */\r\nexport abstract class SGraphCommand extends SUndoCommand {\r\n /** 命令所属的场景类 */\r\n scene: SGraphScene | null = null;\r\n\r\n /**\r\n * 构造函数\r\n *\r\n * @param scene 命令所属的场景类\r\n */\r\n protected constructor(scene: SGraphScene | null) {\r\n super();\r\n this.scene = scene;\r\n } // Constructor\r\n} // Class SGraphCommand\r\n","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\n\r\nimport { SGraphCommand } from \"./SGraphCommand\";\r\nimport { SGraphItem,SGraphScene } from \"@persagy-web/graph/\";\r\nimport { SUndoCommand } from \"@persagy-web/base\";\r\n\r\n\r\n/**\r\n * 添加item命令\r\n *\r\n * @author panglixiang\r\n * */\r\nexport class SGraphAddCommand extends SGraphCommand {\r\n /** 命令名称 */\r\n readonly command: string;\r\n /** 命令item对象 */\r\n item: SGraphItem;\r\n /** 命令item的父类 */\r\n parent: SGraphItem | null;\r\n\r\n /**\r\n * 构造函数\r\n *\r\n * @param scene item所在场景\r\n * @param item 命令item对象\r\n * */\r\n constructor(scene: SGraphScene, item: SGraphItem) {\r\n super(scene);\r\n this.item = item;\r\n this.parent = item.parent;\r\n this.command = \"SGraphAddCommand\";\r\n this.desc = `添加对象=${item.id}`;\r\n } // Constructor\r\n\r\n /**\r\n * 合并命令\r\n *\r\n * @return boolean 是否已执行合并\r\n * */\r\n mergeWith(command: SUndoCommand): boolean {\r\n return false;\r\n } // Function mergeWith()\r\n\r\n /**\r\n * 重做\r\n *\r\n * */\r\n redo(): void {\r\n this.item.parent = this.parent;\r\n // @ts-ignore\r\n this.parent.update();\r\n } // Function redo()\r\n\r\n /**\r\n * 撤销\r\n *\r\n * */\r\n undo(): void {\r\n this.item.parent = null;\r\n // @ts-ignore\r\n this.parent.update();\r\n } // Function undo()\r\n} // Class SGraphAddCommand\r\n","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\n\r\nimport { SPoint } from \"@persagy-web/draw\";\r\nimport { SGraphCommand, SGraphItem, SGraphScene } from \"@persagy-web/graph/\";\r\n\r\n/**\r\n * 多边形、折线等相关顶点的位置删除命令\r\n *\r\n * @author 韩耀龙\r\n */\r\n\r\nexport class SGraphPointListDelete extends SGraphCommand {\r\n /** 命令名称 */\r\n readonly command: string;\r\n /** 指向item对象 */\r\n item: SGraphItem;\r\n /** 索引 */\r\n index: number | null;\r\n /** 删除位置 */\r\n pos: SPoint | null;\r\n /** 顶点数组 */\r\n pointList: SPoint[];\r\n\r\n /**\r\n * 构造函数\r\n * @param scene item所在场景\r\n * @param item 指向item对象\r\n * @param pointList 顶点数组\r\n * @param pos 删除的点\r\n * @param index 索引\r\n */\r\n constructor(\r\n scene: SGraphScene,\r\n item: SGraphItem,\r\n pointList: SPoint[],\r\n pos: SPoint,\r\n index: number | null = null\r\n ) {\r\n super(scene);\r\n this.item = item;\r\n this.index = index;\r\n this.pointList = pointList;\r\n this.pos = pos;\r\n this.command = \"SGraphPointListDelete\";\r\n this.desc = `删除折点=${item.id}`;\r\n } // Constructor\r\n\r\n /**\r\n * 执行重做操作执行\r\n */\r\n redo(): void {\r\n if (this.index == null) {\r\n this.pointList.pop();\r\n } else {\r\n this.pointList.splice(this.index, 1);\r\n }\r\n this.item.update();\r\n } // Function redo()\r\n\r\n /**\r\n * 执行取消操作执行\r\n */\r\n undo(): void {\r\n if (this.pos == null) return;\r\n if (this.index == null) {\r\n this.pointList.push(this.pos);\r\n } else {\r\n this.pointList.splice(this.index, 0, this.pos);\r\n }\r\n this.item.update();\r\n } // Function undo()\r\n\r\n /**\r\n * 命令细节描述\r\n *\r\n * */\r\n toString(): string {\r\n const pointList = `pointList=${JSON.stringify(this.pointList)}`;\r\n const pos = `pos=${JSON.stringify(this.pos)}`;\r\n const index = `index=${this.index}`;\r\n return `${index};\\n${pos};\\n${pointList}`;\r\n } // Function toString()\r\n} // Class SGraphPointListDelete\r\n","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\n\r\nimport { SPoint } from \"@persagy-web/draw\";\r\nimport { SGraphCommand, SGraphItem, SGraphScene } from \"@persagy-web/graph/\";\r\n\r\n/**\r\n * 多边形、折线等相关顶点的位置插入命令\r\n *\r\n * @author 韩耀龙\r\n */\r\n\r\nexport class SGraphPointListInsert extends SGraphCommand {\r\n /** 命令名称 */\r\n readonly command: string;\r\n /** 指向item对象 */\r\n item: SGraphItem;\r\n /** 当前位置 */\r\n pos: SPoint;\r\n /** 索引 */\r\n index: number | null;\r\n /** 顶点数组 */\r\n pointList: SPoint[];\r\n\r\n /**\r\n * 构造函数\r\n * @param scene item所在场景\r\n * @param item 指向item对象\r\n * @param pointList 顶点数组\r\n * @param pos 当前位置\r\n * @param index 索引\r\n */\r\n constructor(\r\n scene: SGraphScene,\r\n item: SGraphItem,\r\n pointList: SPoint[],\r\n pos: SPoint,\r\n index: number | null = null\r\n ) {\r\n super(scene);\r\n this.item = item;\r\n this.pos = pos;\r\n this.index = index;\r\n this.pointList = pointList;\r\n this.command = \"SGraphPointListInsert\";\r\n this.desc = `添加折点=${item.id}`;\r\n } // Constructor\r\n\r\n /**\r\n * 执行重做操作执行\r\n */\r\n redo(): void {\r\n const point = new SPoint(this.pos.x, this.pos.y);\r\n if (this.index == null) {\r\n this.pointList.push(point);\r\n } else {\r\n this.pointList.splice(this.index, 0, point);\r\n }\r\n this.item.update();\r\n } // Function redo()\r\n\r\n /**\r\n * 执行取消操作执行\r\n */\r\n undo(): void {\r\n if (this.index == null) {\r\n this.pointList.pop();\r\n } else {\r\n this.pointList.splice(this.index, 1);\r\n }\r\n this.item.update();\r\n } // Function undo()\r\n\r\n /**\r\n * 命令细节描述\r\n *\r\n * */\r\n toString(): string {\r\n const pointList = `pointList=${JSON.stringify(this.pointList)}`;\r\n const pos = `pos=${JSON.stringify(this.pos)}`;\r\n const index = `index=${this.index}`;\r\n return `${index};\\n${pos};\\n${pointList}`;\r\n } // Function toString()\r\n} // Class SGraphPointListInsert()\r\n","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\n\r\nimport { SPoint } from \"@persagy-web/draw\";\r\nimport { SGraphCommand, SGraphItem, SGraphScene } from \"@persagy-web/graph/\";\r\n\r\n/**\r\n * 多边形、折线等相关顶点的位置更新命令\r\n *\r\n * @author 韩耀龙\r\n */\r\n\r\nexport class SGraphPointListUpdate extends SGraphCommand {\r\n /** 命令名称 */\r\n readonly command: string;\r\n /** 指向item对象 */\r\n item: SGraphItem;\r\n /** 原位置 */\r\n old: SPoint;\r\n /** 当前位置 */\r\n pos: SPoint;\r\n /** 索引 */\r\n index: number;\r\n /** 顶点数组 */\r\n pointList: SPoint[];\r\n\r\n /**\r\n * 构造函数\r\n * @param scene item所在场景\r\n * @param item 指向item对象\r\n * @param pointList 顶点数组\r\n * @param old 原位置\r\n * @param pos 当前位置\r\n * @param index 索引\r\n */\r\n constructor(\r\n scene: SGraphScene,\r\n item: SGraphItem,\r\n pointList: SPoint[],\r\n old: SPoint,\r\n pos: SPoint,\r\n index: number\r\n ) {\r\n super(scene);\r\n this.item = item;\r\n this.old = old;\r\n this.pos = pos;\r\n this.index = index;\r\n this.pointList = pointList;\r\n this.command = \"SGraphPointListUpdate\";\r\n this.desc = `更新折点=${item.id}`;\r\n } // Constructor\r\n\r\n /**\r\n * 执行重做操作执行\r\n */\r\n redo(): void {\r\n this.pointList[this.index].x = this.pos.x;\r\n this.pointList[this.index].y = this.pos.y;\r\n this.item.update();\r\n } // Function redo()\r\n\r\n /**\r\n * 执行取消操作执行\r\n */\r\n undo(): void {\r\n this.pointList[this.index].x = this.old.x;\r\n this.pointList[this.index].y = this.old.y;\r\n this.item.update();\r\n } // Function undo()\r\n\r\n /**\r\n * 命令细节描述\r\n *\r\n * */\r\n toString(): string {\r\n const pointList = `pointList=${JSON.stringify(this.pointList)}`;\r\n const old = `old=${JSON.stringify(this.old)}`;\r\n const pos = `pos=${JSON.stringify(this.pos)}`;\r\n const index = `index=${this.index}`;\r\n return `${index};\\n${old};\\n${pos};\\n${pointList}`;\r\n } // Function toString()\r\n} // Class SGraphPointListUpdate\r\n","// 生成uuid\r\nexport function uuid() {\r\n const s = [];\r\n const hexDigits = \"0123456789abcdef\";\r\n for (let i = 0; i < 36; i++) {\r\n s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);\r\n }\r\n s[14] = \"4\";\r\n s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);\r\n s[8] = s[13] = s[18] = s[23] = \"-\";\r\n\r\n const uuid = s.join(\"\");\r\n return `${uuid}-${new Date().getTime()}`;\r\n}\r\n\r\nexport function rgbaNum(rgba: string) {\r\n let val = rgba.match(/(\\d(\\.\\d+)?)+/g);\r\n return val;\r\n}","import { SGraphEditScene } from \"../edit\"\r\nimport { SMouseEvent, SUndoStack } from \"@persagy-web/base/lib\";\r\nimport { SPoint, SFont, SColor, SRect } from '@persagy-web/draw/lib';\r\nimport { SRectSelectItem } from '@persagy-web/big/lib';\r\nimport { SGraphItem, SGraphSelectContainer } from \"@persagy-web/graph/\";\r\nimport { uuid } from \"./until\";\r\nexport class SBaseEditScene extends SGraphEditScene {\r\n\r\n /**图例节点 */\r\n Nodes: any = []; // 图例节点,所有与工程信息化相关的图例(图标类型与区域)\r\n /**图例节点 */ // 与工程信息无关的标识对象(增加文本注释,图上的图片说明)\r\n Markers: any = [];\r\n /** 管线对象 */\r\n Relations: any = [];\r\n\r\n copyString: any[] = []\r\n\r\n constructor() {\r\n super()\r\n }\r\n\r\n /**\r\n * 重做\r\n *\r\n * @return any\r\n */\r\n redo(): void {\r\n if (this.grabItem && this.grabItem.redo) {\r\n this.grabItem.redo()\r\n } else {\r\n this.undoStack.redo();\r\n }\r\n }\r\n\r\n /**\r\n * 撤销\r\n *\r\n * @return any\r\n */\r\n undo(): void {\r\n if (this.grabItem && this.grabItem.undo) {\r\n this.grabItem.undo()\r\n } else {\r\n this.undoStack.undo();\r\n }\r\n }\r\n\r\n /**\r\n * 删除\r\n *\r\n * @return item[]\r\n */\r\n deleteItem(): any {\r\n if (this.selectContainer.count == 0) {\r\n return []\r\n }\r\n let itemList = this.selectContainer.itemList;\r\n itemList.forEach((element: any) => {\r\n this.removeItem(element)\r\n });\r\n if (this.view) {\r\n this.view.update()\r\n }\r\n return itemList\r\n }\r\n\r\n /**\r\n * 框选\r\n *\r\n */\r\n addRectSelect(event: SMouseEvent): void {\r\n let point = new SPoint(event.x, event.y);\r\n let rect = new SRectSelectItem(null, point);\r\n this.addItem(rect);\r\n this.grabItem = rect;\r\n }\r\n\r\n /**\r\n * 计算框选交集\r\n */\r\n groupSelect(ctrl: boolean) {\r\n // if (!ctrl) {\r\n // this.selectContainer.clear()\r\n // }\r\n if (this.grabItem instanceof SRectSelectItem) {\r\n const rect = this.grabItem.boundingRect();\r\n this.arrToSelect(this.root.children, rect)\r\n }\r\n }\r\n\r\n /**\r\n * 选中item:框选\r\n */\r\n private arrToSelect(arr: SGraphItem[], rect: SRect) {\r\n if (Array.isArray(arr) && arr.length) {\r\n arr.forEach(t => {\r\n if (!(t instanceof SGraphSelectContainer) && t.parent) {\r\n let temp = t.boundingRect();\r\n let lefttop = t.mapToScene(temp.left, temp.top)\r\n let rightbottom = t.mapToScene(temp.right, temp.bottom)\r\n let r = new SRect(lefttop, rightbottom)\r\n if (rect.isIn(r)) {\r\n this.selectContainer.toggleItem(t)\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n /////////////////////////////////////////////////////////////////////\r\n // 鼠标事件\r\n\r\n /**\r\n * 鼠标左键按下\r\n *\r\n * @param event 鼠标事件参数\r\n */\r\n onMouseDown(event: SMouseEvent): any {\r\n if (!super.onMouseDown(event) && 1 == event.buttons) {\r\n this.addRectSelect(event);\r\n }\r\n }\r\n\r\n /**\r\n * 鼠标抬起\r\n *\r\n * @param event 鼠标事件参数\r\n */\r\n onMouseUp(event: SMouseEvent): boolean {\r\n if (this.grabItem) {\r\n // 鼠标抬起时,如果grabItem为框选则删除框选item\r\n if (this.grabItem instanceof SRectSelectItem) {\r\n this.removeItem(this.grabItem);\r\n this.groupSelect(false);\r\n this.grabItem = null;\r\n\r\n if (this.view) {\r\n this.view.update()\r\n }\r\n return true;\r\n }\r\n return this.grabItem.onMouseUp(event);\r\n }\r\n return super.onMouseUp(event)\r\n }\r\n\r\n /**\r\n * 复制\r\n *\r\n */\r\n copy() {\r\n const itemList = this.selectContainer.itemList\r\n if (itemList.length) {\r\n itemList.forEach(t => {\r\n const data = JSON.parse(JSON.stringify(t.toData()))\r\n data.ID = uuid()\r\n this.copyString.push(data)\r\n\r\n })\r\n // 生成复制字符串\r\n console.log(this.copyString)\r\n // 获取input dom\r\n const input = document.createElement('input');\r\n input.setAttribute('id', 'COPYINPUT')\r\n input.value = JSON.stringify(this.copyString)\r\n sessionStorage.setItem(\"copyString\", input.value);\r\n document.body.appendChild(input);\r\n input.select()\r\n document.execCommand('copy');\r\n input.style.display = 'none';\r\n console.log(input.value, Date.now());\r\n document.body.removeChild(input)\r\n }\r\n }\r\n\r\n /**\r\n * 粘贴\r\n *\r\n */\r\n paste() {\r\n const copyList = JSON.parse(JSON.stringify(this.copyString));\r\n copyList.forEach((t:any) => {\r\n if (this.view) {\r\n t.Pos.X += 10,\r\n t.Pos.Y += 10\r\n }\r\n t.moveable = true;\r\n console.log('t', t)\r\n this.addItem(t)\r\n });\r\n this.view ? this.view.update() : ''\r\n console.log(this.view)\r\n }\r\n}","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\nimport { SColor, SLine, SPainter, SPoint, SRect } from \"@persagy-web/draw/\";\r\nimport { SLineEdit } from './../../edit';\r\nimport { SGraphItem } from \"@persagy-web/graph\";\r\nimport { Marker } from \"./../types/Marker\";\r\nimport { SMouseEvent } from \"@persagy-web/base/lib\";\r\n\r\n/**\r\n * 编辑基础直线类\r\n *\r\n * * @author 韩耀龙(han_yao_long#163.com)\r\n */\r\nexport class SBaseLineEdit extends SLineEdit {\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n //属性\r\n /**编辑相关操作的数据 */\r\n data: Marker\r\n /** 起始锚点 */\r\n startItem: SGraphItem | null = null;\r\n /** 结束锚点 */\r\n endItem: SGraphItem | null = null;\r\n\r\n constructor(parent: SGraphItem | null, data: Marker) {\r\n super(parent);\r\n this.data = data;\r\n if (data.Style && data.Style.Default) {\r\n // 关于顶点\r\n if (data.Style.Default.Line) {\r\n let setPointList: SPoint[];\r\n setPointList = data.Style.Default.Line.map(i => {\r\n return new SPoint(i.X, i.Y)\r\n });\r\n this.line = setPointList;\r\n }\r\n // 颜色\r\n if (data.Style.Default.StrokeColor) {\r\n this.strokeColor = new SColor(data.Style.Default.StrokeColor)\r\n }\r\n // 线宽\r\n if (data.Style.Default.LineWidth) {\r\n this.lineWidth = data.Style.Default.LineWidth\r\n }\r\n // 线样式\r\n if (data.Style.Default.LineStyle) {\r\n this.lineStyle = data.Style.Default.LineStyle\r\n }\r\n }\r\n\r\n }\r\n /**\r\n * 鼠标按下事件\r\n *\r\n * @param event 保存事件参数\r\n * @return boolean\r\n */\r\n onMouseDown(event: SMouseEvent): boolean {\r\n super.onMouseDown(event)\r\n return true;\r\n } // Function onMouseDown()\r\n\r\n toData() {\r\n const Line = [{ X: this.line[0].x, Y: this.line[0].y }, { X: this.line[1].x, Y: this.line[1].y }];\r\n this.data.Style.Default.Line = Line;\r\n this.data.Style.Default.LineWidth = this.lineWidth;\r\n this.data.Style.Default.LineStyle = this.lineStyle;\r\n this.data.Style.Default.StrokeColor = this.strokeColor;\r\n return this.data\r\n }\r\n}","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\nimport { SColor, SFont } from \"@persagy-web/draw/\";\r\nimport { STextEdit } from './../../edit';\r\nimport { SGraphItem } from \"@persagy-web/graph\";\r\nimport { Marker } from \"./../types/Marker\";\r\nimport { SMouseEvent } from \"@persagy-web/base/lib\";\r\nimport { ItemOrder } from '@persagy-web/big/lib';\r\n/**\r\n * 编辑基础文本类\r\n *\r\n * * @author 韩耀龙(han_yao_long#163.com)\r\n */\r\nexport class SBaseTextEdit extends STextEdit {\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n //属性\r\n /**编辑相关操作的数据 */\r\n data: Marker\r\n /** 起始锚点 */\r\n startItem: SGraphItem | null = null;\r\n /** 结束锚点 */\r\n endItem: SGraphItem | null = null;\r\n\r\n constructor(parent: SGraphItem | null, data: Marker) {\r\n super(parent);\r\n this.zOrder = ItemOrder.textOrder;\r\n this.isTransform = false;\r\n this.data = data;\r\n this.name = data.Name;\r\n this.moveTo(data.Pos.X, data.Pos.Y);\r\n if (data.Size) {\r\n this.width = data.Size.Width;\r\n this.height = data.Size.Height;\r\n }\r\n if (data.Style && data.Style.Default) {\r\n // 高度\r\n if (data.Style.Default.Zorder) {\r\n this.zOrder = data.Style.Default.Zorder;\r\n }\r\n // 文本\r\n if (data.Style.Default.Text) {\r\n this.text = data.Style.Default.Text;\r\n }\r\n // 文本颜色\r\n if (data.Style.Default.Color) {\r\n this.color = new SColor(data.Style.Default.Color);\r\n }\r\n // 字体大小\r\n if (data.Style.Default.Font) {\r\n this.font = new SFont(\"sans-serif\", data.Style.Default.Font);;\r\n }\r\n // 背景色\r\n if (data.Style.Default.BackgroundColor) {\r\n this.backgroundColor = new SColor(data.Style.Default.BackgroundColor);\r\n }\r\n }\r\n }\r\n /**\r\n * 鼠标按下事件\r\n *\r\n * @param event 保存事件参数\r\n * @return boolean\r\n */\r\n onMouseDown(event: SMouseEvent): boolean {\r\n super.onMouseDown(event)\r\n return true;\r\n } // Function onMouseDown()\r\n\r\n toData(): any {\r\n if (this.data.Size) {\r\n this.data.Size.Width = this.width\r\n this.data.Size.Height = this.height;\r\n }\r\n this.data.Style.Default.Zorder = this.zOrder;\r\n this.data.Style.Default.Text = this.text;\r\n this.data.Style.Default.Color = this.color.value;\r\n this.data.Style.Default.Font = this.font.size;\r\n this.data.Style.Default.BackgroundColor = this.backgroundColor.value;\r\n return this.data\r\n }\r\n}","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\nimport { SColor, SLine, SPainter, SPoint, SRect } from \"@persagy-web/draw/\";\r\nimport { SImageEdit } from './../../edit';\r\nimport { SGraphItem } from \"@persagy-web/graph\";\r\nimport { Marker } from \"./../types/Marker\";\r\nimport { SMouseEvent } from \"@persagy-web/base/lib\";\r\nimport { ItemOrder } from '@persagy-web/big/lib';\r\nimport { uuid } from \"./../../big-edit/until\";\r\n\r\n/**\r\n * 编辑基础图片类\r\n *\r\n * * @author 韩耀龙(han_yao_long#163.com)\r\n */\r\nexport class SBaseImageEdit extends SImageEdit {\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n //属性\r\n /**编辑相关操作的数据 */\r\n data: Marker\r\n /** 起始锚点 */\r\n startItem: SGraphItem | null = null;\r\n /** 结束锚点 */\r\n endItem: SGraphItem | null = null;\r\n\r\n constructor(parent: SGraphItem | null, data: Marker) {\r\n super(parent, '');\r\n this.zOrder = ItemOrder.imageOrder;\r\n this.isTransform = false;\r\n this.url = \"data:image/png;base64,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\";\r\n this.data = data;\r\n this.name = data.Name;\r\n this.moveTo(data.Pos.X, data.Pos.Y);\r\n if (data.Size) {\r\n this.width = data.Size.Width;\r\n this.height = data.Size.Height;\r\n }\r\n if (data.Style && data.Style.Default) {\r\n if (data.Style.Default.Zorder) {\r\n this.zOrder = data.Style.Default.Zorder;\r\n }\r\n // 图片url\r\n if (data.Style.Default.Url) {\r\n this.url = data.Style.Default.Url;\r\n }\r\n // 线宽\r\n if (data.Style.Default.LineWidth) {\r\n this.lineWidth = data.Style.Default.LineWidth;\r\n }\r\n // 线颜色\r\n if (data.Style.Default.StrokeColor) {\r\n this.strokeColor = data.Style.Default.StrokeColor\r\n }\r\n // 线样式\r\n if (data.Style.Default.LineStyle) {\r\n this.lineStyle = data.Style.Default.LineStyle\r\n }\r\n this.origin = new SPoint(this.width / 2, this.height / 2);\r\n }\r\n }\r\n /**\r\n * 鼠标按下事件\r\n *\r\n * @param event 保存事件参数\r\n * @return boolean\r\n */\r\n onMouseDown(event: SMouseEvent): boolean {\r\n super.onMouseDown(event)\r\n return true;\r\n } // Function onMouseDown()\r\n\r\n toData() {\r\n this.data.Style.Default.LineWidth = this.lineWidth;\r\n this.data.Style.Default.LineStyle = this.lineStyle;\r\n this.data.Style.Default.StrokeColor = this.strokeColor;\r\n this.data.Style.Default.Url = this.url;\r\n if (this.data.Size) {\r\n this.data.Size.Width = this.width;\r\n this.data.Size.Height = this.height;\r\n } else {\r\n this.data.Size = { Width: this.width, Height: this.height }\r\n }\r\n return this.data\r\n }\r\n /**\r\n * 鼠标按下事件\r\n *\r\n * @param event 保存事件参数\r\n * @return boolean\r\n */\r\n onDoubleClick(event: SMouseEvent): boolean {\r\n super.onDoubleClick(event)\r\n return true;\r\n } // Function onMouseDown()\r\n\r\n}","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\nimport { SColor, SFont } from \"@persagy-web/draw/\";\r\nimport { STextEdit } from './../../edit';\r\nimport { SGraphItem } from \"@persagy-web/graph\";\r\nimport { Marker } from \"./../types/Marker\";\r\nimport { SMouseEvent } from \"@persagy-web/base/lib\";\r\nimport { ItemOrder } from '@persagy-web/big/lib';\r\n/**\r\n * 编辑基础注释类\r\n *\r\n * * @author 韩耀龙(han_yao_long#163.com)\r\n */\r\nexport class SBaseExpainEdit extends STextEdit {\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n //属性\r\n /**编辑相关操作的数据 */\r\n data: Marker\r\n /** 起始锚点 */\r\n startItem: SGraphItem | null = null;\r\n /** 结束锚点 */\r\n endItem: SGraphItem | null = null;\r\n\r\n constructor(parent: SGraphItem | null, data: Marker) {\r\n super(parent);\r\n this.zOrder = ItemOrder.textOrder;\r\n this.isTransform = false;\r\n this.data = data;\r\n this.name = data.Name;\r\n this.moveTo(data.Pos.X, data.Pos.Y);\r\n if (data.Size) {\r\n this.width = data.Size.Width;\r\n this.height = data.Size.Height;\r\n }\r\n if (data.Style && data.Style.Default) {\r\n // 高度\r\n if (data.Style.Default.Zorder) {\r\n this.zOrder = data.Style.Default.Zorder;\r\n }\r\n // 文本\r\n if (data.Style.Default.Text) {\r\n this.text = data.Style.Default.Text;\r\n }\r\n // 文本颜色\r\n if (data.Style.Default.Color) {\r\n this.color = new SColor(data.Style.Default.Color);\r\n }\r\n // 字体大小\r\n if (data.Style.Default.Font) {\r\n this.font = new SFont(\"sans-serif\", data.Style.Default.Font);;\r\n }\r\n // 背景色\r\n if (data.Style.Default.BackgroundColor) {\r\n this.backgroundColor = new SColor(data.Style.Default.BackgroundColor);\r\n }\r\n }\r\n }\r\n /**\r\n * 鼠标按下事件\r\n *\r\n * @param event 保存事件参数\r\n * @return boolean\r\n */\r\n onMouseDown(event: SMouseEvent): boolean {\r\n super.onMouseDown(event)\r\n return true;\r\n } // Function onMouseDown()\r\n\r\n toData(): any {\r\n if (this.data.Size) {\r\n this.data.Size.Width = this.width\r\n this.data.Size.Height = this.height;\r\n }\r\n this.data.Style.Default.Zorder = this.zOrder;\r\n this.data.Style.Default.Text = this.text;\r\n this.data.Style.Default.Color = this.color.value;\r\n this.data.Style.Default.Font = this.font.size;\r\n this.data.Style.Default.BackgroundColor = this.backgroundColor.value;\r\n return this.data\r\n }\r\n}","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\nimport { SColor, SFont,SPoint } from \"@persagy-web/draw/\";\r\nimport { SPolygonEdit } from './../../edit';\r\nimport { SGraphItem } from \"@persagy-web/graph\";\r\nimport { Marker } from \"./../types/Marker\";\r\nimport { SMouseEvent } from \"@persagy-web/base/lib\";\r\nimport { ItemOrder } from '@persagy-web/big/lib';\r\nimport { uuid } from \"./../../big-edit/until\";\r\n/**\r\n * 编辑基础多边形类\r\n *\r\n * * @author 韩耀龙(han_yao_long#163.com)\r\n */\r\nexport class SBasePolygonEdit extends SPolygonEdit {\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n //属性\r\n /**编辑相关操作的数据 */\r\n data: Marker\r\n /** 起始锚点 */\r\n startItem: SGraphItem | null = null;\r\n /** 结束锚点 */\r\n endItem: SGraphItem | null = null;\r\n\r\n constructor(parent: SGraphItem | null, data: Marker) {\r\n super(parent);\r\n // this.textItem.originPosition = STextOrigin.Centrum;\r\n // this.textItem.isTransform = false;\r\n this.zOrder = ItemOrder.polygonOrder;\r\n this.data = data;\r\n if (!data.ID) {\r\n data.ID = uuid()\r\n }\r\n this.id = data.ID;\r\n this.name = data.Name;\r\n // this.text = data.Name;\r\n if (data) {\r\n this.setPointList = [];\r\n let setPointList: SPoint[];\r\n if (data.OutLine) {\r\n if (data.OutLine[0] instanceof SPoint) {\r\n // @ts-ignore\r\n this.setPointList = data.OutLine;\r\n } else {\r\n setPointList = data.OutLine.map(i => {\r\n return (new SPoint(i.X, i.Y))\r\n })\r\n this.setPointList = setPointList;\r\n }\r\n }\r\n if (data.Properties.Zorder) {\r\n this.zOrder = data.Properties.Zorder;\r\n }\r\n // 设置线宽\r\n if (data.Properties.LineWidth) {\r\n this.lineWidth = data.Properties.LineWidth;\r\n }\r\n if (data.Properties.StrokeColor) {\r\n this.strokeColor = data.Properties.StrokeColor.includes('#') ? new SColor(data.Properties.StrokeColor) : new SColor(hexify(data.Properties.StrokeColor));\r\n }\r\n if (data.Properties.FillColor) {\r\n this.fillColor = data.Properties.FillColor.includes('#') ? new SColor(data.Properties.FillColor) : new SColor(hexify(data.Properties.FillColor))\r\n }\r\n if (data.Properties.TextPos) {\r\n this.textItem.moveTo(data.Properties.TextPos.X, data.Properties.TextPos.Y);\r\n }\r\n if (data.Properties.color) {\r\n this.color = new SColor(data.Properties.color);\r\n }\r\n if (data.Properties.font) {\r\n this.font = new SFont(\"sans-serif\", data.Properties.font);\r\n }\r\n if (data.Properties && data.Properties.IsActive) {\r\n this.isActive = data.Properties.IsActive;\r\n }\r\n if (data.AttachObjectIds && data.AttachObjectIds.length) {\r\n this.isActive = true;\r\n }\r\n switch (data.Properties.LineDash) {\r\n case \"solid\":\r\n this.lineStyle = SLineStyle.Solid;\r\n break;\r\n case \"dotted\":\r\n this.lineStyle = SLineStyle.Dotted;\r\n break;\r\n case \"dashed\":\r\n this.lineStyle = SLineStyle.Dashed;\r\n break;\r\n default:\r\n this.lineStyle = SLineStyle.Solid;\r\n }\r\n }\r\n /**\r\n * 鼠标按下事件\r\n *\r\n * @param event 保存事件参数\r\n * @return boolean\r\n */\r\n onMouseDown(event: SMouseEvent): boolean {\r\n super.onMouseDown(event)\r\n return true;\r\n } // Function onMouseDown()\r\n\r\n toData() {\r\n console.log(1230)\r\n }\r\n }","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\nimport { SColor, SPainter, SPoint, SRect } from \"@persagy-web/draw\";\r\nimport { SMouseButton, SMouseEvent, SUndoStack } from \"@persagy-web/base\";\r\nimport { SItemStatus } from \"@persagy-web/big\";;\r\nimport {\r\n SLineStyle,\r\n SGraphItem, SGraphPointListInsert\r\n} from \"@persagy-web/graph/\";\r\nimport { SGraphEdit } from \"..\";\r\n\r\n/**\r\n * 折线编辑类\r\n *\r\n * @author haojianlong\r\n */\r\nexport class SRectEdit extends SGraphEdit {\r\n /** 是否绘制完成 */\r\n _status: SItemStatus = SItemStatus.Normal;\r\n get status(): SItemStatus {\r\n return this._status;\r\n }\r\n set status(v: SItemStatus) {\r\n this._status = v;\r\n this.undoStack.clear();\r\n this.update();\r\n }\r\n width: number = 0;\r\n height: number = 0;\r\n /** 矩形两个对角 */\r\n private _line: SPoint[] = [];\r\n get line(): SPoint[] {\r\n return this._line;\r\n } // Get line\r\n set line(arr: SPoint[]) {\r\n this._line = arr;\r\n this.update();\r\n } // Get line\r\n /** 矩形左上角 */\r\n private _leftTop: SPoint = new SPoint();\r\n /** 矩形右下角 */\r\n private _rightBottom: SPoint = new SPoint();\r\n /** 绘制矩形的圆角半径 */\r\n private _radius: number = 0;\r\n get radius(): number {\r\n return this._radius;\r\n } // Get radius\r\n set radius(v: number) {\r\n if (v == this._radius) {\r\n return;\r\n }\r\n this._radius = v;\r\n this.update();\r\n } // Set radius\r\n /** 线条颜色 */\r\n _strokeColor: SColor = SColor.Black;\r\n get strokeColor(): SColor {\r\n return this._strokeColor;\r\n }\r\n set strokeColor(v: SColor) {\r\n this._strokeColor = v;\r\n this.update();\r\n }\r\n /** 填充色 */\r\n _fillColor: SColor = new SColor(\"#2196f3\");\r\n get fillColor(): SColor {\r\n return this._fillColor;\r\n }\r\n set fillColor(v: SColor) {\r\n this._fillColor = v;\r\n this.update();\r\n }\r\n /** 边框样式 */\r\n _lineStyle: SLineStyle = SLineStyle.Solid;\r\n get lineStyle(): SLineStyle {\r\n return this._lineStyle;\r\n }\r\n set lineStyle(v: SLineStyle) {\r\n this._lineStyle = v;\r\n this.update();\r\n }\r\n /** 线条宽度 */\r\n _lineWidth: number = 1;\r\n get lineWidth(): number {\r\n return this._lineWidth;\r\n }\r\n set lineWidth(v: number) {\r\n this._lineWidth = v;\r\n this.update();\r\n }\r\n /** undo/redo堆栈 */\r\n private undoStack: SUndoStack = new SUndoStack();\r\n\r\n /**\r\n * 构造函数\r\n *\r\n * @param parent 指向父对象\r\n * @param data 矩形数据\r\n */\r\n constructor(parent: SGraphItem | null, l?: SPoint | SPoint[]) {\r\n super(parent);\r\n if (l) {\r\n if (l instanceof SPoint) {\r\n this.line.push(l);\r\n this._leftTop = l;\r\n this._rightBottom = l;\r\n } else {\r\n this.line = l;\r\n this.calRect()\r\n }\r\n } else {\r\n this.line = [];\r\n }\r\n } // Constructor\r\n\r\n /**\r\n * 大小改变\r\n */\r\n resize(oldSize: SRect, newSize: SRect): void {\r\n const xs = newSize.width / oldSize.width;\r\n const ys = newSize.height / oldSize.height;\r\n this.line = this.line.map(t => {\r\n t.x = t.x * xs;\r\n t.y = t.y * ys;\r\n return t\r\n })\r\n this.calRect()\r\n this.update()\r\n }\r\n\r\n /**\r\n * 鼠标按下事件\r\n *\r\n * @param event 鼠标事件\r\n * @return 是否处理事件\r\n * */\r\n onMouseDown(event: SMouseEvent): boolean {\r\n if (event.buttons == SMouseButton.LeftButton) {\r\n if (this.status == SItemStatus.Create) {\r\n this.addPoint(new SPoint(event.x, event.y));\r\n return true;\r\n } else {\r\n return super.onMouseDown(event);\r\n }\r\n }\r\n return true;\r\n } // Function onMouseDown()\r\n\r\n /**\r\n * 鼠标移动事件\r\n *\r\n * @param event 鼠标事件\r\n * @return 是否处理事件\r\n * */\r\n onMouseMove(event: SMouseEvent): boolean {\r\n if (this.status == SItemStatus.Create) {\r\n if (this.line[0] instanceof SPoint) {\r\n this.line[1] = new SPoint(event.x, event.y);\r\n this.calRect()\r\n }\r\n } else {\r\n return super.onMouseMove(event);\r\n }\r\n this.update();\r\n return true;\r\n } // Function onMouseMove()\r\n\r\n /**\r\n * 鼠标抬起事件\r\n *\r\n * @param\tevent 事件参数\r\n * @return\tboolean\r\n */\r\n onMouseUp(event: SMouseEvent): boolean {\r\n if (this.status != SItemStatus.Create) {\r\n super.onMouseUp(event);\r\n }\r\n return true;\r\n } // Function onMouseUp()\r\n\r\n /**\r\n * 计算矩形的左上角和右下角\r\n */\r\n private calRect(): void {\r\n if (this.line.length > 1) {\r\n const fi = this.line[0];\r\n const se = this.line[1];\r\n let minx, maxx, miny, maxy;\r\n if (fi.x < se.x) {\r\n minx = fi.x;\r\n maxx = se.x;\r\n } else {\r\n minx = se.x;\r\n maxx = fi.x;\r\n }\r\n if (fi.y < se.y) {\r\n miny = fi.y;\r\n maxy = se.y;\r\n } else {\r\n miny = se.y;\r\n maxy = fi.y;\r\n }\r\n this._leftTop = new SPoint(minx, miny)\r\n this._rightBottom = new SPoint(maxx, maxy)\r\n }\r\n } // Function calRect\r\n\r\n /**\r\n * 添加点至数组中\r\n *\r\n * @param p 添加的点\r\n * */\r\n private addPoint(p: SPoint): void {\r\n if (this.line.length < 2) {\r\n this.line.push(p);\r\n this.recordAction(SGraphPointListInsert, [this.line, p]);\r\n } else {\r\n this.line[1] = p;\r\n this.recordAction(SGraphPointListInsert, [this.line, p, 1]);\r\n this.status = SItemStatus.Normal;\r\n this.releaseItem();\r\n this.$emit(\"finishCreated\");\r\n this.width = this.boundingRect().width;\r\n this.height = this.boundingRect().height;\r\n }\r\n this.calRect()\r\n this.update();\r\n } // Function addPoint()\r\n\r\n /**\r\n * 记录相关动作并推入栈中\r\n *\r\n * @param\tSGraphCommand 相关命令类\r\n * @param\tany 对应传入参数\r\n */\r\n protected recordAction(SGraphCommand: any, any: any[]): void {\r\n // 记录相关命令并推入堆栈中\r\n const command = new SGraphCommand(this.scene, this, ...any);\r\n this.undoStack.push(command);\r\n } // Function recordAction()\r\n\r\n /**\r\n * Item对象边界区域\r\n *\r\n * @return SRect 外接矩阵\r\n * */\r\n boundingRect(): SRect {\r\n if (this.line.length > 1) {\r\n this.calRect()\r\n return new SRect(this._leftTop, this._rightBottom);\r\n }\r\n return new SRect()\r\n } // Function boundingRect()\r\n\r\n /**\r\n * 撤销操作\r\n *\r\n */\r\n undo(): void {\r\n if (this._status != SItemStatus.Normal) {\r\n this.undoStack.undo();\r\n }\r\n } // Function undo()\r\n\r\n /**\r\n * 重做操作\r\n *\r\n */\r\n redo(): void {\r\n if (this._status != SItemStatus.Normal) {\r\n this.undoStack.redo();\r\n }\r\n } // Function redo()\r\n\r\n /**\r\n * 取消操作执行\r\n *\r\n * */\r\n cancelOperate(): void {\r\n if (this.status == SItemStatus.Create) {\r\n this.parent = null;\r\n this.releaseItem();\r\n } else if (this.status == SItemStatus.Edit) {\r\n this.status = SItemStatus.Normal;\r\n this.releaseItem();\r\n }\r\n } // Function cancelOperate()\r\n\r\n /**\r\n * Item绘制操作\r\n *\r\n * @param painter painter对象\r\n */\r\n onDraw(painter: SPainter): void {\r\n if (this.line.length == 2) {\r\n painter.pen.color = this.strokeColor;\r\n painter.brush.color = this.fillColor;\r\n painter.pen.lineWidth = this.lineWidth;\r\n if (this.lineStyle == SLineStyle.Dashed) {\r\n painter.pen.lineDash = [\r\n painter.toPx(this.lineWidth * 3),\r\n painter.toPx(this.lineWidth * 7)\r\n ];\r\n } else if (this.lineStyle == SLineStyle.Dotted) {\r\n painter.pen.lineDash = [\r\n painter.toPx(this.lineWidth * 2),\r\n painter.toPx(this.lineWidth * 2)\r\n ];\r\n }\r\n if (this.radius != 0) {\r\n painter.drawRoundRect(this._leftTop, this._rightBottom, this.radius);\r\n } else {\r\n painter.drawRect(this._leftTop, this._rightBottom);\r\n }\r\n }\r\n } // Function onDraw()\r\n} // Class SRectEdit","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\nimport { SColor, SLine, SPainter, SPoint, SRect } from \"@persagy-web/draw/\";\r\nimport { SGraphItem } from \"@persagy-web/graph\";\r\nimport { Marker } from \"./../types/Marker\";\r\nimport { SMouseEvent } from \"@persagy-web/base/lib\";\r\nimport { SRectEdit } from '../../edit/items/SRectEdit';\r\n\r\n/**\r\n * 编辑基础矩形类\r\n *\r\n * * @author haojianlong\r\n */\r\nexport class SBaseRectEdit extends SRectEdit {\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n //属性\r\n /**编辑相关操作的数据 */\r\n data: Marker\r\n\r\n constructor(parent: SGraphItem | null, data: Marker) {\r\n super(parent);\r\n this.data = data;\r\n if (data.Style && data.Style.Default) {\r\n // 关于顶点\r\n if (data.Style.Default.Line) {\r\n let setPointList: SPoint[];\r\n setPointList = data.Style.Default.Line.map(i => {\r\n return new SPoint(i.X, i.Y)\r\n });\r\n this.line = setPointList;\r\n }\r\n // 颜色\r\n if (data.Style.Default.StrokeColor) {\r\n this.strokeColor = new SColor(data.Style.Default.StrokeColor)\r\n }\r\n // 线宽\r\n if (data.Style.Default.LineWidth) {\r\n this.lineWidth = data.Style.Default.LineWidth\r\n }\r\n // 线样式\r\n if (data.Style.Default.LineStyle) {\r\n this.lineStyle = data.Style.Default.LineStyle\r\n }\r\n }\r\n }\r\n /**\r\n * 鼠标按下事件\r\n *\r\n * @param event 保存事件参数\r\n * @return boolean\r\n */\r\n onMouseDown(event: SMouseEvent): boolean {\r\n super.onMouseDown(event)\r\n return true;\r\n } // Function onMouseDown()\r\n\r\n toData() {\r\n console.log(1230)\r\n }\r\n}","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\nimport { Marker, SBaseLineEdit, SBaseTextEdit, SBaseImageEdit, SBaseExpainEdit, SBasePolygonEdit, SBaseRectEdit } from \"./\"\r\nimport { SItemFactory } from \"@persagy-web/big\"\r\n/**\r\n * item创建工厂\r\n * @author han_yao_long@163.com\r\n */\r\n\r\nexport class BigEditFactory extends SItemFactory {\r\n /**\r\n * 构造函数\r\n *\r\n * */\r\n constructor() {\r\n super()\r\n } // Constructor\r\n\r\n /**\r\n * 创建基础直线\r\n *\r\n * @param data Marker数据\r\n * @return 线item\r\n * */\r\n createBaseLineEdit(data: Marker): SBaseLineEdit {\r\n return new SBaseLineEdit(null, data);\r\n } // Function createBaseLineEdit()\r\n\r\n /**\r\n * 创建基础文本\r\n *\r\n * @param data Marker数据\r\n * @return 文本item\r\n * */\r\n createBaseTextEdit(data: Marker): SBaseTextEdit {\r\n return new SBaseTextEdit(null, data);\r\n } // Function createBaseTextEdit()\r\n\r\n /**\r\n * 创建基础图片\r\n *\r\n * @param data Marker数据\r\n * @return 图片item\r\n * */\r\n createBaseImageEdit(data: Marker): SBaseImageEdit {\r\n return new SBaseImageEdit(null, data);\r\n } // Function createBaseImageEdit()\r\n\r\n /**\r\n * 创建基础矩形\r\n *\r\n * @param data Marker数据\r\n * @return 矩形item\r\n * */\r\n createBaseRectEdit(data: Marker): SBaseRectEdit {\r\n return new SBaseRectEdit(null, data);\r\n } // Function createBaseRectEdit()\r\n\r\n /**\r\n * 创建基础注释\r\n *\r\n * @param data Marker数据\r\n * @return 注释item\r\n * */\r\n createBaseExpainEdit(data: Marker): SBaseExpainEdit {\r\n return new SBaseExpainEdit(null, data);\r\n } // Function createBaseExpainEdit()\r\n\r\n /**\r\n * 创建基础多边形\r\n *\r\n * @param data Marker数据\r\n * @return 注释item\r\n * */\r\n createBasePolygonEdit(data: Marker): SBasePolygonEdit {\r\n return new SBasePolygonEdit(null, data);\r\n } // Function createBasePolygonEdit()\r\n} // Class SItemFactory","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\nimport { SColor, SLine, SPainter, SPoint, SRect } from \"@persagy-web/draw/\";\r\nimport { SGraphItem, SGraphSvg } from \"@persagy-web/graph\";\r\nimport { SGraphEdit } from '../../edit/';\r\nimport { Marker } from \"./../types/Marker\";\r\n/**\r\n * 编辑基础设备类\r\n *\r\n * * @author haojianlong\r\n */\r\nexport class SBaseEquipment extends SGraphEdit {\r\n /**编辑相关操作的数据 */\r\n data: Marker\r\n /** 图片dom */\r\n img: CanvasImageSource | undefined;\r\n /** 图片加载是否完成 */\r\n isLoadOver: boolean = false;\r\n /** 图片地址 */\r\n private _url: string = \"\";\r\n get url(): string {\r\n return this._url;\r\n } // Get Url\r\n set url(v: string) {\r\n if (this._url == v) {\r\n return;\r\n }\r\n this._url = v;\r\n if (!this.img) {\r\n this.img = new Image();\r\n }\r\n // @ts-ignore\r\n this.img.src = v;\r\n } // Set Url\r\n /** item宽 */\r\n private _width: number = 0;\r\n get width(): number {\r\n return this._width;\r\n } // Get width\r\n set width(v: number) {\r\n if (v == this._width) {\r\n return;\r\n }\r\n this._width = v;\r\n this.update();\r\n } // Set width\r\n /** item高 */\r\n private _height: number = 0;\r\n get height(): number {\r\n return this._height;\r\n } // Get height\r\n set height(v: number) {\r\n if (v == this._height) {\r\n return;\r\n }\r\n this._height = v;\r\n this.update();\r\n } // Set height\r\n\r\n /**\r\n * 构造函数\r\n *\r\n * @param parent 父类\r\n * @param data 传入数据\r\n * */\r\n constructor(parent: SGraphItem | null, data: Marker) {\r\n super(parent);\r\n this.data = data;\r\n if (data.Style && data.Style.Default) {\r\n if (data.Style.Default.Url) {\r\n this.img = new Image();\r\n this.url = data.Style.Default.Url;\r\n this.img.onload = (e): void => {\r\n this.isLoadOver = true;\r\n this.update();\r\n };\r\n this.img.onerror = (e): void => {\r\n this.isLoadOver = false;\r\n this.update();\r\n console.log(\"加载图片错误!\", e);\r\n };\r\n }\r\n if (data.Size) {\r\n this.width = data.Size.Width;\r\n this.height = data.Size.Height;\r\n }\r\n this.moveTo(data.Pos.X, data.Pos.Y);\r\n }\r\n\r\n } // Constructor\r\n\r\n /**\r\n * Item对象边界区域\r\n *\r\n * @return\tSRect\r\n */\r\n boundingRect(): SRect {\r\n return new SRect(0, 0, this.width, this.height);\r\n } // Function boundingRect()\r\n\r\n /**\r\n * Item绘制操作\r\n *\r\n * @param painter 绘画类\r\n */\r\n onDraw(painter: SPainter): void {\r\n if (this.isLoadOver) {\r\n // @ts-ignore\r\n painter.drawImage(this.img, 0, 0, this.width, this.height);\r\n }\r\n } // Function onDraw()\r\n} // Class SGraphSvgItem\r\n","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\nimport { SColor, SPainter, SPoint, SRect } from \"@persagy-web/draw\";\r\nimport { SMouseButton, SMouseEvent, SUndoStack } from \"@persagy-web/base\";\r\nimport { SItemStatus } from \"@persagy-web/big\";;\r\nimport {\r\n SLineStyle,\r\n SGraphItem, SGraphPointListInsert\r\n} from \"@persagy-web/graph/\";\r\nimport { SGraphEdit } from \"..\";\r\n\r\n/**\r\n * 折线编辑类\r\n *\r\n * @author haojianlong\r\n */\r\nexport class STriangleEdit extends SGraphEdit {\r\n /** 是否绘制完成 */\r\n _status: SItemStatus = SItemStatus.Normal;\r\n get status(): SItemStatus {\r\n return this._status;\r\n }\r\n set status(v: SItemStatus) {\r\n this._status = v;\r\n this.undoStack.clear();\r\n this.update();\r\n }\r\n /** 矩形两个对角 */\r\n private _line: SPoint[] = [];\r\n get line(): SPoint[] {\r\n return this._line;\r\n } // Get line\r\n set line(arr: SPoint[]) {\r\n this._line = arr;\r\n this.update();\r\n } // Get line\r\n // 矩形左上角\r\n private _leftTop: SPoint = new SPoint();\r\n // 矩形右下角\r\n private _rightBottom: SPoint = new SPoint();\r\n // 绘制三角形的点数组\r\n private pointList: SPoint[] = [];\r\n /** 线条颜色 */\r\n _strokeColor: SColor = SColor.Black;\r\n get strokeColor(): SColor {\r\n return this._strokeColor;\r\n }\r\n set strokeColor(v: SColor) {\r\n this._strokeColor = v;\r\n this.update();\r\n }\r\n /** 填充色 */\r\n _fillColor: SColor = new SColor(\"#2196f3\");\r\n get fillColor(): SColor {\r\n return this._fillColor;\r\n }\r\n set fillColor(v: SColor) {\r\n this._fillColor = v;\r\n this.update();\r\n }\r\n /** 边框样式 */\r\n _lineStyle: SLineStyle = SLineStyle.Solid;\r\n get lineStyle(): SLineStyle {\r\n return this._lineStyle;\r\n }\r\n set lineStyle(v: SLineStyle) {\r\n this._lineStyle = v;\r\n this.update();\r\n }\r\n /** 线条宽度 */\r\n _lineWidth: number = 1;\r\n get lineWidth(): number {\r\n return this._lineWidth;\r\n }\r\n set lineWidth(v: number) {\r\n this._lineWidth = v;\r\n this.update();\r\n }\r\n /** undo/redo堆栈 */\r\n private undoStack: SUndoStack = new SUndoStack();\r\n\r\n /**\r\n * 构造函数\r\n *\r\n * @param parent 指向父对象\r\n * @param data 矩形数据\r\n */\r\n constructor(parent: SGraphItem | null, l?: SPoint | SPoint[]) {\r\n super(parent);\r\n if (l) {\r\n if (l instanceof SPoint) {\r\n this.line.push(l);\r\n this._leftTop = l;\r\n this._rightBottom = l;\r\n } else {\r\n this.line = l;\r\n this.calRect()\r\n }\r\n } else {\r\n this.line = [];\r\n }\r\n } // Constructor\r\n\r\n /**\r\n * 大小改变\r\n */\r\n resize(oldSize: SRect, newSize: SRect): void {\r\n const xs = newSize.width / oldSize.width;\r\n const ys = newSize.height / oldSize.height;\r\n this.line = this.line.map(t => {\r\n t.x = t.x * xs;\r\n t.y = t.y * ys;\r\n return t\r\n })\r\n this.calRect()\r\n this.update()\r\n }\r\n\r\n /**\r\n * 鼠标按下事件\r\n *\r\n * @param event 鼠标事件\r\n * @return 是否处理事件\r\n * */\r\n onMouseDown(event: SMouseEvent): boolean {\r\n if (event.buttons == SMouseButton.LeftButton) {\r\n if (this.status == SItemStatus.Create) {\r\n this.addPoint(new SPoint(event.x, event.y));\r\n return true;\r\n } else {\r\n return super.onMouseDown(event);\r\n }\r\n }\r\n return true;\r\n } // Function onMouseDown()\r\n\r\n /**\r\n * 鼠标移动事件\r\n *\r\n * @param event 鼠标事件\r\n * @return 是否处理事件\r\n * */\r\n onMouseMove(event: SMouseEvent): boolean {\r\n if (this.status == SItemStatus.Create) {\r\n if (this.line[0] instanceof SPoint) {\r\n this.line[1] = new SPoint(event.x, event.y);\r\n this.calRect()\r\n }\r\n } else {\r\n return super.onMouseMove(event);\r\n }\r\n this.update();\r\n return true;\r\n } // Function onMouseMove()\r\n\r\n /**\r\n * 鼠标抬起事件\r\n *\r\n * @param\tevent 事件参数\r\n * @return\tboolean\r\n */\r\n onMouseUp(event: SMouseEvent): boolean {\r\n if (this.status != SItemStatus.Create) {\r\n super.onMouseUp(event);\r\n }\r\n return true;\r\n } // Function onMouseUp()\r\n\r\n /**\r\n * 计算矩形的左上角和右下角\r\n */\r\n private calRect(): void {\r\n if (this.line.length > 1) {\r\n const fi = this.line[0];\r\n const se = this.line[1];\r\n let minx, maxx, miny, maxy;\r\n if (fi.x < se.x) {\r\n minx = fi.x;\r\n maxx = se.x;\r\n } else {\r\n minx = se.x;\r\n maxx = fi.x;\r\n }\r\n if (fi.y < se.y) {\r\n miny = fi.y;\r\n maxy = se.y;\r\n } else {\r\n miny = se.y;\r\n maxy = fi.y;\r\n }\r\n this._leftTop = new SPoint(minx, miny)\r\n this._rightBottom = new SPoint(maxx, maxy)\r\n this.calTriangel()\r\n }\r\n } // Function calRect\r\n\r\n /**\r\n * 计算绘制图形的3个点\r\n */\r\n private calTriangel(): void {\r\n this.pointList = [];\r\n this.pointList.push(new SPoint(this._leftTop.x, this._rightBottom.y))\r\n this.pointList.push(new SPoint((this._leftTop.x+this._rightBottom.x)/2, this._leftTop.y))\r\n this.pointList.push(new SPoint(this._rightBottom.x, this._rightBottom.y))\r\n } // Function calRect\r\n\r\n /**\r\n * 添加点至数组中\r\n *\r\n * @param p 添加的点\r\n * */\r\n private addPoint(p: SPoint): void {\r\n if (this.line.length < 2) {\r\n this.line.push(p);\r\n this.recordAction(SGraphPointListInsert, [this.line, p]);\r\n } else {\r\n this.line[1] = p;\r\n this.recordAction(SGraphPointListInsert, [this.line, p, 1]);\r\n this.status = SItemStatus.Normal;\r\n this.releaseItem();\r\n this.$emit(\"finishCreated\");\r\n }\r\n this.calRect()\r\n this.update();\r\n } // Function addPoint()\r\n\r\n /**\r\n * 记录相关动作并推入栈中\r\n *\r\n * @param\tSGraphCommand 相关命令类\r\n * @param\tany 对应传入参数\r\n */\r\n protected recordAction(SGraphCommand: any, any: any[]): void {\r\n // 记录相关命令并推入堆栈中\r\n const command = new SGraphCommand(this.scene, this, ...any);\r\n this.undoStack.push(command);\r\n } // Function recordAction()\r\n\r\n /**\r\n * Item对象边界区域\r\n *\r\n * @return SRect 外接矩阵\r\n * */\r\n boundingRect(): SRect {\r\n if (this.line.length > 1) {\r\n this.calRect()\r\n return new SRect(this._leftTop, this._rightBottom);\r\n }\r\n return new SRect()\r\n } // Function boundingRect()\r\n\r\n /**\r\n * 撤销操作\r\n *\r\n */\r\n undo(): void {\r\n if (this._status != SItemStatus.Normal) {\r\n this.undoStack.undo();\r\n }\r\n } // Function undo()\r\n\r\n /**\r\n * 重做操作\r\n *\r\n */\r\n redo(): void {\r\n if (this._status != SItemStatus.Normal) {\r\n this.undoStack.redo();\r\n }\r\n } // Function redo()\r\n\r\n /**\r\n * 取消操作执行\r\n *\r\n * */\r\n cancelOperate(): void {\r\n if (this.status == SItemStatus.Create) {\r\n this.parent = null;\r\n this.releaseItem();\r\n } else if (this.status == SItemStatus.Edit) {\r\n this.status = SItemStatus.Normal;\r\n this.releaseItem();\r\n }\r\n } // Function cancelOperate()\r\n\r\n /**\r\n * Item绘制操作\r\n *\r\n * @param painter painter对象\r\n */\r\n onDraw(painter: SPainter): void {\r\n if (this.line.length == 2) {\r\n painter.pen.color = this.strokeColor;\r\n painter.brush.color = this.fillColor;\r\n painter.pen.lineWidth = this.lineWidth;\r\n if (this.lineStyle == SLineStyle.Dashed) {\r\n painter.pen.lineDash = [\r\n painter.toPx(this.lineWidth * 3),\r\n painter.toPx(this.lineWidth * 7)\r\n ];\r\n } else if (this.lineStyle == SLineStyle.Dotted) {\r\n painter.pen.lineDash = [\r\n painter.toPx(this.lineWidth * 2),\r\n painter.toPx(this.lineWidth * 2)\r\n ];\r\n }\r\n painter.drawPolygon(this.pointList);\r\n }\r\n } // Function onDraw()\r\n} // Class STriangleEdit","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\nimport { SColor, SLine, SPainter, SPoint, SRect } from \"@persagy-web/draw/\";\r\nimport { SGraphItem } from \"@persagy-web/graph\";\r\nimport { Marker } from \"./../types/Marker\";\r\nimport { SMouseEvent } from \"@persagy-web/base/lib\";\r\nimport { STriangleEdit } from '../../edit/items/STriangleEdit';\r\n\r\n/**\r\n * 编辑基础三角形类\r\n *\r\n * * @author haojianlong\r\n */\r\nexport class SBaseTriangelEdit extends STriangleEdit {\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n //属性\r\n /**编辑相关操作的数据 */\r\n data: Marker\r\n\r\n constructor(parent: SGraphItem | null, data: Marker) {\r\n super(parent);\r\n this.data = data;\r\n if (data.Style && data.Style.Default) {\r\n // 关于顶点\r\n if (data.Style.Default.Line) {\r\n let setPointList: SPoint[];\r\n setPointList = data.Style.Default.Line.map(i => {\r\n return new SPoint(i.X, i.Y)\r\n });\r\n this.line = setPointList;\r\n }\r\n // 颜色\r\n if (data.Style.Default.StrokeColor) {\r\n this.strokeColor = new SColor(data.Style.Default.StrokeColor)\r\n }\r\n // 线宽\r\n if (data.Style.Default.LineWidth) {\r\n this.lineWidth = data.Style.Default.LineWidth\r\n }\r\n // 线样式\r\n if (data.Style.Default.LineStyle) {\r\n this.lineStyle = data.Style.Default.LineStyle\r\n }\r\n }\r\n }\r\n /**\r\n * 鼠标按下事件\r\n *\r\n * @param event 保存事件参数\r\n * @return boolean\r\n */\r\n onMouseDown(event: SMouseEvent): boolean {\r\n super.onMouseDown(event)\r\n return true;\r\n } // Function onMouseDown()\r\n\r\n toData() {\r\n console.log(1230)\r\n }\r\n}","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\nimport { SArrowStyleType, SColor, SLine, SPainter, SPoint, SRect } from \"@persagy-web/draw\";\r\nimport { SMouseButton, SMouseEvent, SUndoStack } from \"@persagy-web/base\";\r\nimport { SItemStatus } from \"@persagy-web/big\";;\r\nimport {\r\n SLineStyle,\r\n SGraphItem, SGraphPointListInsert, SGraphPointListUpdate\r\n} from \"@persagy-web/graph/\";\r\nimport { SGraphEdit } from \"..\";\r\nimport { SMathUtil } from '@persagy-web/big/lib/utils/SMathUtil';\r\n\r\n/**\r\n * 折线编辑类\r\n *\r\n * @author haojianlong\r\n */\r\nexport class SArrowEdit extends SGraphEdit {\r\n /** 是否绘制完成 */\r\n _status: SItemStatus = SItemStatus.Normal;\r\n get status(): SItemStatus {\r\n return this._status;\r\n }\r\n set status(v: SItemStatus) {\r\n this._status = v;\r\n this.undoStack.clear();\r\n this.update();\r\n }\r\n /** 矩形两个对角 */\r\n private _line: SPoint[] = [];\r\n get line(): SPoint[] {\r\n return this._line;\r\n } // Get line\r\n set line(arr: SPoint[]) {\r\n this._line = arr;\r\n this.update();\r\n } // Get line\r\n /** 矩形左上角 */\r\n private _leftTop: SPoint = new SPoint();\r\n /** 矩形右下角 */\r\n private _rightBottom: SPoint = new SPoint();\r\n /** 拖动灵敏度 */\r\n dis: number = 5;\r\n /** 拖动灵敏度 */\r\n private sceneDis: number = 5;\r\n /** 是否垂直水平绘制 */\r\n private _verAndLeve: Boolean = false;\r\n get verAndLeve(): Boolean {\r\n return this._verAndLeve;\r\n }\r\n set verAndLeve(bool: Boolean) {\r\n this._verAndLeve = bool;\r\n this.update();\r\n }\r\n /** 当前点索引 */\r\n curIndex: number = -1;\r\n\r\n /** 当前点坐标 */\r\n private curPoint: SPoint | null = null;\r\n /** 线条颜色 */\r\n _strokeColor: SColor = SColor.Black;\r\n get strokeColor(): SColor {\r\n return this._strokeColor;\r\n }\r\n set strokeColor(v: SColor) {\r\n this._strokeColor = v;\r\n this.update();\r\n }\r\n /** 填充色 */\r\n _fillColor: SColor = new SColor(\"#2196f3\");\r\n get fillColor(): SColor {\r\n return this._fillColor;\r\n }\r\n set fillColor(v: SColor) {\r\n this._fillColor = v;\r\n this.update();\r\n }\r\n /** 选中端点填充色 */\r\n private _activeFillColor: SColor = new SColor(\"#2196f3\");\r\n get activeFillColor(): SColor {\r\n return this._activeFillColor;\r\n }\r\n set activeFillColor(v: SColor) {\r\n this._activeFillColor = v;\r\n this.update();\r\n }\r\n /** 边框样式 */\r\n _lineStyle: SLineStyle = SLineStyle.Solid;\r\n get lineStyle(): SLineStyle {\r\n return this._lineStyle;\r\n }\r\n set lineStyle(v: SLineStyle) {\r\n this._lineStyle = v;\r\n this.update();\r\n }\r\n /** 线条宽度 */\r\n _lineWidth: number = 1;\r\n get lineWidth(): number {\r\n return this._lineWidth;\r\n }\r\n set lineWidth(v: number) {\r\n this._lineWidth = v;\r\n this.update();\r\n }\r\n /** undo/redo堆栈 */\r\n private undoStack: SUndoStack = new SUndoStack();\r\n\r\n /**\r\n * 构造函数\r\n *\r\n * @param parent 指向父对象\r\n * @param data 矩形数据\r\n */\r\n constructor(parent: SGraphItem | null, l?: SPoint | SPoint[]) {\r\n super(parent);\r\n this.showSelect = false;\r\n if (l) {\r\n if (l instanceof SPoint) {\r\n this.line.push(l);\r\n this._leftTop = l;\r\n this._rightBottom = l;\r\n } else {\r\n this.line = l;\r\n this.calRect()\r\n }\r\n } else {\r\n this.line = [];\r\n }\r\n } // Constructor\r\n\r\n /**\r\n * 鼠标双击事件\r\n *\r\n * @param\tevent 事件参数\r\n * @return\tboolean\r\n */\r\n onDoubleClick(event: SMouseEvent): boolean {\r\n if (this.status == SItemStatus.Normal) {\r\n this.status = SItemStatus.Edit;\r\n this.grabItem(this);\r\n } else if (this.status == SItemStatus.Edit) {\r\n this.status = SItemStatus.Normal;\r\n this.releaseItem();\r\n }\r\n this.update();\r\n return true;\r\n } // Function onDoubleClick()\r\n\r\n /**\r\n * 鼠标按下事件\r\n *\r\n * @param event 鼠标事件\r\n * @return 是否处理事件\r\n * */\r\n onMouseDown(event: SMouseEvent): boolean {\r\n this.curIndex = -1;\r\n this.curPoint = null;\r\n if (event.shiftKey || this._verAndLeve) {\r\n event = this.compare(event);\r\n }\r\n if (event.buttons == SMouseButton.LeftButton) {\r\n if (this.status == SItemStatus.Normal) {\r\n return super.onMouseDown(event);\r\n } else if (this.status == SItemStatus.Edit) {\r\n // 判断是否点击到端点上(获取端点索引值)\r\n this.findNearestPoint(new SPoint(event.x, event.y));\r\n } else if (this.status == SItemStatus.Create) {\r\n this.addPoint(new SPoint(event.x, event.y));\r\n return true;\r\n }\r\n }\r\n return true;\r\n } // Function onMouseDown()\r\n\r\n /**\r\n * shift垂直水平创建或编辑\r\n *\r\n * @param event 事件\r\n * */\r\n compare(event: SMouseEvent): SMouseEvent {\r\n if (this.line.length) {\r\n let last = new SPoint(event.x, event.y);\r\n if (this.status == SItemStatus.Create) {\r\n last = this.line[0];\r\n } else if (this.status == SItemStatus.Edit) {\r\n if (this.curIndex == 1) {\r\n last = this.line[0];\r\n } else if (this.curIndex == 0) {\r\n last = this.line[1];\r\n }\r\n }\r\n const dx = Math.abs(event.x - last.x);\r\n const dy = Math.abs(event.y - last.y);\r\n if (dy > dx) {\r\n event.x = last.x;\r\n } else {\r\n event.y = last.y;\r\n }\r\n }\r\n return event;\r\n } // Function compare()\r\n\r\n /**\r\n * 获取点击点与Point[]中的点距离最近点\r\n *\r\n * @param p 鼠标点击点\r\n * */\r\n findNearestPoint(p: SPoint): void {\r\n let len = this.sceneDis;\r\n for (let i = 0; i < this.line.length; i++) {\r\n let dis = SMathUtil.pointDistance(\r\n p.x,\r\n p.y,\r\n this.line[i].x,\r\n this.line[i].y\r\n );\r\n if (dis < len) {\r\n len = dis;\r\n this.curIndex = i;\r\n this.curPoint = new SPoint(this.line[this.curIndex]);\r\n }\r\n }\r\n } // Function findNearestPoint()\r\n\r\n /**\r\n * 鼠标移动事件\r\n *\r\n * @param event 鼠标事件\r\n * @return 是否处理事件\r\n * */\r\n onMouseMove(event: SMouseEvent): boolean { \r\n if (event.shiftKey || this._verAndLeve) {\r\n event = this.compare(event);\r\n }\r\n if (this.status == SItemStatus.Create) {\r\n if (this.line[0] instanceof SPoint) {\r\n this.line[1] = new SPoint(event.x, event.y);\r\n this.calRect()\r\n }\r\n } else if (this.status == SItemStatus.Edit) {\r\n if (-1 != this.curIndex) {\r\n this.line[this.curIndex].x = event.x;\r\n this.line[this.curIndex].y = event.y;\r\n this.calRect()\r\n }\r\n } else {\r\n return super.onMouseMove(event);\r\n }\r\n this.update();\r\n return true;\r\n } // Function onMouseMove()\r\n\r\n /**\r\n * 鼠标抬起事件\r\n *\r\n * @param\tevent 事件参数\r\n * @return\tboolean\r\n */\r\n onMouseUp(event: SMouseEvent): boolean {\r\n if (this.status == SItemStatus.Edit) {\r\n if (this.curIndex > -1) {\r\n const p = new SPoint(\r\n this.line[this.curIndex].x,\r\n this.line[this.curIndex].y\r\n );\r\n this.recordAction(SGraphPointListUpdate, [\r\n this.line,\r\n this.curPoint,\r\n p,\r\n this.curIndex\r\n ]);\r\n }\r\n } else if (this.status == SItemStatus.Normal) {\r\n this.moveToOrigin(this.x, this.y);\r\n return super.onMouseUp(event);\r\n }\r\n this.curIndex = -1;\r\n this.curPoint = null;\r\n return true;\r\n return true;\r\n } // Function onMouseUp()\r\n\r\n /**\r\n * 计算矩形的左上角和右下角\r\n */\r\n private calRect(): void {\r\n if (this.line.length > 1) {\r\n const fi = this.line[0];\r\n const se = this.line[1];\r\n let minx, maxx, miny, maxy;\r\n if (fi.x < se.x) {\r\n minx = fi.x;\r\n maxx = se.x;\r\n } else {\r\n minx = se.x;\r\n maxx = fi.x;\r\n }\r\n if (fi.y < se.y) {\r\n miny = fi.y;\r\n maxy = se.y;\r\n } else {\r\n miny = se.y;\r\n maxy = fi.y;\r\n }\r\n this._leftTop = new SPoint(minx, miny)\r\n this._rightBottom = new SPoint(maxx, maxy)\r\n }\r\n } // Function calRect\r\n\r\n /**\r\n * 添加点至数组中\r\n *\r\n * @param p 添加的点\r\n * */\r\n private addPoint(p: SPoint): void {\r\n if (this.line.length < 2) {\r\n this.line.push(p);\r\n this.recordAction(SGraphPointListInsert, [this.line, p]);\r\n } else {\r\n this.line[1] = p;\r\n this.recordAction(SGraphPointListInsert, [this.line, p, 1]);\r\n this.status = SItemStatus.Normal;\r\n this.releaseItem();\r\n this.$emit(\"finishCreated\");\r\n }\r\n this.calRect()\r\n this.update();\r\n } // Function addPoint()\r\n\r\n /**\r\n * 移动后处理所有坐标,并肩原点置为场景原点\r\n *\r\n * @param x x坐标\r\n * @param y y坐标\r\n * */\r\n moveToOrigin(x: number, y: number): void {\r\n super.moveToOrigin(x, y);\r\n this.line = this.line.map(t => {\r\n t.x = t.x + x;\r\n t.y = t.y + y;\r\n return t;\r\n });\r\n this.x = 0;\r\n this.y = 0;\r\n } // Function moveToOrigin()\r\n\r\n /**\r\n * 记录相关动作并推入栈中\r\n *\r\n * @param\tSGraphCommand 相关命令类\r\n * @param\tany 对应传入参数\r\n */\r\n protected recordAction(SGraphCommand: any, any: any[]): void {\r\n // 记录相关命令并推入堆栈中\r\n const command = new SGraphCommand(this.scene, this, ...any);\r\n this.undoStack.push(command);\r\n } // Function recordAction()\r\n\r\n /**\r\n * 判断点是否在区域内\r\n *\r\n * @param x\r\n * @param y\r\n * @return true-是\r\n */\r\n contains(x: number, y: number): boolean {\r\n if (this.line.length == 2) {\r\n let p = new SPoint(x, y);\r\n if (\r\n SMathUtil.pointToLine(p, new SLine(this.line[0], this.line[1]))\r\n .MinDis < this.dis\r\n ) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n } // Function contains()\r\n\r\n /**\r\n * Item对象边界区域\r\n *\r\n * @return SRect 外接矩阵\r\n * */\r\n boundingRect(): SRect {\r\n if (this.line.length > 1) {\r\n this.calRect()\r\n return new SRect(this._leftTop, this._rightBottom);\r\n }\r\n return new SRect()\r\n } // Function boundingRect()\r\n\r\n /**\r\n * 撤销操作\r\n *\r\n */\r\n undo(): void {\r\n if (this._status != SItemStatus.Normal) {\r\n this.undoStack.undo();\r\n }\r\n } // Function undo()\r\n\r\n /**\r\n * 重做操作\r\n *\r\n */\r\n redo(): void {\r\n if (this._status != SItemStatus.Normal) {\r\n this.undoStack.redo();\r\n }\r\n } // Function redo()\r\n\r\n /**\r\n * 取消操作执行\r\n *\r\n * */\r\n cancelOperate(): void {\r\n if (this.status == SItemStatus.Create) {\r\n this.parent = null;\r\n this.releaseItem();\r\n } else if (this.status == SItemStatus.Edit) {\r\n this.status = SItemStatus.Normal;\r\n this.releaseItem();\r\n }\r\n } // Function cancelOperate()\r\n\r\n /**\r\n * Item绘制操作\r\n *\r\n * @param painter painter对象\r\n */\r\n onDraw(painter: SPainter): void {\r\n painter.pen.color = this.strokeColor;\r\n if (this.line.length == 2) {\r\n painter.brush.color = this.fillColor;\r\n painter.pen.lineWidth = this.lineWidth\r\n if (this.lineStyle == SLineStyle.Dashed) {\r\n painter.pen.lineDash = [\r\n painter.toPx(this.lineWidth * 3),\r\n painter.toPx(this.lineWidth * 7)\r\n ];\r\n } else if (this.lineStyle == SLineStyle.Dotted) {\r\n painter.pen.lineDash = [\r\n painter.toPx(this.lineWidth * 2),\r\n painter.toPx(this.lineWidth * 2)\r\n ];\r\n }\r\n if (this.selected && this.status == SItemStatus.Normal) {\r\n painter.pen.lineWidth = painter.toPx(this.lineWidth * 2);\r\n painter.shadow.shadowBlur = 10;\r\n painter.shadow.shadowColor = new SColor(`#00000033`);\r\n painter.shadow.shadowOffsetX = 5;\r\n painter.shadow.shadowOffsetY = 5;\r\n }\r\n painter.drawArrowLine(this.line[0], this.line[1], { begin: SArrowStyleType.None, end: SArrowStyleType.Basic });\r\n if (\r\n this.status == SItemStatus.Edit ||\r\n this.status == SItemStatus.Create\r\n ) {\r\n // 绘制端点\r\n this.line.forEach((p, i): void => {\r\n painter.brush.color = this.fillColor;\r\n if (i == this.curIndex) {\r\n painter.brush.color = this.activeFillColor;\r\n }\r\n painter.drawCircle(p.x, p.y, painter.toPx(5));\r\n });\r\n }\r\n } else if (this.line.length == 1) {\r\n if (\r\n this.status == SItemStatus.Edit ||\r\n this.status == SItemStatus.Create\r\n ) {\r\n // 绘制端点\r\n painter.brush.color = this.fillColor;\r\n painter.drawCircle(\r\n this.line[0].x,\r\n this.line[0].y,\r\n painter.toPx(5)\r\n );\r\n }\r\n }\r\n } // Function onDraw()\r\n} // Class SArrowEdit","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\nimport { SColor, SLine, SPainter, SPoint, SRect } from \"@persagy-web/draw/\";\r\nimport { SGraphItem } from \"@persagy-web/graph\";\r\nimport { Marker } from \"./../types/Marker\";\r\nimport { SMouseEvent } from \"@persagy-web/base/lib\";\r\nimport { SArrowEdit } from '../../edit/items/SArrowEdit';\r\n\r\n/**\r\n * 编辑基础箭头类\r\n *\r\n * * @author haojianlong\r\n */\r\nexport class SBaseArrowEdit extends SArrowEdit {\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n //属性\r\n /**编辑相关操作的数据 */\r\n data: Marker\r\n\r\n constructor(parent: SGraphItem | null, data: Marker) {\r\n super(parent);\r\n this.data = data;\r\n if (data.Style && data.Style.Default) {\r\n // 关于顶点\r\n if (data.Style.Default.Line) {\r\n let setPointList: SPoint[];\r\n setPointList = data.Style.Default.Line.map(i => {\r\n return new SPoint(i.X, i.Y)\r\n });\r\n this.line = setPointList;\r\n }\r\n // 颜色\r\n if (data.Style.Default.StrokeColor) {\r\n this.strokeColor = new SColor(data.Style.Default.StrokeColor)\r\n }\r\n // 线宽\r\n if (data.Style.Default.LineWidth) {\r\n this.lineWidth = data.Style.Default.LineWidth\r\n }\r\n // 线样式\r\n if (data.Style.Default.LineStyle) {\r\n this.lineStyle = data.Style.Default.LineStyle\r\n }\r\n }\r\n }\r\n /**\r\n * 鼠标按下事件\r\n *\r\n * @param event 保存事件参数\r\n * @return boolean\r\n */\r\n onMouseDown(event: SMouseEvent): boolean {\r\n super.onMouseDown(event)\r\n return true;\r\n } // Function onMouseDown()\r\n\r\n toData() {\r\n console.log(1230)\r\n }\r\n}","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\nimport { SColor, SPainter, SPoint, SRect } from \"@persagy-web/draw\";\r\nimport { SMouseButton, SMouseEvent, SUndoStack } from \"@persagy-web/base\";\r\nimport { SItemStatus } from \"@persagy-web/big\";;\r\nimport {\r\n SLineStyle,\r\n SGraphItem, SGraphPointListInsert\r\n} from \"@persagy-web/graph/\";\r\nimport { SGraphEdit } from \"..\";\r\n\r\n/**\r\n * 折线编辑类\r\n *\r\n * @author haojianlong\r\n */\r\nexport class SCircleEdit extends SGraphEdit {\r\n /** 是否绘制完成 */\r\n _status: SItemStatus = SItemStatus.Normal;\r\n get status(): SItemStatus {\r\n return this._status;\r\n }\r\n set status(v: SItemStatus) {\r\n this._status = v;\r\n this.undoStack.clear();\r\n this.update();\r\n }\r\n /** 矩形两个对角 */\r\n private _line: SPoint[] = [];\r\n get line(): SPoint[] {\r\n return this._line;\r\n } // Get line\r\n set line(arr: SPoint[]) {\r\n this._line = arr;\r\n this.update();\r\n } // Get line\r\n /** 矩形左上角 */\r\n private _leftTop: SPoint = new SPoint();\r\n /** 矩形右下角 */\r\n private _rightBottom: SPoint = new SPoint();\r\n /** 绘制矩形的圆角半径 */\r\n private _radius: number = 0;\r\n get radius(): number {\r\n return this._radius;\r\n } // Get radius\r\n set radius(v: number) {\r\n if (v == this._radius) {\r\n return;\r\n }\r\n this._radius = v;\r\n this.update();\r\n } // Set radius\r\n /** 线条颜色 */\r\n _strokeColor: SColor = SColor.Black;\r\n get strokeColor(): SColor {\r\n return this._strokeColor;\r\n }\r\n set strokeColor(v: SColor) {\r\n this._strokeColor = v;\r\n this.update();\r\n }\r\n /** 填充色 */\r\n _fillColor: SColor = new SColor(\"#2196f3\");\r\n get fillColor(): SColor {\r\n return this._fillColor;\r\n }\r\n set fillColor(v: SColor) {\r\n this._fillColor = v;\r\n this.update();\r\n }\r\n /** 边框样式 */\r\n _lineStyle: SLineStyle = SLineStyle.Solid;\r\n get lineStyle(): SLineStyle {\r\n return this._lineStyle;\r\n }\r\n set lineStyle(v: SLineStyle) {\r\n this._lineStyle = v;\r\n this.update();\r\n }\r\n /** 线条宽度 */\r\n _lineWidth: number = 1;\r\n get lineWidth(): number {\r\n return this._lineWidth;\r\n }\r\n set lineWidth(v: number) {\r\n this._lineWidth = v;\r\n this.update();\r\n }\r\n /** undo/redo堆栈 */\r\n private undoStack: SUndoStack = new SUndoStack();\r\n\r\n /**\r\n * 构造函数\r\n *\r\n * @param parent 指向父对象\r\n * @param data 矩形数据\r\n */\r\n constructor(parent: SGraphItem | null, l?: SPoint | SPoint[]) {\r\n super(parent);\r\n if (l) {\r\n if (l instanceof SPoint) {\r\n this.line.push(l);\r\n this._leftTop = l;\r\n this._rightBottom = l;\r\n } else {\r\n this.line = l;\r\n this.calRect()\r\n }\r\n } else {\r\n this.line = [];\r\n }\r\n } // Constructor\r\n\r\n /**\r\n * 大小改变\r\n */\r\n resize(oldSize: SRect, newSize: SRect): void {\r\n const xs = newSize.width / oldSize.width;\r\n const ys = newSize.height / oldSize.height;\r\n this.line = this.line.map(t => {\r\n t.x = t.x * xs;\r\n t.y = t.y * ys;\r\n return t\r\n })\r\n this.calRect()\r\n this.update()\r\n }\r\n\r\n /**\r\n * 鼠标按下事件\r\n *\r\n * @param event 鼠标事件\r\n * @return 是否处理事件\r\n * */\r\n onMouseDown(event: SMouseEvent): boolean {\r\n if (event.buttons == SMouseButton.LeftButton) {\r\n if (this.status == SItemStatus.Create) {\r\n this.addPoint(new SPoint(event.x, event.y));\r\n return true;\r\n } else {\r\n return super.onMouseDown(event);\r\n }\r\n }\r\n return true;\r\n } // Function onMouseDown()\r\n\r\n /**\r\n * 鼠标移动事件\r\n *\r\n * @param event 鼠标事件\r\n * @return 是否处理事件\r\n * */\r\n onMouseMove(event: SMouseEvent): boolean {\r\n if (this.status == SItemStatus.Create) {\r\n if (this.line[0] instanceof SPoint) {\r\n this.line[1] = new SPoint(event.x, event.y);\r\n this.calRect()\r\n }\r\n } else {\r\n return super.onMouseMove(event);\r\n }\r\n this.update();\r\n return true;\r\n } // Function onMouseMove()\r\n\r\n /**\r\n * 鼠标抬起事件\r\n *\r\n * @param\tevent 事件参数\r\n * @return\tboolean\r\n */\r\n onMouseUp(event: SMouseEvent): boolean {\r\n if (this.status != SItemStatus.Create) {\r\n super.onMouseUp(event);\r\n }\r\n return true;\r\n } // Function onMouseUp()\r\n\r\n /**\r\n * 计算矩形的左上角和右下角\r\n */\r\n private calRect(): void {\r\n if (this.line.length > 1) {\r\n const fi = this.line[0];\r\n const se = this.line[1];\r\n let minx, maxx, miny, maxy;\r\n if (fi.x < se.x) {\r\n minx = fi.x;\r\n maxx = se.x;\r\n } else {\r\n minx = se.x;\r\n maxx = fi.x;\r\n }\r\n if (fi.y < se.y) {\r\n miny = fi.y;\r\n maxy = se.y;\r\n } else {\r\n miny = se.y;\r\n maxy = fi.y;\r\n }\r\n this._leftTop = new SPoint(minx, miny)\r\n this._rightBottom = new SPoint(maxx, maxy)\r\n }\r\n } // Function calRect\r\n\r\n /**\r\n * 添加点至数组中\r\n *\r\n * @param p 添加的点\r\n * */\r\n private addPoint(p: SPoint): void {\r\n if (this.line.length < 2) {\r\n this.line.push(p);\r\n this.recordAction(SGraphPointListInsert, [this.line, p]);\r\n } else {\r\n this.line[1] = p;\r\n this.recordAction(SGraphPointListInsert, [this.line, p, 1]);\r\n this.status = SItemStatus.Normal;\r\n this.releaseItem();\r\n this.$emit(\"finishCreated\");\r\n }\r\n this.calRect()\r\n this.update();\r\n } // Function addPoint()\r\n\r\n /**\r\n * 记录相关动作并推入栈中\r\n *\r\n * @param\tSGraphCommand 相关命令类\r\n * @param\tany 对应传入参数\r\n */\r\n protected recordAction(SGraphCommand: any, any: any[]): void {\r\n // 记录相关命令并推入堆栈中\r\n const command = new SGraphCommand(this.scene, this, ...any);\r\n this.undoStack.push(command);\r\n } // Function recordAction()\r\n\r\n /**\r\n * Item对象边界区域\r\n *\r\n * @return SRect 外接矩阵\r\n * */\r\n boundingRect(): SRect {\r\n if (this.line.length > 1) {\r\n this.calRect()\r\n return new SRect(this._leftTop, this._rightBottom);\r\n }\r\n return new SRect()\r\n } // Function boundingRect()\r\n\r\n /**\r\n * 撤销操作\r\n *\r\n */\r\n undo(): void {\r\n if (this._status != SItemStatus.Normal) {\r\n this.undoStack.undo();\r\n }\r\n } // Function undo()\r\n\r\n /**\r\n * 重做操作\r\n *\r\n */\r\n redo(): void {\r\n if (this._status != SItemStatus.Normal) {\r\n this.undoStack.redo();\r\n }\r\n } // Function redo()\r\n\r\n /**\r\n * 取消操作执行\r\n *\r\n * */\r\n cancelOperate(): void {\r\n if (this.status == SItemStatus.Create) {\r\n this.parent = null;\r\n this.releaseItem();\r\n } else if (this.status == SItemStatus.Edit) {\r\n this.status = SItemStatus.Normal;\r\n this.releaseItem();\r\n }\r\n } // Function cancelOperate()\r\n\r\n /**\r\n * Item绘制操作\r\n *\r\n * @param painter painter对象\r\n */\r\n onDraw(painter: SPainter): void {\r\n if (this.line.length == 2) {\r\n painter.pen.color = this.strokeColor;\r\n painter.brush.color = this.fillColor;\r\n painter.pen.lineWidth = this.lineWidth;\r\n if (this.lineStyle == SLineStyle.Dashed) {\r\n painter.pen.lineDash = [\r\n painter.toPx(this.lineWidth * 3),\r\n painter.toPx(this.lineWidth * 7)\r\n ];\r\n } else if (this.lineStyle == SLineStyle.Dotted) {\r\n painter.pen.lineDash = [\r\n painter.toPx(this.lineWidth * 2),\r\n painter.toPx(this.lineWidth * 2)\r\n ];\r\n }\r\n painter.drawEllipse(\r\n (this._leftTop.x + this._rightBottom.x) / 2,\r\n (this._leftTop.y + this._rightBottom.y) / 2,\r\n (this._rightBottom.x - this._leftTop.x) / 2,\r\n (this._rightBottom.y - this._leftTop.y) / 2\r\n );\r\n }\r\n } // Function onDraw()\r\n} // Class SCircleEdit","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\nimport { SColor, SLine, SPainter, SPoint, SRect } from \"@persagy-web/draw/\";\r\nimport { SGraphItem } from \"@persagy-web/graph\";\r\nimport { Marker } from \"./../types/Marker\";\r\nimport { SMouseEvent } from \"@persagy-web/base/lib\";\r\nimport { SCircleEdit } from '../../edit/items/SCircleEdit';\r\n\r\n/**\r\n * 编辑基础矩形类\r\n *\r\n * * @author haojianlong\r\n */\r\nexport class SBaseCircleEdit extends SCircleEdit {\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n //属性\r\n /**编辑相关操作的数据 */\r\n data: Marker\r\n\r\n constructor(parent: SGraphItem | null, data: Marker) {\r\n super(parent);\r\n this.data = data;\r\n if (data.Style && data.Style.Default) {\r\n // 关于顶点\r\n if (data.Style.Default.Line) {\r\n let setPointList: SPoint[];\r\n setPointList = data.Style.Default.Line.map(i => {\r\n return new SPoint(i.X, i.Y)\r\n });\r\n this.line = setPointList;\r\n }\r\n // 颜色\r\n if (data.Style.Default.StrokeColor) {\r\n this.strokeColor = new SColor(data.Style.Default.StrokeColor)\r\n }\r\n // 线宽\r\n if (data.Style.Default.LineWidth) {\r\n this.lineWidth = data.Style.Default.LineWidth\r\n }\r\n // 线样式\r\n if (data.Style.Default.LineStyle) {\r\n this.lineStyle = data.Style.Default.LineStyle\r\n }\r\n }\r\n }\r\n /**\r\n * 鼠标按下事件\r\n *\r\n * @param event 保存事件参数\r\n * @return boolean\r\n */\r\n onMouseDown(event: SMouseEvent): boolean {\r\n super.onMouseDown(event)\r\n return true;\r\n } // Function onMouseDown()\r\n\r\n toData() {\r\n console.log(1230)\r\n }\r\n}","import { SBaseEditScene, SBaseLineEdit, SBaseTextEdit, SBaseExpainEdit, SBaseRectEdit, SBaseEquipment } from \"./../big-edit\";\r\nimport { SPersagyImageEdit } from \"./\"\r\n// import { SGraphItem } from \"@persagy-web/graph/\";\r\nimport { SGraphEdit } from \"./../edit\"\r\nimport { SMouseEvent } from \"@persagy-web/base/lib\";\r\nimport { SGraphSelectContainer, SLineStyle } from \"@persagy-web/graph\";\r\nimport { SItemStatus } from \"@persagy-web/big/lib/enums/SItemStatus\";\r\nimport { uuid, rgbaNum } from \"./../big-edit/until\";\r\n\r\n// 引入命令\r\nimport { SGraphAddCommand } from \"./../edit/commands/SGraphAddCommand\"\r\nimport { SColor } from '@persagy-web/draw/lib';\r\nimport { SBaseTriangelEdit } from '../big-edit/items/SBaseTriangleEdit';\r\nimport { SBaseArrowEdit } from '../big-edit/items/SBaseArrowEdit';\r\nimport { SBaseCircleEdit } from '../big-edit/items/SBaseCircleEdit';\r\nexport class PTopoScene extends SBaseEditScene {\r\n constructor() {\r\n super()\r\n // // 选择绑定选额item事件\r\n this.selectContainer.connect(\"listChange\", this, this.listChange);\r\n }\r\n\r\n /**\r\n * 选中返回的选中item回调方法\r\n *\r\n * @param event 鼠标事件参数\r\n */\r\n listChange(list: any): void {\r\n const itemList: any = []\r\n list.itemList.forEach((item: any) => {\r\n if ((item instanceof SGraphEdit) && !(item instanceof SGraphSelectContainer)) {\r\n itemList.push(item)\r\n }\r\n })\r\n this.emitChoice(itemList);\r\n }\r\n\r\n /**\r\n * 选中返回的选中item回调方法(用于场景的外部调用)\r\n *\r\n * @param list 选中的item数组\r\n */\r\n emitChoice(list: any) {\r\n }\r\n\r\n /**\r\n * 鼠标左键按下\r\n *\r\n * @param event 鼠标事件参数\r\n */\r\n onMouseDown(event: SMouseEvent): any {\r\n this.vueOnMouseDown(event) //外部调用\r\n if (this.editCmd == \"EditBaseLine\") {\r\n this.addLine(event)\r\n this.clearCmdStatus();\r\n } else if (this.editCmd == \"EditBasetext\") {\r\n this.addTextItem(event);\r\n this.clearCmdStatus();\r\n } else if (this.editCmd == \"BaseExplain\") {\r\n this.addExplainItem(event);\r\n this.clearCmdStatus();\r\n } else if (this.editCmd == \"EditBaseImage\") {\r\n this.addImageItem(event)\r\n this.clearCmdStatus();\r\n } else if (this.editCmd == \"EditBasePolygon\") {\r\n console.log('编辑多边形')\r\n } else if (this.editCmd == \"EditBaseRect\") {\r\n this.addRectItem(event)\r\n this.clearCmdStatus();\r\n } else if (this.editCmd == \"EditBaseTriangle\") {\r\n this.addTriangleItem(event)\r\n this.clearCmdStatus();\r\n } else if (this.editCmd == \"EditBaseCircle\") {\r\n this.addCircleItem(event)\r\n this.clearCmdStatus();\r\n } else if (this.editCmd == \"EditBaseArrows\") {\r\n this.addArrowsItem(event)\r\n this.clearCmdStatus();\r\n } else if (this.editCmd == \"EditEuqipment\") {\r\n this.addEuqipment(event)\r\n this.clearCmdStatus();\r\n } else if (this.editCmd == \"\") {\r\n super.onMouseDown(event);\r\n }\r\n }\r\n /**\r\n * 鼠标右键事件\r\n *\r\n * @param event 鼠标事件参数\r\n */\r\n onContextMenu(event: SMouseEvent): boolean {\r\n if (!super.onContextMenu(event)) {\r\n this.getItem(null, [event])\r\n }\r\n return true\r\n }\r\n /////////////////////////////////////////////////////////////////////////////////////////////////\r\n //新增 item 类方法;\r\n /**\r\n * 新增基础类直线\r\n *\r\n * @param event 鼠标事件参数\r\n */\r\n addLine(event: SMouseEvent): void {\r\n const data = {\r\n /** 名称 */\r\n Name: '基础直线',\r\n /** 图标(Image),线类型(Line) */\r\n Type: \"Line\",\r\n /** 缩放比例(Image),线类型(Line) */\r\n Scale: { X: 1, Y: 1, Z: 1 },\r\n /** 缩放比例(Image),线类型(Line) */\r\n Rolate: { X: 0, Y: 0, Z: 0 },\r\n /** 位置 */\r\n Pos: { X: 0, Y: 0 },\r\n /** 由应用自己定义 */\r\n Properties: {\r\n Type: \"BaseLine\" // 自定义类型用于区分mark与node\r\n },\r\n Style: {\r\n Default: {\r\n Line: [{ X: event.x, Y: event.y }],\r\n }\r\n\r\n }\r\n }\r\n const lineItem = new SBaseLineEdit(null, data);\r\n lineItem.status = SItemStatus.Create;\r\n this.addItem(lineItem);\r\n this.undoStack.push(new SGraphAddCommand(this, lineItem));\r\n lineItem.selectable = true;\r\n this.grabItem = lineItem;\r\n lineItem.connect(\"finishCreated\", this, this.finishCreated);\r\n lineItem.connect(\"onContextMenu\", this, this.getItem);\r\n if (this.view) {\r\n this.view.update();\r\n }\r\n }\r\n\r\n /**\r\n * 新增基础类文本\r\n *\r\n * @param event 鼠标事件参数\r\n */\r\n addTextItem(event: SMouseEvent): void {\r\n const data = {\r\n /** 名称 */\r\n Name: '基础文本',\r\n /** 图标 */\r\n Type: \"Text\",\r\n /** 位置 */\r\n Pos: { X: event.x, Y: event.y },\r\n Size: { Width: 0, Height: 0 },\r\n /** 由应用自己定义 */\r\n Properties: {\r\n Type: \"BaseText\" // 自定义类型用于区分mark与node\r\n },\r\n Style: {\r\n Default: {\r\n Text: '请在右侧属性栏输入文字!',\r\n Color: \"#646c73\",\r\n Font: 14,\r\n BackgroundColor: \"#f7f9facc\",\r\n }\r\n }\r\n }\r\n const item = new SBaseTextEdit(null, data);\r\n item.moveTo(event.x, event.y);\r\n item.moveable = true;\r\n this.addItem(item);\r\n this.undoStack.push(new SGraphAddCommand(this, item));\r\n this.grabItem = null;\r\n item.connect(\"onContextMenu\", this, this.getItem);\r\n this.finishCreated(item);\r\n }\r\n\r\n /**\r\n * 新增基础类注释\r\n *\r\n * @param event 鼠标事件参数\r\n */\r\n addExplainItem(event: SMouseEvent): void {\r\n const data = {\r\n /** 名称 */\r\n Name: '基础注释文本',\r\n /** 图标 */\r\n Type: \"Text\",\r\n /** 位置 */\r\n Pos: { X: event.x, Y: event.y },\r\n /** 由应用自己定义 */\r\n Properties: {\r\n Type: \"BaseExplain\",\r\n },\r\n Style: {\r\n Default: {\r\n Text: '请在右侧属性栏输入文字!',\r\n Color: \"#646c73\",\r\n Font: 14,\r\n BackgroundColor: \"#f7f9facc\",\r\n }\r\n }\r\n }\r\n const item = new SBaseExpainEdit(null, data);\r\n item.moveTo(event.x, event.y);\r\n item.selectable = true;\r\n item.moveable = true;\r\n this.addItem(item);\r\n this.undoStack.push(new SGraphAddCommand(this, item));\r\n // this.Markers.push(item);\r\n this.grabItem = null;\r\n // this.focusItem = item;\r\n this.finishCreated(item);\r\n // this.scenceUpdate(this);\r\n }\r\n\r\n /**\r\n * 新增基础类图片\r\n *\r\n * @param event 鼠标事件参数\r\n */\r\n addImageItem(event: SMouseEvent): void {\r\n const data = {\r\n /** 名称 */\r\n Name: '基础图片',\r\n Num: 1,\r\n /** 图标(Image),线类型(Line) */\r\n Type: \"Image\",\r\n /** 位置 */\r\n Pos: { X: event.x, Y: event.y },\r\n /** 由应用自己定义 */\r\n Properties: {\r\n Type: \"BaseImage\",\r\n },\r\n Style: {\r\n Default: {\r\n StrokeColor: \"#c0ccda\",\r\n Url: '',\r\n }\r\n }\r\n }\r\n const item = new SPersagyImageEdit(null, data);\r\n item.selectable = true;\r\n item.moveable = true;\r\n this.addItem(item);\r\n this.undoStack.push(new SGraphAddCommand(this, item));\r\n this.Markers.push(item);\r\n this.finishCreated(item);\r\n }\r\n\r\n /**\r\n * 添加基本矩形item\r\n */\r\n addRectItem(event: SMouseEvent): void {\r\n const data = {\r\n ID: uuid(),\r\n Name: '基础矩形',\r\n /** 图标(Image),线类型(Line) */\r\n Type: \"Zone\",\r\n /** 位置 */\r\n Pos: { X: 0, Y: 0 },\r\n Properties: {\r\n Type: \"BaseRect\",\r\n },\r\n Style: {\r\n Default: {\r\n Line: [{ X: event.x, Y: event.y }],\r\n }\r\n }\r\n }\r\n const rectItem = new SBaseRectEdit(null, data);\r\n rectItem.status = SItemStatus.Create;\r\n this.addItem(rectItem);\r\n this.undoStack.push(new SGraphAddCommand(this, rectItem));\r\n rectItem.selectable = true;\r\n rectItem.moveable = true;\r\n this.grabItem = rectItem;\r\n rectItem.isTransform = true\r\n rectItem.connect(\"finishCreated\", this, this.finishCreated);\r\n rectItem.connect(\"onContextMenu\", this, this.getItem);\r\n if (this.view) {\r\n this.view.update();\r\n }\r\n }\r\n\r\n /**\r\n * 添加基本三角形item\r\n */\r\n addTriangleItem(event: SMouseEvent): void {\r\n const data = {\r\n ID: uuid(),\r\n Name: '基础三角形',\r\n Type: \"Zone\",\r\n Pos: { X: 0, Y: 0 },\r\n Properties: {\r\n Type: \"BaseTriangle\",\r\n },\r\n Style: {\r\n Default: {\r\n Line: [{ X: event.x, Y: event.y }],\r\n }\r\n }\r\n }\r\n const triangleItem = new SBaseTriangelEdit(null, data);\r\n triangleItem.status = SItemStatus.Create;\r\n this.addItem(triangleItem);\r\n this.undoStack.push(new SGraphAddCommand(this, triangleItem));\r\n triangleItem.selectable = true;\r\n triangleItem.moveable = true;\r\n this.grabItem = triangleItem;\r\n triangleItem.connect(\"finishCreated\", this, this.finishCreated);\r\n triangleItem.connect(\"onContextMenu\", this, this.getItem);\r\n if (this.view) {\r\n this.view.update();\r\n }\r\n }\r\n\r\n /**\r\n * 添加基本箭头item\r\n */\r\n addArrowsItem(event: SMouseEvent): void {\r\n const data = {\r\n ID: uuid(),\r\n Name: '基础箭头',\r\n Type: \"Zone\",\r\n Pos: { X: 0, Y: 0 },\r\n Properties: {\r\n Type: \"BaseArrow\",\r\n },\r\n Style: {\r\n Default: {\r\n Line: [{ X: event.x, Y: event.y }],\r\n }\r\n }\r\n }\r\n const arrowItem = new SBaseArrowEdit(null, data);\r\n arrowItem.status = SItemStatus.Create;\r\n arrowItem.moveable = true;\r\n this.addItem(arrowItem);\r\n this.undoStack.push(new SGraphAddCommand(this, arrowItem));\r\n arrowItem.selectable = true;\r\n this.grabItem = arrowItem;\r\n arrowItem.connect(\"finishCreated\", this, this.finishCreated);\r\n arrowItem.connect(\"onContextMenu\", this, this.getItem);\r\n if (this.view) {\r\n this.view.update();\r\n }\r\n }\r\n\r\n /**\r\n * 添加基本圆\r\n */\r\n addCircleItem(event: SMouseEvent): void {\r\n const data = {\r\n ID: uuid(),\r\n Name: '基础圆形',\r\n Type: \"Zone\",\r\n Pos: { X: 0, Y: 0 },\r\n Properties: {\r\n Type: \"BaseCircle\",\r\n },\r\n Style: {\r\n Default: {\r\n Line: [{ X: event.x, Y: event.y }],\r\n }\r\n }\r\n }\r\n const circleItem = new SBaseCircleEdit(null, data);\r\n circleItem.status = SItemStatus.Create;\r\n this.addItem(circleItem);\r\n this.undoStack.push(new SGraphAddCommand(this, circleItem));\r\n circleItem.selectable = true;\r\n this.grabItem = circleItem;\r\n circleItem.connect(\"finishCreated\", this, this.finishCreated);\r\n circleItem.connect(\"onContextMenu\", this, this.getItem);\r\n if (this.view) {\r\n this.view.update();\r\n }\r\n }\r\n /**\r\n * 添加基本设备item\r\n */\r\n addEuqipment(event: SMouseEvent): void {\r\n const data = {\r\n /** 名称 */\r\n Name: '基础设备',\r\n Num: 1,\r\n Size: { Width: 50, Height: 50 },\r\n /** 图标(Image),线类型(Line) */\r\n Type: \"Image\",\r\n /** 位置 */\r\n Pos: { X: event.x, Y: event.y },\r\n /** 由应用自己定义 */\r\n Properties: {\r\n Type: \"baseEquipment\",\r\n },\r\n Style: {\r\n Default: {\r\n StrokeColor: \"#c0ccda\",\r\n Url: require('./../../../assets/images/svg.svg'),\r\n }\r\n }\r\n }\r\n const circleItem = new SBaseEquipment(null, data);\r\n circleItem.status = SItemStatus.Create;\r\n this.addItem(circleItem);\r\n this.undoStack.push(new SGraphAddCommand(this, circleItem));\r\n circleItem.selectable = true;\r\n this.grabItem = circleItem;\r\n circleItem.connect(\"finishCreated\", this, this.finishCreated);\r\n circleItem.connect(\"onContextMenu\", this, this.getItem);\r\n if (this.view) {\r\n this.view.update();\r\n }\r\n }\r\n /**\r\n * 修改 item 样式,数据等方法\r\n * @param styleType string 修改样式类型\r\n * @param changeStyle 更改样式数据\r\n * @param itemList? SGraphEdit[] 如果不传入默认使用选择器中选中得item\r\n */\r\n updateStyle(styleType: string, changeStyle: any, itemList?: SGraphEdit[]): void {\r\n console.log('------------>');\r\n console.log(styleType);\r\n console.log(changeStyle);\r\n console.log(itemList);\r\n console.log('------------>');\r\n\r\n // 如果未传入需要修改样式的item,默认取选择器中的item\r\n let List = null;\r\n if (itemList && itemList.length) {\r\n List = itemList;\r\n } else {\r\n List = this.selectContainer.itemList;\r\n };\r\n let styleValue: any\r\n if (styleType == \"strokeColor\" || styleType == \"backgroundColor\" || styleType == \"fillColor\") {\r\n const colorlist = rgbaNum(changeStyle)\r\n styleValue = new SColor(Number(colorlist[0]), Number(colorlist[1]), Number(colorlist[2]), colorlist[3] * 255);\r\n } else if (styleType == \"lineStyle\") {\r\n styleValue = SLineStyle[changeStyle]\r\n } else {\r\n styleValue = changeStyle\r\n }\r\n List.forEach((item: SGraphEdit, index: number) => {\r\n if (item instanceof SGraphSelectContainer) {\r\n return\r\n }\r\n console.log('xxxx', item)\r\n item[styleType] = styleValue;\r\n })\r\n\r\n }\r\n\r\n /**\r\n * item 创建完成后回调\r\n *\r\n * @param event 鼠标事件参数\r\n */\r\n finishCreated(item: SGraphEdit): void {\r\n this.grabItem = null;\r\n item.status = SItemStatus.Normal;\r\n }\r\n /**\r\n * 修改 cmdstatus 函数;常在在业务中调用\r\n *\r\n */\r\n clearCmdStatus() {\r\n }\r\n /**\r\n * 获取item (常用与场景外的调用F)\r\n * @param event SMouseEvent 鼠标事件\r\n * @param item SGraphEdit|null 返回item\r\n *\r\n */\r\n getItem(item: SGraphEdit | null, event: SMouseEvent[]) {\r\n }\r\n /**\r\n * 获取item (常用与场景外的调用F)\r\n * @param event SMouseEvent 鼠标事件\r\n * @param item SGraphEdit|null 返回item\r\n *\r\n */\r\n vueOnMouseDown(event: SMouseEvent) {\r\n }\r\n\r\n /**\r\n * 获取item (常用与场景外的调用F)\r\n * @return obj 返回保存的数据接口\r\n */\r\n save() {\r\n if (!this.view) return;\r\n const MarkType: string[] = ['BaseLine', 'BaseText', 'BaseExplain', 'BaseImage'];\r\n const Markers: any = []; /**图例节点 */ // 与工程信息无关的标识对象(增加文本注释,图上的图片说明)\r\n const Nodes: any = []; /**图例节点 */ // 与工程信息无关的标识对象(增加文本注释,图上的图片说明)\r\n const Relations: any = []; /**图例节点 */ // 与工程信息无关的标识对象(增加文本注释,图上的图片说明)\r\n this.root.children.forEach(item => {\r\n if ((item instanceof SGraphEdit) && !(item instanceof SGraphSelectContainer) && MarkType.includes(item.data.Properties.Type)) {\r\n Markers.push(item.toData())\r\n }\r\n });\r\n return {\r\n Markers,\r\n Nodes,\r\n Relations\r\n }\r\n }\r\n}","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2009-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * ****/\r\n\r\nimport { SParser, SItemFactory } from '@persagy-web/big/lib';\r\nimport { BigEditFactory, Legend, Marker, Relation, ElementData } from \"./../big-edit\"\r\n/**\r\n *拓扑图解析器\r\n * @author han_yao_long@163.com\r\n */\r\nexport class PTopoParser extends SParser {\r\n /**图例节点 */\r\n Nodes: any = []; // 图例节点,所有与工程信息化相关的图例(图标类型与区域)\r\n /**图例节点 */ // 与工程信息无关的标识对象(增加文本注释,图上的图片说明)\r\n Markers: any = [];\r\n /** 管线对象 */\r\n Relations: any = [];\r\n constructor() {\r\n super(new BigEditFactory());\r\n }\r\n\r\n /**\r\n * 解析拓扑图绘制数据\r\n *\r\n * @param data 业务空间数据\r\n * */\r\n parseData(data: ElementData): void {\r\n // 生成遍历基本图例\r\n if (data.Markers && data.Markers.length) {\r\n data.Markers.forEach((item) => {\r\n this.addMarker(item);\r\n })\r\n }\r\n\r\n // 生成遍历Node图例\r\n if (data.Nodes && data.Nodes.length) {\r\n data.Nodes.forEach(() => {\r\n\r\n })\r\n }\r\n // 生成遍历关系图例\r\n if (data.Relations && data.Relations.length) {\r\n data.Relations.forEach(() => {\r\n\r\n })\r\n }\r\n\r\n } // Function parseData()\r\n addMarker(data: Marker) {\r\n // 基础直线\r\n if (data.Properties.Type == \"BaseLine\") {\r\n this.Markers.push(this.factory.createBaseLineEdit(data))\r\n }\r\n // 基础文字\r\n if (data.Properties.Type == \"BaseText\") {\r\n this.Markers.push(this.factory.createBaseTextEdit(data))\r\n }\r\n // 基础图片\r\n if (data.Properties.Type == \"BaseImage\") {\r\n this.Markers.push(this.factory.createBaseImageEdit(data))\r\n }\r\n // 基础注释\r\n if (data.Properties.Type == \"BaseExplain\") {\r\n this.Markers.push(this.factory.createBaseExpainEdit(data))\r\n }\r\n // // 基础文字\r\n // if (data.Properties.Type == \"BaseText\") {\r\n // this.Markers.push(this.factory.createBaseTextEdit(data))\r\n // }\r\n // // 基础图片\r\n // if (data.Properties.Type == \"BaseImage\") {\r\n // this.Markers.push(this.factory.createBaseImageEdit(data))\r\n // }\r\n }\r\n}\r\n","/*\r\n * *********************************************************************************************************************\r\n *\r\n * !!\r\n * .F88X\r\n * X8888Y\r\n * .}888888N;\r\n * i888888N; .:! .I$WI:\r\n * R888888I .'N88~ i8}+8Y&8\"l8i$8>8W~'>W8}8]KW+8IIN\"8&\r\n * .R888888I .;N8888~ .X8' \"8I.!,/8\" !%NY8`\"8I8~~8>,88I\r\n * +888888N; .8888888Y \"&&8Y.}8,\r\n * ./888888N; .R888888Y .'}~ .>}'.`+> i}! \"i' +/' .'i~ !11,.:\">, .~]! .i}i\r\n * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]\"888888888> Y8$ W8E X8E W8888'188Il}Y88$*\r\n * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I\r\n * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`\"KF&&FK!'88*.\"88K./$88%RN888+~\r\n * 8888888I .,N888888~ ~88i\"8W,!N8*.I88.}888%F,i$88\"F88\" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'\r\n * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I\r\n * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/\r\n * .:R888888I\r\n * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司\r\n * ~8888'\r\n * .!88~ All rights reserved.\r\n *\r\n * *********************************************************************************************************************\r\n */\r\nimport { SColor, SLine, SPainter, SPoint, SRect } from \"@persagy-web/draw/\";\r\nimport { SBaseImageEdit } from './../../big-edit';\r\nimport { SGraphItem } from \"@persagy-web/graph\";\r\nimport { Marker } from \"./../../big-edit/types/Marker\";\r\nimport { SMouseEvent } from \"@persagy-web/base/lib\";\r\nimport { ItemOrder } from '@persagy-web/big/lib';\r\nimport { uuid } from \"./../../big-edit/until\";\r\n\r\n/**\r\n * 编辑基础图片类\r\n *\r\n * * @author 韩耀龙(han_yao_long#163.com)\r\n */\r\nexport class SPersagyImageEdit extends SBaseImageEdit {\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n //属性\r\n /**编辑相关操作的数据 */\r\n data: Marker\r\n /** 起始锚点 */\r\n startItem: SGraphItem | null = null;\r\n /** 结束锚点 */\r\n endItem: SGraphItem | null = null;\r\n\r\n constructor(parent: SGraphItem | null, data: Marker) {\r\n super(parent, data);\r\n this.zOrder = ItemOrder.imageOrder;\r\n this.isTransform = false;\r\n this.data = data;\r\n this.name = data.Name;\r\n\r\n }\r\n /**\r\n * 鼠标按下事件\r\n *\r\n * @param event 保存事件参数\r\n * @return boolean\r\n */\r\n onMouseDown(event: SMouseEvent): boolean {\r\n super.onMouseDown(event)\r\n return true;\r\n } // Function onMouseDown()\r\n\r\n toData() {\r\n return super.toData()\r\n }\r\n /**\r\n * 鼠标按下事件\r\n *\r\n * @param event 保存事件参数\r\n * @return boolean\r\n */\r\n onDoubleClick(event: SMouseEvent): boolean {\r\n let dom = document.createElement('input');\r\n dom.type = \"file\";\r\n dom.name = \"file\";\r\n dom.accept = \"image/*\"\r\n dom.click();\r\n let that = this;\r\n dom.onchange = function (a) {\r\n //继续使用上文的fileList\r\n let file = a.path[0].files[0];\r\n const fileReader = new FileReader()\r\n fileReader.readAsDataURL(file) //读取图片\r\n fileReader.addEventListener('load', function () {\r\n // 读取完成\r\n let res = fileReader.result;\r\n console.log(fileReader, 'sersrf')\r\n that.url = res\r\n // res是base64格式的图片\r\n })\r\n }\r\n // super.onMouseDown(event)\r\n return true;\r\n } // Function onMouseDown()\r\n\r\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"topo_tooltip\"},[(_vm.havItem)?_c('div',{staticClass:\"tooltip-card\"},[_vm._m(0)]):_c('div',{staticClass:\"tooltip-card\"},[_vm._m(1)])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',[_c('li',[_vm._v(\"编辑\")]),_c('li',[_vm._v(\"锁定\")]),_c('li',[_vm._v(\"置顶\")]),_c('li',[_vm._v(\"置底\")]),_c('li',[_vm._v(\"删除\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',[_c('li',[_vm._v(\"保存\")]),_c('li',[_vm._v(\"发布\")]),_c('li',[_vm._v(\"下载\")])])}]\n\nexport { render, staticRenderFns }","<!-- 弹框 -->\r\n<template>\r\n <div class=\"topo_tooltip\">\r\n <div v-if=\"havItem\" class=\"tooltip-card\">\r\n <ul>\r\n <li>编辑</li>\r\n <li>锁定</li>\r\n <li>置顶</li>\r\n <li>置底</li>\r\n <li>删除</li>\r\n </ul>\r\n </div>\r\n <div v-else class=\"tooltip-card\">\r\n <ul>\r\n <li>保存</li>\r\n <li>发布</li>\r\n <li>下载</li>\r\n </ul>\r\n </div>\r\n </div>\r\n</template>\r\n<script>\r\nexport default {\r\n props: [\"havItem\"],\r\n name: \"topoTooltip\",\r\n data() {\r\n return {};\r\n },\r\n};\r\n</script>\r\n<style lang=\"less\" scoped>\r\nul,\r\nli {\r\n margin: 0;\r\n padding: 0;\r\n list-style-type: none;\r\n}\r\n.topo_tooltip {\r\n position: relative;\r\n .tooltip-card {\r\n border: 1px solid #e4e5e7;\r\n border-radius: 4px;\r\n box-shadow: 0 2px 10px rgba(31, 35, 41, 0.1);\r\n background: #fff;\r\n font-size: 0;\r\n ul {\r\n li {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n position: relative;\r\n width: 100px;\r\n box-sizing: border-box;\r\n border-radius: 0;\r\n padding: 8px 0 8px 12px;\r\n cursor: pointer;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n background: #ffff;\r\n color: #1f2328;\r\n font-size: 12px;\r\n }\r\n li:hover {\r\n background: #f5f6f7;\r\n }\r\n }\r\n }\r\n}\r\n</style>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./topoTooltip.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./topoTooltip.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./topoTooltip.vue?vue&type=template&id=6fee0f2a&scoped=true&\"\nimport script from \"./topoTooltip.vue?vue&type=script&lang=js&\"\nexport * from \"./topoTooltip.vue?vue&type=script&lang=js&\"\nimport style0 from \"./topoTooltip.vue?vue&type=style&index=0&id=6fee0f2a&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6fee0f2a\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div class=\"baseTopo\" id=\"baseTopo\" ref=\"baseTopo\">\r\n <topoTooltip v-show=\"showTooltip\" class=\"topoTooltip-box\" ref=\"topoTooltip\" :havItem=\"havItem\"></topoTooltip>\r\n <canvas id=\"persagy_topo\" :width=\"canvasWidth\" :height=\"canvasHeight\" tabindex=\"0\"></canvas>\r\n </div>\r\n</template>\r\n<script>\r\nimport { PTopoScene, PTopoParser } from \"@/components/editClass/persagy-edit\";\r\nimport { SGraphView } from \"@persagy-web/graph\";\r\nimport { SFloorParser } from \"@persagy-web/big/lib\";\r\nimport topoTooltip from \"./topoTooltip.vue\";\r\nimport { mapState, mapMutations } from \"vuex\";\r\nimport bus from \"@/bus/bus\";\r\nimport { saveGroup, readGroup, uploadGroup, getImageGroup } from \"@/api/editer\";\r\nexport default {\r\n components: { topoTooltip },\r\n data() {\r\n return {\r\n scene: null, //场景\r\n view: null, //视图\r\n canvasWidth: 700, //画布宽\r\n canvasHeight: 700, //画布高\r\n havItem: false, //右击是否选中item\r\n showTooltip: false, //是否显示tooltip\r\n };\r\n },\r\n computed: {\r\n ...mapState([\"choiceLegend\"]),\r\n },\r\n mounted() {\r\n this.canvasWidth = this.$refs.baseTopo.offsetWidth;\r\n this.canvasHeight = this.$refs.baseTopo.offsetHeight - 10;\r\n this.scene = new PTopoScene();\r\n this.view = new SGraphView(\"persagy_topo\");\r\n this.view.scene = this.scene;\r\n this.scene.clearCmdStatus = this.clearCmdStatus;\r\n // 初始化bus绑定事件\r\n this.initBusEvent();\r\n // 右键事件\r\n this.scene.getItem = this.onContextMenu;\r\n this.scene.emitChoice = this.emitChoice;\r\n //左键事件\r\n this.scene.vueOnMouseDown = this.vueOnMouseDown;\r\n // 屏蔽浏览器右键功能(防止与编辑器右键交互重合)\r\n document.getElementById(\"baseTopo\").oncontextmenu = function (e) {\r\n return false;\r\n };\r\n // 读取底图\r\n this.readtopoMsg();\r\n // 读取平面图-------测试代码\r\n this.readMapmsg();\r\n },\r\n methods: {\r\n ...mapMutations([\"SETCHOICELEHEND\"]),\r\n // 恢复命令状态\r\n clearCmdStatus() {\r\n this.SETCHOICELEHEND(\"\");\r\n },\r\n // 右键获取item\r\n onContextMenu(item, [event]) {\r\n this.showTooltip = true;\r\n if (item) {\r\n this.havItem = true;\r\n } else {\r\n this.havItem = false;\r\n }\r\n const doms = document.getElementsByClassName(\"topoTooltip-box\")[0];\r\n doms.style.left = event.offsetX + \"px\";\r\n doms.style.top = event.offsetY + \"px\";\r\n },\r\n // 左键事键\r\n vueOnMouseDown(e) {\r\n // 关闭tooltip\r\n this.showTooltip = false;\r\n },\r\n // 选中后的回调函数\r\n emitChoice(itemList) {\r\n bus.$emit(\"emitChoice\", itemList);\r\n },\r\n //初始化bus绑定事件\r\n initBusEvent() {\r\n // 改变样式\r\n bus.$on(\"updateStyle\", (type, val) => {\r\n this.scene.updateStyle(type, val);\r\n });\r\n // 撤销\r\n bus.$on(\"topoUndo\", (val) => {\r\n this.scene.undo();\r\n });\r\n // 重做\r\n bus.$on(\"topoRedo\", (val) => {\r\n this.scene.redo();\r\n });\r\n // 删除\r\n bus.$on(\"deleteItem\", (val) => {\r\n this.scene.deleteItem();\r\n });\r\n // 复制\r\n bus.$on(\"copy\", (val) => {\r\n this.scene.copy();\r\n });\r\n // 粘贴\r\n bus.$on(\"paste\", (val) => {\r\n this.scene.paste();\r\n });\r\n // 保存\r\n bus.$on(\"saveTopo\", (val) => {\r\n const Elements = this.scene.save();\r\n const obj = {\r\n Elements,\r\n Name: \"1\", // 名称\r\n CategoryID: \"1\", // 图分类ID\r\n ProjectID: \"1\", // 项目ID\r\n BuildingID: \"1\", // 建筑ID\r\n FloorID: \"1\", // 楼层id\r\n Note: \"1\", // 图说明\r\n Log: {\r\n // 图操作日志\r\n Mark: \"1\", // 图的存盘标记\r\n CommandList: [\r\n {\r\n Command: \"1\", // 命令\r\n Desc: \"1\", // 描述\r\n Detail: \"1\", // 详情\r\n },\r\n ],\r\n },\r\n };\r\n Object.assign(obj, {\r\n GraphId: \"cd8ca79c337644d48c58c447cf21b757\",\r\n Id: \"f15506fa5dcc4ce79064e459e5497748\",\r\n });\r\n console.log(obj);\r\n saveGroup(obj).then((res) => {\r\n console.log(\"res\", res);\r\n });\r\n });\r\n },\r\n // 读取拓扑图\r\n readtopoMsg() {\r\n let obj = {\r\n GraphId: \"cd8ca79c337644d48c58c447cf21b757\",\r\n Id: \"f15506fa5dcc4ce79064e459e5497748\",\r\n };\r\n readGroup(obj).then((res) => {\r\n const parse = new PTopoParser();\r\n parse.parseData(res.Content.Elements);\r\n console.log(parse.Markers);\r\n parse.Markers.forEach((item) => {\r\n this.scene.addItem(item);\r\n });\r\n console.log(this.scene);\r\n });\r\n },\r\n readMapmsg() {\r\n let parser = new SFloorParser();\r\n const msg = require(\"./../../assets/map/1.json\");\r\n parser.parseData(msg.EntityList[0].Elements);\r\n parser.spaceList.forEach((t) => this.scene.addItem(t));\r\n parser.wallList.forEach((t) => this.scene.addItem(t));\r\n parser.virtualWallList.forEach((t) => this.scene.addItem(t));\r\n parser.doorList.forEach((t) => this.scene.addItem(t));\r\n parser.columnList.forEach((t) => this.scene.addItem(t));\r\n parser.casementList.forEach((t) => this.scene.addItem(t));\r\n this.view.fitSceneToView();\r\n },\r\n },\r\n watch: {\r\n choiceLegend(val) {\r\n if (this.scene) {\r\n // 设置当前编辑状态\r\n this.scene.editCmd = this.choiceLegend;\r\n }\r\n },\r\n },\r\n};\r\n</script>\r\n<style lang=\"less\" scoped>\r\n.baseTopo {\r\n width: 100%;\r\n height: 100%;\r\n position: relative;\r\n .topoTooltip-box {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n }\r\n}\r\n</style>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./baseTopoEditer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./baseTopoEditer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./baseTopoEditer.vue?vue&type=template&id=6dcb9dce&scoped=true&\"\nimport script from \"./baseTopoEditer.vue?vue&type=script&lang=js&\"\nexport * from \"./baseTopoEditer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./baseTopoEditer.vue?vue&type=style&index=0&id=6dcb9dce&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6dcb9dce\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"topToolBar\"}},[_c('div',{staticClass:\"left\"},[_c('ul',[_c('li',{on:{\"click\":_vm.topoUndo}},[_c('img',{staticClass:\"lock\",attrs:{\"src\":require(\"./../../assets/images/undo.png\"),\"alt\":\"\"}}),_c('span',[_vm._v(\"撤销\")])]),_c('li',{on:{\"click\":_vm.topoRedo}},[_c('img',{staticClass:\"lock\",attrs:{\"src\":require(\"./../../assets/images/redo.png\"),\"alt\":\"\"}}),_c('span',[_vm._v(\"重做\")])]),_c('li',{on:{\"click\":_vm.copy}},[_c('img',{staticClass:\"lock\",attrs:{\"src\":require(\"./../../assets/images/copy.png\"),\"alt\":\"\"}}),_c('span',[_vm._v(\"复制\")])]),_c('li',{on:{\"click\":_vm.paste}},[_c('img',{staticClass:\"lock\",attrs:{\"src\":require(\"./../../assets/images/past.png\"),\"alt\":\"\"}}),_c('span',[_vm._v(\"粘贴\")])]),_c('li',[_c('i',{class:_vm.isLock?'el-icon-lock':'el-icon-unlock'}),_c('span',[_vm._v(_vm._s(!_vm.isLock?\"解锁\":\"锁定\"))])]),_c('li',{on:{\"click\":_vm.deleteItem}},[_c('img',{staticClass:\"lock\",attrs:{\"src\":require(\"./../../assets/images/delete.png\"),\"alt\":\"\"}}),_c('span',[_vm._v(\"删除\")])])])]),_c('div',{staticClass:\"rght\"})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div id=\"topToolBar\">\r\n <div class=\"left\">\r\n <ul>\r\n <!-- <li class=\"zoom-window\">\r\n <div>\r\n <img\r\n class=\"lock\"\r\n :src=\"require(`./../../assets/images/缩小.png`)\"\r\n alt\r\n />\r\n <span class=\"percentage\">{{scalePercent}}</span>\r\n <img\r\n class=\"lock\"\r\n :src=\"require(`./../../assets/images/放大 amplification.png`)\"\r\n alt\r\n />\r\n </div>\r\n <span>缩放窗口</span>\r\n </li>-->\r\n <li @click=\"topoUndo\">\r\n <img class=\"lock\" :src=\"require(`./../../assets/images/undo.png`)\" alt />\r\n <span>撤销</span>\r\n </li>\r\n <li @click=\"topoRedo\">\r\n <img class=\"lock\" :src=\"require(`./../../assets/images/redo.png`)\" alt />\r\n <span>重做</span>\r\n </li>\r\n <li @click=\"copy\">\r\n <img class=\"lock\" :src=\"require(`./../../assets/images/copy.png`)\" alt />\r\n <span>复制</span>\r\n </li>\r\n <li @click=\"paste\">\r\n <img class=\"lock\" :src=\"require(`./../../assets/images/past.png`)\" alt />\r\n <span>粘贴</span>\r\n </li>\r\n\r\n <!-- <li>\r\n <a-dropdown :trigger=\"['click']\">\r\n <div class=\"ant-dropdown-link dropdown-flex\" @click=\"e => e.preventDefault()\">\r\n <div>\r\n <img class=\"lock\" :src=\"require(`./../../assets/images/t-format.png`)\" alt />\r\n <div>图层</div>\r\n </div>\r\n <a-icon type=\"caret-down\" class=\"down-icon\" />\r\n </div>\r\n <a-menu slot=\"overlay\">\r\n <a-menu-item\r\n :disabled=\"item.disable\"\r\n v-for=\"item in orderOptions\"\r\n :key=\"item.value\"\r\n @click=\"changeOrderItem(item.value)\"\r\n >\r\n <img\r\n style=\"width: 16px;margin-right: 5px;\"\r\n :src=\"require(`./../../assets/images/`+item.img+`.png`)\"\r\n alt\r\n />\r\n <span>{{item.label}}</span>\r\n </a-menu-item>\r\n </a-menu>\r\n </a-dropdown>\r\n </li>-->\r\n <!-- <li>\r\n <a-dropdown :trigger=\"['click']\">\r\n <div class=\"ant-dropdown-link dropdown-flex\" @click=\"e => e.preventDefault()\">\r\n <div>\r\n <img class=\"lock\" :src=\"require(`./../../assets/images/t-format.png`)\" alt />\r\n <div>对齐</div>\r\n </div>\r\n <a-icon type=\"caret-down\" class=\"down-icon\" />\r\n </div>\r\n <a-menu slot=\"overlay\">\r\n <a-menu-item\r\n :disabled=\"item.disable\"\r\n v-for=\"item in alignmentOptions\"\r\n :key=\"item.value\"\r\n @click=\"changeAlignItem(item.value)\"\r\n >\r\n <img\r\n style=\"width: 16px;margin-right: 5px;\"\r\n :src=\"require(`./../../assets/images/`+item.img+`.png`)\"\r\n alt\r\n />\r\n <span>{{item.label}}</span>\r\n </a-menu-item>\r\n </a-menu>\r\n </a-dropdown>\r\n </li>-->\r\n <!-- <li>\r\n <a-icon type=\"edit\" />\r\n <span>图层</span>\r\n </li>\r\n <li>\r\n <a-icon type=\"edit\" />\r\n <span>组合</span>\r\n </li>\r\n <li>\r\n <a-icon type=\"edit\" />\r\n <span>打散</span>\r\n </li>-->\r\n <li>\r\n <i :class=\"isLock?'el-icon-lock':'el-icon-unlock'\" />\r\n <span>{{!isLock?\"解锁\":\"锁定\"}}</span>\r\n </li>\r\n <li @click=\"deleteItem\">\r\n <img class=\"lock\" :src=\"require(`./../../assets/images/delete.png`)\" alt />\r\n <span>删除</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"rght\">\r\n <!-- 待定 -->\r\n </div>\r\n </div>\r\n</template>\r\n<script>\r\nimport bus from \"@/bus/bus\";\r\nexport default {\r\n data() {\r\n return {\r\n isLock: false,\r\n };\r\n },\r\n methods: {\r\n //撤销\r\n topoUndo() {\r\n bus.$emit(\"topoUndo\");\r\n },\r\n // 重做\r\n topoRedo() {\r\n bus.$emit(\"topoRedo\");\r\n },\r\n // 删除item\r\n deleteItem() {\r\n bus.$emit(\"deleteItem\");\r\n },\r\n // 复制\r\n copy() {\r\n bus.$emit(\"copy\");\r\n },\r\n // 粘贴\r\n paste() {\r\n bus.$emit(\"paste\");\r\n },\r\n },\r\n};\r\n</script>\r\n<style lang=\"less\">\r\nul,\r\nli {\r\n margin: 0;\r\n padding: 0;\r\n list-style-type: none;\r\n}\r\n#topToolBar {\r\n width: 100%;\r\n height: 48px;\r\n background: rgba(255, 255, 255, 1);\r\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 0 24px 0 24px;\r\n box-sizing: border-box;\r\n .left {\r\n ul {\r\n display: flex;\r\n li {\r\n display: flex;\r\n justify-content: center;\r\n flex-direction: column;\r\n /*width: 62px;*/\r\n padding: 0 7px;\r\n margin-left: 7px;\r\n font-size: 12px;\r\n align-items: center;\r\n text-align: center;\r\n cursor: pointer;\r\n img {\r\n width: 16px;\r\n height: 16px;\r\n }\r\n .percentage {\r\n display: inline-block;\r\n width: 35px;\r\n border-bottom: 1px solid #c3c7cb;\r\n margin: 0 13px;\r\n font-size: 14px;\r\n }\r\n .dropdown-flex {\r\n display: flex;\r\n align-items: center;\r\n .down-icon {\r\n margin-left: 12px;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./topToolBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./topToolBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./topToolBar.vue?vue&type=template&id=1a3f4a8d&\"\nimport script from \"./topToolBar.vue?vue&type=script&lang=js&\"\nexport * from \"./topToolBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./topToolBar.vue?vue&type=style&index=0&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\r\n <div class=\"topo-editer\">\r\n <div class=\"top-bar\">\r\n <topToolBar></topToolBar>\r\n </div>\r\n <div class=\"contents\">\r\n <div class=\"left-bar\">\r\n <leftToolBar></leftToolBar>\r\n </div>\r\n <div class=\"base-topo-editer\">\r\n <baseTopoEditer></baseTopoEditer>\r\n </div>\r\n <div class=\"right-bar\">\r\n <rightPropertyBar></rightPropertyBar>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n<script>\r\nimport leftToolBar from \"./leftToolBar\";\r\nimport rightPropertyBar from \"./rightPropertyBar\";\r\nimport baseTopoEditer from \"./baseTopoEditer\";\r\nimport topToolBar from \"./topToolBar\";\r\nexport default {\r\n components: { leftToolBar, rightPropertyBar, topToolBar, baseTopoEditer },\r\n data() {\r\n return {\r\n view: null,\r\n scene: null\r\n };\r\n },\r\n};\r\n</script>\r\n<style lang=\"less\">\r\n.topo-editer {\r\n width: 100%;\r\n height: 100%;\r\n .top-bar {\r\n width: 100%;\r\n }\r\n .contents {\r\n width: 100%;\r\n height: calc(~\"100% - 48px\");\r\n display: flex;\r\n justify-content: flex-start;\r\n .right-bar {\r\n width: 240px;\r\n height: 100%;\r\n }\r\n .base-topo-editer {\r\n flex: 1;\r\n height: 100%;\r\n }\r\n }\r\n}\r\n</style>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./topoEditer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./topoEditer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./topoEditer.vue?vue&type=template&id=88f31204&\"\nimport script from \"./topoEditer.vue?vue&type=script&lang=js&\"\nexport * from \"./topoEditer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./topoEditer.vue?vue&type=style&index=0&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\n <div class=\"editer\">\n <div class=\"top-bar\">\n <div class=\"left\">\n <div class=\"project-name\">项目名称***</div>\n <div class=\"project-type\">/ 项目分类</div>\n <div class=\"project-save\">自动保存成功-V2.2</div>\n </div>\n <div class=\"right\">\n <img src=\"./../assets/images/download.png\" alt />\n <img @click=\"saveTopo\" src=\"./../assets/images/save.png\" alt />\n <img @click=\"issueTopo\" src=\"./../assets/images/issue.png\" alt />\n </div>\n </div>\n <topo-editer></topo-editer>\n </div>\n</template>\n<script>\nimport topoEditer from \"@/components/editview/topoEditer.vue\";\nimport bus from \"@/bus/bus\";\nexport default {\n components: { topoEditer },\n data() {\n return {};\n },\n methods: {\n // 保存图片\n saveTopo() {\n bus.$emit(\"saveTopo\");\n },\n issueTopo() {},\n },\n};\n</script>\n<style lang=\"less\" scoped>\n.editer {\n width: 100%;\n height: calc(~\"100% - 37px\");\n .top-bar {\n width: 100%;\n height: 36px;\n border-bottom: 1px solid #e4e5e7;\n padding: 0 20px 0 20px;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: space-between;\n .left {\n display: flex;\n align-items: center;\n .project-name {\n font-size: 16px;\n color: #1f2429;\n font-weight: bold;\n }\n .project-type {\n color: #8d9399;\n font-size: 14px;\n margin: 0 4px;\n }\n .project-save {\n color: #8d9399;\n font-size: 12px;\n margin-left: 16px;\n }\n }\n .right {\n img {\n margin-left: 20px;\n cursor: pointer;\n }\n }\n }\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./editer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./editer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./editer.vue?vue&type=template&id=ffa02112&scoped=true&\"\nimport script from \"./editer.vue?vue&type=script&lang=js&\"\nexport * from \"./editer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./editer.vue?vue&type=style&index=0&id=ffa02112&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ffa02112\",\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SImageShowType = void 0;\r\nvar SImageShowType;\r\n(function (SImageShowType) {\r\n SImageShowType[SImageShowType[\"Full\"] = 0] = \"Full\";\r\n SImageShowType[SImageShowType[\"AutoFit\"] = 1] = \"AutoFit\";\r\n SImageShowType[SImageShowType[\"Equivalency\"] = 2] = \"Equivalency\";\r\n})(SImageShowType = exports.SImageShowType || (exports.SImageShowType = {}));\r\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SUndoCommand = void 0;\r\nvar SUndoCommand = (function () {\r\n function SUndoCommand(parent) {\r\n if (parent === void 0) { parent = null; }\r\n this.desc = \"undefined\";\r\n }\r\n SUndoCommand.prototype.mergeWith = function (command) {\r\n return false;\r\n };\r\n SUndoCommand.prototype.id = function () {\r\n return -1;\r\n };\r\n SUndoCommand.prototype.toString = function () {\r\n return \"\";\r\n };\r\n return SUndoCommand;\r\n}());\r\nexports.SUndoCommand = SUndoCommand;\r\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SItemStatus = void 0;\r\nvar SItemStatus;\r\n(function (SItemStatus) {\r\n SItemStatus[SItemStatus[\"Normal\"] = 0] = \"Normal\";\r\n SItemStatus[SItemStatus[\"Edit\"] = 1] = \"Edit\";\r\n SItemStatus[SItemStatus[\"Create\"] = 2] = \"Create\";\r\n})(SItemStatus = exports.SItemStatus || (exports.SItemStatus = {}));\r\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","/* eslint-disable no-new */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAABa0lEQVRYR+2YTVLCMBiG368XEG/gUepJdIYutBuUuhf3wuAGXNQZbqLewCN4A+ECvk5aQSg0bVL6M06ybpJnnuZ78yPoeBPFF4TDEYGBQHpN8RJcCvAUzyYj3ZwJYD8cfjUJtw0Uz8YJQ177NRixKXPZecwByXcI3uoCJuVMBBfr8c0BwYeidVEFPri68+Hx1QHaWjy6wX4YTQUY2ALZ90uX2oEq3l2DQdhOhaucfJlNTjsLqMyrCjcDJG9B78P+t+l7UniZjSAzwG85j58fa8tIteUCcr8dQQ7QZDk4gya2Dn3rDDqDqQHNVudy0AV1tTJxMVPNX3o/d4eFKhZLGSS48MjFeiKK93f+60YOahy0BngdLSE4Kfw9rQFmqicXtC1Anbmda6cDzMnBf2NQRZAAn4XFZPsBxYfA37t2ljZoO7Flv83LQicBiVU8H/e078MKPNl+KDelctLS1F43YgXhdPO6daxx6xjnB1tJ2TjXkJDkAAAAAElFTkSuQmCC\"","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SGraphMoveCommand = void 0;\r\nconst SGraphCommand_1 = require(\"./SGraphCommand\");\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nclass SGraphMoveCommand extends SGraphCommand_1.SGraphCommand {\r\n constructor(scene, item, old, pos) {\r\n super(scene);\r\n this.item = item;\r\n this.old = old;\r\n this.pos = pos;\r\n this.command = \"SGraphMoveCommand\";\r\n this.desc = `移动对象=${item.id}`;\r\n }\r\n mergeWith(command) {\r\n if (command instanceof SGraphMoveCommand && command.item == this.item) {\r\n command.pos = this.pos;\r\n return true;\r\n }\r\n return false;\r\n }\r\n redo() {\r\n this.item.pos = new draw_1.SPoint(this.pos.x, this.pos.y);\r\n this.item.update();\r\n }\r\n undo() {\r\n this.item.pos = new draw_1.SPoint(this.old.x, this.old.y);\r\n this.item.update();\r\n }\r\n toString() {\r\n return `oldPos=${JSON.stringify(this.old)};\\nnewPos=${JSON.stringify(this.pos)}`;\r\n }\r\n}\r\nexports.SGraphMoveCommand = SGraphMoveCommand;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SImageItem = void 0;\r\nconst SObjectItem_1 = require(\"./SObjectItem\");\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nconst __1 = require(\"..\");\r\nclass SImageItem extends SObjectItem_1.SObjectItem {\r\n constructor(parent, url) {\r\n super(parent);\r\n this._showType = __1.SImageShowType.Full;\r\n this._strokeColor = draw_1.SColor.Transparent;\r\n this._lineWidth = 1;\r\n this._originPosition = __1.STextOrigin.LeftTop;\r\n this.isLoadOver = false;\r\n this.imgWidth = this.width;\r\n this.imgHeight = this.height;\r\n this._url = \"\";\r\n if (url)\r\n this.url = url;\r\n }\r\n get showType() {\r\n return this._showType;\r\n }\r\n set showType(v) {\r\n this._showType = v;\r\n this.computeImgSize();\r\n this.update();\r\n }\r\n get strokeColor() {\r\n return this._strokeColor;\r\n }\r\n set strokeColor(v) {\r\n this._strokeColor = v;\r\n this.update();\r\n }\r\n get lineWidth() {\r\n return this._lineWidth;\r\n }\r\n set lineWidth(v) {\r\n this._lineWidth = v;\r\n this.update();\r\n }\r\n get originPosition() {\r\n return this._originPosition;\r\n }\r\n set originPosition(v) {\r\n this._originPosition = v;\r\n this.update();\r\n }\r\n get url() {\r\n return this._url;\r\n }\r\n set url(v) {\r\n this._url = v;\r\n this.img = new Image();\r\n this.img.onload = (e) => {\r\n const imgSrc = e.path[0].src;\r\n if (this.isUrlIdentical(imgSrc)) {\r\n this.isLoadOver = true;\r\n this.computeImgSize();\r\n this.$emit(\"imgLoadOver\");\r\n this.update();\r\n }\r\n };\r\n this.img.onerror = (e) => {\r\n const imgSrc = e.path[0].src;\r\n if (this.isUrlIdentical(imgSrc)) {\r\n this.isLoadOver = false;\r\n this.$emit(\"imgLoadOver\");\r\n this.update();\r\n console.log(\"加载图片错误!\", e);\r\n }\r\n };\r\n this.img.src = v;\r\n }\r\n computeImgSize() {\r\n if (this.isLoadOver) {\r\n let width = 0;\r\n let height = 0;\r\n let itemAspectRatio = this.width / this.height;\r\n let imgAspectRatio = this.img.width / this.img.height;\r\n let imgHwRatio = this.img.height / this.img.width;\r\n if (this.showType == __1.SImageShowType.Full) {\r\n width = this.width;\r\n height = this.height;\r\n }\r\n else if (this.showType == __1.SImageShowType.Equivalency) {\r\n if (itemAspectRatio > imgAspectRatio) {\r\n height = this.height;\r\n width = imgAspectRatio * height;\r\n }\r\n else if (itemAspectRatio < imgAspectRatio) {\r\n width = this.width;\r\n height = width * imgHwRatio;\r\n }\r\n else {\r\n width = this.width;\r\n height = this.height;\r\n }\r\n }\r\n else if (this.showType == __1.SImageShowType.AutoFit) {\r\n this.width = this.img.width;\r\n this.height = this.img.height;\r\n width = this.width;\r\n height = this.height;\r\n }\r\n this.imgWidth = width;\r\n this.imgHeight = height;\r\n if (this.originPosition == __1.STextOrigin.Center) {\r\n this.origin = new draw_1.SPoint(this.width / 2, this.height / 2);\r\n }\r\n }\r\n }\r\n isUrlIdentical(imgUrl) {\r\n if (this.url.indexOf(\"://\") == -1) {\r\n const reg = /^\\s*data:([a-z]+\\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\\-._~:@\\/?%\\s]*?)\\s*$/i;\r\n if (reg.test(this.url)) {\r\n return this.url == imgUrl;\r\n }\r\n else {\r\n return this.url == this.GetUrlRelativePath(imgUrl);\r\n }\r\n }\r\n else {\r\n return this.url == imgUrl;\r\n }\r\n }\r\n GetUrlRelativePath(url) {\r\n const arrUrl = url.split(\"//\");\r\n const start = arrUrl[1].indexOf(\"/\");\r\n const relUrl = arrUrl[1].substring(start);\r\n return relUrl;\r\n }\r\n boundingRect() {\r\n return new draw_1.SRect(-this.origin.x, -this.origin.y, this.width, this.height);\r\n }\r\n onResize(oldSize, newSize) {\r\n this.computeImgSize();\r\n this.update();\r\n }\r\n onDraw(painter) {\r\n painter.translate(-this.origin.x, -this.origin.y);\r\n if (this.isLoadOver) {\r\n painter.drawImage(this.img, 0, 0, this.imgWidth, this.imgHeight);\r\n }\r\n if (this.selected) {\r\n painter.shadow.shadowBlur = 10;\r\n painter.shadow.shadowColor = new draw_1.SColor(`#00000033`);\r\n painter.shadow.shadowOffsetX = 5;\r\n painter.shadow.shadowOffsetY = 5;\r\n }\r\n else {\r\n painter.shadow.shadowColor = draw_1.SColor.Transparent;\r\n }\r\n painter.pen.lineWidth = this.lineWidth;\r\n painter.pen.color = this.strokeColor;\r\n painter.brush.color = draw_1.SColor.Transparent;\r\n painter.drawRect(0, 0, this.width, this.height);\r\n }\r\n}\r\nexports.SImageItem = SImageItem;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SVirtualWallItem = void 0;\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nconst __1 = require(\"../..\");\r\nconst graph_1 = require(\"@persagy-web/graph\");\r\nclass SVirtualWallItem extends graph_1.SGraphItem {\r\n constructor(parent, data) {\r\n super(parent);\r\n this.minX = Number.MAX_SAFE_INTEGER;\r\n this.maxX = Number.MIN_SAFE_INTEGER;\r\n this.minY = Number.MAX_SAFE_INTEGER;\r\n this.maxY = Number.MIN_SAFE_INTEGER;\r\n this.pointArr = [];\r\n this.data = data;\r\n this.zOrder = __1.ItemOrder.virtualWallOrder;\r\n let tempArr = this.data.OutLine;\r\n if (tempArr && tempArr.length) {\r\n this.minX = tempArr[0][0].X;\r\n this.maxX = this.minX;\r\n this.minY = -tempArr[0][0].Y;\r\n this.maxY = this.minY;\r\n this.pointArr = tempArr.map((t) => {\r\n return t.map((it) => {\r\n let x = it.X, y = -it.Y;\r\n if (x < this.minX) {\r\n this.minX = x;\r\n }\r\n if (y < this.minY) {\r\n this.minY = y;\r\n }\r\n if (x > this.maxX) {\r\n this.maxX = x;\r\n }\r\n if (y > this.maxY) {\r\n this.maxY = y;\r\n }\r\n return new draw_1.SPoint(x, y);\r\n });\r\n });\r\n }\r\n }\r\n boundingRect() {\r\n return new draw_1.SRect(this.minX, this.minY, this.maxX - this.minX, this.maxY - this.minY);\r\n }\r\n onDraw(painter) {\r\n painter.pen.lineWidth = painter.toPx(1);\r\n painter.pen.color = __1.ItemColor.virtualWallColor;\r\n painter.pen.lineDash = [20, 20];\r\n this.pointArr.forEach((t) => {\r\n painter.drawPolyline(t);\r\n });\r\n }\r\n}\r\nexports.SVirtualWallItem = SVirtualWallItem;\r\n","'use strict';\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAKKADAAQAAAABAAAAKAAAAAB65masAAAD4ElEQVRYCe2YS2xMURiAz3/ujEpaxKPEcyEEaRMLEhaERmKBiFea2DURjY6EVppG2EwsKp3pQt0WndZaPWLByltqoxLEoxFKiHQqigVaYab3/P7/mjOZGTN3BrcdizmLnsf/uN/9z/3/c6ZCFFohAoUIOEYAHKUxod/v94QHh00BuAkk7AqZwau52LmhI7M5seE+DHWhUHsQcQ5aakM2GzflHidnDNc/OHRWCNxm6wEMIIgWJxu3ZRkjmA4OhLeis7X5tdsQTv6MdMJ0cIYBa0OtTX3p9Edz7bcIVre3e1O3leHajwfHHI5fPAmQ4dSjvi79zVGKh/MJx4DxJGE4fNzHCbGVBQwnPbIiX5FjBm7xOrh7b/1FKiM2nC0A6KH5Gx670UAKBQjvESAsBdw+ZTbdBwDM5tsGrN5bv0Ih3s2m7Kac4Prp4cFZpSWnKCkjmXzb36AHS3pJ+V0mpdFY56JPQWkJDw493bOvvjzTM+JbXLO/YdFI1LpFMZ/JyvSGN71FRVXieySayfhP1lXROEOMWNMRR8oUii0EuIXsY2UOvoIhtnWYzddTfcYBWZAG8sLs0pKdtAUjqYb/OvfVNiyJRq0QoljFvgDEF6/XWHniWOBZou+kMnOyJfDc4zUq9HbTW+4Ifxg6w4U70ciNMYPMLp2wjnaKyhrVDhQTIxF1jlrS4ZEEyIoMKWDc2rGA5OQYL+dVEWQPP5swy69236uyh7E/vwHyekfb0RdjBWma+36AAB891i45gFgXY7O7tIAs0ZD0cQzwPLbdXaOx3aG24AOCvPHrOaLM5zu4gMfcMgKykCH5BpMAuT38cbiWZa43CZe0z6iw7MThuSMgK6RCClTjed3tRln8XPukO+csPc4KyIoMOaVYLjZArKHMa9TGrvYKP2t/gGqSHudcPgKBwFcy6taGbvd0Vk8X1i+vVEEGtf+cIqiVR7NXCpbH/Uv5Vo//C0CqEBQ0tT0GZRV7i+2M5nlS1dbUY90PfByupJOEayHd/+Bmm9kY0gx5j6DvwOG5KPC4BkIDjugx93kFrKk7OD/y/ccVOkNmMAwdeec7zeAdHuuWcxZrAzd6+7fP45fV0UiUozWFfVId7J1cLHel+qePM3Pjm8W17p71CLI0s1ZuErCE5FKCCssoJTbS2Tk1wfKhMIzNnWagP2HNHjpG8NrtnkY6wRsow1Lt/njONwHUbuxrgb2lirLiNEwrqQ35/d/SOXUEJBf0jca8pbP+2zWATyDwMhWR5o7Wpl4nN46AsHThIfHk1R36x9G/b7ECSwKdEFKG161e9rSysjJ2bjjhFWSFCOQ/Aj8B8SR8U6cOdZcAAAAASUVORK5CYII=\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SLineStyle = void 0;\r\nvar SLineStyle;\r\n(function (SLineStyle) {\r\n SLineStyle[SLineStyle[\"Solid\"] = 0] = \"Solid\";\r\n SLineStyle[SLineStyle[\"Dashed\"] = 1] = \"Dashed\";\r\n SLineStyle[SLineStyle[\"Dotted\"] = 2] = \"Dotted\";\r\n SLineStyle[SLineStyle[\"None\"] = 3] = \"None\";\r\n})(SLineStyle = exports.SLineStyle || (exports.SLineStyle = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SLineJoinStyle = void 0;\r\nvar SLineJoinStyle;\r\n(function (SLineJoinStyle) {\r\n SLineJoinStyle[SLineJoinStyle[\"Miter\"] = 0] = \"Miter\";\r\n SLineJoinStyle[SLineJoinStyle[\"Round\"] = 1] = \"Round\";\r\n SLineJoinStyle[SLineJoinStyle[\"Bevel\"] = 2] = \"Bevel\";\r\n})(SLineJoinStyle = exports.SLineJoinStyle || (exports.SLineJoinStyle = {}));\r\n","/**\n * Copyright (c) 2014-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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABq0lEQVQ4T2NkwAN6p06VZfrFxFxYmPkAlzJGfAb0TZ654D8DA0dxbnoEWQb0Tp61jIHhH0dxbkbQSDCgf+osg3///29iYGb2L85MOQ/yM3oY9EyaocXEyLjqHxNjYkl22mmQGngsNKxaxcb38v3mfwz/jZkYGB2LctMvIxvQO2mGPgMj4y6G/wy3/v385FFaWvoVxQAQp6+vj/M/G/dWhv8M2v///3dkZGSqAcUCIwND238Gxp0MjAzn/33/5A/TDDagc9JsGVbGf9lFuemVIIHu7m5uZg7+7f8Z/qswMDDcYmBgEGBgYFBgZGA49omHLaghMfEH2LIps5oZmf/OZeybMivw////6z6/fc7a0NDwByTZ2TmXl4Xr9y4GBkYLsC2MjOs/vXkW0dDQ8AuWHnonz/z9n4kpDqsBIEUdM2fys/76v5mBgeH+57cvkmGGE20AviQOiSGoC3qmzHBl/M+46z8Dg6acuOBtQhpB8g9ffpRjYvh3h/H//wBGcMizcp9kYGDQJUYzkpobn5n+mILTAcgQBhZu238M/3mIMoSR6Ssv2//D6enp3wAVmszov9Hk1gAAAABJRU5ErkJggg==\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./equipmentList.vue?vue&type=style&index=0&id=35449f9e&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./equipmentList.vue?vue&type=style&index=0&id=35449f9e&lang=less&scoped=true&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAAEcklEQVRoBe2YTWhcVRTHz3n5NqKJ0tSPdNOFulVEFBcWbCt0YWuQROsXqW2hpEZcSLci4somVSfRZCqB2qbpWBcKBhRtXLuwm7ZgC0FJKk2sJoumo5mZd/yfiffNMPPe5H3NpMg8CPe+O/fe8/ufc+5994ao/tQ9UPdA3QMb6QGulfHhkWSPiP2+EN0No5Od7c1H+vv7/45qvyYChhPJg0LyqYgU7DF/e1d7056oIgoTRnWFx3hX+P/6wvh3nbc3744iwvKwG0tzGTzzb8x81kyOdNr510rm64mJiVbTFrSsmgA3eKuhadtbAwf6iPmUAyqyQ0UMpVJtTluASlUEeMIf6v8VEbC3dHW8xkyTDidE0MJyKBGxCyiDz1NKS6O16qRJb29vrrur81UiPm1EYJFvVxGpVKrBtPkpYxXgDg8MoXsyq3Tu2OhnDxooFbFlc8criMiUaVMRc38s7TfvfsrYBJTCI0VmLeJBQGQVBAv2XjuXnUkkxh8wYCqCujr2EdM100bCjzl1H5VYBLjBtzAW7BsHP4aHX8JfTllUxD9EjoixsbEmWVia1Ag5rCw/OXUflcjfAS/4gYF9c8b+sZFkny1yCh+ytfxm/h2Gd+L9PfTZY/qh7ZvuzZ2785ExjeuUkQT4gTf2hxLjL6B+0hGxllqN5ndEabpxa3fP4K5dCJL/J7SAIPAGB+ehFyHg8yIR+Z/CwuvgUGsgDLwau3/TnV9iJZzXunmiwOscgQWEhcf+3jy/uHRWhB6NC17nCZRCYeF1t7mRwRlI5Nk44XUu3xGIAr+S4S+qAa8CfEUgCvyNVUrBTmGrDLnbKKzbs24EosDD82dgtGrwKqiigLDwMzMzjSurNIXt8jnjtai7jZmntPRMoaOjyZfZlhOAyPfRs40eD4q/sKWT6bvCn79w+QyODT3m92rB6/zOl9AYMyXb9nZsecHhL145XSt4Za2QQly4ITGN+vK8wos87zgh5gVr5i0uKwiQggDidPGg0no+bS5e0cNaTeGVwzOFkD24QSEZ8LCQ5/9v9Ab184XLJ9GtN99Z+9fA88aWpwDAFyLA7hFQ+LmFJb2g95kJ/cAPf3L8Scraj5gx65UWW5fePLz/B7d+ngKwelvX/A8pImURUPj5xWX1fCD4DxPHn85mc9+7wXi12ZIjnGT34j8azh3a9PUUgERABIwEGsR5fi/eNK3aWLh1bnF5E5Q510M/nlejNslDxniQEk50HVdBQCGFMHhbsTFcvou0Bcv5O9qsE8s37acg+GHM6/kdMvbQD+bkl7aG1hHTVlx6TnA0MX4VA+8r7uxW9+t5t7FxtFWIAE2xxQ1kSxrbCrZRTkPtTbh+7Z3tNOc4bW3t/jHoNTAO8P/NHGUp9NH0dIs9O78DXm+/VVRi07g+OPD6ufx6KIEqS6HM7PxXyP1n8FfSdWNfh0aTH4Dg7VKKsqMEizxR2umWeBd53I2jLAJYrEeQV+9gg7vNbcBGtDHJnxZZ726E7brNugfqHqh7oLIH/gVXnGG1s+2dlgAAAABJRU5ErkJggg==\"","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $fetch = getBuiltIn('fetch');\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = it.replace(plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = result.replace(percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replace[match];\n};\n\nvar serialize = function (it) {\n return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n if (query) {\n var attributes = query.split('&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = attribute.split('=');\n result.push({\n key: deserialize(entry.shift()),\n value: deserialize(entry.join('='))\n });\n }\n }\n }\n};\n\nvar updateSearchParams = function (query) {\n this.entries.length = 0;\n parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var that = this;\n var entries = [];\n var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n\n setInternalState(that, {\n type: URL_SEARCH_PARAMS,\n entries: entries,\n updateURL: function () { /* empty */ },\n updateSearchParams: updateSearchParams\n });\n\n if (init !== undefined) {\n if (isObject(init)) {\n iteratorMethod = getIteratorMethod(init);\n if (typeof iteratorMethod === 'function') {\n iterator = iteratorMethod.call(init);\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = entryNext.call(entryIterator)).done ||\n (second = entryNext.call(entryIterator)).done ||\n !entryNext.call(entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n entries.push({ key: first.value + '', value: second.value + '' });\n }\n } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n } else {\n parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n }\n }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.appent` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n state.entries.push({ key: name + '', value: value + '' });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) entries.splice(index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) result.push(entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = name + '';\n var val = value + '';\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) entries.splice(index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) entries.push({ key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n var entries = state.entries;\n // Array#sort is not stable in some engines\n var slice = entries.slice();\n var entry, entriesIndex, sliceIndex;\n entries.length = 0;\n for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n entry = slice[sliceIndex];\n for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n if (entries[entriesIndex].key > entry.key) {\n entries.splice(entriesIndex, 0, entry);\n break;\n }\n }\n if (entriesIndex === sliceIndex) entries.push(entry);\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n var entries = getInternalParamsState(this).entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n result.push(serialize(entry.key) + '=' + serialize(entry.value));\n } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` for correct work with polyfilled `URLSearchParams`\n// https://github.com/zloirock/core-js/issues/674\nif (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {\n $({ global: true, enumerable: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n var args = [input];\n var init, body, headers;\n if (arguments.length > 1) {\n init = arguments[1];\n if (isObject(init)) {\n body = init.body;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headers.has('content-type')) {\n headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n init = create(init, {\n body: createPropertyDescriptor(0, String(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n }\n args.push(init);\n } return $fetch.apply(this, args);\n }\n });\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","// (c) Copyright 2016, Sean Connelly (@voidqk), http://syntheti.cc\n// MIT License\n// Project Home: https://github.com/voidqk/polybooljs\n\n//\n// this is the core work-horse\n//\n\nvar LinkedList = require('./linked-list');\n\nfunction Intersecter(selfIntersection, eps, buildLog){\n\t// selfIntersection is true/false depending on the phase of the overall algorithm\n\n\t//\n\t// segment creation\n\t//\n\n\tfunction segmentNew(start, end){\n\t\treturn {\n\t\t\tid: buildLog ? buildLog.segmentId() : -1,\n\t\t\tstart: start,\n\t\t\tend: end,\n\t\t\tmyFill: {\n\t\t\t\tabove: null, // is there fill above us?\n\t\t\t\tbelow: null // is there fill below us?\n\t\t\t},\n\t\t\totherFill: null\n\t\t};\n\t}\n\n\tfunction segmentCopy(start, end, seg){\n\t\treturn {\n\t\t\tid: buildLog ? buildLog.segmentId() : -1,\n\t\t\tstart: start,\n\t\t\tend: end,\n\t\t\tmyFill: {\n\t\t\t\tabove: seg.myFill.above,\n\t\t\t\tbelow: seg.myFill.below\n\t\t\t},\n\t\t\totherFill: null\n\t\t};\n\t}\n\n\t//\n\t// event logic\n\t//\n\n\tvar event_root = LinkedList.create();\n\n\tfunction eventCompare(p1_isStart, p1_1, p1_2, p2_isStart, p2_1, p2_2){\n\t\t// compare the selected points first\n\t\tvar comp = eps.pointsCompare(p1_1, p2_1);\n\t\tif (comp !== 0)\n\t\t\treturn comp;\n\t\t// the selected points are the same\n\n\t\tif (eps.pointsSame(p1_2, p2_2)) // if the non-selected points are the same too...\n\t\t\treturn 0; // then the segments are equal\n\n\t\tif (p1_isStart !== p2_isStart) // if one is a start and the other isn't...\n\t\t\treturn p1_isStart ? 1 : -1; // favor the one that isn't the start\n\n\t\t// otherwise, we'll have to calculate which one is below the other manually\n\t\treturn eps.pointAboveOrOnLine(p1_2,\n\t\t\tp2_isStart ? p2_1 : p2_2, // order matters\n\t\t\tp2_isStart ? p2_2 : p2_1\n\t\t) ? 1 : -1;\n\t}\n\n\tfunction eventAdd(ev, other_pt){\n\t\tevent_root.insertBefore(ev, function(here){\n\t\t\t// should ev be inserted before here?\n\t\t\tvar comp = eventCompare(\n\t\t\t\tev .isStart, ev .pt, other_pt,\n\t\t\t\there.isStart, here.pt, here.other.pt\n\t\t\t);\n\t\t\treturn comp < 0;\n\t\t});\n\t}\n\n\tfunction eventAddSegmentStart(seg, primary){\n\t\tvar ev_start = LinkedList.node({\n\t\t\tisStart: true,\n\t\t\tpt: seg.start,\n\t\t\tseg: seg,\n\t\t\tprimary: primary,\n\t\t\tother: null,\n\t\t\tstatus: null\n\t\t});\n\t\teventAdd(ev_start, seg.end);\n\t\treturn ev_start;\n\t}\n\n\tfunction eventAddSegmentEnd(ev_start, seg, primary){\n\t\tvar ev_end = LinkedList.node({\n\t\t\tisStart: false,\n\t\t\tpt: seg.end,\n\t\t\tseg: seg,\n\t\t\tprimary: primary,\n\t\t\tother: ev_start,\n\t\t\tstatus: null\n\t\t});\n\t\tev_start.other = ev_end;\n\t\teventAdd(ev_end, ev_start.pt);\n\t}\n\n\tfunction eventAddSegment(seg, primary){\n\t\tvar ev_start = eventAddSegmentStart(seg, primary);\n\t\teventAddSegmentEnd(ev_start, seg, primary);\n\t\treturn ev_start;\n\t}\n\n\tfunction eventUpdateEnd(ev, end){\n\t\t// slides an end backwards\n\t\t// (start)------------(end) to:\n\t\t// (start)---(end)\n\n\t\tif (buildLog)\n\t\t\tbuildLog.segmentChop(ev.seg, end);\n\n\t\tev.other.remove();\n\t\tev.seg.end = end;\n\t\tev.other.pt = end;\n\t\teventAdd(ev.other, ev.pt);\n\t}\n\n\tfunction eventDivide(ev, pt){\n\t\tvar ns = segmentCopy(pt, ev.seg.end, ev.seg);\n\t\teventUpdateEnd(ev, pt);\n\t\treturn eventAddSegment(ns, ev.primary);\n\t}\n\n\tfunction calculate(primaryPolyInverted, secondaryPolyInverted){\n\t\t// if selfIntersection is true then there is no secondary polygon, so that isn't used\n\n\t\t//\n\t\t// status logic\n\t\t//\n\n\t\tvar status_root = LinkedList.create();\n\n\t\tfunction statusCompare(ev1, ev2){\n\t\t\tvar a1 = ev1.seg.start;\n\t\t\tvar a2 = ev1.seg.end;\n\t\t\tvar b1 = ev2.seg.start;\n\t\t\tvar b2 = ev2.seg.end;\n\n\t\t\tif (eps.pointsCollinear(a1, b1, b2)){\n\t\t\t\tif (eps.pointsCollinear(a2, b1, b2))\n\t\t\t\t\treturn 1;//eventCompare(true, a1, a2, true, b1, b2);\n\t\t\t\treturn eps.pointAboveOrOnLine(a2, b1, b2) ? 1 : -1;\n\t\t\t}\n\t\t\treturn eps.pointAboveOrOnLine(a1, b1, b2) ? 1 : -1;\n\t\t}\n\n\t\tfunction statusFindSurrounding(ev){\n\t\t\treturn status_root.findTransition(function(here){\n\t\t\t\tvar comp = statusCompare(ev, here.ev);\n\t\t\t\treturn comp > 0;\n\t\t\t});\n\t\t}\n\n\t\tfunction checkIntersection(ev1, ev2){\n\t\t\t// returns the segment equal to ev1, or false if nothing equal\n\n\t\t\tvar seg1 = ev1.seg;\n\t\t\tvar seg2 = ev2.seg;\n\t\t\tvar a1 = seg1.start;\n\t\t\tvar a2 = seg1.end;\n\t\t\tvar b1 = seg2.start;\n\t\t\tvar b2 = seg2.end;\n\n\t\t\tif (buildLog)\n\t\t\t\tbuildLog.checkIntersection(seg1, seg2);\n\n\t\t\tvar i = eps.linesIntersect(a1, a2, b1, b2);\n\n\t\t\tif (i === false){\n\t\t\t\t// segments are parallel or coincident\n\n\t\t\t\t// if points aren't collinear, then the segments are parallel, so no intersections\n\t\t\t\tif (!eps.pointsCollinear(a1, a2, b1))\n\t\t\t\t\treturn false;\n\t\t\t\t// otherwise, segments are on top of each other somehow (aka coincident)\n\n\t\t\t\tif (eps.pointsSame(a1, b2) || eps.pointsSame(a2, b1))\n\t\t\t\t\treturn false; // segments touch at endpoints... no intersection\n\n\t\t\t\tvar a1_equ_b1 = eps.pointsSame(a1, b1);\n\t\t\t\tvar a2_equ_b2 = eps.pointsSame(a2, b2);\n\n\t\t\t\tif (a1_equ_b1 && a2_equ_b2)\n\t\t\t\t\treturn ev2; // segments are exactly equal\n\n\t\t\t\tvar a1_between = !a1_equ_b1 && eps.pointBetween(a1, b1, b2);\n\t\t\t\tvar a2_between = !a2_equ_b2 && eps.pointBetween(a2, b1, b2);\n\n\t\t\t\t// handy for debugging:\n\t\t\t\t// buildLog.log({\n\t\t\t\t//\ta1_equ_b1: a1_equ_b1,\n\t\t\t\t//\ta2_equ_b2: a2_equ_b2,\n\t\t\t\t//\ta1_between: a1_between,\n\t\t\t\t//\ta2_between: a2_between\n\t\t\t\t// });\n\n\t\t\t\tif (a1_equ_b1){\n\t\t\t\t\tif (a2_between){\n\t\t\t\t\t\t// (a1)---(a2)\n\t\t\t\t\t\t// (b1)----------(b2)\n\t\t\t\t\t\teventDivide(ev2, a2);\n\t\t\t\t\t}\n\t\t\t\t\telse{\n\t\t\t\t\t\t// (a1)----------(a2)\n\t\t\t\t\t\t// (b1)---(b2)\n\t\t\t\t\t\teventDivide(ev1, b2);\n\t\t\t\t\t}\n\t\t\t\t\treturn ev2;\n\t\t\t\t}\n\t\t\t\telse if (a1_between){\n\t\t\t\t\tif (!a2_equ_b2){\n\t\t\t\t\t\t// make a2 equal to b2\n\t\t\t\t\t\tif (a2_between){\n\t\t\t\t\t\t\t// (a1)---(a2)\n\t\t\t\t\t\t\t// (b1)-----------------(b2)\n\t\t\t\t\t\t\teventDivide(ev2, a2);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t// (a1)----------(a2)\n\t\t\t\t\t\t\t// (b1)----------(b2)\n\t\t\t\t\t\t\teventDivide(ev1, b2);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// (a1)---(a2)\n\t\t\t\t\t// (b1)----------(b2)\n\t\t\t\t\teventDivide(ev2, a1);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse{\n\t\t\t\t// otherwise, lines intersect at i.pt, which may or may not be between the endpoints\n\n\t\t\t\t// is A divided between its endpoints? (exclusive)\n\t\t\t\tif (i.alongA === 0){\n\t\t\t\t\tif (i.alongB === -1) // yes, at exactly b1\n\t\t\t\t\t\teventDivide(ev1, b1);\n\t\t\t\t\telse if (i.alongB === 0) // yes, somewhere between B's endpoints\n\t\t\t\t\t\teventDivide(ev1, i.pt);\n\t\t\t\t\telse if (i.alongB === 1) // yes, at exactly b2\n\t\t\t\t\t\teventDivide(ev1, b2);\n\t\t\t\t}\n\n\t\t\t\t// is B divided between its endpoints? (exclusive)\n\t\t\t\tif (i.alongB === 0){\n\t\t\t\t\tif (i.alongA === -1) // yes, at exactly a1\n\t\t\t\t\t\teventDivide(ev2, a1);\n\t\t\t\t\telse if (i.alongA === 0) // yes, somewhere between A's endpoints (exclusive)\n\t\t\t\t\t\teventDivide(ev2, i.pt);\n\t\t\t\t\telse if (i.alongA === 1) // yes, at exactly a2\n\t\t\t\t\t\teventDivide(ev2, a2);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\t//\n\t\t// main event loop\n\t\t//\n\t\tvar segments = [];\n\t\twhile (!event_root.isEmpty()){\n\t\t\tvar ev = event_root.getHead();\n\n\t\t\tif (buildLog)\n\t\t\t\tbuildLog.vert(ev.pt[0]);\n\n\t\t\tif (ev.isStart){\n\n\t\t\t\tif (buildLog)\n\t\t\t\t\tbuildLog.segmentNew(ev.seg, ev.primary);\n\n\t\t\t\tvar surrounding = statusFindSurrounding(ev);\n\t\t\t\tvar above = surrounding.before ? surrounding.before.ev : null;\n\t\t\t\tvar below = surrounding.after ? surrounding.after.ev : null;\n\n\t\t\t\tif (buildLog){\n\t\t\t\t\tbuildLog.tempStatus(\n\t\t\t\t\t\tev.seg,\n\t\t\t\t\t\tabove ? above.seg : false,\n\t\t\t\t\t\tbelow ? below.seg : false\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tfunction checkBothIntersections(){\n\t\t\t\t\tif (above){\n\t\t\t\t\t\tvar eve = checkIntersection(ev, above);\n\t\t\t\t\t\tif (eve)\n\t\t\t\t\t\t\treturn eve;\n\t\t\t\t\t}\n\t\t\t\t\tif (below)\n\t\t\t\t\t\treturn checkIntersection(ev, below);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tvar eve = checkBothIntersections();\n\t\t\t\tif (eve){\n\t\t\t\t\t// ev and eve are equal\n\t\t\t\t\t// we'll keep eve and throw away ev\n\n\t\t\t\t\t// merge ev.seg's fill information into eve.seg\n\n\t\t\t\t\tif (selfIntersection){\n\t\t\t\t\t\tvar toggle; // are we a toggling edge?\n\t\t\t\t\t\tif (ev.seg.myFill.below === null)\n\t\t\t\t\t\t\ttoggle = true;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\ttoggle = ev.seg.myFill.above !== ev.seg.myFill.below;\n\n\t\t\t\t\t\t// merge two segments that belong to the same polygon\n\t\t\t\t\t\t// think of this as sandwiching two segments together, where `eve.seg` is\n\t\t\t\t\t\t// the bottom -- this will cause the above fill flag to toggle\n\t\t\t\t\t\tif (toggle)\n\t\t\t\t\t\t\teve.seg.myFill.above = !eve.seg.myFill.above;\n\t\t\t\t\t}\n\t\t\t\t\telse{\n\t\t\t\t\t\t// merge two segments that belong to different polygons\n\t\t\t\t\t\t// each segment has distinct knowledge, so no special logic is needed\n\t\t\t\t\t\t// note that this can only happen once per segment in this phase, because we\n\t\t\t\t\t\t// are guaranteed that all self-intersections are gone\n\t\t\t\t\t\teve.seg.otherFill = ev.seg.myFill;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (buildLog)\n\t\t\t\t\t\tbuildLog.segmentUpdate(eve.seg);\n\n\t\t\t\t\tev.other.remove();\n\t\t\t\t\tev.remove();\n\t\t\t\t}\n\n\t\t\t\tif (event_root.getHead() !== ev){\n\t\t\t\t\t// something was inserted before us in the event queue, so loop back around and\n\t\t\t\t\t// process it before continuing\n\t\t\t\t\tif (buildLog)\n\t\t\t\t\t\tbuildLog.rewind(ev.seg);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t//\n\t\t\t\t// calculate fill flags\n\t\t\t\t//\n\t\t\t\tif (selfIntersection){\n\t\t\t\t\tvar toggle; // are we a toggling edge?\n\t\t\t\t\tif (ev.seg.myFill.below === null) // if we are a new segment...\n\t\t\t\t\t\ttoggle = true; // then we toggle\n\t\t\t\t\telse // we are a segment that has previous knowledge from a division\n\t\t\t\t\t\ttoggle = ev.seg.myFill.above !== ev.seg.myFill.below; // calculate toggle\n\n\t\t\t\t\t// next, calculate whether we are filled below us\n\t\t\t\t\tif (!below){ // if nothing is below us...\n\t\t\t\t\t\t// we are filled below us if the polygon is inverted\n\t\t\t\t\t\tev.seg.myFill.below = primaryPolyInverted;\n\t\t\t\t\t}\n\t\t\t\t\telse{\n\t\t\t\t\t\t// otherwise, we know the answer -- it's the same if whatever is below\n\t\t\t\t\t\t// us is filled above it\n\t\t\t\t\t\tev.seg.myFill.below = below.seg.myFill.above;\n\t\t\t\t\t}\n\n\t\t\t\t\t// since now we know if we're filled below us, we can calculate whether\n\t\t\t\t\t// we're filled above us by applying toggle to whatever is below us\n\t\t\t\t\tif (toggle)\n\t\t\t\t\t\tev.seg.myFill.above = !ev.seg.myFill.below;\n\t\t\t\t\telse\n\t\t\t\t\t\tev.seg.myFill.above = ev.seg.myFill.below;\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\t// now we fill in any missing transition information, since we are all-knowing\n\t\t\t\t\t// at this point\n\n\t\t\t\t\tif (ev.seg.otherFill === null){\n\t\t\t\t\t\t// if we don't have other information, then we need to figure out if we're\n\t\t\t\t\t\t// inside the other polygon\n\t\t\t\t\t\tvar inside;\n\t\t\t\t\t\tif (!below){\n\t\t\t\t\t\t\t// if nothing is below us, then we're inside if the other polygon is\n\t\t\t\t\t\t\t// inverted\n\t\t\t\t\t\t\tinside =\n\t\t\t\t\t\t\t\tev.primary ? secondaryPolyInverted : primaryPolyInverted;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse{ // otherwise, something is below us\n\t\t\t\t\t\t\t// so copy the below segment's other polygon's above\n\t\t\t\t\t\t\tif (ev.primary === below.primary)\n\t\t\t\t\t\t\t\tinside = below.seg.otherFill.above;\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tinside = below.seg.myFill.above;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tev.seg.otherFill = {\n\t\t\t\t\t\t\tabove: inside,\n\t\t\t\t\t\t\tbelow: inside\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (buildLog){\n\t\t\t\t\tbuildLog.status(\n\t\t\t\t\t\tev.seg,\n\t\t\t\t\t\tabove ? above.seg : false,\n\t\t\t\t\t\tbelow ? below.seg : false\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// insert the status and remember it for later removal\n\t\t\t\tev.other.status = surrounding.insert(LinkedList.node({ ev: ev }));\n\t\t\t}\n\t\t\telse{\n\t\t\t\tvar st = ev.status;\n\n\t\t\t\tif (st === null){\n\t\t\t\t\tthrow new Error('PolyBool: Zero-length segment detected; your epsilon is ' +\n\t\t\t\t\t\t'probably too small or too large');\n\t\t\t\t}\n\n\t\t\t\t// removing the status will create two new adjacent edges, so we'll need to check\n\t\t\t\t// for those\n\t\t\t\tif (status_root.exists(st.prev) && status_root.exists(st.next))\n\t\t\t\t\tcheckIntersection(st.prev.ev, st.next.ev);\n\n\t\t\t\tif (buildLog)\n\t\t\t\t\tbuildLog.statusRemove(st.ev.seg);\n\n\t\t\t\t// remove the status\n\t\t\t\tst.remove();\n\n\t\t\t\t// if we've reached this point, we've calculated everything there is to know, so\n\t\t\t\t// save the segment for reporting\n\t\t\t\tif (!ev.primary){\n\t\t\t\t\t// make sure `seg.myFill` actually points to the primary polygon though\n\t\t\t\t\tvar s = ev.seg.myFill;\n\t\t\t\t\tev.seg.myFill = ev.seg.otherFill;\n\t\t\t\t\tev.seg.otherFill = s;\n\t\t\t\t}\n\t\t\t\tsegments.push(ev.seg);\n\t\t\t}\n\n\t\t\t// remove the event and continue\n\t\t\tevent_root.getHead().remove();\n\t\t}\n\n\t\tif (buildLog)\n\t\t\tbuildLog.done();\n\n\t\treturn segments;\n\t}\n\n\t// return the appropriate API depending on what we're doing\n\tif (!selfIntersection){\n\t\t// performing combination of polygons, so only deal with already-processed segments\n\t\treturn {\n\t\t\tcalculate: function(segments1, inverted1, segments2, inverted2){\n\t\t\t\t// segmentsX come from the self-intersection API, or this API\n\t\t\t\t// invertedX is whether we treat that list of segments as an inverted polygon or not\n\t\t\t\t// returns segments that can be used for further operations\n\t\t\t\tsegments1.forEach(function(seg){\n\t\t\t\t\teventAddSegment(segmentCopy(seg.start, seg.end, seg), true);\n\t\t\t\t});\n\t\t\t\tsegments2.forEach(function(seg){\n\t\t\t\t\teventAddSegment(segmentCopy(seg.start, seg.end, seg), false);\n\t\t\t\t});\n\t\t\t\treturn calculate(inverted1, inverted2);\n\t\t\t}\n\t\t};\n\t}\n\n\t// otherwise, performing self-intersection, so deal with regions\n\treturn {\n\t\taddRegion: function(region){\n\t\t\t// regions are a list of points:\n\t\t\t// [ [0, 0], [100, 0], [50, 100] ]\n\t\t\t// you can add multiple regions before running calculate\n\t\t\tvar pt1;\n\t\t\tvar pt2 = region[region.length - 1];\n\t\t\tfor (var i = 0; i < region.length; i++){\n\t\t\t\tpt1 = pt2;\n\t\t\t\tpt2 = region[i];\n\n\t\t\t\tvar forward = eps.pointsCompare(pt1, pt2);\n\t\t\t\tif (forward === 0) // points are equal, so we have a zero-length segment\n\t\t\t\t\tcontinue; // just skip it\n\n\t\t\t\teventAddSegment(\n\t\t\t\t\tsegmentNew(\n\t\t\t\t\t\tforward < 0 ? pt1 : pt2,\n\t\t\t\t\t\tforward < 0 ? pt2 : pt1\n\t\t\t\t\t),\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\tcalculate: function(inverted){\n\t\t\t// is the polygon inverted?\n\t\t\t// returns segments\n\t\t\treturn calculate(inverted, false);\n\t\t}\n\t};\n}\n\nmodule.exports = Intersecter;\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n concat: function concat(arg) { // eslint-disable-line no-unused-vars\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n var iteratorMethod = getIteratorMethod(it);\n if (typeof iteratorMethod != 'function') {\n throw TypeError(String(it) + ' is not iterable');\n } return anObject(iteratorMethod.call(it));\n};\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAADN0lEQVRoBe1Yy2pUQRA9nYjxkegs3IgGd8aFrnSRH/AXJOjGgOImifkLd2qGIAhidkHyAYKYD1Bw9nEVNL4QFE0UxGjK6vuYqe6+3dPOtCMDt2GY6qpTVV2P21NzgXrVGegrA6pn7SatGLqEE1DYn/EIP5l+a8jLTTfcgpotoTHf+2JAlRjCVYdPgiNpwc5IKZN0jvurAEZs28O2770C4DYxl7ZVJmSP6V+muL2LxbUVQkTvz4BtdYleMOt8wW7hprpgQ7J9LK5S2WWWGXMlQ8KpA/jfhaorUFegzwyYvwOJr7g+z+aqV5wv3TOgePopl8JuSTrfUiZ1HGAcI10AwCHh8p2gbVLKpI6Ni9qbLWSqjOEeTZksa0c8OvzGUeZOg3BaSN8I2iY7Mq3TpEUGPMMovnIN9QjiX7sYs4WhAM5yI2zYClF7hcdenJYRFgr5CNN3Mto3OXkN5YKULZRbVFjHvHri9atlGpNopQxA53CVm2qm69lyzCrjesx7x4O/hRS2uLx3O9AKSj8BhB0+9BYOoIVr6nMFymXNqU/MvIIHNI8fPMHuYZKrMsHfoy5YcBQW2d+k4MAfAOEjj8S3JTg5nQf8NNruEl1mrBFAyhaKPkdKYB1Aymz2YquuQC9ZS6njv4WAM8inP78/xdco8I0/r/kafI5xPMKs+uJXEJIVarDmDF+d06yrb5ZxviLD16g+k7VCARxmbPmWwVIrtvKllH7RtY1bWKZLmFPhq3GZLjJ2ja00MkvSTrUnLzf1M9DgjD7EGh30etQyjSkP7wXGCUIV+M4mug1zuuRHuAVOtctPOIkPuM78ZuURtExjyqXbkPCKt9v80S0ZWrqFdGe0VyiADe/LqbZ6Qdyn4zwSvOTdRME5Z0PEXsp2eECewg31Xsj9pPmPLMOlaaH8AJvCcyfDglmQUrYZfXjXTsZJE0BuXP6NPObxp9lSJnUCKn5RygA6XoifCt8KyXw6Ab75DPheyAYMDFRUcb5/U4EBRlUHMMBkV7qqK1CZlgEyh74C/vu6WxbdUVvOKaE5KoyruCpDRzF/B0JIVxYatbuP4rm9WJzrveAMfQv1U4GWNy21ID4DfwAeE6lbE+6zcwAAAABJRU5ErkJggg==\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SPaintEngineType = void 0;\r\nvar SPaintEngineType;\r\n(function (SPaintEngineType) {\r\n SPaintEngineType[SPaintEngineType[\"Canvas\"] = 0] = \"Canvas\";\r\n SPaintEngineType[SPaintEngineType[\"SVG\"] = 1] = \"SVG\";\r\n SPaintEngineType[SPaintEngineType[\"OpenGL\"] = 2] = \"OpenGL\";\r\n SPaintEngineType[SPaintEngineType[\"Image\"] = 3] = \"Image\";\r\n})(SPaintEngineType = exports.SPaintEngineType || (exports.SPaintEngineType = {}));\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAAEX0lEQVRoBe1YW2hVRxRd++ZaU6Fof3yABdEq0tL8hFIfUazVWh9FoTYFH4VCa0oe17/qh2jiZ6EfuclNjUoFMYhRoeALrW3BRC1t/bEgoT4QWoj9Mir4aGt219zjGc85Obnn5vZ6b4QzMMyevWfPrLVnz5wHEJc4AnEE4giUMwKCNt2AQSwoJ4iC106gJ/kE/KaCJymn4yCQKOf6xVg76ZtE0AfFOZ9utHUEC4lxtgvLT8CA3yx1rnFUtq3aSVyWwHOfQjGBcqeZ/wyEoenWF3ALO3lwPs6aBfsxGdtRK3+HDS+1LpqAA36LBabYQkKmbLW6MgrRZ8CNvBdkmM5rL6EcTaCEYApZKpqAyflgCdMFx5SoH30GzIE1Oe+mjXuISwQwaploAs5tYw5s8Q9tp47DI+yCYIAB2oaU3I0CHLRHp1DQo1j9Dp2Oh7hI4Bv5RtzEtg+tWjvS6ctDoF1X4B9cItgqD+AplA8hraeR0Vc9+pxiaQmomg+oHYz4caKaYJEJ4+8Wxbt4jN9IZDvrWFc9XDsyAt1aAQOikLJPJ6ANxwi+mXCdOYT7AKTYf5PtL3ZaRSV1LexfRru+Y/UhQv4EuvVF3kZHkcZhGHkkpUOrcA+/EtRKj1s/abzN1/c21kukMYe2Ruru2DGKWdyNszwbXUyryVbvEfIj0KEvE/x3BLCavh+gHz9ij07yzDO8mNb1+Dd7WGd4BvUyxtVokvNWJzJIIhlU8F1fcNDqHWEdifQx/eqD35DRBDL6CgH0Evx8z6Rv4T5+Yo6+5tH5xU4dQ3sr/Q6wjrPGBBOpEotRJ/1W5xUa5Bav03UksoREfrcmxXimX4ZzrbE6CrkJtOvrZH6BTmFAp9H/AkEu8U6YlTt1Cq/IH+iXsjYhZcEGRj1F8Cb3c5dG+Z4Dquizg/WhHayYaGUKwxPIaA0Z9xDEVI/Dbspf2r6JiuIUc/RTq2vT+VzOXJE1Vie4jiTmMrJdVpePkJJH9NnJ3XiDJM6EuSTDlMy1NYz8QYKr9NhbmKPN2X6rXmX7NavxN3UPScxk+yd9vmI7htUpghN4iZH/RAZc1YjbBrlGn2XE9RGD+g1lm5JDdyCtdQRxxIIXUhF8bsGb1TfLXuqWsz69MYAvaEnTzwFv7vYEmvmMff9/gTfruaVJDlE01ZYggWouu4u1IjvC5J5gLbfR/Anwl5ScpWIe602/IdsbIPhVzPcWiDx9SIUMLEDlOz9DCbgzCm6TxlKC+NZVDWlTcoWbOYckf/bYLnMPqtEoJz26ZyYGCTgLCXM5wf+lDdIbufJn8he/kRdx3FES6eKpmYt6uRHpV6QB5gD6i+AKI/8ewf/hN+To1coDvmJ8+AzSJceijslPQPi8TfL6q5fbkZ7BAcXP9eAKoX1/CinfEgsBHzp1aZTBHajhfT70xikNlvxWcX7u2rF+As5fX/vj1I4aTULgUvan0GgCmieWJK/LHj6en89isMcljkAcgTgCZY3Af8ogImgv35xFAAAAAElFTkSuQmCC\"","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $copyWithin = require('../internals/array-copy-within');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SLinearGradient = void 0;\r\nvar _1 = require(\"./\");\r\nvar SLinearGradient = (function (_super) {\r\n __extends(SLinearGradient, _super);\r\n function SLinearGradient(x1, y1, x2, y2) {\r\n var _this = _super.call(this) || this;\r\n if (x1 instanceof _1.SPoint && y1 instanceof _1.SPoint) {\r\n _this.start = new _1.SPoint(x1);\r\n _this.end = new _1.SPoint(y1);\r\n }\r\n else {\r\n _this.start = new _1.SPoint(x1, y1);\r\n _this.end = new _1.SPoint(x2, y2);\r\n }\r\n return _this;\r\n }\r\n SLinearGradient.prototype.value = function () {\r\n var str = \"SLinearGradient{\";\r\n str += this.x1 + \",\" + this.y1 + \";\";\r\n str += this.x2 + \",\" + this.y2 + \";\";\r\n this.stopList.forEach(function (t) {\r\n str += t.pos + \",\" + t.color.value + \";\";\r\n });\r\n return str + \"}\";\r\n };\r\n return SLinearGradient;\r\n}(_1.SGradient));\r\nexports.SLinearGradient = SLinearGradient;\r\n","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SBoardItem = void 0;\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nconst __1 = require(\"../..\");\r\nconst graph_1 = require(\"@persagy-web/graph\");\r\nclass SBoardItem extends graph_1.SGraphItem {\r\n constructor(parent, data) {\r\n super(parent);\r\n this.pointArr = [];\r\n this.pathList = [];\r\n this.data = data;\r\n this.zOrder = 0;\r\n if (this.data.OutLine.length &&\r\n this.data.OutLine[0] &&\r\n this.data.OutLine[0].length) {\r\n let tempArr = this.data.OutLine;\r\n this.pointArr = tempArr.map((t) => {\r\n let sPath = new draw_1.SPath();\r\n let tempArr = t.map((it) => {\r\n let array = it.map((item) => {\r\n let x = item.X, y = -item.Y;\r\n return new draw_1.SPoint(x, y);\r\n });\r\n sPath.polygon(array);\r\n return array;\r\n });\r\n this.pathList.push(sPath);\r\n return tempArr;\r\n });\r\n }\r\n }\r\n contains(x, y) {\r\n return false;\r\n }\r\n onDraw(painter) {\r\n painter.pen.lineWidth = painter.toPx(1);\r\n painter.brush.color = __1.ItemColor.spaceColor;\r\n painter.pen.color = __1.ItemColor.spaceBorderColor;\r\n this.pathList.forEach((t) => {\r\n painter.drawPath(t);\r\n });\r\n }\r\n}\r\nexports.SBoardItem = SBoardItem;\r\n","var toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar bind = require('../internals/function-bind-context');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, step, iterator, next;\n if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n O = [];\n while (!(step = next.call(iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2], 2);\n }\n length = toLength(O.length);\n result = new (aTypedArrayConstructor(this))(length);\n for (i = 0; length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SFont = void 0;\r\nvar STextAlign_1 = require(\"./enums/STextAlign\");\r\nvar STextBaseLine_1 = require(\"./enums/STextBaseLine\");\r\nvar STextDirection_1 = require(\"./enums/STextDirection\");\r\nvar SFont = (function () {\r\n function SFont(name, size) {\r\n this.name = \"sans-serif\";\r\n this.size = 16;\r\n this.textAlign = STextAlign_1.STextAlign.Start;\r\n this.textBaseLine = STextBaseLine_1.STextBaseLine.Top;\r\n this.textDirection = STextDirection_1.STextDirection.Inherit;\r\n if (name == undefined) {\r\n return;\r\n }\r\n if (name instanceof SFont) {\r\n this.name = name.name;\r\n this.size = name.size;\r\n this.textAlign = name.textAlign;\r\n this.textDirection = name.textDirection;\r\n }\r\n else {\r\n this.name = name;\r\n this.size = size != undefined ? size : 16;\r\n }\r\n }\r\n return SFont;\r\n}());\r\nexports.SFont = SFont;\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAACC0lEQVRoBe2ZMU7DMBSGn1FZuEAnFjY4BfQSiImdAY5Q4AYggdSFuQfojDgFI0un3gAEkvFvx5A2ceLE78kZ8qQqVqy8fN+zFScu0RhjBcYKyFXgWR8RfoKhxHID/IfebP4JndKV+pC4l4yAh9d0aKEVrUlIgl9gF96XXUiCVyAELyjBJ1APvynYp96BmEeCRyAEr2hmwTW9mqOIRLpAE/y1ercCj/qEhCT2/oa2b+OblgbOPW1cjo2ZJjPy8DiHthsNP6XIXoPHLAqQEOkCE7o09/dgVXgPJySRPoUA+KSPzaK1NFW+2Kq8hy8fmacTjwAAtVaklC6zBtuMEt0EHvSthbpR7hgkjOhgkogXcPDzAu2OBiIRJ7AN78s7CIl2gXr4wUg0CzTDD0IiLBAHn12iXqAbfFaJqkA/+GwS6a8SHj3TsToCAOk3Clkeq/UC3SWywAMzLBAvkQ2+XaBdIit8nEBYIjt8vEBVYhDw3QT+JWgob6LdBXDFbiz0AX3Rizl93/o15q9l+hZAurSFzMGvzAf6ud11AFhbMMKnC3zSwoCfFczTVglm+HSBfZqblWRdKnpYQgAe921eyEpkwWbmja10AZg1SaBfaFcOqXkEkCkkgT6hfVEk5hNAtnoJ9Lhg3plGUl4BZAxJCMDLCNRJCMHLCZQl0Bb6fwypZQPTCb8xxgqMFRCrwC9BGmh5ts+RaAAAAABJRU5ErkJggg==\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseGraphy.vue?vue&type=style&index=0&id=08fff782&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseGraphy.vue?vue&type=style&index=0&id=08fff782&lang=less&scoped=true&\"","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('splice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.github.io/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.github.io/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SOrderSetType = void 0;\r\nvar SOrderSetType;\r\n(function (SOrderSetType) {\r\n SOrderSetType[SOrderSetType[\"Top\"] = 0] = \"Top\";\r\n SOrderSetType[SOrderSetType[\"Bottom\"] = 1] = \"Bottom\";\r\n SOrderSetType[SOrderSetType[\"After\"] = 2] = \"After\";\r\n SOrderSetType[SOrderSetType[\"Before\"] = 3] = \"Before\";\r\n})(SOrderSetType = exports.SOrderSetType || (exports.SOrderSetType = {}));\r\n","// (c) Copyright 2016, Sean Connelly (@voidqk), http://syntheti.cc\n// MIT License\n// Project Home: https://github.com/voidqk/polybooljs\n\n//\n// converts a list of segments into a list of regions, while also removing unnecessary verticies\n//\n\nfunction SegmentChainer(segments, eps, buildLog){\n\tvar chains = [];\n\tvar regions = [];\n\n\tsegments.forEach(function(seg){\n\t\tvar pt1 = seg.start;\n\t\tvar pt2 = seg.end;\n\t\tif (eps.pointsSame(pt1, pt2)){\n\t\t\tconsole.warn('PolyBool: Warning: Zero-length segment detected; your epsilon is ' +\n\t\t\t\t'probably too small or too large');\n\t\t\treturn;\n\t\t}\n\n\t\tif (buildLog)\n\t\t\tbuildLog.chainStart(seg);\n\n\t\t// search for two chains that this segment matches\n\t\tvar first_match = {\n\t\t\tindex: 0,\n\t\t\tmatches_head: false,\n\t\t\tmatches_pt1: false\n\t\t};\n\t\tvar second_match = {\n\t\t\tindex: 0,\n\t\t\tmatches_head: false,\n\t\t\tmatches_pt1: false\n\t\t};\n\t\tvar next_match = first_match;\n\t\tfunction setMatch(index, matches_head, matches_pt1){\n\t\t\t// return true if we've matched twice\n\t\t\tnext_match.index = index;\n\t\t\tnext_match.matches_head = matches_head;\n\t\t\tnext_match.matches_pt1 = matches_pt1;\n\t\t\tif (next_match === first_match){\n\t\t\t\tnext_match = second_match;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tnext_match = null;\n\t\t\treturn true; // we've matched twice, we're done here\n\t\t}\n\t\tfor (var i = 0; i < chains.length; i++){\n\t\t\tvar chain = chains[i];\n\t\t\tvar head = chain[0];\n\t\t\tvar head2 = chain[1];\n\t\t\tvar tail = chain[chain.length - 1];\n\t\t\tvar tail2 = chain[chain.length - 2];\n\t\t\tif (eps.pointsSame(head, pt1)){\n\t\t\t\tif (setMatch(i, true, true))\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\telse if (eps.pointsSame(head, pt2)){\n\t\t\t\tif (setMatch(i, true, false))\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\telse if (eps.pointsSame(tail, pt1)){\n\t\t\t\tif (setMatch(i, false, true))\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\telse if (eps.pointsSame(tail, pt2)){\n\t\t\t\tif (setMatch(i, false, false))\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (next_match === first_match){\n\t\t\t// we didn't match anything, so create a new chain\n\t\t\tchains.push([ pt1, pt2 ]);\n\t\t\tif (buildLog)\n\t\t\t\tbuildLog.chainNew(pt1, pt2);\n\t\t\treturn;\n\t\t}\n\n\t\tif (next_match === second_match){\n\t\t\t// we matched a single chain\n\n\t\t\tif (buildLog)\n\t\t\t\tbuildLog.chainMatch(first_match.index);\n\n\t\t\t// add the other point to the apporpriate end, and check to see if we've closed the\n\t\t\t// chain into a loop\n\n\t\t\tvar index = first_match.index;\n\t\t\tvar pt = first_match.matches_pt1 ? pt2 : pt1; // if we matched pt1, then we add pt2, etc\n\t\t\tvar addToHead = first_match.matches_head; // if we matched at head, then add to the head\n\n\t\t\tvar chain = chains[index];\n\t\t\tvar grow = addToHead ? chain[0] : chain[chain.length - 1];\n\t\t\tvar grow2 = addToHead ? chain[1] : chain[chain.length - 2];\n\t\t\tvar oppo = addToHead ? chain[chain.length - 1] : chain[0];\n\t\t\tvar oppo2 = addToHead ? chain[chain.length - 2] : chain[1];\n\n\t\t\tif (eps.pointsCollinear(grow2, grow, pt)){\n\t\t\t\t// grow isn't needed because it's directly between grow2 and pt:\n\t\t\t\t// grow2 ---grow---> pt\n\t\t\t\tif (addToHead){\n\t\t\t\t\tif (buildLog)\n\t\t\t\t\t\tbuildLog.chainRemoveHead(first_match.index, pt);\n\t\t\t\t\tchain.shift();\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\tif (buildLog)\n\t\t\t\t\t\tbuildLog.chainRemoveTail(first_match.index, pt);\n\t\t\t\t\tchain.pop();\n\t\t\t\t}\n\t\t\t\tgrow = grow2; // old grow is gone... new grow is what grow2 was\n\t\t\t}\n\n\t\t\tif (eps.pointsSame(oppo, pt)){\n\t\t\t\t// we're closing the loop, so remove chain from chains\n\t\t\t\tchains.splice(index, 1);\n\n\t\t\t\tif (eps.pointsCollinear(oppo2, oppo, grow)){\n\t\t\t\t\t// oppo isn't needed because it's directly between oppo2 and grow:\n\t\t\t\t\t// oppo2 ---oppo--->grow\n\t\t\t\t\tif (addToHead){\n\t\t\t\t\t\tif (buildLog)\n\t\t\t\t\t\t\tbuildLog.chainRemoveTail(first_match.index, grow);\n\t\t\t\t\t\tchain.pop();\n\t\t\t\t\t}\n\t\t\t\t\telse{\n\t\t\t\t\t\tif (buildLog)\n\t\t\t\t\t\t\tbuildLog.chainRemoveHead(first_match.index, grow);\n\t\t\t\t\t\tchain.shift();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (buildLog)\n\t\t\t\t\tbuildLog.chainClose(first_match.index);\n\n\t\t\t\t// we have a closed chain!\n\t\t\t\tregions.push(chain);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// not closing a loop, so just add it to the apporpriate side\n\t\t\tif (addToHead){\n\t\t\t\tif (buildLog)\n\t\t\t\t\tbuildLog.chainAddHead(first_match.index, pt);\n\t\t\t\tchain.unshift(pt);\n\t\t\t}\n\t\t\telse{\n\t\t\t\tif (buildLog)\n\t\t\t\t\tbuildLog.chainAddTail(first_match.index, pt);\n\t\t\t\tchain.push(pt);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// otherwise, we matched two chains, so we need to combine those chains together\n\n\t\tfunction reverseChain(index){\n\t\t\tif (buildLog)\n\t\t\t\tbuildLog.chainReverse(index);\n\t\t\tchains[index].reverse(); // gee, that's easy\n\t\t}\n\n\t\tfunction appendChain(index1, index2){\n\t\t\t// index1 gets index2 appended to it, and index2 is removed\n\t\t\tvar chain1 = chains[index1];\n\t\t\tvar chain2 = chains[index2];\n\t\t\tvar tail = chain1[chain1.length - 1];\n\t\t\tvar tail2 = chain1[chain1.length - 2];\n\t\t\tvar head = chain2[0];\n\t\t\tvar head2 = chain2[1];\n\n\t\t\tif (eps.pointsCollinear(tail2, tail, head)){\n\t\t\t\t// tail isn't needed because it's directly between tail2 and head\n\t\t\t\t// tail2 ---tail---> head\n\t\t\t\tif (buildLog)\n\t\t\t\t\tbuildLog.chainRemoveTail(index1, tail);\n\t\t\t\tchain1.pop();\n\t\t\t\ttail = tail2; // old tail is gone... new tail is what tail2 was\n\t\t\t}\n\n\t\t\tif (eps.pointsCollinear(tail, head, head2)){\n\t\t\t\t// head isn't needed because it's directly between tail and head2\n\t\t\t\t// tail ---head---> head2\n\t\t\t\tif (buildLog)\n\t\t\t\t\tbuildLog.chainRemoveHead(index2, head);\n\t\t\t\tchain2.shift();\n\t\t\t}\n\n\t\t\tif (buildLog)\n\t\t\t\tbuildLog.chainJoin(index1, index2);\n\t\t\tchains[index1] = chain1.concat(chain2);\n\t\t\tchains.splice(index2, 1);\n\t\t}\n\n\t\tvar F = first_match.index;\n\t\tvar S = second_match.index;\n\n\t\tif (buildLog)\n\t\t\tbuildLog.chainConnect(F, S);\n\n\t\tvar reverseF = chains[F].length < chains[S].length; // reverse the shorter chain, if needed\n\t\tif (first_match.matches_head){\n\t\t\tif (second_match.matches_head){\n\t\t\t\tif (reverseF){\n\t\t\t\t\t// <<<< F <<<< --- >>>> S >>>>\n\t\t\t\t\treverseChain(F);\n\t\t\t\t\t// >>>> F >>>> --- >>>> S >>>>\n\t\t\t\t\tappendChain(F, S);\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\t// <<<< F <<<< --- >>>> S >>>>\n\t\t\t\t\treverseChain(S);\n\t\t\t\t\t// <<<< F <<<< --- <<<< S <<<< logically same as:\n\t\t\t\t\t// >>>> S >>>> --- >>>> F >>>>\n\t\t\t\t\tappendChain(S, F);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse{\n\t\t\t\t// <<<< F <<<< --- <<<< S <<<< logically same as:\n\t\t\t\t// >>>> S >>>> --- >>>> F >>>>\n\t\t\t\tappendChain(S, F);\n\t\t\t}\n\t\t}\n\t\telse{\n\t\t\tif (second_match.matches_head){\n\t\t\t\t// >>>> F >>>> --- >>>> S >>>>\n\t\t\t\tappendChain(F, S);\n\t\t\t}\n\t\t\telse{\n\t\t\t\tif (reverseF){\n\t\t\t\t\t// >>>> F >>>> --- <<<< S <<<<\n\t\t\t\t\treverseChain(F);\n\t\t\t\t\t// <<<< F <<<< --- <<<< S <<<< logically same as:\n\t\t\t\t\t// >>>> S >>>> --- >>>> F >>>>\n\t\t\t\t\tappendChain(S, F);\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\t// >>>> F >>>> --- <<<< S <<<<\n\t\t\t\t\treverseChain(S);\n\t\t\t\t\t// >>>> F >>>> --- >>>> S >>>>\n\t\t\t\t\tappendChain(F, S);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\treturn regions;\n}\n\nmodule.exports = SegmentChainer;\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SZoneItem = void 0;\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nconst __1 = require(\"../..\");\r\nconst graph_1 = require(\"@persagy-web/graph\");\r\nclass SZoneItem extends graph_1.SGraphAreaGroupItem {\r\n constructor(parent, data) {\r\n super(parent, {\r\n Outline: data.OutLine.map((t) => {\r\n return t.map((it) => {\r\n return it.map((item) => {\r\n item.Y = -item.Y;\r\n return item;\r\n });\r\n });\r\n }),\r\n Style: {\r\n Default: {\r\n Stroke: \"#00000000\",\r\n Fill: \"#ffee2280\",\r\n LineWidth: 1,\r\n Effect: {}\r\n },\r\n Selected: {\r\n Stroke: \"#00000000\",\r\n Fill: \"#1abc9c\",\r\n LineWidth: 1,\r\n Effect: {}\r\n },\r\n Highlight: {\r\n Stroke: \"#00000000\",\r\n Fill: data.Color || \"#fbb029\",\r\n LineWidth: 1,\r\n Effect: {}\r\n },\r\n Unselect: {\r\n Stroke: \"#00000000\",\r\n Fill: \"#cecece\",\r\n LineWidth: 1,\r\n Effect: {}\r\n },\r\n Infected: {\r\n Stroke: \"#00000000\",\r\n Fill: \"#ff0000\",\r\n LineWidth: 1,\r\n Effect: {}\r\n }\r\n }\r\n });\r\n this._highLightFlag = false;\r\n this._transparency = 20;\r\n this._isInfected = false;\r\n this.data = data;\r\n this.zOrder = __1.ItemOrder.zoneOrder;\r\n this.highLightFlag = data.HighLightFlag || false;\r\n this.transparency = data.Transparency || 20;\r\n this.isInfected = data.Infected || false;\r\n }\r\n get highLightFlag() {\r\n return this._highLightFlag;\r\n }\r\n set highLightFlag(value) {\r\n this._highLightFlag = value;\r\n this.update();\r\n }\r\n get transparency() {\r\n return this._transparency;\r\n }\r\n set transparency(value) {\r\n this._transparency = value;\r\n this.update();\r\n }\r\n get isInfected() {\r\n return this._isInfected;\r\n }\r\n set isInfected(value) {\r\n this._isInfected = value;\r\n this.update();\r\n }\r\n onMouseDown(event) {\r\n if (this.selectable) {\r\n this.selected = !this.selected;\r\n this.clickPoint = new draw_1.SPoint(event.x, event.y);\r\n }\r\n this.$emit(\"click\", event);\r\n return true;\r\n }\r\n onMouseUp(event) {\r\n return false;\r\n }\r\n setStyle() {\r\n let status = \"Default\";\r\n if (this.style) {\r\n if (!this.selectable) {\r\n status = \"Unselect\";\r\n }\r\n else {\r\n if (this.selected) {\r\n status = \"Selected\";\r\n }\r\n else if (this.highLightFlag) {\r\n status = \"Highlight\";\r\n }\r\n else if (this.isInfected) {\r\n status = \"Infected\";\r\n }\r\n else {\r\n status = \"Default\";\r\n if (this.data.Color) {\r\n this.style.Default.Fill = `${this.data.Color}${__1.Transparency[this.transparency]}`;\r\n }\r\n }\r\n }\r\n }\r\n return status;\r\n }\r\n onDraw(painter) {\r\n super.onDraw(painter);\r\n painter.brush.color = draw_1.SColor.Black;\r\n painter.font.size = painter.toPx(10);\r\n if (this.clickPoint) {\r\n painter.drawText(this.data.RoomLocalName, this.clickPoint.x, this.clickPoint.y);\r\n }\r\n }\r\n}\r\nexports.SZoneItem = SZoneItem;\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAFKADAAQAAAABAAAAFAAAAACRFdLHAAABKklEQVQ4Ee1UsUoDQRB9s7uotSgqWMXSVoyFkKTUz7DUgGAteChYCp5o6x/4BUKaA0XUztJYKGhA/ADJOr4jTZiQMyR2ujCwb97bd3Oz7AjMOn/SidcWSiZdCKNHXF3CY02kHazyuRUvoFiz+ULcBrJruW+olnsMHfyh4uum0MCQCq0yKtktFsRwQ8GDq5jQcC+IX+xUmGqdThuM8YEdFe/U7mBb7rrPOJzqLBMpY76b+HEvKFNzZHUBEZO8hPzXz/i1xAr64lQfeGrK8s4mRsX/hqN2EPiDPewZDsN0UcRdKuLy3Ayav2K4uyIZC1nPiwnw+ATnGZ9RFcea5MkB1zR1L1YbsIkmTtDge66RrFhBAVZy+5bvzENVx9FQ4qAYs4K+2OMDW/Jm+W8GpUkHQNXUzgAAAABJRU5ErkJggg==\"","// (c) Copyright 2016, Sean Connelly (@voidqk), http://syntheti.cc\n// MIT License\n// Project Home: https://github.com/voidqk/polybooljs\n\n//\n// used strictly for logging the processing of the algorithm... only useful if you intend on\n// looking under the covers (for pretty UI's or debugging)\n//\n\nfunction BuildLog(){\n\tvar my;\n\tvar nextSegmentId = 0;\n\tvar curVert = false;\n\n\tfunction push(type, data){\n\t\tmy.list.push({\n\t\t\ttype: type,\n\t\t\tdata: data ? JSON.parse(JSON.stringify(data)) : void 0\n\t\t});\n\t\treturn my;\n\t}\n\n\tmy = {\n\t\tlist: [],\n\t\tsegmentId: function(){\n\t\t\treturn nextSegmentId++;\n\t\t},\n\t\tcheckIntersection: function(seg1, seg2){\n\t\t\treturn push('check', { seg1: seg1, seg2: seg2 });\n\t\t},\n\t\tsegmentChop: function(seg, end){\n\t\t\tpush('div_seg', { seg: seg, pt: end });\n\t\t\treturn push('chop', { seg: seg, pt: end });\n\t\t},\n\t\tstatusRemove: function(seg){\n\t\t\treturn push('pop_seg', { seg: seg });\n\t\t},\n\t\tsegmentUpdate: function(seg){\n\t\t\treturn push('seg_update', { seg: seg });\n\t\t},\n\t\tsegmentNew: function(seg, primary){\n\t\t\treturn push('new_seg', { seg: seg, primary: primary });\n\t\t},\n\t\tsegmentRemove: function(seg){\n\t\t\treturn push('rem_seg', { seg: seg });\n\t\t},\n\t\ttempStatus: function(seg, above, below){\n\t\t\treturn push('temp_status', { seg: seg, above: above, below: below });\n\t\t},\n\t\trewind: function(seg){\n\t\t\treturn push('rewind', { seg: seg });\n\t\t},\n\t\tstatus: function(seg, above, below){\n\t\t\treturn push('status', { seg: seg, above: above, below: below });\n\t\t},\n\t\tvert: function(x){\n\t\t\tif (x === curVert)\n\t\t\t\treturn my;\n\t\t\tcurVert = x;\n\t\t\treturn push('vert', { x: x });\n\t\t},\n\t\tlog: function(data){\n\t\t\tif (typeof data !== 'string')\n\t\t\t\tdata = JSON.stringify(data, false, ' ');\n\t\t\treturn push('log', { txt: data });\n\t\t},\n\t\treset: function(){\n\t\t\treturn push('reset');\n\t\t},\n\t\tselected: function(segs){\n\t\t\treturn push('selected', { segs: segs });\n\t\t},\n\t\tchainStart: function(seg){\n\t\t\treturn push('chain_start', { seg: seg });\n\t\t},\n\t\tchainRemoveHead: function(index, pt){\n\t\t\treturn push('chain_rem_head', { index: index, pt: pt });\n\t\t},\n\t\tchainRemoveTail: function(index, pt){\n\t\t\treturn push('chain_rem_tail', { index: index, pt: pt });\n\t\t},\n\t\tchainNew: function(pt1, pt2){\n\t\t\treturn push('chain_new', { pt1: pt1, pt2: pt2 });\n\t\t},\n\t\tchainMatch: function(index){\n\t\t\treturn push('chain_match', { index: index });\n\t\t},\n\t\tchainClose: function(index){\n\t\t\treturn push('chain_close', { index: index });\n\t\t},\n\t\tchainAddHead: function(index, pt){\n\t\t\treturn push('chain_add_head', { index: index, pt: pt });\n\t\t},\n\t\tchainAddTail: function(index, pt){\n\t\t\treturn push('chain_add_tail', { index: index, pt: pt, });\n\t\t},\n\t\tchainConnect: function(index1, index2){\n\t\t\treturn push('chain_con', { index1: index1, index2: index2 });\n\t\t},\n\t\tchainReverse: function(index){\n\t\t\treturn push('chain_rev', { index: index });\n\t\t},\n\t\tchainJoin: function(index1, index2){\n\t\t\treturn push('chain_join', { index1: index1, index2: index2 });\n\t\t},\n\t\tdone: function(){\n\t\t\treturn push('done');\n\t\t}\n\t};\n\treturn my;\n}\n\nmodule.exports = BuildLog;\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAFKADAAQAAAABAAAAFAAAAACRFdLHAAABmUlEQVQ4Ea1UMS9DURT+TotKlMQu0QWxWPwOYWHWXYnEZjGUxeK9DsQiBgsWOzub0MQoEoPEIkpVwzu++15v86S9bUNvc3q/d853v3vOO/ddoMtDQj1PcxBsQZGO6Vfp28ey5GK+tjAS9LVE5hvtKrZikhuMI4kMluQh5m8Je8KoyUxwwWzm6uyC5im4zud41vWwC0SCrqjxB9iEpy+tKExG+bvFFPz2gorZlmImqDVGEWW3YBp5VLGNT1xyQR+GMO0ULmGUnGvahFswKxUKVODrN0sKkBV32QUdtlkmnLv+MeDO0AoqTpFgyR2O9oIrstGhVkhrLXisfXhnfmYsskUiQYjtn6+pGrRzjWwJ8dnTBTyhjFd8hObjEQfaX6d4es5GVEILcGf97gwTuCH5iB025zBJfMhOm85HQ3BC33P4IBggnjHYXg5KdPbr04uWgcemSJhibMy6GuZdzfCF3FNjp+vHpuuCtmRzPY3QvhrKEfTy/RhetSFmHcK4kidYjZoimGdsjdb8qoq2tcubz8ImDmKvefAf3h+Vv2whSiBdIAAAAABJRU5ErkJggg==\"","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","module.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.github.io/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.github.io/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SSize = void 0;\r\nvar __1 = require(\"..\");\r\nvar SSize = (function () {\r\n function SSize(width, height) {\r\n if (width == undefined) {\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n else if (width instanceof SSize) {\r\n this.width = width.width;\r\n this.height = width.height;\r\n }\r\n else {\r\n this.width = width;\r\n this.height = height;\r\n }\r\n }\r\n SSize.prototype.isEmpty = function () {\r\n return this.width <= 0 || this.height <= 0;\r\n };\r\n SSize.prototype.isNull = function () {\r\n return this.width == 0 && this.height == 0;\r\n };\r\n SSize.prototype.isValid = function () {\r\n return this.width > 0 && this.height > 0;\r\n };\r\n SSize.prototype.scale = function (width, height, mode) {\r\n if (mode === void 0) { mode = __1.SAspectRatioMode.IgnoreAspectRatio; }\r\n var s = this.scaled(width, height, mode);\r\n this.width = s.width;\r\n this.height = s.height;\r\n };\r\n SSize.prototype.scaled = function (width, height, mode) {\r\n if (mode === void 0) { mode = __1.SAspectRatioMode.IgnoreAspectRatio; }\r\n var w = 0;\r\n var h = 0;\r\n if (mode == __1.SAspectRatioMode.KeepAspectRatio) {\r\n var s = Math.min(width / this.width, height / this.height);\r\n w = this.width * s;\r\n h = this.height * s;\r\n }\r\n else if (mode == __1.SAspectRatioMode.KeepAspectRatioByExpanding) {\r\n var s = Math.max(width / this.width, height / this.height);\r\n w = this.width * s;\r\n h = this.height * s;\r\n }\r\n else {\r\n w = width;\r\n h = height;\r\n }\r\n return new SSize(w, h);\r\n };\r\n SSize.prototype.transpose = function () {\r\n var size = this.transposed();\r\n this.width = size.width;\r\n this.height = size.height;\r\n };\r\n SSize.prototype.transposed = function () {\r\n return new SSize(this.height, this.width);\r\n };\r\n return SSize;\r\n}());\r\nexports.SSize = SSize;\r\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (e) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (f) { /* empty */ }\n } return false;\n};\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAKKADAAQAAAABAAAAKAAAAAB65masAAAD2ElEQVRYCe2XX2hTdxTHz/ndppRF5ybYgukmbCvM6RTxYXsQ16Lbg0+bzrrn2aU1muLEWGEvlz1MSCtaazvaOnBPdh0UGYpMKI65h4lssEEZ2gdBrGKrAyGONum9Z+fc5nfNdTeJkrubl/wg+f3/nU++5/fnBKCWagrUFCipAJbsDbgznkx9QDZ9A4QXYo3RpGmai+VMqHIDguwny95BRM0EdtfMXGaMAevKrR8uoMJ+QLwrUAy661kgQwU8c7rvFkKkrRDyzmzmu1JKhroHtTs7u1MtlkU/sYyrl9pworlx2R6/PRmqghpw+FTvtGFgq1aSHb5TlIwPD0f0GJ1XRUFt3E9JtbHlk5HOzpweUxUFtXGtJKs0s9RGO+nPaY+SZY+5TOQTh13Jns02UCsSxQipiWwI5MdZizZ7Gu+wkVje1kf0x/QYl3dJvaSLedPW353LdBFASu4vmRBWUojvjgz2XSuqYFf34fUzs5kJAmoJC0rbYdXu1dGyKan7An6WPLx9cREm2LnL85MsdsN5hXAesW4K6oxZtZC19IIV5Q31kdz8/LfspTZZx4GLGG1D/WYmX/cunzh4ZG0uZ/1KBC86AxB+iUSM+NDJ9F/ekZXX5ILm1+Qcb5+PHVuiHMN93Z++oVf3bPTx8XEjm7XHn8DhWGzV8m1hwQHWtxbCCaShSSVf0bTmUz5NHVJml15rUK9+mE73ZKUeZPJTTuBGB4/dfNqOZw8iwSHeC5IIARMDA90LS9XgvvNwYxIsOKs6wUOkzQ9O+l0XJxJH3+BJb0kjw02ODPb+LuUgkx+cBA/F4MS2C5gDa4sLo/AHtxxgYebB44OFypWDE9MuIPs0H1nI/gP3FAXIxxvHbnDWY7c+C5wHUAG95MLY9MgtB1jgG+ErA+G9lVH1Zim3Fpp8ckiI7usOVNCoy0HmvAdtXu/n51nTdTEodVtP5Htwsy5XO3cBo5HoJMM4z5fc7PwpGUiEBe4Cnjhh/s3XyxUxzAquix9I7Q4LopQdF9ABM/BLPZijmFOJQ1+8ouvVyj2AZwZ6r/IT970DQ9CUnV/4cd/nR1+rFpzY9QBKw8tRtZfvQScWY2evzWVz1zv2p/b7/aGR8f938j0IHckjzWBZ8ppscgEQH/JbfREVTnG4P0sGyJVRUUKy597f+s7l9vb2orGlL6BYjZvmC/QgcxII9vKJ/o/SFZEVTGaA9OjQ8Z6CJk+xqOER0/xn9HRfnCOyDezys/z+PfTMDKzCz0KJVFTBp+dIMDt59bf1YNsxm6CRFDu5woSg5vDt1y8V/g+ucMna9JoCgSvwL01BhzbQ6eMUAAAAAElFTkSuQmCC\"","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SMathUtil = void 0;\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nconst polybooljs_1 = require(\"polybooljs\");\r\nclass SMathUtil {\r\n static pointDistance(x1, y1, x2, y2) {\r\n return Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));\r\n }\r\n static getMinDisPoint(p, arr) {\r\n if (!arr.length) {\r\n return null;\r\n }\r\n let minDis = {\r\n MinDis: SMathUtil.pointDistance(p.x, p.y, arr[0].X, -arr[0].Y),\r\n Point: arr[0]\r\n };\r\n for (let i = 1; i < arr.length; i++) {\r\n let ds = SMathUtil.pointDistance(p.x, p.y, arr[i].X, -arr[i].Y);\r\n if (ds < minDis.MinDis) {\r\n minDis.MinDis = ds;\r\n minDis.Point = arr[i];\r\n }\r\n }\r\n return minDis;\r\n }\r\n static pointToLine(p, l) {\r\n let d = {\r\n MinDis: Number.MAX_SAFE_INTEGER,\r\n Line: new draw_1.SLine(),\r\n Point: new draw_1.SPoint()\r\n };\r\n let bgX = Math.max(l.x1, l.x2);\r\n let smX = Math.min(l.x1, l.x2);\r\n if (l.dx == 0) {\r\n let bgY = Math.max(l.y1, l.y2);\r\n let smY = Math.min(l.y1, l.y2);\r\n if (p.y > smY && p.y < bgY) {\r\n d.MinDis = Math.abs(p.x - l.x1);\r\n d.Line = l;\r\n d.Point = new draw_1.SPoint(l.x1, p.y);\r\n }\r\n }\r\n else if (l.dy == 0) {\r\n if (p.x > smX && p.x < bgX) {\r\n d.MinDis = Math.abs(p.y - l.y1);\r\n d.Line = l;\r\n d.Point = new draw_1.SPoint(p.x, l.y1);\r\n }\r\n }\r\n else {\r\n let k1 = (l.y1 - l.y2) / (l.x1 - l.x2);\r\n let b1 = l.y1 - k1 * l.x1;\r\n let k2 = -1 / k1;\r\n let b2 = p.y - k2 * p.x;\r\n let x = (b1 - b2) / (k2 - k1);\r\n let y = k1 * x + b1;\r\n if (x > smX && x < bgX) {\r\n d.MinDis = SMathUtil.pointDistance(p.x, p.y, x, y);\r\n d.Line = l;\r\n d.Point = new draw_1.SPoint(x, y);\r\n }\r\n }\r\n return d;\r\n }\r\n static getMinDisLine(p, arr) {\r\n if (arr.length < 2) {\r\n return null;\r\n }\r\n let PTL = SMathUtil.pointToLine(p, new draw_1.SLine(arr[arr.length - 1].X, -arr[arr.length - 1].Y, arr[0].X, -arr[0].Y));\r\n for (let i = 0; i < arr.length - 1; i++) {\r\n let temp = SMathUtil.pointToLine(p, new draw_1.SLine(arr[i].X, -arr[i].Y, arr[i + 1].X, -arr[i + 1].Y));\r\n if (temp.MinDis < PTL.MinDis) {\r\n PTL = temp;\r\n }\r\n }\r\n return PTL;\r\n }\r\n static rectIntersection(rect1, rect2) {\r\n let minX = rect1.x < rect2.x ? rect1.x : rect2.x;\r\n let minY = rect1.y < rect2.y ? rect1.y : rect2.y;\r\n let maxX = rect1.right > rect2.right ? rect1.right : rect2.right;\r\n let maxY = rect1.bottom > rect2.bottom ? rect2.bottom : rect2.bottom;\r\n return (rect1.width + rect2.width > maxX - minX &&\r\n rect1.height + rect2.height > maxY - minY);\r\n }\r\n static lineIntersection(line1, line2) {\r\n let k1 = line1.dy / line1.dx;\r\n let b1 = line1.y1 - k1 * line1.x1;\r\n let k2 = line2.dy / line2.dx;\r\n let b2 = line2.y1 - k2 * line2.x1;\r\n if (k1 == k2) {\r\n if (b1 == b2) {\r\n return \"repeat\";\r\n }\r\n return null;\r\n }\r\n let intersectionX = (b2 - b1) / (k1 - k2);\r\n let intersectionY = k1 * intersectionX + b1;\r\n let minX = Math.min(line1.x1, line1.x2);\r\n let maxX = Math.min(line2.x1, line2.x2);\r\n if (intersectionX >= minX && intersectionX <= maxX) {\r\n return new draw_1.SPoint(intersectionX, intersectionY);\r\n }\r\n return null;\r\n }\r\n static transferToArray(SP) {\r\n return SP.map((t) => {\r\n return [t.x, t.y];\r\n });\r\n }\r\n static transferToSPoint(arr) {\r\n return arr.map((t) => {\r\n return new draw_1.SPoint(t[0], t[1]);\r\n });\r\n }\r\n static getIntersectInArray(array) {\r\n let outlineList = [];\r\n if (!array.length) {\r\n }\r\n else if (array.length == 1) {\r\n let outline = {\r\n Outer: [],\r\n Inner: []\r\n };\r\n outline.Outer = array[0].map((t) => {\r\n return new draw_1.SPoint(t[0], t[1]);\r\n });\r\n outlineList.push(outline);\r\n }\r\n else {\r\n let poly2 = {\r\n regions: [],\r\n inverted: false\r\n };\r\n poly2.regions.push(array[array.length - 1]);\r\n let indexArr = [array.length - 1];\r\n for (let i = array.length - 2; i > 0; i--) {\r\n let poly1 = {\r\n regions: [],\r\n inverted: false\r\n };\r\n poly1.regions.push(array[i]);\r\n let intersectObj = polybooljs_1.intersect(poly1, poly2);\r\n console.log(intersectObj);\r\n if (!intersectObj.regions.length) {\r\n indexArr.unshift(i);\r\n poly2.regions = [];\r\n poly2.regions.push(array[i]);\r\n }\r\n }\r\n indexArr.unshift(0);\r\n console.log(indexArr);\r\n for (let i = 0; i < indexArr.length - 1; i++) {\r\n let axArr = array.slice(i == 0 ? 0 : indexArr[i] + 1, indexArr[i + 1]);\r\n let outline = {\r\n Outer: [],\r\n Inner: []\r\n };\r\n outline.Outer = array[indexArr[i + 1]].map((t) => {\r\n return new draw_1.SPoint(t[0], t[1]);\r\n });\r\n outline.Inner = axArr.map((t) => {\r\n return t.map((item) => {\r\n return new draw_1.SPoint(item[0], item[1]);\r\n });\r\n });\r\n outlineList.push(outline);\r\n }\r\n }\r\n console.log(outlineList);\r\n return outlineList;\r\n }\r\n static calculateArea(arr) {\r\n let sum = 0;\r\n let n = arr.length;\r\n arr[n] = arr[0];\r\n for (let i = 1; i <= n; i++) {\r\n sum += arr[i].x * arr[i - 1].y - arr[i - 1].x * arr[i].y;\r\n }\r\n return sum / 2;\r\n }\r\n}\r\nexports.SMathUtil = SMathUtil;\r\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n if (!options) options = {};\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) return true;\n var O = { length: -1 };\n\n if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n else O[1] = 1;\n\n method.call(O, argument0, argument1);\n });\n};\n","var $ = require('../internals/export');\n\n// `Number.MAX_SAFE_INTEGER` constant\n// https://tc39.github.io/ecma262/#sec-number.max_safe_integer\n$({ target: 'Number', stat: true }, {\n MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF\n});\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAAFBklEQVRoBe1ZbWhbVRg+5yZpt1qw/tkcTpD5gSj2TxE314kf84MqOFAjbFVoyYfmpmnT/pg/ZFv3U2jSrrlZb1JSEItYHQjOijoVXN1ErT8mjOLHEKxs65/G0X20Sc7xOV3P9d6Y7LYlJq3kwu15z/t1nvc973vuzS0h1auagWoGqhmoZAZoXzzZShnbVUkQq12bK8pJpwDPOfGt1kkl7YCdKJUEUIq1nXlOpiglX+fx1tQU1fIIAN0rQVkCEOC7g36/FK7FMRLTdQRhBLDuS6gaQKXLzNIDhcCMjY3V/DmTPsw5f1XIKaVv37ap4YDb7V4opF9unm0AAjzjfL8EhkD2gyemb0heJUfbHpCZN4MsxDPLy0nbBlBOMKtZyzYAUfP5jgvx8nXKNbftAdGwouZl2cgmLhdAu3VsA1g6bUTDlrxpdV2vu5yhQ5yQtKuh7s1Qa+slO8D5ctsSyjco1TwaT20D+NPY2VewvR3Z2ctTkVjCvVL/FQmgL5Zs4bnsJMA3SsDYhS2YvxcZ1D+NaMN3Sb7dWNYAAJBGteRBSvhxTniDBIe+Av7rF4inOGc/YTcOHBkfr5X8YuOKAsBT2SFAFHN2I350ZKQhGkt8xBg7JH3g7TejEBpyKPRBPOK/N+w53wCd3sy56TMDseEnDH4BYtkBRMbGNk7PpI8hg+8LuoCvoqz+eLKRzS38gOw+K5WQhfPU4Xgs3OEb7Ax4J7tV73aFKkFCyV9SB71xT5bnTuAVelTTRm41+CZiWQHE46O3kIvpz5GV53G/QGZmv+pPJjeb/BQlo1piH7J+Ggp3GkqUTNAa0hR+3fON5KGMWDjo1TbQGrzr03clX4x4/997jS9MRbREgCpWyNaZ2WqJ1rTU7VdzcxOo2Z1SDIcPsXn27ZGh1H2Slz/iiHQhcwOM8XegX2fIKR2sd5HHw37/eYNnIlS17UJPh2+vkzp2o6x+NkSc3MwZ1+Bvj8EDccMA0Ej3z7PsKej9CyhA3ZHJZk5F44ndZoeCjur6lrkM+RI6ISlDvV9RFNraE/SF/H5/RvKLjZ1BzxeubVsbsTMHEcg1Q4/zTQYNomgAA5rejKyfxL1VGgBEAtv7lpwTZIXl+CfRmO6RvOjR4Z18gUxC1ix5GH9TFGVHWPWNmni2ZKilZb476DtMqfIAeuazQgYFn8TRuL4ny1CHOA1MRr34vXxIzAH4F8bJUZDC3gk62TeYuBvZmOa5XB+a1SX0xIWFP6b1Na1dbW2L7+DXuSv72616foXF0/1a8mX0Uwr+jZKkSz+SF78LiQzjkPyRcqqhWR1iGWxhjlOu9qh+3bysKB3U4wdiF8x8SYuzHXdvV8CDDP5zzkv5asdIXE/xHGkT9gKvpYQQWRNhZEiCF7VHFf5iPnhhHA74Tricrofh5HcxN1+U0DQn9Lmw6u0tJfjFNRix9I8lAGSzyQBCyayT8ifDAf+HBi+PCL3WflapVbYD8HdSBMBnqMPZ1BP0jkvefzlaA1haCYCmce/qVP0Tdot3eb0XyeaGRwH8GHZs9CYX3xEOtJ+zsyuVvFATn61VnM+oavsfy12k2+2+irJ7qeTlsgwA+QFc2Oiobw4E9s0uw9aiUgnwAoC1hBzK8dWAt0RS5ol1B3KsWRyrZcawouXwdBcfd43LGgC++kLB+HBqaK1hwlpCaxhoMWhO8W8a8Z+O9XgJ7OsRdxVzNQPVDPyfMvA37Tvcn8EoqWAAAAAASUVORK5CYII=\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./leftToolBar.vue?vue&type=style&index=0&id=29693e14&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./leftToolBar.vue?vue&type=style&index=0&id=29693e14&lang=less&scoped=true&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SGraphItem = void 0;\r\nconst base_1 = require(\"@persagy-web/base\");\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nclass SGraphItem extends base_1.SObject {\r\n constructor(parent = null) {\r\n super();\r\n this._scene = null;\r\n this._parent = null;\r\n this.children = [];\r\n this._zOrder = 0;\r\n this.pos = new draw_1.SPoint(0, 0);\r\n this.scale = 1;\r\n this._inverseScale = 1;\r\n this._rotate = 0;\r\n this._visible = true;\r\n this.moveable = false;\r\n this._isMoving = false;\r\n this._enabled = true;\r\n this.selectable = false;\r\n this._selected = false;\r\n this._resizeable = true;\r\n this.showSelect = true;\r\n this.isTransform = true;\r\n this._mouseDownPos = new draw_1.SPoint();\r\n this.cursor = \"default\";\r\n this._lastGrab = null;\r\n if (parent) {\r\n this.parent = parent;\r\n }\r\n }\r\n get scene() {\r\n if (null != this._parent) {\r\n return this._parent.scene;\r\n }\r\n else {\r\n return this._scene;\r\n }\r\n }\r\n set scene(v) {\r\n this._scene = v;\r\n this.update();\r\n }\r\n get parent() {\r\n return this._parent;\r\n }\r\n set parent(v) {\r\n if (this.parent == v) {\r\n return;\r\n }\r\n if (this._parent != null) {\r\n let i = this._parent.children.indexOf(this);\r\n this._parent.children.splice(i, 1);\r\n }\r\n this._parent = v;\r\n this.update();\r\n if (this._parent != null) {\r\n this._parent.children.push(this);\r\n this._parent.children.sort(SGraphItem.sortItemZOrder);\r\n }\r\n }\r\n get zOrder() {\r\n return this._zOrder;\r\n }\r\n set zOrder(v) {\r\n this._zOrder = v;\r\n if (this._parent != null) {\r\n this._parent.children.sort(SGraphItem.sortItemZOrder);\r\n }\r\n this.update();\r\n }\r\n get x() {\r\n return this.pos.x;\r\n }\r\n set x(v) {\r\n if (this.pos.x == v) {\r\n return;\r\n }\r\n let old = this.pos.x;\r\n this.pos.x = v;\r\n this.update();\r\n }\r\n get y() {\r\n return this.pos.y;\r\n }\r\n set y(v) {\r\n if (this.pos.y == v) {\r\n return;\r\n }\r\n let old = this.pos.y;\r\n this.pos.y = v;\r\n this.update();\r\n }\r\n get inverseScale() {\r\n return this._inverseScale;\r\n }\r\n get rotate() {\r\n return this._rotate;\r\n }\r\n set rotate(v) {\r\n this._rotate = v;\r\n this.update();\r\n }\r\n get visible() {\r\n return this._visible;\r\n }\r\n set visible(v) {\r\n this._visible = v;\r\n this.update();\r\n }\r\n get enabled() {\r\n return this._enabled;\r\n }\r\n set enabled(value) {\r\n if (this.enabled == value) {\r\n return;\r\n }\r\n this._enabled = value;\r\n this.update();\r\n }\r\n get selected() {\r\n return this._selected && this.selectable && this.enabled;\r\n }\r\n set selected(value) {\r\n if (this.selected == value) {\r\n return;\r\n }\r\n this._selected = value;\r\n this.update();\r\n }\r\n onPaint(painter, rect) {\r\n this.onDraw(painter);\r\n for (let item of this.children) {\r\n if (!item.visible) {\r\n continue;\r\n }\r\n painter.save();\r\n try {\r\n painter.translate(item.x, item.y);\r\n painter.scale(item.scale, item.scale);\r\n painter.rotate(item.rotate);\r\n if (!item.isTransform) {\r\n let matrix = painter.worldTransform;\r\n item._inverseScale = 1.0 / matrix.a;\r\n painter.scale(item._inverseScale, item._inverseScale);\r\n }\r\n item.onPaint(painter, rect);\r\n }\r\n catch (e) {\r\n console.log(e);\r\n }\r\n painter.restore();\r\n }\r\n }\r\n onDraw(painter) { }\r\n hide() {\r\n this.visible = false;\r\n }\r\n show() {\r\n this.visible = true;\r\n }\r\n update() {\r\n if (null != this.scene) {\r\n const view = this.scene.view;\r\n if (null != view) {\r\n view.update();\r\n }\r\n }\r\n }\r\n boundingRect() {\r\n return new draw_1.SRect(0, 0, 10, 10);\r\n }\r\n moveTo(x, y) {\r\n this.x = x;\r\n this.y = y;\r\n }\r\n contains(x, y) {\r\n return this.boundingRect().contains(x, y);\r\n }\r\n itemPath() {\r\n if (this.parent != null) {\r\n let list = this.parent.itemPath();\r\n list.push(this);\r\n return list;\r\n }\r\n return [this];\r\n }\r\n mapFromScene(x, y) {\r\n const m = this.scene2itemMattrix();\r\n return new draw_1.SPoint(x, y).matrixTransform(m.inversed());\r\n }\r\n mapToScene(x, y) {\r\n if (this.parent == null) {\r\n return new draw_1.SPoint(x, y);\r\n }\r\n const m = this.scene2itemMattrix();\r\n return new draw_1.SPoint(x, y).matrixTransform(m);\r\n }\r\n scene2itemMattrix() {\r\n let m = new base_1.SMatrix();\r\n let list = this.itemPath();\r\n for (let item of list) {\r\n m.translate(item.x, item.y);\r\n m.scale(item.scale, item.scale);\r\n m.rotate(item.rotate);\r\n if (!item.isTransform) {\r\n m.scale(item._inverseScale, item._inverseScale);\r\n }\r\n }\r\n return m;\r\n }\r\n onClick(event) {\r\n for (let i = this.children.length - 1; i >= 0; i--) {\r\n let item = this.children[i];\r\n if (!this.acceptEvent() || !item.visible) {\r\n continue;\r\n }\r\n let ce = SGraphItem.toChildMouseEvent(item, event);\r\n if (item.contains(ce.x, ce.y) && item.onClick(ce)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n onDoubleClick(event) {\r\n for (let i = this.children.length - 1; i >= 0; i--) {\r\n let item = this.children[i];\r\n if (!this.acceptEvent() || !item.visible) {\r\n continue;\r\n }\r\n let ce = SGraphItem.toChildMouseEvent(item, event);\r\n if (item.contains(ce.x, ce.y) && item.onDoubleClick(ce)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n onMouseDown(event) {\r\n for (let i = this.children.length - 1; i >= 0; i--) {\r\n try {\r\n let item = this.children[i];\r\n if (!this.acceptEvent() || !item.visible) {\r\n continue;\r\n }\r\n let ce = SGraphItem.toChildMouseEvent(item, event);\r\n if (item.contains(ce.x, ce.y) && item.onMouseDown(ce)) {\r\n return true;\r\n }\r\n }\r\n catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n if (this.moveable) {\r\n this._mouseDownPos = new draw_1.SPoint(event.x, event.y);\r\n this._isMoving = true;\r\n if (this.scene) {\r\n this._lastGrab = this.scene.grabItem;\r\n }\r\n this.grabItem(this);\r\n return true;\r\n }\r\n return false;\r\n }\r\n onMouseMove(event) {\r\n for (let i = this.children.length - 1; i >= 0; i--) {\r\n let item = this.children[i];\r\n if (!this.acceptEvent() || !item.visible) {\r\n continue;\r\n }\r\n let ce = SGraphItem.toChildMouseEvent(item, event);\r\n if (item.contains(ce.x, ce.y) && item.onMouseMove(ce)) {\r\n return true;\r\n }\r\n }\r\n if (this.scene && this.scene.view) {\r\n this.scene.view.cursor = this.cursor;\r\n }\r\n if (event.buttons & base_1.SMouseButton.LeftButton &&\r\n this.moveable &&\r\n this._isMoving) {\r\n let old = new draw_1.SPoint(this.pos.x, this.pos.y);\r\n const mp = this.toParentChange(event.x - this._mouseDownPos.x, event.y - this._mouseDownPos.y);\r\n this.moveTo(this.pos.x + mp.x, this.pos.y + mp.y);\r\n this.$emit(\"onMove\", old, this.pos);\r\n }\r\n const scene = this.scene;\r\n if (null != scene) {\r\n if (scene.hoverItem == null || scene.hoverItem !== this) {\r\n if (scene.hoverItem != null) {\r\n scene.hoverItem.onMouseLeave(event);\r\n }\r\n this.onMouseEnter(event);\r\n scene.hoverItem = this;\r\n }\r\n }\r\n return true;\r\n }\r\n onMouseUp(event) {\r\n for (let i = this.children.length - 1; i >= 0; i--) {\r\n let item = this.children[i];\r\n if (!this.acceptEvent() || !item.visible) {\r\n continue;\r\n }\r\n let ce = SGraphItem.toChildMouseEvent(item, event);\r\n if (item.contains(ce.x, ce.y) && item.onMouseUp(ce)) {\r\n return true;\r\n }\r\n }\r\n let select = false;\r\n if (this.selectable) {\r\n select = this.clickSelect(event);\r\n }\r\n this._isMoving = false;\r\n this.releaseItem();\r\n if (this.scene) {\r\n this.scene.grabItem = this._lastGrab;\r\n }\r\n return select;\r\n }\r\n onMouseEnter(event) {\r\n return false;\r\n }\r\n onMouseLeave(event) {\r\n return false;\r\n }\r\n onContextMenu(event) {\r\n for (let i = this.children.length - 1; i >= 0; i--) {\r\n let item = this.children[i];\r\n if (!this.acceptEvent() || !item.visible) {\r\n continue;\r\n }\r\n let ce = SGraphItem.toChildMouseEvent(item, event);\r\n if (item.contains(ce.x, ce.y) && item.onContextMenu(ce)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n onKeyDown(event) { }\r\n onKeyPress(event) { }\r\n onKeyUp(event) { }\r\n cancelOperate() { }\r\n toData() {\r\n return null;\r\n }\r\n moveToOrigin(x, y) {\r\n if (this.children && this.children.length) {\r\n this.children.forEach(it => {\r\n it.moveToOrigin(x, y);\r\n });\r\n }\r\n }\r\n static sortItemZOrder(a, b) {\r\n return a.zOrder - b.zOrder;\r\n }\r\n static toChildMouseEvent(child, event) {\r\n let ce = new base_1.SMouseEvent(event);\r\n ce.matrix.translate(child.x, child.y);\r\n ce.matrix.scale(child.scale, child.scale);\r\n ce.matrix.rotate(0, 0, child.rotate);\r\n if (!child.isTransform) {\r\n ce.matrix.scale(child._inverseScale, child._inverseScale);\r\n }\r\n const mp = new draw_1.SPoint(event.offsetX, event.offsetY).matrixTransform(ce.matrix.inversed());\r\n ce.x = mp.x;\r\n ce.y = mp.y;\r\n return ce;\r\n }\r\n grabItem(item) {\r\n if (this.scene != null) {\r\n this.scene.grabItem = item;\r\n }\r\n }\r\n releaseItem() {\r\n if (this.scene != null) {\r\n this.scene.grabItem = null;\r\n }\r\n }\r\n toParentChange(x, y) {\r\n const m = new base_1.SMatrix();\r\n m.scale(this.scale, this.scale);\r\n if (!this.isTransform) {\r\n m.scale(this._inverseScale, this._inverseScale);\r\n }\r\n m.rotate(this.rotate);\r\n const mp = new draw_1.SPoint(x, y).matrixTransform(m);\r\n return new draw_1.SPoint(mp.x, mp.y);\r\n }\r\n acceptEvent() {\r\n return this.visible && this.enabled;\r\n }\r\n clickSelect(event) {\r\n if (!this.selectable) {\r\n return false;\r\n }\r\n const scene = this.scene;\r\n if (scene == null) {\r\n return false;\r\n }\r\n if (event.ctrlKey) {\r\n scene.selectContainer.toggleItem(this);\r\n }\r\n else {\r\n scene.selectContainer.setItem(this);\r\n }\r\n return true;\r\n }\r\n}\r\nexports.SGraphItem = SGraphItem;\r\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.github.io/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SLine = void 0;\r\nvar SPoint_1 = require(\"./SPoint\");\r\nvar SLine = (function () {\r\n function SLine(x1, y1, x2, y2) {\r\n if (x1 == undefined) {\r\n this.p1 = new SPoint_1.SPoint(0, 0);\r\n this.p2 = new SPoint_1.SPoint(0, 0);\r\n }\r\n else if (x1 instanceof SLine) {\r\n this.p1 = new SPoint_1.SPoint(x1.p1.x, x1.p1.y);\r\n this.p2 = new SPoint_1.SPoint(x1.p2.x, x1.p2.y);\r\n }\r\n else if (x1 instanceof SPoint_1.SPoint && y1 instanceof SPoint_1.SPoint) {\r\n this.p1 = new SPoint_1.SPoint(x1.x, x1.y);\r\n this.p2 = new SPoint_1.SPoint(y1.x, y1.y);\r\n }\r\n else {\r\n this.p1 = new SPoint_1.SPoint(x1, y1);\r\n this.p2 = new SPoint_1.SPoint(x2, y2);\r\n }\r\n }\r\n Object.defineProperty(SLine.prototype, \"x1\", {\r\n get: function () {\r\n return this.p1.x;\r\n },\r\n set: function (value) {\r\n this.p1.x = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SLine.prototype, \"y1\", {\r\n get: function () {\r\n return this.p1.y;\r\n },\r\n set: function (value) {\r\n this.p1.y = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SLine.prototype, \"x2\", {\r\n get: function () {\r\n return this.p2.x;\r\n },\r\n set: function (v) {\r\n this.p2.x = v;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SLine.prototype, \"y2\", {\r\n get: function () {\r\n return this.p2.y;\r\n },\r\n set: function (value) {\r\n this.p2.y = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SLine.prototype, \"dx\", {\r\n get: function () {\r\n return this.p2.x - this.p1.x;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SLine.prototype, \"dy\", {\r\n get: function () {\r\n return this.p2.y - this.p1.y;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SLine.prototype.isNull = function () {\r\n return (Math.abs(this.p1.x - this.p2.x) + Math.abs(this.p1.y - this.p2.y) <\r\n 0.000001);\r\n };\r\n SLine.prototype.center = function () {\r\n return new SPoint_1.SPoint((this.p1.x + this.p2.x) / 2, (this.p1.y + this.p2.y) / 2);\r\n };\r\n SLine.prototype.translate = function (dx, dy) {\r\n this.p1.x += dx;\r\n this.p2.x += dx;\r\n this.p1.y += dy;\r\n this.p2.y += dy;\r\n };\r\n SLine.prototype.translated = function (dx, dy) {\r\n return new SLine(this.p1.x + dx, this.p1.y + dy, this.p2.x + dx, this.p2.y + dy);\r\n };\r\n return SLine;\r\n}());\r\nexports.SLine = SLine;\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAAoCAYAAABnyQNuAAACU0lEQVRYR+1ZXXLSUBT+vptOX8UVSFdgugO6AruDMoIzJU8I9rn0WYP4Ap0xjHEFsgNhBeIKZAfFRx2S00lCOhETSMJPdSZ5vefc8+XLOd8994TI+dQv31RAuRaKTrC0bhuBzCEcK6qbj/2305whwTyOL41WVYGf8vjC5Zl1+26cxzcX2JrRugvZFJHvBObrmUWJ5HPPRkRmw0H35CBg/c+v5GsQGJ+HA7OaJnDdaI0AvvBsF65zYt/2Zmn8ojaZmY2CBeTG6nc7aYLWjVYH4LVvmzMVHsDWGu0LUsqbAgtQJhiwKRiDki7/hBUQlcBNbAKbmXXVJJrfPtitCmbT2225TqjTUEF8sLVG+5zEly333Yv7X2C9KK+MK11cCfSSrg7yfVhEFNp7QbLcVChVEhdBaslriPK1mIrzqC7HFljeIsr7QmmLrwCbleGC2ayMpbU/KLO1Rtv2qlmAD8O+2VwFGZHGqdU3T1fXDwq2brRlKTsTa9D1T6noEwUT1c3Q5p8FG9cXFGCTCiZLGhTMhg12mp61YDYm53bSGxTMFswCKNKgSIP/LQ1qRntG4BlENnZdi2Pnqd3r/TFuOmgj49+M4ZwT2ihuSlhtNktHv1VThNPhwBw9aj+b9kaQ3AilGy3t5AQrwO5Luh6V2epls3yktB/BvQpja2CebQsoyd8rPu2X+kbSn2BafTNxDJu48CBH+0IZt2+C9IWmiWCXPzhGIJ4cBK/g50Icfd1EfO3k20sHjVoHED38J7Bz4CITIafOsdNZPSxWY2Ue0+8cbIYN7wEBu8dHwhnWhAAAAABJRU5ErkJggg==\"","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\nvar $slice = [].slice;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);\n}, FORCED);\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Transparency = void 0;\r\nexports.Transparency = [\r\n \"00\",\r\n \"03\",\r\n \"05\",\r\n \"08\",\r\n \"0A\",\r\n \"0D\",\r\n \"0F\",\r\n \"12\",\r\n \"14\",\r\n \"17\",\r\n \"1A\",\r\n \"1C\",\r\n \"1F\",\r\n \"21\",\r\n \"24\",\r\n \"26\",\r\n \"29\",\r\n \"2B\",\r\n \"2E\",\r\n \"30\",\r\n \"33\",\r\n \"36\",\r\n \"38\",\r\n \"3B\",\r\n \"3D\",\r\n \"40\",\r\n \"42\",\r\n \"45\",\r\n \"47\",\r\n \"4A\",\r\n \"4D\",\r\n \"4F\",\r\n \"52\",\r\n \"54\",\r\n \"57\",\r\n \"59\",\r\n \"5C\",\r\n \"5E\",\r\n \"61\",\r\n \"63\",\r\n \"66\",\r\n \"69\",\r\n \"6B\",\r\n \"6E\",\r\n \"70\",\r\n \"73\",\r\n \"75\",\r\n \"78\",\r\n \"7A\",\r\n \"7D\",\r\n \"80\",\r\n \"82\",\r\n \"85\",\r\n \"87\",\r\n \"8A\",\r\n \"8C\",\r\n \"8F\",\r\n \"91\",\r\n \"94\",\r\n \"96\",\r\n \"99\",\r\n \"9C\",\r\n \"9E\",\r\n \"A1\",\r\n \"A3\",\r\n \"A6\",\r\n \"A8\",\r\n \"AB\",\r\n \"AD\",\r\n \"B0\",\r\n \"B3\",\r\n \"B5\",\r\n \"B8\",\r\n \"BA\",\r\n \"BD\",\r\n \"BF\",\r\n \"C2\",\r\n \"C4\",\r\n \"C7\",\r\n \"C9\",\r\n \"CC\",\r\n \"CF\",\r\n \"D1\",\r\n \"D4\",\r\n \"D6\",\r\n \"D9\",\r\n \"DB\",\r\n \"DE\",\r\n \"E0\",\r\n \"E3\",\r\n \"E6\",\r\n \"E8\",\r\n \"EB\",\r\n \"ED\",\r\n \"F0\",\r\n \"F2\",\r\n \"F5\",\r\n \"F7\",\r\n \"FA\",\r\n \"FC\",\r\n \"FF\"\r\n];\r\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n if (\n (utils.isBlob(requestData) || utils.isFile(requestData)) &&\n requestData.type\n ) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = unescape(encodeURIComponent(config.auth.password)) || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SRectSelectItem = void 0;\r\nconst graph_1 = require(\"@persagy-web/graph\");\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nconst __1 = require(\"..\");\r\nclass SRectSelectItem extends graph_1.SGraphItem {\r\n constructor(parent, point) {\r\n super(parent);\r\n this.startPoint = new draw_1.SPoint();\r\n this.endPoint = new draw_1.SPoint();\r\n this.startPoint = point;\r\n this.endPoint = new draw_1.SPoint(point.x, point.y);\r\n this.update();\r\n this.zOrder = __1.ItemOrder.rectSelectOrder;\r\n }\r\n boundingRect() {\r\n return new draw_1.SRect(this.startPoint, this.endPoint);\r\n }\r\n onMouseMove(event) {\r\n this.endPoint.x = event.x;\r\n this.endPoint.y = event.y;\r\n this.update();\r\n return true;\r\n }\r\n onDraw(painter) {\r\n painter.pen.lineWidth = painter.toPx(2);\r\n painter.pen.color = __1.ItemColor.rectSelectOutColor;\r\n painter.brush.color = __1.ItemColor.rectSelectInColor;\r\n painter.drawRect(this.startPoint, this.endPoint);\r\n }\r\n}\r\nexports.SRectSelectItem = SRectSelectItem;\r\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6)\n};\n","// (c) Copyright 2016, Sean Connelly (@voidqk), http://syntheti.cc\n// MIT License\n// Project Home: https://github.com/voidqk/polybooljs\n\n//\n// filter a list of segments based on boolean operations\n//\n\nfunction select(segments, selection, buildLog){\n\tvar result = [];\n\tsegments.forEach(function(seg){\n\t\tvar index =\n\t\t\t(seg.myFill.above ? 8 : 0) +\n\t\t\t(seg.myFill.below ? 4 : 0) +\n\t\t\t((seg.otherFill && seg.otherFill.above) ? 2 : 0) +\n\t\t\t((seg.otherFill && seg.otherFill.below) ? 1 : 0);\n\t\tif (selection[index] !== 0){\n\t\t\t// copy the segment to the results, while also calculating the fill status\n\t\t\tresult.push({\n\t\t\t\tid: buildLog ? buildLog.segmentId() : -1,\n\t\t\t\tstart: seg.start,\n\t\t\t\tend: seg.end,\n\t\t\t\tmyFill: {\n\t\t\t\t\tabove: selection[index] === 1, // 1 if filled above\n\t\t\t\t\tbelow: selection[index] === 2 // 2 if filled below\n\t\t\t\t},\n\t\t\t\totherFill: null\n\t\t\t});\n\t\t}\n\t});\n\n\tif (buildLog)\n\t\tbuildLog.selected(result);\n\n\treturn result;\n}\n\nvar SegmentSelector = {\n\tunion: function(segments, buildLog){ // primary | secondary\n\t\t// above1 below1 above2 below2 Keep? Value\n\t\t// 0 0 0 0 => no 0\n\t\t// 0 0 0 1 => yes filled below 2\n\t\t// 0 0 1 0 => yes filled above 1\n\t\t// 0 0 1 1 => no 0\n\t\t// 0 1 0 0 => yes filled below 2\n\t\t// 0 1 0 1 => yes filled below 2\n\t\t// 0 1 1 0 => no 0\n\t\t// 0 1 1 1 => no 0\n\t\t// 1 0 0 0 => yes filled above 1\n\t\t// 1 0 0 1 => no 0\n\t\t// 1 0 1 0 => yes filled above 1\n\t\t// 1 0 1 1 => no 0\n\t\t// 1 1 0 0 => no 0\n\t\t// 1 1 0 1 => no 0\n\t\t// 1 1 1 0 => no 0\n\t\t// 1 1 1 1 => no 0\n\t\treturn select(segments, [\n\t\t\t0, 2, 1, 0,\n\t\t\t2, 2, 0, 0,\n\t\t\t1, 0, 1, 0,\n\t\t\t0, 0, 0, 0\n\t\t], buildLog);\n\t},\n\tintersect: function(segments, buildLog){ // primary & secondary\n\t\t// above1 below1 above2 below2 Keep? Value\n\t\t// 0 0 0 0 => no 0\n\t\t// 0 0 0 1 => no 0\n\t\t// 0 0 1 0 => no 0\n\t\t// 0 0 1 1 => no 0\n\t\t// 0 1 0 0 => no 0\n\t\t// 0 1 0 1 => yes filled below 2\n\t\t// 0 1 1 0 => no 0\n\t\t// 0 1 1 1 => yes filled below 2\n\t\t// 1 0 0 0 => no 0\n\t\t// 1 0 0 1 => no 0\n\t\t// 1 0 1 0 => yes filled above 1\n\t\t// 1 0 1 1 => yes filled above 1\n\t\t// 1 1 0 0 => no 0\n\t\t// 1 1 0 1 => yes filled below 2\n\t\t// 1 1 1 0 => yes filled above 1\n\t\t// 1 1 1 1 => no 0\n\t\treturn select(segments, [\n\t\t\t0, 0, 0, 0,\n\t\t\t0, 2, 0, 2,\n\t\t\t0, 0, 1, 1,\n\t\t\t0, 2, 1, 0\n\t\t], buildLog);\n\t},\n\tdifference: function(segments, buildLog){ // primary - secondary\n\t\t// above1 below1 above2 below2 Keep? Value\n\t\t// 0 0 0 0 => no 0\n\t\t// 0 0 0 1 => no 0\n\t\t// 0 0 1 0 => no 0\n\t\t// 0 0 1 1 => no 0\n\t\t// 0 1 0 0 => yes filled below 2\n\t\t// 0 1 0 1 => no 0\n\t\t// 0 1 1 0 => yes filled below 2\n\t\t// 0 1 1 1 => no 0\n\t\t// 1 0 0 0 => yes filled above 1\n\t\t// 1 0 0 1 => yes filled above 1\n\t\t// 1 0 1 0 => no 0\n\t\t// 1 0 1 1 => no 0\n\t\t// 1 1 0 0 => no 0\n\t\t// 1 1 0 1 => yes filled above 1\n\t\t// 1 1 1 0 => yes filled below 2\n\t\t// 1 1 1 1 => no 0\n\t\treturn select(segments, [\n\t\t\t0, 0, 0, 0,\n\t\t\t2, 0, 2, 0,\n\t\t\t1, 1, 0, 0,\n\t\t\t0, 1, 2, 0\n\t\t], buildLog);\n\t},\n\tdifferenceRev: function(segments, buildLog){ // secondary - primary\n\t\t// above1 below1 above2 below2 Keep? Value\n\t\t// 0 0 0 0 => no 0\n\t\t// 0 0 0 1 => yes filled below 2\n\t\t// 0 0 1 0 => yes filled above 1\n\t\t// 0 0 1 1 => no 0\n\t\t// 0 1 0 0 => no 0\n\t\t// 0 1 0 1 => no 0\n\t\t// 0 1 1 0 => yes filled above 1\n\t\t// 0 1 1 1 => yes filled above 1\n\t\t// 1 0 0 0 => no 0\n\t\t// 1 0 0 1 => yes filled below 2\n\t\t// 1 0 1 0 => no 0\n\t\t// 1 0 1 1 => yes filled below 2\n\t\t// 1 1 0 0 => no 0\n\t\t// 1 1 0 1 => no 0\n\t\t// 1 1 1 0 => no 0\n\t\t// 1 1 1 1 => no 0\n\t\treturn select(segments, [\n\t\t\t0, 2, 1, 0,\n\t\t\t0, 0, 1, 1,\n\t\t\t0, 2, 0, 2,\n\t\t\t0, 0, 0, 0\n\t\t], buildLog);\n\t},\n\txor: function(segments, buildLog){ // primary ^ secondary\n\t\t// above1 below1 above2 below2 Keep? Value\n\t\t// 0 0 0 0 => no 0\n\t\t// 0 0 0 1 => yes filled below 2\n\t\t// 0 0 1 0 => yes filled above 1\n\t\t// 0 0 1 1 => no 0\n\t\t// 0 1 0 0 => yes filled below 2\n\t\t// 0 1 0 1 => no 0\n\t\t// 0 1 1 0 => no 0\n\t\t// 0 1 1 1 => yes filled above 1\n\t\t// 1 0 0 0 => yes filled above 1\n\t\t// 1 0 0 1 => no 0\n\t\t// 1 0 1 0 => no 0\n\t\t// 1 0 1 1 => yes filled below 2\n\t\t// 1 1 0 0 => no 0\n\t\t// 1 1 0 1 => yes filled above 1\n\t\t// 1 1 1 0 => yes filled below 2\n\t\t// 1 1 1 1 => no 0\n\t\treturn select(segments, [\n\t\t\t0, 2, 1, 0,\n\t\t\t2, 0, 0, 1,\n\t\t\t1, 0, 0, 2,\n\t\t\t0, 1, 2, 0\n\t\t], buildLog);\n\t}\n};\n\nmodule.exports = SegmentSelector;\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rightPropertyBar.vue?vue&type=style&index=0&id=b89b7e66&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rightPropertyBar.vue?vue&type=style&index=0&id=b89b7e66&lang=less&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./topToolBar.vue?vue&type=style&index=0&lang=less&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./topToolBar.vue?vue&type=style&index=0&lang=less&\"","module.exports = require('./lib/axios');","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./baseLinePro.vue?vue&type=style&index=0&id=12c7c60f&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./baseLinePro.vue?vue&type=style&index=0&id=12c7c60f&lang=less&scoped=true&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABFklEQVQ4T92TsUoDURBFz93ETgR/QgQLQWysxV7BxNZCsotmA2bzGcYia5H4CUbB3srKThARgljYprURUXdkzRryJGq2daop7jvMuzNXAM1WexFpLu1/K0GvHvq3oxplj68B7y8A8A7aisLK2ZdWzbhTAk6i0Hf6cbBm3DHg2ZOt7leDq1STHyAeSZhWobBS39t5yA2Q2Ma0CzZbtJfl3ACgnBSTS+/N6xtsOICDVntTUrderXiS0v8Oy8x0eHScmFmpUQtOMz/KLiDuzAvuwC5AT66RNgNaM1hohH5vLODzJgZbWQemvm3iFTiPQr+b6dIJ3QkmuIOh5McJJoX8K8AgiZOGadSiBLMl5YmzY7DZfVQLbj4AFd2vM7CMQloAAAAASUVORK5CYII=\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SLineItem = void 0;\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nconst base_1 = require(\"@persagy-web/base\");\r\nconst SMathUtil_1 = require(\"../utils/SMathUtil\");\r\nconst __1 = require(\"..\");\r\nconst graph_1 = require(\"@persagy-web/graph\");\r\nclass SLineItem extends graph_1.SGraphItem {\r\n constructor(parent, l) {\r\n super(parent);\r\n this.minX = Number.MAX_SAFE_INTEGER;\r\n this.maxX = Number.MIN_SAFE_INTEGER;\r\n this.minY = Number.MAX_SAFE_INTEGER;\r\n this.maxY = Number.MIN_SAFE_INTEGER;\r\n this._line = [];\r\n this._status = __1.SItemStatus.Normal;\r\n this._strokeColor = draw_1.SColor.Black;\r\n this._lineStyle = graph_1.SLineStyle.Solid;\r\n this._fillColor = draw_1.SColor.White;\r\n this._activeFillColor = new draw_1.SColor(\"#2196f3\");\r\n this._lineWidth = 1;\r\n this.dis = 5;\r\n this.sceneDis = 5;\r\n this.curIndex = -1;\r\n this.curPoint = null;\r\n this.undoStack = new base_1.SUndoStack();\r\n if (l) {\r\n if (l instanceof draw_1.SPoint) {\r\n this.line.push(l);\r\n }\r\n else {\r\n this.line = l;\r\n }\r\n }\r\n else {\r\n this.line = [];\r\n }\r\n }\r\n get line() {\r\n return this._line;\r\n }\r\n set line(arr) {\r\n this._line = arr;\r\n this.update();\r\n }\r\n get status() {\r\n return this._status;\r\n }\r\n set status(v) {\r\n this._status = v;\r\n this.undoStack.clear();\r\n this.update();\r\n }\r\n get strokeColor() {\r\n return this._strokeColor;\r\n }\r\n set strokeColor(v) {\r\n this._strokeColor = v;\r\n this.update();\r\n }\r\n get lineStyle() {\r\n return this._lineStyle;\r\n }\r\n set lineStyle(v) {\r\n this._lineStyle = v;\r\n this.update();\r\n }\r\n get fillColor() {\r\n return this._fillColor;\r\n }\r\n set fillColor(v) {\r\n this._fillColor = v;\r\n this.update();\r\n }\r\n get activeFillColor() {\r\n return this._activeFillColor;\r\n }\r\n set activeFillColor(v) {\r\n this._activeFillColor = v;\r\n this.update();\r\n }\r\n get lineWidth() {\r\n return this._lineWidth;\r\n }\r\n set lineWidth(v) {\r\n this._lineWidth = v;\r\n this.update();\r\n }\r\n addPoint(p) {\r\n if (this.line.length < 2) {\r\n this.line.push(p);\r\n this.recordAction(graph_1.SGraphPointListInsert, [this.line, p]);\r\n }\r\n else {\r\n this.line[1] = p;\r\n this.recordAction(graph_1.SGraphPointListInsert, [this.line, p, 1]);\r\n this.status = __1.SItemStatus.Normal;\r\n this.releaseItem();\r\n this.$emit(\"finishCreated\");\r\n }\r\n this.update();\r\n }\r\n onDoubleClick(event) {\r\n if (this.status == __1.SItemStatus.Normal) {\r\n this.status = __1.SItemStatus.Edit;\r\n this.grabItem(this);\r\n }\r\n else if (this.status == __1.SItemStatus.Edit) {\r\n this.status = __1.SItemStatus.Normal;\r\n this.releaseItem();\r\n }\r\n this.update();\r\n return true;\r\n }\r\n onMouseDown(event) {\r\n this.curIndex = -1;\r\n this.curPoint = null;\r\n if (event.shiftKey) {\r\n event = this.compare(event);\r\n }\r\n if (event.buttons == base_1.SMouseButton.LeftButton) {\r\n if (this.status == __1.SItemStatus.Normal) {\r\n return super.onMouseDown(event);\r\n }\r\n else if (this.status == __1.SItemStatus.Edit) {\r\n this.findNearestPoint(new draw_1.SPoint(event.x, event.y));\r\n }\r\n else if (this.status == __1.SItemStatus.Create) {\r\n this.addPoint(new draw_1.SPoint(event.x, event.y));\r\n return true;\r\n }\r\n }\r\n return true;\r\n }\r\n onMouseUp(event) {\r\n if (this.status == __1.SItemStatus.Edit) {\r\n if (this.curIndex > -1) {\r\n const p = new draw_1.SPoint(this.line[this.curIndex].x, this.line[this.curIndex].y);\r\n this.recordAction(graph_1.SGraphPointListUpdate, [\r\n this.line,\r\n this.curPoint,\r\n p,\r\n this.curIndex\r\n ]);\r\n }\r\n }\r\n else if (this.status == __1.SItemStatus.Normal) {\r\n this.moveToOrigin(this.x, this.y);\r\n return super.onMouseUp(event);\r\n }\r\n this.curIndex = -1;\r\n this.curPoint = null;\r\n return true;\r\n }\r\n onMouseMove(event) {\r\n if (event.shiftKey) {\r\n event = this.compare(event);\r\n }\r\n if (this.status == __1.SItemStatus.Create) {\r\n if (this.line[0] instanceof draw_1.SPoint) {\r\n this.line[1] = new draw_1.SPoint(event.x, event.y);\r\n }\r\n }\r\n else if (this.status == __1.SItemStatus.Edit) {\r\n if (-1 != this.curIndex) {\r\n this.line[this.curIndex].x = event.x;\r\n this.line[this.curIndex].y = event.y;\r\n }\r\n }\r\n else {\r\n return super.onMouseMove(event);\r\n }\r\n this.update();\r\n return true;\r\n }\r\n findNearestPoint(p) {\r\n let len = this.sceneDis;\r\n for (let i = 0; i < this.line.length; i++) {\r\n let dis = SMathUtil_1.SMathUtil.pointDistance(p.x, p.y, this.line[i].x, this.line[i].y);\r\n if (dis < len) {\r\n len = dis;\r\n this.curIndex = i;\r\n this.curPoint = new draw_1.SPoint(this.line[this.curIndex]);\r\n }\r\n }\r\n }\r\n recordAction(SGraphCommand, any) {\r\n const command = new SGraphCommand(this.scene, this, ...any);\r\n this.undoStack.push(command);\r\n }\r\n moveToOrigin(x, y) {\r\n super.moveToOrigin(x, y);\r\n this.line = this.line.map(t => {\r\n t.x = t.x + x;\r\n t.y = t.y + y;\r\n return t;\r\n });\r\n this.x = 0;\r\n this.y = 0;\r\n }\r\n compare(event) {\r\n if (this.line.length) {\r\n let last = new draw_1.SPoint(event.x, event.y);\r\n if (this.status == __1.SItemStatus.Create) {\r\n last = this.line[0];\r\n }\r\n else if (this.status == __1.SItemStatus.Edit) {\r\n if (this.curIndex == 1) {\r\n last = this.line[0];\r\n }\r\n else if (this.curIndex == 0) {\r\n last = this.line[1];\r\n }\r\n }\r\n const dx = Math.abs(event.x - last.x);\r\n const dy = Math.abs(event.y - last.y);\r\n if (dy > dx) {\r\n event.x = last.x;\r\n }\r\n else {\r\n event.y = last.y;\r\n }\r\n }\r\n return event;\r\n }\r\n contains(x, y) {\r\n if (this.line.length == 2) {\r\n let p = new draw_1.SPoint(x, y);\r\n if (SMathUtil_1.SMathUtil.pointToLine(p, new draw_1.SLine(this.line[0], this.line[1]))\r\n .MinDis < this.dis) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n undo() {\r\n if (this.status != __1.SItemStatus.Normal) {\r\n this.undoStack.undo();\r\n }\r\n }\r\n redo() {\r\n if (this.status != __1.SItemStatus.Normal) {\r\n this.undoStack.redo();\r\n }\r\n }\r\n cancelOperate() {\r\n if (this.status == __1.SItemStatus.Create) {\r\n this.parent = null;\r\n this.releaseItem();\r\n }\r\n else if (this.status == __1.SItemStatus.Edit) {\r\n this.status = __1.SItemStatus.Normal;\r\n this.releaseItem();\r\n }\r\n }\r\n boundingRect() {\r\n if (this.line.length) {\r\n this.minX = this.line[0].x;\r\n this.maxX = this.line[0].x;\r\n this.minY = this.line[0].y;\r\n this.maxY = this.line[0].y;\r\n this.line.forEach(it => {\r\n let x = it.x, y = it.y;\r\n if (x < this.minX) {\r\n this.minX = x;\r\n }\r\n if (y < this.minY) {\r\n this.minY = y;\r\n }\r\n if (x > this.maxX) {\r\n this.maxX = x;\r\n }\r\n if (y > this.maxY) {\r\n this.maxY = y;\r\n }\r\n });\r\n }\r\n return new draw_1.SRect(this.minX, this.minY, this.maxX - this.minX, this.maxY - this.minY);\r\n }\r\n onDraw(painter) {\r\n this.sceneDis = painter.toPx(this.dis);\r\n painter.pen.lineWidth = painter.toPx(this.lineWidth);\r\n painter.pen.color = this.strokeColor;\r\n if (this.line.length == 2) {\r\n painter.pen.color = new draw_1.SColor(this.strokeColor);\r\n if (this.lineStyle == graph_1.SLineStyle.Dashed) {\r\n painter.pen.lineDash = [\r\n painter.toPx(this.lineWidth * 3),\r\n painter.toPx(this.lineWidth * 7)\r\n ];\r\n }\r\n else if (this.lineStyle == graph_1.SLineStyle.Dotted) {\r\n painter.pen.lineDash = [\r\n painter.toPx(this.lineWidth),\r\n painter.toPx(this.lineWidth)\r\n ];\r\n }\r\n if (this.selected && this.status == __1.SItemStatus.Normal) {\r\n painter.pen.lineWidth = painter.toPx(this.lineWidth * 2);\r\n painter.shadow.shadowBlur = 10;\r\n painter.shadow.shadowColor = new draw_1.SColor(`#00000033`);\r\n painter.shadow.shadowOffsetX = 5;\r\n painter.shadow.shadowOffsetY = 5;\r\n }\r\n painter.drawLine(this.line[0], this.line[1]);\r\n if (this.status == __1.SItemStatus.Edit ||\r\n this.status == __1.SItemStatus.Create) {\r\n this.line.forEach((p, i) => {\r\n painter.brush.color = this.fillColor;\r\n if (i == this.curIndex) {\r\n painter.brush.color = this.activeFillColor;\r\n }\r\n painter.drawCircle(p.x, p.y, painter.toPx(5));\r\n });\r\n }\r\n }\r\n else if (this.line.length == 1) {\r\n if (this.status == __1.SItemStatus.Edit ||\r\n this.status == __1.SItemStatus.Create) {\r\n painter.brush.color = this.fillColor;\r\n painter.drawCircle(this.line[0].x, this.line[0].y, painter.toPx(5));\r\n }\r\n }\r\n }\r\n}\r\nexports.SLineItem = SLineItem;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.STooltipItem = void 0;\r\nconst graph_1 = require(\"@persagy-web/graph\");\r\nclass STooltipItem extends graph_1.STextItem {\r\n}\r\nexports.STooltipItem = STooltipItem;\r\n","// (c) Copyright 2016, Sean Connelly (@voidqk), http://syntheti.cc\n// MIT License\n// Project Home: https://github.com/voidqk/polybooljs\n\n//\n// simple linked list implementation that allows you to traverse down nodes and save positions\n//\n\nvar LinkedList = {\n\tcreate: function(){\n\t\tvar my = {\n\t\t\troot: { root: true, next: null },\n\t\t\texists: function(node){\n\t\t\t\tif (node === null || node === my.root)\n\t\t\t\t\treturn false;\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tisEmpty: function(){\n\t\t\t\treturn my.root.next === null;\n\t\t\t},\n\t\t\tgetHead: function(){\n\t\t\t\treturn my.root.next;\n\t\t\t},\n\t\t\tinsertBefore: function(node, check){\n\t\t\t\tvar last = my.root;\n\t\t\t\tvar here = my.root.next;\n\t\t\t\twhile (here !== null){\n\t\t\t\t\tif (check(here)){\n\t\t\t\t\t\tnode.prev = here.prev;\n\t\t\t\t\t\tnode.next = here;\n\t\t\t\t\t\there.prev.next = node;\n\t\t\t\t\t\there.prev = node;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tlast = here;\n\t\t\t\t\there = here.next;\n\t\t\t\t}\n\t\t\t\tlast.next = node;\n\t\t\t\tnode.prev = last;\n\t\t\t\tnode.next = null;\n\t\t\t},\n\t\t\tfindTransition: function(check){\n\t\t\t\tvar prev = my.root;\n\t\t\t\tvar here = my.root.next;\n\t\t\t\twhile (here !== null){\n\t\t\t\t\tif (check(here))\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tprev = here;\n\t\t\t\t\there = here.next;\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tbefore: prev === my.root ? null : prev,\n\t\t\t\t\tafter: here,\n\t\t\t\t\tinsert: function(node){\n\t\t\t\t\t\tnode.prev = prev;\n\t\t\t\t\t\tnode.next = here;\n\t\t\t\t\t\tprev.next = node;\n\t\t\t\t\t\tif (here !== null)\n\t\t\t\t\t\t\there.prev = node;\n\t\t\t\t\t\treturn node;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t\treturn my;\n\t},\n\tnode: function(data){\n\t\tdata.prev = null;\n\t\tdata.next = null;\n\t\tdata.remove = function(){\n\t\t\tdata.prev.next = data.next;\n\t\t\tif (data.next)\n\t\t\t\tdata.next.prev = data.prev;\n\t\t\tdata.prev = null;\n\t\t\tdata.next = null;\n\t\t};\n\t\treturn data;\n\t}\n};\n\nmodule.exports = LinkedList;\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAABqElEQVRoBe3ZW0rDQBQG4Eza5Qguwi0IFqxP2qJU8LYA3UC9YIuX6pMVFVyMgm9uwg0k4xzJCSVNYpLO5R90IAy5tPzfzGkKM0Hw3wBH4OLqbgkwVm6kMHt1eHlzEkXx2+notpO9h3guZkNReHV+TNeEEJHquoe7/Wc6R20pgMqGRl5K2eKwhFDHxsGg98TX0Pq0hPZ2tj5UuG4y8j85CaOOB+RySmeARzYJO83OBOEQy2kOQBCfELkAnxCFAF8QpQAfEL8C0BGVAMiIygBURC0AIqI2AA3RCICEaAxAQSwEQEAsDHCN0AJwidAGcIXQCnCB0A6wjTACsIkwBrCFMAqwgTAOMI2wAjCJsAYwhbAKMIGwDtCNcALQiXAG0IVIF3fpC223ZK11bkFZ5ZiejydrVfI4nQEOWLQWGwqxvj/ovfBzeT0EgII1RcAAmiKgAISg2o+lfMzuTxSVExygLgISUAcBCyhDqH28jtp4fKVnnP4PUICyRq9Qqv3ZjccgkF9xK/zkz0HPAIfkHzaFl+32ytH25jvf86Y/G09Wh9f3y94E/jNBvwEQ2o5/YwbJXAAAAABJRU5ErkJggg==\"","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n});\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SMouseButton = void 0;\r\nvar SMouseButton;\r\n(function (SMouseButton) {\r\n SMouseButton[SMouseButton[\"LeftButton\"] = 1] = \"LeftButton\";\r\n SMouseButton[SMouseButton[\"RightButton\"] = 2] = \"RightButton\";\r\n SMouseButton[SMouseButton[\"MidButton\"] = 4] = \"MidButton\";\r\n})(SMouseButton = exports.SMouseButton || (exports.SMouseButton = {}));\r\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","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SGraphCommand = void 0;\r\nconst base_1 = require(\"@persagy-web/base\");\r\nclass SGraphCommand extends base_1.SUndoCommand {\r\n constructor(scene) {\r\n super();\r\n this.scene = null;\r\n this.scene = scene;\r\n }\r\n}\r\nexports.SGraphCommand = SGraphCommand;\r\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAACQElEQVRoBe2Zu0oDQRSGZze7jS9gZWOnTxFtBMFarIQ0iqAgPkDUXgKK4iKkzgMEBAvJU1jaWNmbJgk7zr9mQtzd2dvMYVbcA8neyDnfdzLZy4SxJpoONB0g60Dvob+OF1kBkdihSg7wMJyOkN91/fb5SeedohaJwAKes7UI2mEfVBLGBRLwsu1EEkYFlPCEEsYE0uAd5nyCnTO+Kh3Er87ocDIioIL3fG8b4LPp7JVKQlsgC/7suPMGgdvH/iaVhIsCOhGGs4EYIz9nG5EIwwadl/DIjXXsk0Mqqic+g9MsGhBtV3zTFnAd51CCpcFLLioJ7SEEwN790wbnfOB53sFy5yX88tL0cDIiAEAh4Ijgy7CqdZMSpQRu7oJLQF2cHkVLrFcNUxKFBebw3TnwVV0kCgnE4GXTayGRK6CAr41EpkAOfC0klAIF4a1LpAqUhLcqkRCoCG9NQvtWQpLbWrbihV+eh6Od3T18M+34sZxtK6fVhAAgK0hYgQdrqkBJCWvwmQIFJazC5wrkSFiHLySgkKgFPNgS1wHsVMX8GvE3b6dVUkEQrHxNWN/3/eu8pzGZw9SzAPJpXcgAP56yocizj1kHgElI1dIkPGpoCYwnLOCcbSER5n3yJEzDaws4Lb+LmTYkQmRJUMCjZqkfMT4QD9sTW9oCEMqSwHGqWTnkNiKARCoJHKOaF0VuYwJIliaB/YswPDONvEYFkFApQQBPIpAqQQRPJvBLQmxQ/T+GOqSB4YQXaZEmedOBf96Bb300RWM9JXs6AAAAAElFTkSuQmCC\"","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAAC50lEQVRoBe1YT2sTURB/s02s0h48VDxq0IJoQVARvPbixYOevBkDkiBGFD35AbwIjUi3tAnVFY85KHorIvkAWnIpqFCEHkQEi6dg22R3nLdk/yS7+5ps3zZbeA82b968vJn5zczbGZYxNZQHlAeUB5QH9uAB6D87p9eMfp7M9eNysSBTXiYgDPF2gCeXIRWAJte2/ZcWjACDHc8M5PtdkIBEt729KMp/hlmMQSfqnzL4gTvgF1qZr31ChrOcBwDrj8rFaf9+GE136AtDvGjvAaxSzl8K+58s3oFPIQVAVirElaMiENdzss6pCMjyZFw5IYUsrqhkzu1WV5JIIaq+3YGYhHxHuj0noAC3HQ1U5icdOqlZPgBkP11jAU5X9NqNhYV6YkCk3wHQtI9oWTc5CETkvdbbLfzLCIhJHC+9XJRigjpIoY3SIzCRsd5Q57fabxaBGUNk2WEf8oKw4ZQOoFQqtcfZ+FXqXt/3g0hiLQxPXIXlcn6Tzl6fr1bPtDswS2mQI08epaY8jr5rdHYqypY4AqNkBfj3S6VvxORP7GHXAcYiAYhTCLDlakaccOkUEUIAFPrfjq1EH2s0GolGzNE1zCwEQDn7wycs0/y6fsW3TgUpBKAxXOmx0sR8zzoFCyGAh/eKTXqnb7h2At6aW3p53l2ngBACoHc5MmBPHTt5EWJt893zReOkwxv1LATAjbtwdtqgqekZijnL3Plc0av5er0+5vFHQwnLtGOSri+f2GYmfe/pfR/T4V8IsEKB+k6h2gQGQ/c6jo6omfqqJ7R3yt4P+c40EAB++MXi8kynY32ghixnC9u/n3+k6oitLgTArink2Png7p21yUN4mS71a7ob1FmmYwwMgJtLjdof/nk8m8UZqhHPiLU2ahgDp1CUoYZhHG61zOOmhlMmgPxLbVqvqBU/Z+sPSaE9twaFQmGLhG90nyicsfnUzHH5kWOoFIqUMsKNAw9ghL5TqpUHlAdkeOA/T2feBw5dE68AAAAASUVORK5CYII=\"","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAFKADAAQAAAABAAAAFAAAAACRFdLHAAACiElEQVQ4Ea2Tz2sTQRSAdzabIBJyMCD2YBQkCkI8WaRQhRwEjYh6MAcJHpSYUPHav0AE8WjBJII5eNHcxJseRCI0laqgVQ9iLgqCECHapoYkO35v7W7HbRAKHZh9b96Pb968mbWsLR5qq3jN1uIysDvOZoHVanW7bduHXNfdbeYqrW1tK9tpLry6ziKilaUsVzH4WMp2+Xiq7banj0zOAZoAcltrfXY4HEZMmKcr1ZN4B9gshojlam1ZMpXrahQ+SmnX0qpZqVRagJ6y2wpzhjkfi8W+mFASv9qKGsXI7ldIqJTLZVvWAI6zfhKNRvcmEonvnU7nDZAf8Xj8RKFQ+Ckx4dGcX/zFGe95PeQoxK/fDz3So9GIMrUN7DK+PcxTPqxWq+0HKDMYSk6nObJYBMAInGzgLSKRiKJfUzhelkqlzxIA7CT+x8T/20elugEwIK0pgDQgazAYSOUZ5nM/hsqvob+miDP0MagC5aNFD8c+m1CFUQADH4jcxQYLVPzNsFn08AX2T/8FUuV6Y83sMfrRqcOnxezdatjPTq7YuOWx/nC8uR6bID2UoM1U6EN9YJ9bU41GIyYOGr8qEttORJye9mW9NrYhf/uLsPSAVPRWHN1uNyMylUq9Q7QBPkNOOI7zSOz1el1gaaYXL7bw8IBUtETfVjjiRQnI5XJ9nsU0tqvAJovFYkvsPKMLCIcCvLXYwiO4RX63GZxzzHP8gl5FZjC/Z4ajy9N4gL9k+kw9AEoPSXqIPE/SXaq4z8P90Ov19rGWJzGL730ymTyWz+eXTYipB0DfyK91iUpukbzDtyFXacFN5A0etPnIjZC/6gagmKVawAeQBwG10+n0UjabHW7IHmP4A1KyI023V+ASAAAAAElFTkSuQmCC\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SIconTextItem = void 0;\r\nconst graph_1 = require(\"@persagy-web/graph\");\r\nconst __1 = require(\"..\");\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nclass SIconTextItem extends graph_1.SObjectItem {\r\n constructor(parent, data) {\r\n super(parent);\r\n this._status = __1.SItemStatus.Normal;\r\n this._showText = true;\r\n this._isActive = false;\r\n this._activeColor = new draw_1.SColor(\"#00000033\");\r\n this._showAnchor = false;\r\n this.img = new graph_1.SImageItem(this);\r\n this.textItem = new graph_1.STextItem(this);\r\n this.img.width = 32;\r\n this.img.height = 32;\r\n this.img.origin = new draw_1.SPoint(this.img.width * 0.5, this.img.height * 0.5);\r\n this.img.connect(\"onMove\", this, this.changeAnchorPoint.bind(this));\r\n let anchorPoint;\r\n if (data && data.length) {\r\n anchorPoint = data.map(t => {\r\n return {\r\n x: t.Pos.X,\r\n y: t.Pos.Y,\r\n id: t.ID\r\n };\r\n });\r\n }\r\n else {\r\n anchorPoint = [\r\n { x: this.img.x, y: this.img.y, id: \"\" },\r\n { x: this.img.x, y: this.img.y, id: \"\" },\r\n { x: this.img.x, y: this.img.y, id: \"\" },\r\n { x: this.img.x, y: this.img.y, id: \"\" }\r\n ];\r\n }\r\n this.anchorList = anchorPoint.map(t => {\r\n let item = new graph_1.SAnchorItem(this);\r\n if (t.id) {\r\n item.id = t.id;\r\n }\r\n item.moveTo(t.x, t.y);\r\n return item;\r\n });\r\n this.showAnchor = false;\r\n this.textItem.text = \"\";\r\n this.textItem.font.size = 12;\r\n this.textItem.moveTo(this.img.width * 0.5, -(this.font.size * 1.25 * 0.5));\r\n this.moveable = true;\r\n this.selectable = true;\r\n }\r\n get status() {\r\n return this._status;\r\n }\r\n set status(v) {\r\n this._status = v;\r\n if (v == __1.SItemStatus.Normal) {\r\n this.moveable = true;\r\n this.textItem.moveable = false;\r\n this.img.moveable = false;\r\n }\r\n else if (v == __1.SItemStatus.Edit) {\r\n this.moveable = false;\r\n this.textItem.moveable = true;\r\n this.img.moveable = true;\r\n }\r\n else if (v == __1.SItemStatus.Create) {\r\n this.moveable = true;\r\n this.textItem.moveable = false;\r\n this.img.moveable = false;\r\n }\r\n this.update();\r\n }\r\n get showText() {\r\n return this._showText;\r\n }\r\n set showText(v) {\r\n if (v === this._showText) {\r\n return;\r\n }\r\n this._showText = v;\r\n if (v) {\r\n this.textItem.show();\r\n }\r\n else {\r\n this.textItem.hide();\r\n }\r\n }\r\n get selected() {\r\n return this._selected && this.selectable && this.enabled;\r\n }\r\n set selected(value) {\r\n if (this.selected == value) {\r\n return;\r\n }\r\n this._selected = value;\r\n if (value) {\r\n this.img.scale = 1.25;\r\n this.zOrder = __1.ItemOrder.highLightOrder;\r\n }\r\n else {\r\n this.img.scale = 1;\r\n this.zOrder = __1.ItemOrder.markOrder;\r\n }\r\n this.update();\r\n }\r\n get isActive() {\r\n return this._isActive;\r\n }\r\n set isActive(v) {\r\n this._isActive = v;\r\n if (v) {\r\n this.cursor = \"pointer\";\r\n this.textItem.cursor = \"pointer\";\r\n this.img.cursor = \"pointer\";\r\n }\r\n else {\r\n this.cursor = \"auto\";\r\n this.textItem.cursor = \"auto\";\r\n this.img.cursor = \"auto\";\r\n }\r\n this.update();\r\n }\r\n get activeColor() {\r\n return this._activeColor;\r\n }\r\n set activeColor(v) {\r\n this._activeColor = v;\r\n this.update();\r\n }\r\n get x() {\r\n return this.pos.x;\r\n }\r\n set x(v) {\r\n this.pos.x = v;\r\n this.$emit(\"changePos\");\r\n this.update();\r\n }\r\n get y() {\r\n return this.pos.y;\r\n }\r\n set y(v) {\r\n this.pos.y = v;\r\n this.$emit(\"changePos\");\r\n this.update();\r\n }\r\n get sWidth() {\r\n return this.img.width;\r\n }\r\n set sWidth(v) {\r\n this.img.width = v;\r\n this.img.origin = new draw_1.SPoint(this.img.width * 0.5, this.img.height * 0.5);\r\n this.changeAnchorPoint();\r\n this.update();\r\n }\r\n get sHeight() {\r\n return this.img.height;\r\n }\r\n set sHeight(v) {\r\n this.img.height = v;\r\n this.img.origin = new draw_1.SPoint(this.img.width * 0.5, this.img.height * 0.5);\r\n this.changeAnchorPoint();\r\n this.update();\r\n }\r\n get showAnchor() {\r\n return this._showAnchor;\r\n }\r\n set showAnchor(v) {\r\n this._showAnchor = v;\r\n this.anchorList.forEach(t => {\r\n t.visible = v;\r\n });\r\n }\r\n get text() {\r\n return this.textItem.text;\r\n }\r\n set text(v) {\r\n this.textItem.text = v;\r\n this.update();\r\n }\r\n get color() {\r\n return this.textItem.color;\r\n }\r\n set color(v) {\r\n this.textItem.color = v;\r\n this.update();\r\n }\r\n get font() {\r\n return this.textItem.font;\r\n }\r\n set font(v) {\r\n this.textItem.font = v;\r\n this.update();\r\n }\r\n changeAnchorPoint() {\r\n if (this.anchorList.length) {\r\n let anchorPoint = [\r\n { x: this.img.x, y: this.img.y },\r\n { x: this.img.x, y: this.img.y },\r\n { x: this.img.x, y: this.img.y },\r\n { x: this.img.x, y: this.img.y }\r\n ];\r\n this.anchorList.forEach((item, index) => {\r\n item.moveTo(anchorPoint[index].x, anchorPoint[index].y);\r\n });\r\n }\r\n }\r\n onMouseDown(event) {\r\n if (this.status == __1.SItemStatus.Normal) {\r\n return super.onMouseDown(event);\r\n }\r\n else if (this.status == __1.SItemStatus.Edit) {\r\n return super.onMouseDown(event);\r\n }\r\n return true;\r\n }\r\n onResize(oldSize, newSize) {\r\n console.log(arguments);\r\n }\r\n onDoubleClick(event) {\r\n if (__1.SItemStatus.Normal == this.status) {\r\n this.status = __1.SItemStatus.Edit;\r\n this.grabItem(this);\r\n }\r\n else if (__1.SItemStatus.Edit == this.status) {\r\n this.status = __1.SItemStatus.Normal;\r\n this.releaseItem();\r\n }\r\n this.update();\r\n return true;\r\n }\r\n boundingRect() {\r\n let rect = this.img\r\n .boundingRect()\r\n .adjusted(this.img.pos.x, this.img.pos.y, 0, 0);\r\n if (this.showText) {\r\n rect = rect.unioned(this.textItem\r\n .boundingRect()\r\n .adjusted(this.textItem.pos.x, this.textItem.pos.y, 0, 0));\r\n }\r\n return rect.adjusted(-5, -5, 10, 10);\r\n }\r\n onDraw(painter) {\r\n if (this.status == __1.SItemStatus.Edit) {\r\n painter.pen.lineWidth = painter.toPx(1);\r\n painter.pen.lineDash = [painter.toPx(3), painter.toPx(7)];\r\n painter.pen.color = draw_1.SColor.Black;\r\n painter.brush.color = draw_1.SColor.Transparent;\r\n painter.drawRect(this.boundingRect());\r\n }\r\n if (this.isActive) {\r\n painter.pen.color = draw_1.SColor.Transparent;\r\n painter.brush.color = this.activeColor;\r\n if (this.selected) {\r\n painter.shadow.shadowBlur = 10;\r\n painter.shadow.shadowColor = this.activeColor;\r\n painter.shadow.shadowOffsetX = 5;\r\n painter.shadow.shadowOffsetY = 5;\r\n painter.drawCircle(this.img.x, this.img.y, (this.sWidth / 2.0 + 3) * 1.25);\r\n }\r\n else {\r\n painter.drawCircle(this.img.x, this.img.y, this.sWidth / 2.0 + 3);\r\n }\r\n }\r\n else {\r\n if (this.selected) {\r\n painter.pen.color = draw_1.SColor.Transparent;\r\n painter.brush.color = draw_1.SColor.Transparent;\r\n painter.shadow.shadowBlur = 10;\r\n painter.shadow.shadowColor = new draw_1.SColor(`#00000033`);\r\n painter.shadow.shadowOffsetX = 5;\r\n painter.shadow.shadowOffsetY = 5;\r\n painter.drawCircle(this.img.x, this.img.y, this.sWidth / 2.0);\r\n }\r\n }\r\n }\r\n}\r\nexports.SIconTextItem = SIconTextItem;\r\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SStringBuilder = void 0;\r\nvar SStringBuilder = (function () {\r\n function SStringBuilder(msg) {\r\n this._strArray = new Array();\r\n if (msg != undefined) {\r\n this.append(msg);\r\n }\r\n }\r\n SStringBuilder.prototype.append = function (msg) {\r\n this._strArray.push(msg);\r\n return this;\r\n };\r\n SStringBuilder.prototype.toString = function (gap) {\r\n if (gap === void 0) { gap = \"\\n\"; }\r\n return this._strArray.join(gap);\r\n };\r\n return SStringBuilder;\r\n}());\r\nexports.SStringBuilder = SStringBuilder;\r\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar regexpExec = require('../internals/regexp-exec');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SColumnItem = void 0;\r\nconst __1 = require(\"../..\");\r\nconst graph_1 = require(\"@persagy-web/graph\");\r\nclass SColumnItem extends graph_1.SGraphPolyGroupItem {\r\n constructor(parent, data) {\r\n const style = {\r\n Default: {\r\n Stroke: \"#000000\",\r\n Fill: \"#000000\",\r\n LineWidth: 0,\r\n Effect: {}\r\n }\r\n };\r\n let tempArr = data.OutLine;\r\n let outline = [];\r\n if (tempArr && tempArr.length) {\r\n outline = tempArr.map(t => {\r\n return t.map(it => {\r\n it.Y = -it.Y;\r\n return it;\r\n });\r\n });\r\n }\r\n super(parent, { Outline: outline, Style: style });\r\n this.data = data;\r\n this.zOrder = __1.ItemOrder.columnOrder;\r\n }\r\n}\r\nexports.SColumnItem = SColumnItem;\r\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n// FF49- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('map');\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./baseTopoEditer.vue?vue&type=style&index=0&id=6dcb9dce&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./baseTopoEditer.vue?vue&type=style&index=0&id=6dcb9dce&lang=less&scoped=true&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAACKklEQVRoBe1YzUoDMRD+YsWKIj6A9Ko9eNODjyJ6UfBoa59EbQ+eBG99BEH0ATzYe+9VD4KCiCBWGyf70yabbDfb7lIWk8tOvvkmyXwz26YF3HAKOAWcAk4Bp0CBFWATn73Fr5RYjjUwLHgYxzfZT4o/nCTx6uwwpNo8521IRg7HgYZzCZFtCfZM2SfbPi9VAnPRtYs2n7wCoDZRh1grFGRA9o/qHs5secOAccbk70B01SZ/IGgrgDs4YdtRije35RmDdTBUTPcUBHEJzLpQrgKuAlMqYP4eyPijbsozAmPOk907wOj2Ew6GfmhqT9knx2hEOyC7BIAlactnyY6ask+OifKs5uYWUkPLuOAbKhTMOF0dfrFKsx1wrEucR8mOmiOfiGnxBhHuUcI71VBcQfTRR1kHfcQmgU1qiG7cAkac4dqIC1D4OOqBf47sM8+OuzkFxLhHli3k78Fwhxq7idvQ8wlORiPLBISGbWqq3cSz+Zw28SbUfbRDcgsx9KjM56MQyRJvAMcHHbqHRXRwxN4kb7x5zF7JuY9LXsMX3WAHqFBrrdCzZAxiaNA+FZMvOQGOF7oan5qCp8b8hG8T12nyPeIYE8iyhRLPkQfBJZCHqmnWdBVIo1Ye3ORPIaAa3Abz2N92zWoc0SaBZQoO/22IW2dmeOHfAZsKfJK86S5z2ddDtJDoBG3YJNCN/ZNKWy4nQP1FpmxS+BZyCSj1dBOngFPAKfDvFPgDgapn6DRU/mYAAAAASUVORK5CYII=\"","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAFKADAAQAAAABAAAAFAAAAACRFdLHAAACY0lEQVQ4Ea2UP2hUQRDGv733PIOksghGEAVRQYidaEAEC0GRoI2NhYWCQoKxS2WqiCBWyR3oYWFhpZ3YaWGhkMRCQaMW4jUKEbtoYjxy742/3Xd/Xi53RSBz7M7OfN9+N7s7PGmLzW2V3tRcsmzS/XjTghXboZqOyGnPur2WFsQvnppPbpspck7OUjnvIRYM73xcUPXWsaisig3qn0qIXRB8xjqD/9fzY4AJkEhpoKCt1BnrlKxTamavVbI5xF6SWQEZpZJZ9et7XpEqfsAvxJPHo6Km7RrBA41Tj7eynVaiF/zNPg3oF+Lvwb+AnIHzO3A6JptNDA4VesuO2aZk1YpqCvqpq+B7Ac+1xMp2kNiPlvnDwG8IhmUL4waBEuIIqTUNs3qrm+5bYJTsLBU/hxHldviilrivxhHXIQT+D7zVQ+1DzB9C7CfTDcY79Wm3Yg02Bxv8kQvd26Z5ZF9hom1Q11qC0i7W87ruFnM5udn6G1rka3dBf2T/yplgfl/P9eRwPOLB7FU7adxwSKU98E5+Lu4u2DxywpE3aZlgRP/7K31qxbDfabXhB/D9jFqI/WQ8h6PNe1gmmDZecVFDgWf6iK/yIK/wgwg8C/lH1oc/QNx+9QC0p0xwuxZIrUC8HKBxV6OOE9zgGPFRGnou5P/oEj4mn8Uh2Wsq2ahm+DxM2/mulJINgS+BV7rijWT70o3vRUlPuKOLVPoQ/DGVfOa997MeIT9B/hOtdFJjbrmXaFuwyZixK2y+R7izmcKvIn5XRd2hofNNnqNky42CPu+rLesQwoepqMq8oFOuvmF3l8R/j42+QOQdLz0AAAAASUVORK5CYII=\"","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SPolylineItem = void 0;\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nconst base_1 = require(\"@persagy-web/base\");\r\nconst __1 = require(\"..\");\r\nconst SMathUtil_1 = require(\"../utils/SMathUtil\");\r\nconst graph_1 = require(\"@persagy-web/graph\");\r\nclass SPolylineItem extends graph_1.SGraphItem {\r\n constructor(parent, list) {\r\n super(parent);\r\n this.minX = Number.MAX_SAFE_INTEGER;\r\n this.maxX = Number.MIN_SAFE_INTEGER;\r\n this.minY = Number.MAX_SAFE_INTEGER;\r\n this.maxY = Number.MIN_SAFE_INTEGER;\r\n this.pointList = [];\r\n this._status = __1.SItemStatus.Normal;\r\n this.lastPoint = null;\r\n this._strokeColor = draw_1.SColor.Black;\r\n this._fillColor = new draw_1.SColor(\"#2196f3\");\r\n this._lineWidth = 1;\r\n this._lineStyle = graph_1.SLineStyle.Solid;\r\n this.dis = 10;\r\n this.sceneDis = 10;\r\n this.curIndex = -1;\r\n this.curPoint = null;\r\n this.undoStack = new base_1.SUndoStack();\r\n if (list instanceof draw_1.SPoint) {\r\n this.pointList.push(list);\r\n }\r\n else {\r\n this.pointList = list;\r\n }\r\n }\r\n get status() {\r\n return this._status;\r\n }\r\n set status(v) {\r\n this._status = v;\r\n this.undoStack.clear();\r\n this.update();\r\n }\r\n get strokeColor() {\r\n return this._strokeColor;\r\n }\r\n set strokeColor(v) {\r\n this._strokeColor = v;\r\n this.update();\r\n }\r\n get fillColor() {\r\n return this._fillColor;\r\n }\r\n set fillColor(v) {\r\n this._fillColor = v;\r\n this.update();\r\n }\r\n get lineWidth() {\r\n return this._lineWidth;\r\n }\r\n set lineWidth(v) {\r\n this._lineWidth = v;\r\n this.update();\r\n }\r\n get lineStyle() {\r\n return this._lineStyle;\r\n }\r\n set lineStyle(v) {\r\n this._lineStyle = v;\r\n this.update();\r\n }\r\n addPoint(p, index) {\r\n if (index && this.canHandle(index)) {\r\n this.pointList.splice(index, 0, p);\r\n this.recordAction(graph_1.SGraphPointListInsert, [\r\n this.pointList,\r\n p,\r\n index\r\n ]);\r\n }\r\n else {\r\n this.pointList.push(p);\r\n this.recordAction(graph_1.SGraphPointListInsert, [this.pointList, p]);\r\n }\r\n this.update();\r\n }\r\n canHandle(index) {\r\n return index >= 0 && index <= this.pointList.length;\r\n }\r\n deletePoint(index) {\r\n if (this.canHandle(index) && this.pointList.length > 2) {\r\n const p = new draw_1.SPoint(this.pointList[this.curIndex].x, this.pointList[this.curIndex].y);\r\n this.pointList.splice(index, 1);\r\n this.recordAction(graph_1.SGraphPointListDelete, [\r\n this.pointList,\r\n p,\r\n index\r\n ]);\r\n this.curIndex = -1;\r\n this.curPoint = null;\r\n this.update();\r\n }\r\n }\r\n onMouseDown(event) {\r\n this.curIndex = -1;\r\n this.curPoint = null;\r\n if (event.shiftKey) {\r\n event = this.compare(event);\r\n }\r\n if (event.buttons == 1) {\r\n if (this.status == __1.SItemStatus.Create) {\r\n this.addPoint(new draw_1.SPoint(event.x, event.y));\r\n return true;\r\n }\r\n else if (this.status == __1.SItemStatus.Edit) {\r\n this.findNearestPoint(new draw_1.SPoint(event.x, event.y));\r\n if (this.curIndex < 0) {\r\n this.findAddPos(new draw_1.SPoint(event.x, event.y));\r\n }\r\n if (event.altKey && this.canHandle(this.curIndex)) {\r\n this.deletePoint(this.curIndex);\r\n }\r\n this.update();\r\n return true;\r\n }\r\n else {\r\n return super.onMouseDown(event);\r\n }\r\n }\r\n return super.onMouseDown(event);\r\n }\r\n onMouseMove(event) {\r\n if (event.shiftKey) {\r\n event = this.compare(event);\r\n }\r\n if (this.status == __1.SItemStatus.Create) {\r\n if (this.lastPoint) {\r\n this.lastPoint.x = event.x;\r\n this.lastPoint.y = event.y;\r\n }\r\n else {\r\n this.lastPoint = new draw_1.SPoint(event.x, event.y);\r\n }\r\n this.update();\r\n return true;\r\n }\r\n else if (this.status == __1.SItemStatus.Edit) {\r\n if (event.buttons == 1) {\r\n if (this.canHandle(this.curIndex)) {\r\n this.pointList[this.curIndex].x = event.x;\r\n this.pointList[this.curIndex].y = event.y;\r\n }\r\n }\r\n this.update();\r\n return true;\r\n }\r\n else {\r\n return super.onMouseMove(event);\r\n }\r\n }\r\n onMouseUp(event) {\r\n if (this.status == __1.SItemStatus.Edit) {\r\n if (this.curIndex > -1) {\r\n const p = new draw_1.SPoint(this.pointList[this.curIndex].x, this.pointList[this.curIndex].y);\r\n this.recordAction(graph_1.SGraphPointListUpdate, [\r\n this.pointList,\r\n this.curPoint,\r\n p,\r\n this.curIndex\r\n ]);\r\n }\r\n }\r\n else if (this.status == __1.SItemStatus.Normal) {\r\n this.moveToOrigin(this.x, this.y);\r\n return super.onMouseUp(event);\r\n }\r\n return true;\r\n }\r\n onDoubleClick(event) {\r\n if (this.status == __1.SItemStatus.Normal) {\r\n this.status = __1.SItemStatus.Edit;\r\n this.grabItem(this);\r\n }\r\n else if (this.status == __1.SItemStatus.Edit) {\r\n this.status = __1.SItemStatus.Normal;\r\n this.releaseItem();\r\n }\r\n else if (this.status == __1.SItemStatus.Create) {\r\n if (this.pointList.length > 1) {\r\n this.status = __1.SItemStatus.Normal;\r\n this.releaseItem();\r\n this.$emit(\"finishCreated\");\r\n }\r\n }\r\n this.$emit(\"onDoubleClick\", event);\r\n return true;\r\n }\r\n onKeyUp(event) {\r\n if (event.keyCode == base_1.SKeyCode.Enter) {\r\n if (this.pointList.length > 1) {\r\n if (this.status == __1.SItemStatus.Create) {\r\n this.$emit(\"finishCreated\");\r\n }\r\n this.status = __1.SItemStatus.Normal;\r\n this.releaseItem();\r\n }\r\n }\r\n if (event.keyCode == base_1.SKeyCode.Delete &&\r\n this.status == __1.SItemStatus.Edit) {\r\n this.deletePoint(this.curIndex);\r\n }\r\n }\r\n moveToOrigin(x, y) {\r\n super.moveToOrigin(x, y);\r\n this.pointList = this.pointList.map(t => {\r\n t.x = t.x + x;\r\n t.y = t.y + y;\r\n return t;\r\n });\r\n this.x = 0;\r\n this.y = 0;\r\n }\r\n findNearestPoint(p) {\r\n let len = this.sceneDis;\r\n for (let i = 0; i < this.pointList.length; i++) {\r\n let dis = SMathUtil_1.SMathUtil.pointDistance(p.x, p.y, this.pointList[i].x, this.pointList[i].y);\r\n if (dis < len) {\r\n len = dis;\r\n this.curIndex = i;\r\n this.curPoint = new draw_1.SPoint(this.pointList[this.curIndex].x, this.pointList[this.curIndex].y);\r\n }\r\n }\r\n }\r\n findAddPos(p) {\r\n let len = SMathUtil_1.SMathUtil.pointToLine(p, new draw_1.SLine(this.pointList[0], this.pointList[1])), index = 0;\r\n if (this.pointList.length > 2) {\r\n for (let i = 1; i < this.pointList.length - 1; i++) {\r\n let dis = SMathUtil_1.SMathUtil.pointToLine(p, new draw_1.SLine(this.pointList[i], this.pointList[i + 1]));\r\n if (dis.MinDis < len.MinDis) {\r\n len = dis;\r\n index = i;\r\n }\r\n }\r\n }\r\n if (len.MinDis < this.sceneDis) {\r\n if (len.Point) {\r\n this.addPoint(len.Point, index + 1);\r\n }\r\n }\r\n }\r\n compare(event) {\r\n if (this.pointList.length) {\r\n let last = new draw_1.SPoint(event.x, event.y);\r\n if (this.status == __1.SItemStatus.Create) {\r\n last = this.pointList[this.pointList.length - 1];\r\n }\r\n else if (this.status == __1.SItemStatus.Edit) {\r\n if (this.curIndex > 1) {\r\n last = this.pointList[this.curIndex - 1];\r\n }\r\n }\r\n const dx = Math.abs(event.x - last.x);\r\n const dy = Math.abs(event.y - last.y);\r\n if (dy > dx) {\r\n event.x = last.x;\r\n }\r\n else {\r\n event.y = last.y;\r\n }\r\n }\r\n return event;\r\n }\r\n recordAction(SGraphCommand, any) {\r\n const command = new SGraphCommand(this.scene, this, ...any);\r\n this.undoStack.push(command);\r\n }\r\n boundingRect() {\r\n if (this.pointList.length) {\r\n this.minX = this.pointList[0].x;\r\n this.maxX = this.pointList[0].x;\r\n this.minY = this.pointList[0].y;\r\n this.maxY = this.pointList[0].y;\r\n this.pointList.forEach(it => {\r\n let x = it.x, y = it.y;\r\n if (x < this.minX) {\r\n this.minX = x;\r\n }\r\n if (y < this.minY) {\r\n this.minY = y;\r\n }\r\n if (x > this.maxX) {\r\n this.maxX = x;\r\n }\r\n if (y > this.maxY) {\r\n this.maxY = y;\r\n }\r\n });\r\n }\r\n return new draw_1.SRect(this.minX, this.minY, this.maxX - this.minX, this.maxY - this.minY);\r\n }\r\n contains(x, y) {\r\n let p = new draw_1.SPoint(x, y);\r\n for (let i = 1; i < this.pointList.length; i++) {\r\n let PTL = SMathUtil_1.SMathUtil.pointToLine(p, new draw_1.SLine(this.pointList[i - 1].x, this.pointList[i - 1].y, this.pointList[i].x, this.pointList[i].y));\r\n if (PTL.MinDis < this.sceneDis) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n undo() {\r\n if (this._status != __1.SItemStatus.Normal) {\r\n this.undoStack.undo();\r\n }\r\n }\r\n redo() {\r\n if (this._status != __1.SItemStatus.Normal) {\r\n this.undoStack.redo();\r\n }\r\n }\r\n cancelOperate() {\r\n if (this.status == __1.SItemStatus.Create) {\r\n this.parent = null;\r\n this.releaseItem();\r\n }\r\n else if (this.status == __1.SItemStatus.Edit) {\r\n this.status = __1.SItemStatus.Normal;\r\n this.releaseItem();\r\n }\r\n }\r\n drawBaseLine(painter) {\r\n if (this.lineStyle == graph_1.SLineStyle.Dashed) {\r\n painter.pen.lineDash = [\r\n painter.toPx(this.lineWidth * 3),\r\n painter.toPx(this.lineWidth * 7)\r\n ];\r\n }\r\n else if (this.lineStyle == graph_1.SLineStyle.Dotted) {\r\n painter.pen.lineDash = [\r\n painter.toPx(this.lineWidth),\r\n painter.toPx(this.lineWidth)\r\n ];\r\n }\r\n painter.pen.color = this.strokeColor;\r\n painter.drawPolyline(this.pointList);\r\n }\r\n onDraw(painter) {\r\n this.sceneDis = painter.toPx(this.dis);\r\n painter.pen.lineWidth = painter.toPx(this.lineWidth);\r\n if (this.status == __1.SItemStatus.Create && this.lastPoint) {\r\n this.drawBaseLine(painter);\r\n painter.drawLine(this.pointList[this.pointList.length - 1], this.lastPoint);\r\n this.pointList.forEach((t, i) => {\r\n painter.brush.color = draw_1.SColor.White;\r\n if (i == this.curIndex) {\r\n painter.brush.color = this.fillColor;\r\n }\r\n painter.drawCircle(t.x, t.y, painter.toPx(5));\r\n });\r\n }\r\n else if (this.status == __1.SItemStatus.Edit) {\r\n this.drawBaseLine(painter);\r\n this.pointList.forEach((t, i) => {\r\n painter.brush.color = draw_1.SColor.White;\r\n if (i == this.curIndex) {\r\n painter.brush.color = this.fillColor;\r\n }\r\n painter.drawCircle(t.x, t.y, painter.toPx(5));\r\n });\r\n }\r\n else {\r\n if (this.selected) {\r\n painter.pen.lineWidth = painter.toPx(this.lineWidth * 2);\r\n painter.shadow.shadowBlur = 10;\r\n painter.shadow.shadowColor = new draw_1.SColor(`#00000033`);\r\n painter.shadow.shadowOffsetX = 5;\r\n painter.shadow.shadowOffsetY = 5;\r\n }\r\n this.drawBaseLine(painter);\r\n }\r\n }\r\n}\r\nexports.SPolylineItem = SPolylineItem;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SPen = void 0;\r\nvar _1 = require(\"./\");\r\nvar SPen = (function () {\r\n function SPen(color, lineWidth) {\r\n this.color = _1.SColor.Black;\r\n this.lineWidth = 1;\r\n this.lineCapStyle = _1.SLineCapStyle.Butt;\r\n this.lineJoinStyle = _1.SLineJoinStyle.Miter;\r\n this.miterLimit = 10;\r\n this.lineDash = null;\r\n this.dashOffset = 0;\r\n if (color == undefined) {\r\n return;\r\n }\r\n if (color instanceof SPen) {\r\n this.color = new _1.SColor(color.color);\r\n this.lineWidth = color.lineWidth;\r\n this.lineCapStyle = color.lineCapStyle;\r\n this.lineJoinStyle = color.lineJoinStyle;\r\n this.miterLimit = color.miterLimit;\r\n this.dashOffset = color.dashOffset;\r\n this.lineDash =\r\n color.lineDash != null ? color.lineDash.slice() : null;\r\n }\r\n else {\r\n this.color = new _1.SColor(color);\r\n this.lineWidth = lineWidth != undefined ? lineWidth : 1;\r\n }\r\n }\r\n return SPen;\r\n}());\r\nexports.SPen = SPen;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SPath = void 0;\r\nvar SPath = (function () {\r\n function SPath() {\r\n this.cmdList = [];\r\n }\r\n SPath.prototype.addCommand = function (cmd) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n this.cmdList.push({ command: cmd, args: args });\r\n };\r\n SPath.prototype.addPath = function (path) {\r\n this.cmdList = this.cmdList.concat(path.cmdList);\r\n };\r\n SPath.prototype.closePath = function () {\r\n this.addCommand(\"Z\");\r\n };\r\n SPath.prototype.moveTo = function (x, y) {\r\n this.addCommand(\"M\", x, y);\r\n };\r\n SPath.prototype.lineTo = function (x, y) {\r\n this.addCommand(\"L\", x, y);\r\n };\r\n SPath.prototype.arc = function (x, y, radius, startAngle, endAngle, anticlockwise) {\r\n this.addCommand(\"Arc\", x, y, radius, startAngle, endAngle, anticlockwise);\r\n };\r\n SPath.prototype.arcTo = function (x1, y1, x2, y2, radius) {\r\n this.addCommand(\"ArcTo\", x1, y1, x2, y2, radius);\r\n };\r\n SPath.prototype.quadraticCurveTo = function (cp1x, cp1y, x, y) {\r\n this.addCommand(\"Q\", cp1x, cp1y, x, y);\r\n };\r\n SPath.prototype.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) {\r\n this.addCommand(\"C\", cp1x, cp1y, cp2x, cp2y, x, y);\r\n };\r\n SPath.prototype.ellipse = function (cx, cy, rx, ry) {\r\n this.addCommand(\"Ellipse\", cx, cy, rx, ry);\r\n };\r\n SPath.prototype.rect = function (x, y, w, h) {\r\n this.addCommand(\"M\", x, y);\r\n this.addCommand(\"L\", x + w, y);\r\n this.addCommand(\"L\", x + w, y + h);\r\n this.addCommand(\"L\", x, y + h);\r\n this.addCommand(\"Z\");\r\n };\r\n SPath.prototype.polygon = function (pList) {\r\n if (pList.length > 2) {\r\n this.addCommand(\"M\", pList[0].x, pList[0].y);\r\n for (var i = 1; i < pList.length; i++) {\r\n this.addCommand(\"L\", pList[i].x, pList[i].y);\r\n }\r\n this.addCommand(\"Z\");\r\n }\r\n };\r\n return SPath;\r\n}());\r\nexports.SPath = SPath;\r\n","// `Symbol.prototype.description` getter\n// https://tc39.github.io/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar min = Math.min;\nvar nativeLastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\n// For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : nativeLastIndexOf;\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","var $ = require('../internals/export');\n\n// `Number.MIN_SAFE_INTEGER` constant\n// https://tc39.github.io/ecma262/#sec-number.min_safe_integer\n$({ target: 'Number', stat: true }, {\n MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF\n});\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar isPrototypeOf = ObjectPrototype.isPrototypeOf;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQIRED = false;\nvar NAME;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar isView = function isView(it) {\n var klass = classof(it);\n return klass === 'DataView' || has(TypedArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n return isObject(it) && has(TypedArrayConstructorsList, classof(it));\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (setPrototypeOf) {\n if (isPrototypeOf.call(TypedArray, C)) return C;\n } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME)) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {\n return C;\n }\n } throw TypeError('Target is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) {\n delete TypedArrayConstructor.prototype[KEY];\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n redefine(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) {\n delete TypedArrayConstructor[KEY];\n }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n redefine(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SCanvasView = void 0;\r\nvar base_1 = require(\"@persagy-web/base\");\r\nvar SSvgPaintEngine_1 = require(\"./engines/SSvgPaintEngine\");\r\nvar SPoint_1 = require(\"./types/SPoint\");\r\nvar SPainter_1 = require(\"./SPainter\");\r\nvar SCanvasView = (function (_super) {\r\n __extends(SCanvasView, _super);\r\n function SCanvasView(id) {\r\n var _this = _super.call(this) || this;\r\n _this._needDraw = true;\r\n _this._origin = new SPoint_1.SPoint();\r\n _this.moveable = true;\r\n _this._scale = 1;\r\n _this.scalable = true;\r\n _this.wheelZoom = 1.05;\r\n _this.minScale = 0.000001;\r\n _this.maxScale = 1000000;\r\n _this._lastFrameTime = 0;\r\n _this._midKeyPos = new SPoint_1.SPoint();\r\n _this._touchState = base_1.STouchState.None;\r\n _this._touchPoint = new SPoint_1.SPoint();\r\n _this._beforeLength = 0;\r\n _this._afterLength = 0;\r\n _this.canvasView = document.getElementById(id);\r\n _this.bindEvent(_this.canvasView);\r\n _this.requestAnimationFrame(_this.loop.bind(_this));\r\n return _this;\r\n }\r\n Object.defineProperty(SCanvasView.prototype, \"canvas\", {\r\n get: function () {\r\n return this.canvasView.getContext(\"2d\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SCanvasView.prototype, \"width\", {\r\n get: function () {\r\n return this.canvasView.width;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SCanvasView.prototype, \"height\", {\r\n get: function () {\r\n return this.canvasView.height;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SCanvasView.prototype, \"origin\", {\r\n get: function () {\r\n return this._origin;\r\n },\r\n set: function (v) {\r\n if (!this.moveable) {\r\n return;\r\n }\r\n this._origin.x = v.x;\r\n this._origin.y = v.y;\r\n this._needDraw = true;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SCanvasView.prototype, \"scale\", {\r\n get: function () {\r\n return this._scale;\r\n },\r\n set: function (v) {\r\n if (!this.scalable) {\r\n return;\r\n }\r\n this._scale = v;\r\n this._needDraw = true;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SCanvasView.prototype, \"cursor\", {\r\n set: function (v) {\r\n this.canvasView.style.cursor = v;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SCanvasView.prototype.update = function () {\r\n this._needDraw = true;\r\n };\r\n SCanvasView.prototype.saveImage = function (name, type) {\r\n var url = this.canvasView.toDataURL(\"image/\" + type);\r\n base_1.SNetUtil.downLoad(name, url);\r\n };\r\n SCanvasView.prototype.imageUrl = function (type) {\r\n return this.canvasView.toDataURL(\"image/\" + type);\r\n };\r\n SCanvasView.prototype.saveSvg = function (name) {\r\n var url = URL.createObjectURL(new Blob([this.svgData()], { type: \"text/xml,charset=UTF-8\" }));\r\n base_1.SNetUtil.downLoad(name, url);\r\n };\r\n SCanvasView.prototype.svgData = function () {\r\n var engine = new SSvgPaintEngine_1.SSvgPaintEngine(this.width, this.height);\r\n var painter = new SPainter_1.SPainter(engine);\r\n this.onDraw(painter);\r\n return engine.toSvg();\r\n };\r\n SCanvasView.prototype.scaleByPoint = function (zoom, x0, y0) {\r\n if (!this.scalable) {\r\n return;\r\n }\r\n var z = zoom;\r\n if (this.scale * zoom >= this.maxScale) {\r\n z = this.maxScale / this.scale;\r\n this.scale = this.maxScale;\r\n }\r\n else if (this.scale * zoom <= this.minScale) {\r\n z = this.minScale / this.scale;\r\n this.scale = this.minScale;\r\n }\r\n else {\r\n this.scale *= zoom;\r\n }\r\n this.origin.x = x0 - (x0 - this.origin.x) * z;\r\n this.origin.y = y0 - (y0 - this.origin.y) * z;\r\n };\r\n SCanvasView.prototype.loop = function () {\r\n var ctx = this.canvas;\r\n if (null != ctx && this._needDraw) {\r\n this._needDraw = false;\r\n var painter = new SPainter_1.SPainter(this);\r\n this.onDraw(painter);\r\n }\r\n this.requestAnimationFrame(this.loop.bind(this));\r\n };\r\n SCanvasView.prototype.onDraw = function (painter) { };\r\n SCanvasView.prototype.onClick = function (event) { };\r\n SCanvasView.prototype.onDoubleClick = function (event) { };\r\n SCanvasView.prototype.onMouseDown = function (event) {\r\n var se = new base_1.SMouseEvent(event);\r\n if (se.buttons & base_1.SMouseButton.MidButton) {\r\n this._midKeyPos.x = se.x;\r\n this._midKeyPos.y = se.y;\r\n }\r\n };\r\n SCanvasView.prototype.onMouseMove = function (event) {\r\n if (this.moveable) {\r\n var se = new base_1.SMouseEvent(event);\r\n if (se.buttons & base_1.SMouseButton.MidButton) {\r\n this.origin.x += se.x - this._midKeyPos.x;\r\n this.origin.y += se.y - this._midKeyPos.y;\r\n this._midKeyPos.x = se.x;\r\n this._midKeyPos.y = se.y;\r\n this.update();\r\n return;\r\n }\r\n }\r\n };\r\n SCanvasView.prototype.onMouseUp = function (event) { };\r\n SCanvasView.prototype.onContextMenu = function (event) { };\r\n SCanvasView.prototype.onMouseWheel = function (event) {\r\n if (event.deltaY < 0) {\r\n this.scaleByPoint(this.wheelZoom, event.offsetX, event.offsetY);\r\n }\r\n else {\r\n this.scaleByPoint(1 / this.wheelZoom, event.offsetX, event.offsetY);\r\n }\r\n };\r\n SCanvasView.prototype.onKeyDown = function (event) { };\r\n SCanvasView.prototype.onKeyPress = function (event) { };\r\n SCanvasView.prototype.onKeyUp = function (event) { };\r\n SCanvasView.prototype.onTouchStart = function (event) {\r\n var touches = event.touches;\r\n if (touches.length == 1) {\r\n this._touchPoint.x = event.touches[0].clientX;\r\n this._touchPoint.y = event.touches[0].clientY;\r\n }\r\n if (touches.length == 2) {\r\n this._touchState = base_1.STouchState.Zoom;\r\n this._beforeLength = this.getDistance(event);\r\n }\r\n };\r\n SCanvasView.prototype.onTouchMove = function (event) {\r\n var touches = event.touches;\r\n if (touches.length == 1) {\r\n this.origin.x += event.touches[0].clientX - this._touchPoint.x;\r\n this.origin.y += event.touches[0].clientY - this._touchPoint.y;\r\n this._touchPoint.x = event.touches[0].clientX;\r\n this._touchPoint.y = event.touches[0].clientY;\r\n }\r\n if (touches.length == 2) {\r\n this.viewZoom(event);\r\n }\r\n };\r\n SCanvasView.prototype.onTouchEnd = function (event) {\r\n this._touchState = base_1.STouchState.None;\r\n };\r\n SCanvasView.prototype.onResize = function (event) { };\r\n SCanvasView.prototype.bindEvent = function (element) {\r\n element.onclick = this.onClick.bind(this);\r\n element.ondblclick = this.onDoubleClick.bind(this);\r\n element.onmousedown = this.onMouseDown.bind(this);\r\n element.onmousemove = this.onMouseMove.bind(this);\r\n element.onmouseup = this.onMouseUp.bind(this);\r\n element.oncontextmenu = this.onContextMenu.bind(this);\r\n element.onwheel = this.onMouseWheel.bind(this);\r\n element.onkeydown = this.onKeyDown.bind(this);\r\n element.onkeypress = this.onKeyPress.bind(this);\r\n element.onkeyup = this.onKeyUp.bind(this);\r\n element.ontouchstart = this.onTouchStart.bind(this);\r\n element.ontouchmove = this.onTouchMove.bind(this);\r\n element.ontouchend = this.onTouchEnd.bind(this);\r\n element.onresize = this.onResize.bind(this);\r\n };\r\n SCanvasView.prototype.requestAnimationFrame = function (callback) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - this._lastFrameTime));\r\n var id = setTimeout(function () {\r\n callback(currTime + timeToCall);\r\n }, timeToCall);\r\n this._lastFrameTime = currTime + timeToCall;\r\n return id;\r\n };\r\n SCanvasView.prototype.viewZoom = function (event) {\r\n if (this._touchState == base_1.STouchState.Zoom) {\r\n this._afterLength = this.getDistance(event);\r\n var gapLenght = this._afterLength - this._beforeLength;\r\n if (Math.abs(gapLenght) > 5 && this._beforeLength != 0.0) {\r\n var tempScale = this._afterLength / this._beforeLength;\r\n var p = this.getMiddlePoint(event);\r\n this.scaleByPoint(tempScale, p.x, p.y);\r\n this._beforeLength = this._afterLength;\r\n }\r\n }\r\n return true;\r\n };\r\n SCanvasView.prototype.getDistance = function (event) {\r\n if (event.touches.length < 2) {\r\n return 0;\r\n }\r\n var dx = event.touches[0].clientX - event.touches[1].clientX;\r\n var dy = event.touches[0].clientY - event.touches[1].clientY;\r\n return Math.sqrt(dx * dx + dy * dy);\r\n };\r\n SCanvasView.prototype.getMiddlePoint = function (event) {\r\n return new SPoint_1.SPoint((event.touches[0].clientX + event.touches[1].clientX) / 2, (event.touches[0].clientY + event.touches[1].clientY) / 2);\r\n };\r\n return SCanvasView;\r\n}(base_1.SObject));\r\nexports.SCanvasView = SCanvasView;\r\n","module.exports = __webpack_public_path__ + \"static/img/svg.ca80d8e1.svg\";","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.STextBaseLine = void 0;\r\nvar STextBaseLine;\r\n(function (STextBaseLine) {\r\n STextBaseLine[STextBaseLine[\"Alphabetic\"] = 0] = \"Alphabetic\";\r\n STextBaseLine[STextBaseLine[\"Top\"] = 1] = \"Top\";\r\n STextBaseLine[STextBaseLine[\"Hanging\"] = 2] = \"Hanging\";\r\n STextBaseLine[STextBaseLine[\"Middle\"] = 3] = \"Middle\";\r\n STextBaseLine[STextBaseLine[\"Ideographic\"] = 4] = \"Ideographic\";\r\n STextBaseLine[STextBaseLine[\"Bottom\"] = 5] = \"Bottom\";\r\n})(STextBaseLine = exports.STextBaseLine || (exports.STextBaseLine = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SObjectItem = void 0;\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nconst __1 = require(\"..\");\r\nclass SObjectItem extends __1.SGraphItem {\r\n constructor() {\r\n super(...arguments);\r\n this.anchorList = [];\r\n this._width = 64;\r\n this._height = 64;\r\n this.origin = new draw_1.SPoint();\r\n }\r\n get width() {\r\n return this._width;\r\n }\r\n set width(v) {\r\n if (v > 0) {\r\n if (v != this._width) {\r\n let w = this._width;\r\n this._width = v;\r\n this.onResize(new draw_1.SSize(w, this._height), new draw_1.SSize(this._width, this._height));\r\n }\r\n }\r\n }\r\n get height() {\r\n return this._height;\r\n }\r\n set height(v) {\r\n if (v > 0) {\r\n if (v != this._height) {\r\n let h = this._height;\r\n this._height = v;\r\n this.onResize(new draw_1.SSize(this._width, h), new draw_1.SSize(this._width, this._height));\r\n }\r\n }\r\n }\r\n onResize(oldSize, newSize) { }\r\n}\r\nexports.SObjectItem = SObjectItem;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SCanvasPaintEngine = void 0;\r\nvar SPaintEngine_1 = require(\"./SPaintEngine\");\r\nvar __1 = require(\"..\");\r\nvar SCanvasPaintEngine = (function (_super) {\r\n __extends(SCanvasPaintEngine, _super);\r\n function SCanvasPaintEngine(canvas) {\r\n var _this = _super.call(this) || this;\r\n _this._canvas = canvas;\r\n _this._canvas.imageSmoothingEnabled = true;\r\n return _this;\r\n }\r\n Object.defineProperty(SCanvasPaintEngine.prototype, \"type\", {\r\n get: function () {\r\n return __1.SPaintEngineType.Canvas;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SCanvasPaintEngine.prototype.clearRect = function (rect) {\r\n this.setMatrix();\r\n this._canvas.clearRect(rect.x, rect.y, rect.width, rect.height);\r\n };\r\n SCanvasPaintEngine.prototype.drawRect = function (rect) {\r\n var _this = this;\r\n this.init(function () {\r\n _this._canvas.beginPath();\r\n _this._canvas.rect(rect.x, rect.y, rect.width, rect.height);\r\n _this._canvas.stroke();\r\n _this._canvas.fill();\r\n });\r\n };\r\n SCanvasPaintEngine.prototype.drawCircle = function (cx, cy, r) {\r\n var _this = this;\r\n this.init(function () {\r\n _this._canvas.beginPath();\r\n _this._canvas.arc(cx, cy, r, 0, 2 * Math.PI, true);\r\n _this._canvas.fill();\r\n _this._canvas.stroke();\r\n });\r\n };\r\n SCanvasPaintEngine.prototype.drawEllipse = function (cx, cy, rx, ry) {\r\n var _this = this;\r\n this.init(function () {\r\n _this._canvas.beginPath();\r\n _this._canvas.ellipse(cx, cy, rx, ry, 0, 0, 2 * Math.PI, true);\r\n _this._canvas.fill();\r\n _this._canvas.stroke();\r\n });\r\n };\r\n SCanvasPaintEngine.prototype.drawLine = function (line) {\r\n var _this = this;\r\n this.init(function () {\r\n _this._canvas.beginPath();\r\n _this._canvas.moveTo(line.x1, line.y1);\r\n _this._canvas.lineTo(line.x2, line.y2);\r\n _this._canvas.stroke();\r\n });\r\n };\r\n SCanvasPaintEngine.prototype.drawPolyline = function (points) {\r\n var _this = this;\r\n if (points.length < 2) {\r\n return;\r\n }\r\n this.init(function () {\r\n _this._canvas.beginPath();\r\n _this._canvas.moveTo(points[0].x, points[0].y);\r\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\r\n var p = points_1[_i];\r\n _this._canvas.lineTo(p.x, p.y);\r\n }\r\n _this._canvas.stroke();\r\n });\r\n };\r\n SCanvasPaintEngine.prototype.drawPolygon = function (points) {\r\n var _this = this;\r\n if (points.length < 3) {\r\n return;\r\n }\r\n this.init(function () {\r\n _this._canvas.beginPath();\r\n _this._canvas.moveTo(points[0].x, points[0].y);\r\n for (var _i = 0, points_2 = points; _i < points_2.length; _i++) {\r\n var p = points_2[_i];\r\n _this._canvas.lineTo(p.x, p.y);\r\n }\r\n _this._canvas.closePath();\r\n _this._canvas.fill();\r\n _this._canvas.stroke();\r\n });\r\n };\r\n SCanvasPaintEngine.prototype.drawPath = function (path) {\r\n var _this = this;\r\n this.init(function () {\r\n _this.drawWay(path);\r\n });\r\n };\r\n SCanvasPaintEngine.prototype.drawText = function (text, x, y, maxWidth) {\r\n var _this = this;\r\n this.init(function () {\r\n _this.setFont();\r\n if (maxWidth == undefined) {\r\n _this._canvas.fillText(text, x, y);\r\n }\r\n else {\r\n _this._canvas.fillText(text, x, y, maxWidth);\r\n }\r\n });\r\n };\r\n SCanvasPaintEngine.prototype.drawImage = function (img, x, y, width, height) {\r\n var _this = this;\r\n this.init(function () {\r\n try {\r\n if (width == undefined) {\r\n _this._canvas.drawImage(img, x, y);\r\n }\r\n else {\r\n _this._canvas.drawImage(img, x, y, width, height);\r\n }\r\n }\r\n catch (e) {\r\n console.log(e);\r\n }\r\n });\r\n };\r\n SCanvasPaintEngine.prototype.textWidth = function (text) {\r\n return this._canvas.measureText(text).width;\r\n };\r\n SCanvasPaintEngine.prototype.quadraticCurveTo = function (cp1x, cp1y, x, y) {\r\n this._canvas.quadraticCurveTo(cp1x, cp1y, x, y);\r\n };\r\n SCanvasPaintEngine.prototype.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) {\r\n this._canvas.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\r\n };\r\n SCanvasPaintEngine.prototype.drawRoundRect = function (rect, r) {\r\n var _this = this;\r\n this.init(function () {\r\n _this._canvas.beginPath();\r\n _this._canvas.moveTo(rect.x, rect.y + r);\r\n _this._canvas.lineTo(rect.x, rect.bottom - r);\r\n _this._canvas.quadraticCurveTo(rect.x, rect.bottom, rect.x + r, rect.bottom);\r\n _this._canvas.lineTo(rect.right - r, rect.bottom);\r\n _this._canvas.quadraticCurveTo(rect.right, rect.bottom, rect.right, rect.bottom - r);\r\n _this._canvas.lineTo(rect.right, rect.y + r);\r\n _this._canvas.quadraticCurveTo(rect.right, rect.y, rect.right - r, rect.y);\r\n _this._canvas.lineTo(rect.x + r, rect.y);\r\n _this._canvas.quadraticCurveTo(rect.x, rect.y, rect.x, rect.y + r);\r\n _this._canvas.fill();\r\n _this._canvas.stroke();\r\n });\r\n };\r\n SCanvasPaintEngine.prototype.changeFont = function (font) {\r\n this._canvas.font = font.size + \"px \" + font.name;\r\n this.setTextAlign(font.textAlign);\r\n this.setBaseLine(font.textBaseLine);\r\n this.setTextDirection(font.textDirection);\r\n };\r\n SCanvasPaintEngine.prototype.init = function (fn) {\r\n this.setMatrix();\r\n this.setPen();\r\n this.setBrush();\r\n this.setComposite();\r\n this.setShadow();\r\n this.setClip();\r\n fn();\r\n };\r\n SCanvasPaintEngine.prototype.setPen = function () {\r\n this._canvas.strokeStyle = \"rgba(\" + this.state.pen.color.red + \", \" + this.state.pen.color.green + \", \" + this.state.pen.color.blue + \", \" + this.state.pen.color.alpha /\r\n 255.0 + \")\";\r\n this._canvas.lineWidth = this.state.pen.lineWidth;\r\n this._canvas.miterLimit = this.state.pen.miterLimit;\r\n if (this.state.pen.lineDash != null) {\r\n this._canvas.setLineDash(this.state.pen.lineDash);\r\n this._canvas.lineDashOffset = this.state.pen.dashOffset;\r\n }\r\n else {\r\n this._canvas.setLineDash([]);\r\n this._canvas.lineDashOffset = 0;\r\n }\r\n this.setLineCapStyle(this.state.pen.lineCapStyle);\r\n };\r\n SCanvasPaintEngine.prototype.setLineCapStyle = function (style) {\r\n if (style == undefined)\r\n return;\r\n if (style == __1.SLineCapStyle.Round) {\r\n this._canvas.lineCap = \"round\";\r\n }\r\n else if (style == __1.SLineCapStyle.Square) {\r\n this._canvas.lineCap = \"square\";\r\n }\r\n else {\r\n this._canvas.lineCap = \"butt\";\r\n }\r\n };\r\n SCanvasPaintEngine.prototype.setBrush = function () {\r\n if (this.state.brush.type == __1.SBrushType.Color) {\r\n this._canvas.fillStyle = \"rgba(\" + this.state.brush.color.red + \", \" + this.state.brush.color.green + \", \" + this.state.brush.color.blue + \", \" + this.state.brush.color.alpha /\r\n 255.0 + \")\";\r\n }\r\n else if (this.state.brush.type == __1.SBrushType.Gradient) {\r\n var gradient = this.state.brush.gradient, drawGradient_1;\r\n if (gradient instanceof __1.SLinearGradient) {\r\n drawGradient_1 = this._canvas.createLinearGradient(gradient.x1, gradient.y1, gradient.x2, gradient.y2);\r\n }\r\n else if (gradient instanceof __1.SRadialGradient) {\r\n drawGradient_1 = this._canvas.createRadialGradient(gradient.x1, gradient.y1, gradient.r1, gradient.x2, gradient.y2, gradient.r2);\r\n }\r\n if (gradient && drawGradient_1) {\r\n gradient.stopList.forEach(function (t) {\r\n drawGradient_1.addColorStop(t.pos, \"rgba(\" + t.color.red + \",\" + t.color.green + \",\" + t.color.blue + \",\" + t.color.alpha / 255.0 + \")\");\r\n });\r\n this._canvas.fillStyle = drawGradient_1;\r\n }\r\n }\r\n };\r\n SCanvasPaintEngine.prototype.setComposite = function () {\r\n this._canvas.globalCompositeOperation =\r\n SCanvasPaintEngine.gcoList[this.state._composite];\r\n };\r\n SCanvasPaintEngine.prototype.setShadow = function () {\r\n if (this.state.shadow.shadowBlur > 0 && this.state.shadow.shadowColor) {\r\n this._canvas.shadowBlur = this.state.shadow.shadowBlur;\r\n this._canvas.shadowColor = \"rgba(\" + this.state.shadow.shadowColor.red + \",\" + this.state.shadow.shadowColor.green + \", \" + this.state.shadow.shadowColor.blue + \", \" + this.state.shadow.shadowColor.alpha / 255.0 + \")\";\r\n this._canvas.shadowOffsetX = this.state.shadow.shadowOffsetX;\r\n this._canvas.shadowOffsetY = this.state.shadow.shadowOffsetY;\r\n }\r\n else {\r\n this._canvas.shadowBlur = 0;\r\n this._canvas.shadowColor = \"\";\r\n this._canvas.shadowOffsetX = 0;\r\n this._canvas.shadowOffsetY = 0;\r\n }\r\n };\r\n SCanvasPaintEngine.prototype.setFont = function () {\r\n this._canvas.font = this.state.font.size + \"px \" + this.state.font.name;\r\n this.setTextAlign(this.state.font.textAlign);\r\n this.setBaseLine(this.state.font.textBaseLine);\r\n this.setTextDirection(this.state.font.textDirection);\r\n };\r\n SCanvasPaintEngine.prototype.setTextAlign = function (value) {\r\n if (value == undefined) {\r\n return;\r\n }\r\n if (value === __1.STextAlign.Start) {\r\n this._canvas.textAlign = \"start\";\r\n }\r\n else if (value === __1.STextAlign.End) {\r\n this._canvas.textAlign = \"end\";\r\n }\r\n else if (value === __1.STextAlign.Left) {\r\n this._canvas.textAlign = \"left\";\r\n }\r\n else if (value === __1.STextAlign.Center) {\r\n this._canvas.textAlign = \"center\";\r\n }\r\n else {\r\n this._canvas.textAlign = \"right\";\r\n }\r\n };\r\n SCanvasPaintEngine.prototype.setBaseLine = function (value) {\r\n if (value == undefined) {\r\n return;\r\n }\r\n if (value == __1.STextBaseLine.Alphabetic) {\r\n this._canvas.textBaseline = \"alphabetic\";\r\n }\r\n else if (value == __1.STextBaseLine.Top) {\r\n this._canvas.textBaseline = \"top\";\r\n }\r\n else if (value == __1.STextBaseLine.Hanging) {\r\n this._canvas.textBaseline = \"hanging\";\r\n }\r\n else if (value == __1.STextBaseLine.Middle) {\r\n this._canvas.textBaseline = \"middle\";\r\n }\r\n else if (value == __1.STextBaseLine.Ideographic) {\r\n this._canvas.textBaseline = \"ideographic\";\r\n }\r\n else {\r\n this._canvas.textBaseline = \"bottom\";\r\n }\r\n };\r\n SCanvasPaintEngine.prototype.setTextDirection = function (value) {\r\n if (value == undefined) {\r\n return;\r\n }\r\n if (value == __1.STextDirection.Inherit) {\r\n this._canvas.direction = \"inherit\";\r\n }\r\n else if (value == __1.STextDirection.LTR) {\r\n this._canvas.direction = \"ltr\";\r\n }\r\n else {\r\n this._canvas.direction = \"rtl\";\r\n }\r\n };\r\n SCanvasPaintEngine.prototype.setMatrix = function () {\r\n this._canvas.setTransform(this.state.matrix.a, this.state.matrix.b, this.state.matrix.c, this.state.matrix.d, this.state.matrix.e, this.state.matrix.f);\r\n };\r\n SCanvasPaintEngine.prototype.setClip = function () {\r\n if (this.state.clip) {\r\n this.drawWay(this.state.clip);\r\n this._canvas.clip();\r\n }\r\n };\r\n SCanvasPaintEngine.prototype.drawWay = function (path) {\r\n var _this = this;\r\n this._canvas.beginPath();\r\n path.cmdList.forEach(function (cmd) {\r\n if (cmd.command == \"L\") {\r\n _this._canvas.lineTo(cmd.args[0], cmd.args[1]);\r\n }\r\n else if (cmd.command == \"M\") {\r\n _this._canvas.moveTo(cmd.args[0], cmd.args[1]);\r\n }\r\n else if (cmd.command == \"Z\") {\r\n _this._canvas.closePath();\r\n }\r\n else if (cmd.command == \"Q\") {\r\n _this._canvas.quadraticCurveTo(cmd.args[0], cmd.args[1], cmd.args[2], cmd.args[3]);\r\n }\r\n else if (cmd.command == \"T\") {\r\n _this._canvas.bezierCurveTo(cmd.args[0], cmd.args[1], cmd.args[2], cmd.args[3], cmd.args[4]);\r\n }\r\n else if (cmd.command == \"Ellipse\") {\r\n _this._canvas.ellipse(cmd.args[0], cmd.args[1], cmd.args[2], cmd.args[3], 0, 0, Math.PI * 2);\r\n }\r\n else if (cmd.command == \"Arc\") {\r\n _this._canvas.arc(cmd.args[0], cmd.args[1], cmd.args[2], cmd.args[3], cmd.args[4], cmd.args[5] == 1);\r\n }\r\n else if (cmd.command == \"ArcTo\") {\r\n _this._canvas.arcTo(cmd.args[0], cmd.args[1], cmd.args[2], cmd.args[3], cmd.args[4]);\r\n }\r\n });\r\n this._canvas.fill();\r\n this._canvas.stroke();\r\n };\r\n SCanvasPaintEngine.gcoList = [\r\n \"copy\",\r\n \"destination-atop\",\r\n \"destination-in\",\r\n \"destination-out\",\r\n \"destination-over\",\r\n \"lighter\",\r\n \"source-atop\",\r\n \"source-in\",\r\n \"source-out\",\r\n \"source-over\",\r\n \"xor\"\r\n ];\r\n return SCanvasPaintEngine;\r\n}(SPaintEngine_1.SPaintEngine));\r\nexports.SCanvasPaintEngine = SCanvasPaintEngine;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SPaintState = void 0;\r\nvar __1 = require(\"..\");\r\nvar __2 = require(\"..\");\r\nvar SShadow_1 = require(\"../SShadow\");\r\nvar base_1 = require(\"@persagy-web/base\");\r\nvar SPaintState = (function () {\r\n function SPaintState(state) {\r\n this.matrix = new base_1.SMatrix();\r\n this._pen = new __1.SPen();\r\n this._brush = new __1.SBrush();\r\n this._font = new __1.SFont();\r\n this._composite = __2.SCompositeType.SourceOver;\r\n this._shadow = new SShadow_1.SShadow();\r\n if (state != undefined) {\r\n this.pen = new __1.SPen(state.pen);\r\n this.brush = new __1.SBrush(state.brush);\r\n this.font = new __1.SFont(state.font);\r\n this._composite = state._composite;\r\n this.shadow = new SShadow_1.SShadow(state.shadow);\r\n this.clip = state.clip;\r\n var m = new base_1.SMatrix();\r\n m.m11 = state.matrix.m11;\r\n m.m12 = state.matrix.m12;\r\n m.m13 = state.matrix.m13;\r\n m.m14 = state.matrix.m14;\r\n m.m21 = state.matrix.m21;\r\n m.m22 = state.matrix.m22;\r\n m.m23 = state.matrix.m23;\r\n m.m24 = state.matrix.m24;\r\n m.m31 = state.matrix.m31;\r\n m.m32 = state.matrix.m32;\r\n m.m33 = state.matrix.m33;\r\n m.m34 = state.matrix.m34;\r\n m.m41 = state.matrix.m41;\r\n m.m42 = state.matrix.m42;\r\n m.m43 = state.matrix.m43;\r\n m.m44 = state.matrix.m44;\r\n this.matrix = m;\r\n }\r\n }\r\n Object.defineProperty(SPaintState.prototype, \"pen\", {\r\n get: function () {\r\n return this._pen;\r\n },\r\n set: function (value) {\r\n this._pen = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SPaintState.prototype, \"brush\", {\r\n get: function () {\r\n return this._brush;\r\n },\r\n set: function (value) {\r\n this._brush = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SPaintState.prototype, \"font\", {\r\n get: function () {\r\n return this._font;\r\n },\r\n set: function (value) {\r\n this._font = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SPaintState.prototype, \"shadow\", {\r\n get: function () {\r\n return this._shadow;\r\n },\r\n set: function (v) {\r\n this._shadow = v;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SPaintState.prototype, \"clip\", {\r\n get: function () {\r\n return this._clip;\r\n },\r\n set: function (v) {\r\n if (v) {\r\n this._clip = new __1.SPath();\r\n this._clip.addPath(v);\r\n }\r\n else {\r\n this._clip = v;\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return SPaintState;\r\n}());\r\nexports.SPaintState = SPaintState;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SDoorItem = void 0;\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nconst SMathUtil_1 = require(\"../../utils/SMathUtil\");\r\nconst __1 = require(\"../..\");\r\nconst graph_1 = require(\"@persagy-web/graph\");\r\nclass SDoorItem extends graph_1.SGraphItem {\r\n constructor(parent, data) {\r\n super(parent);\r\n this.pointArr = [];\r\n this.r = 0;\r\n this.ang = 0;\r\n this.p = new draw_1.SPoint(0, 0);\r\n this.startAng = -Math.PI / 2;\r\n this.minX = Number.MAX_SAFE_INTEGER;\r\n this.maxX = Number.MIN_SAFE_INTEGER;\r\n this.minY = Number.MAX_SAFE_INTEGER;\r\n this.maxY = Number.MIN_SAFE_INTEGER;\r\n this.data = data;\r\n this.zOrder = __1.ItemOrder.doorOrder;\r\n if (this.data.OutLine.length) {\r\n this.pointArr = this.data.OutLine[0].map((t) => {\r\n let x = t.X, y = -t.Y;\r\n if (x < this.minX) {\r\n this.minX = x;\r\n }\r\n if (y < this.minY) {\r\n this.minY = y;\r\n }\r\n if (x > this.maxX) {\r\n this.maxX = x;\r\n }\r\n if (y > this.maxY) {\r\n this.maxY = y;\r\n }\r\n return new draw_1.SPoint(t.X, -t.Y);\r\n });\r\n let p1 = this.pointArr[0], p2 = this.pointArr[1];\r\n this.p = p1;\r\n const HX = (this.data.HandDirection.X = Number(this.data.HandDirection.X.toFixed()));\r\n const HY = (this.data.HandDirection.Y = Number(this.data.HandDirection.Y.toFixed()));\r\n const FX = (this.data.FaceDirection.X = Number(this.data.FaceDirection.X.toFixed()));\r\n const FY = (this.data.FaceDirection.Y = Number(this.data.FaceDirection.Y.toFixed()));\r\n let dotProduct = (p2.x - p1.x) * HX + (p2.y - p1.y) * -HY;\r\n if (dotProduct > 0) {\r\n this.p = p2;\r\n p2 = p1;\r\n p1 = this.p;\r\n }\r\n this.r = SMathUtil_1.SMathUtil.pointDistance(p1.x, p1.y, p2.x, p2.y);\r\n let fo = Math.atan(-FY / FX);\r\n this.ang = FX > 0 ? fo : fo + Math.PI;\r\n let direction = (p2.x - p1.x) * -FY - (p2.y - p1.y) * FX;\r\n if (direction > 0) {\r\n this.startAng = 0;\r\n }\r\n }\r\n }\r\n boundingRect() {\r\n return new draw_1.SRect(0, 0, this.r, this.r);\r\n }\r\n onDraw(painter) {\r\n painter.translate(this.p.x, this.p.y);\r\n painter.rotate(this.ang);\r\n painter.pen.lineWidth = 100;\r\n painter.pen.color = __1.ItemColor.doorColor;\r\n painter.drawLine(0, 0, this.r, 0);\r\n painter.pen.lineDash = [50, 100];\r\n painter.pen.lineWidth = painter.toPx(1);\r\n }\r\n}\r\nexports.SDoorItem = SDoorItem;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SRect = void 0;\r\nvar SPoint_1 = require(\"./SPoint\");\r\nvar SSize_1 = require(\"./SSize\");\r\nvar SRect = (function () {\r\n function SRect(x, y, width, height) {\r\n if (x == undefined) {\r\n this.leftTop = new SPoint_1.SPoint(0, 0);\r\n this.size = new SSize_1.SSize(0, 0);\r\n }\r\n else if (x instanceof SPoint_1.SPoint && y instanceof SPoint_1.SPoint) {\r\n this.leftTop = new SPoint_1.SPoint(x.x, x.y);\r\n this.size = new SSize_1.SSize(y.x - x.x, y.y - x.y);\r\n }\r\n else if (x instanceof SPoint_1.SPoint && y instanceof SSize_1.SSize) {\r\n this.leftTop = new SPoint_1.SPoint(x.x, x.y);\r\n this.size = new SSize_1.SSize(y.width, y.height);\r\n }\r\n else {\r\n this.leftTop = new SPoint_1.SPoint(x, y);\r\n this.size = new SSize_1.SSize(width, height);\r\n }\r\n }\r\n Object.defineProperty(SRect.prototype, \"x\", {\r\n get: function () {\r\n return this.leftTop.x;\r\n },\r\n set: function (value) {\r\n this.leftTop.x = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SRect.prototype, \"y\", {\r\n get: function () {\r\n return this.leftTop.y;\r\n },\r\n set: function (value) {\r\n this.leftTop.y = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SRect.prototype, \"width\", {\r\n get: function () {\r\n return this.size.width;\r\n },\r\n set: function (v) {\r\n this.size.width = v;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SRect.prototype, \"height\", {\r\n get: function () {\r\n return this.size.height;\r\n },\r\n set: function (v) {\r\n this.size.height = v;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SRect.prototype, \"left\", {\r\n get: function () {\r\n return this.leftTop.x;\r\n },\r\n set: function (v) {\r\n this.leftTop.x = v;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SRect.prototype, \"top\", {\r\n get: function () {\r\n return this.y;\r\n },\r\n set: function (v) {\r\n this.y = v;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SRect.prototype, \"right\", {\r\n get: function () {\r\n return this.x + this.width;\r\n },\r\n set: function (right) {\r\n this.width = right - this.x;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SRect.prototype, \"bottom\", {\r\n get: function () {\r\n return this.y + this.height;\r\n },\r\n set: function (value) {\r\n this.height = value - this.y;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SRect.prototype.isEmpty = function () {\r\n return this.size.isEmpty();\r\n };\r\n SRect.prototype.isNull = function () {\r\n return this.size.isNull();\r\n };\r\n SRect.prototype.isValid = function () {\r\n return this.size.isValid();\r\n };\r\n SRect.prototype.isIn = function (rect) {\r\n return (this.left <= rect.left &&\r\n this.right >= rect.right &&\r\n this.bottom >= rect.bottom &&\r\n this.top <= rect.top);\r\n };\r\n SRect.prototype.contains = function (x, y) {\r\n return (x >= this.left &&\r\n x <= this.right &&\r\n y >= this.top &&\r\n y <= this.bottom);\r\n };\r\n SRect.prototype.center = function () {\r\n return new SPoint_1.SPoint(this.x + this.width / 2.0, this.y + this.height / 2.0);\r\n };\r\n SRect.prototype.translate = function (dx, dy) {\r\n this.x += dx;\r\n this.y += dy;\r\n };\r\n SRect.prototype.translated = function (dx, dy) {\r\n return new SRect(this.x + dx, this.y + dy, this.width, this.height);\r\n };\r\n SRect.prototype.adjust = function (dx, dy, dw, dh) {\r\n this.x += dx;\r\n this.y += dy;\r\n this.width += dw;\r\n this.height += dh;\r\n };\r\n SRect.prototype.adjusted = function (dx, dy, dw, dh) {\r\n return new SRect(this.x + dx, this.y + dy, this.width + dw, this.height + dh);\r\n };\r\n SRect.prototype.union = function (rect) {\r\n var r = this.unioned(rect);\r\n this.x = r.x;\r\n this.y = r.y;\r\n this.width = r.width;\r\n this.height = r.height;\r\n };\r\n SRect.prototype.unioned = function (rect) {\r\n var left = Math.min(this.left, rect.left);\r\n var top = Math.min(this.top, rect.top);\r\n var right = Math.max(this.right, rect.right);\r\n var bottom = Math.max(this.bottom, rect.bottom);\r\n return new SRect(left, top, right - left, bottom - top);\r\n };\r\n SRect.prototype.intersected = function (rect) {\r\n var minX = this.left < rect.left ? this.left : rect.left;\r\n var minY = this.top < rect.top ? this.top : rect.top;\r\n var maxX = this.right > rect.right ? this.right : rect.right;\r\n var maxY = this.bottom > rect.bottom ? this.bottom : rect.bottom;\r\n if (this.width + rect.width > maxX - minX &&\r\n this.height + rect.height > maxY - minY) {\r\n return new SRect();\r\n }\r\n return new SRect();\r\n };\r\n SRect.prototype.intersect = function (rect) {\r\n var left = Math.min(this.left, rect.left);\r\n var top = Math.min(this.top, rect.top);\r\n var right = Math.max(this.right, rect.right);\r\n var bottom = Math.max(this.bottom, rect.bottom);\r\n return new SRect(left, top, right - left, bottom - top);\r\n };\r\n return SRect;\r\n}());\r\nexports.SRect = SRect;\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAABaklEQVRoBe1XQXLCMAy0M/yr+Qzk0hxoHwAfAA5wSflM+jHSaMb2CEVgQjU4OMohsSx7vVprYssYfVQBVUAVUAXmrID1wR+O5/JiLqW3p/wtTNGu62ULHBeeqCO/8faUvz1XoNfCq4DXOz9hB3AQ1tjfznQt7kvd7jmVPacPyoMNAMh/19WWDk5p744N8BkEkGcKYaX3p6bB9pj212dV+fEUB/v8mGe+bAphoK4zK2yPbIcAGJzgG4l5NTz/FLLW/FyF/KQhhUOXj6aQVK5K4dAA8kwhODTcf5cGnMx2B9lgfTaF3Ik3ODQGs1/Y0XNiV8snheCK6m55bKRT6gSuU+Izby5akaXYf63IUqiuFVkK1R9Zk71K4Im0ksK+WBvfQCkO9sVw7vmjATCV1D086gtVF4MTfHTSGDufu9CtqKUqKSkcyjOaQlK5KoVDA8gzhbQio/ssYGtFJiCiGIRWZGJSKpAqoAr8W4E/fZNxDUsYXroAAAAASUVORK5CYII=\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SGraphSelectContainer = void 0;\r\nconst SGraphItem_1 = require(\"./SGraphItem\");\r\nconst SGraphLayoutType_1 = require(\"./enums/SGraphLayoutType\");\r\nconst SOrderSetType_1 = require(\"./enums/SOrderSetType\");\r\nconst draw_1 = require(\"@persagy-web/draw\");\r\nconst SMathUtil_1 = require(\"./utils/SMathUtil\");\r\nclass SGraphSelectContainer extends SGraphItem_1.SGraphItem {\r\n constructor() {\r\n super();\r\n this._itemList = [];\r\n this.pointList = [];\r\n this._width = 0;\r\n this._height = 0;\r\n this.oldWidth = 0;\r\n this.oldHeight = 0;\r\n this.minWidth = 0;\r\n this.maxWidth = Number.MAX_SAFE_INTEGER;\r\n this.minHeight = 0;\r\n this.maxHeight = Number.MAX_SAFE_INTEGER;\r\n this._strokeColor = new draw_1.SColor(\"#82C7FC\");\r\n this._fillColor = new draw_1.SColor(\"#ffffff\");\r\n this.radix = 0.001;\r\n this.radius = 5;\r\n this.dis = 10;\r\n this.sceneDis = 10;\r\n this._curIndex = -1;\r\n this.zOrder = 9999999;\r\n this.visible = false;\r\n this.moveable = true;\r\n }\r\n get itemList() {\r\n return this._itemList;\r\n }\r\n get width() {\r\n return this._width;\r\n }\r\n set width(v) {\r\n if (v == this._width) {\r\n return;\r\n }\r\n this._width = v;\r\n this.update();\r\n }\r\n get height() {\r\n return this._height;\r\n }\r\n set height(v) {\r\n if (v == this._height) {\r\n return;\r\n }\r\n this._height = v;\r\n this.update();\r\n }\r\n get strokeColor() {\r\n return this._strokeColor;\r\n }\r\n set strokeColor(v) {\r\n this._strokeColor = v;\r\n this.update();\r\n }\r\n get fillColor() {\r\n return this._fillColor;\r\n }\r\n set fillColor(v) {\r\n this._fillColor = v;\r\n this.update();\r\n }\r\n get count() {\r\n return this.itemList.length;\r\n }\r\n get curIndex() {\r\n return this._curIndex;\r\n }\r\n set curIndex(v) {\r\n if (v === this._curIndex) {\r\n return;\r\n }\r\n this._curIndex = v;\r\n this.update();\r\n }\r\n addItem(item) {\r\n for (let i = 0; i < this.itemList.length; i++) {\r\n if (this.itemList[i] == item) {\r\n return;\r\n }\r\n }\r\n item.selected = true;\r\n this.itemList.push(item);\r\n this.throttle(this.selectChange, 80);\r\n }\r\n setItem(item) {\r\n this.itemList.forEach((t) => {\r\n t.selected = false;\r\n });\r\n this.itemList.length = 0;\r\n item.selected = true;\r\n this.itemList.push(item);\r\n this.throttle(this.selectChange, 80);\r\n }\r\n clear() {\r\n this.itemList.forEach((t) => {\r\n t.selected = false;\r\n });\r\n this.itemList.length = 0;\r\n this.throttle(this.selectChange, 80);\r\n }\r\n toggleItem(item) {\r\n for (let i = 0; i < this.itemList.length; i++) {\r\n if (this.itemList[i] == item) {\r\n this.itemList[i].selected = false;\r\n this.itemList.splice(i, 1);\r\n this.throttle(this.selectChange, 80);\r\n return;\r\n }\r\n }\r\n if (this.itemList.length) {\r\n if (item.parent != this.itemList[0].parent) {\r\n return;\r\n }\r\n }\r\n item.selected = true;\r\n this.itemList.push(item);\r\n this.throttle(this.selectChange, 80);\r\n }\r\n layout(type) {\r\n if (this.itemList.length < 2) {\r\n return;\r\n }\r\n switch (type) {\r\n case SGraphLayoutType_1.SGraphLayoutType.Left:\r\n this.alignLeft();\r\n break;\r\n case SGraphLayoutType_1.SGraphLayoutType.Bottom:\r\n this.alignBottom();\r\n break;\r\n case SGraphLayoutType_1.SGraphLayoutType.Center:\r\n this.alignCenter();\r\n break;\r\n case SGraphLayoutType_1.SGraphLayoutType.Horizontal:\r\n this.alignHorizontal();\r\n break;\r\n case SGraphLayoutType_1.SGraphLayoutType.Middle:\r\n this.alignMiddle();\r\n break;\r\n case SGraphLayoutType_1.SGraphLayoutType.Right:\r\n this.alignRight();\r\n break;\r\n case SGraphLayoutType_1.SGraphLayoutType.Top:\r\n this.alignTop();\r\n break;\r\n case SGraphLayoutType_1.SGraphLayoutType.Vertical:\r\n this.alignVertical();\r\n break;\r\n default:\r\n console.log(\"对齐类型不存在\");\r\n break;\r\n }\r\n }\r\n setOrder(type) {\r\n if (this.itemList.length < 1) {\r\n return;\r\n }\r\n switch (type) {\r\n case SOrderSetType_1.SOrderSetType.Top:\r\n this.setTop();\r\n break;\r\n case SOrderSetType_1.SOrderSetType.Bottom:\r\n this.setBottom();\r\n break;\r\n case SOrderSetType_1.SOrderSetType.After:\r\n this.setAfter();\r\n break;\r\n case SOrderSetType_1.SOrderSetType.Before:\r\n this.setBefore();\r\n break;\r\n default:\r\n console.log(\"图层操作类型不存在\");\r\n break;\r\n }\r\n }\r\n alignLeft() {\r\n let standardItem = this.itemList[0];\r\n let p = standardItem.mapToScene(standardItem.boundingRect().x, standardItem.boundingRect().y);\r\n for (let i = 1; i < this.itemList.length; i++) {\r\n let curItem = this.itemList[i];\r\n if (curItem.moveable) {\r\n let p1 = curItem.mapFromScene(p.x, p.y);\r\n curItem.x =\r\n (p1.x - curItem.boundingRect().x) * curItem.inverseScale +\r\n curItem.x;\r\n }\r\n }\r\n }\r\n alignTop() {\r\n let standardItem = this.itemList[0];\r\n let p = standardItem.mapToScene(standardItem.boundingRect().x, standardItem.boundingRect().y);\r\n for (let i = 1; i < this.itemList.length; i++) {\r\n let curItem = this.itemList[i];\r\n if (curItem.moveable) {\r\n let p1 = curItem.mapFromScene(p.x, p.y);\r\n curItem.y =\r\n (p1.y - curItem.boundingRect().y) * curItem.inverseScale +\r\n curItem.y;\r\n }\r\n }\r\n }\r\n alignRight() {\r\n let standardItem = this.itemList[0];\r\n let p = standardItem.mapToScene(standardItem.boundingRect().right, standardItem.boundingRect().bottom);\r\n for (let i = 1; i < this.itemList.length; i++) {\r\n let curItem = this.itemList[i];\r\n if (curItem.moveable) {\r\n let p1 = curItem.mapFromScene(p.x, p.y);\r\n curItem.x =\r\n (p1.x - curItem.boundingRect().right) *\r\n curItem.inverseScale +\r\n curItem.x;\r\n }\r\n }\r\n }\r\n alignBottom() {\r\n let standardItem = this.itemList[0];\r\n let p = standardItem.mapToScene(standardItem.boundingRect().right, standardItem.boundingRect().bottom);\r\n for (let i = 1; i < this.itemList.length; i++) {\r\n let curItem = this.itemList[i];\r\n if (curItem.moveable) {\r\n let p1 = curItem.mapFromScene(p.x, p.y);\r\n curItem.y =\r\n (p1.y - curItem.boundingRect().bottom) *\r\n curItem.inverseScale +\r\n curItem.y;\r\n }\r\n }\r\n }\r\n alignCenter() {\r\n let standardItem = this.itemList[0];\r\n let center = standardItem.boundingRect().center();\r\n let p = standardItem.mapToScene(center.x, center.y);\r\n for (let i = 1; i < this.itemList.length; i++) {\r\n let curItem = this.itemList[i];\r\n if (curItem.moveable) {\r\n let p1 = curItem.mapFromScene(p.x, p.y);\r\n curItem.x =\r\n (p1.x - curItem.boundingRect().center().x) *\r\n curItem.inverseScale +\r\n curItem.x;\r\n }\r\n }\r\n }\r\n alignMiddle() {\r\n let standardItem = this.itemList[0];\r\n let center = standardItem.boundingRect().center();\r\n let p = standardItem.mapToScene(center.x, center.y);\r\n for (let i = 1; i < this.itemList.length; i++) {\r\n let curItem = this.itemList[i];\r\n if (curItem.moveable) {\r\n let p1 = curItem.mapFromScene(p.x, p.y);\r\n curItem.y =\r\n (p1.y - curItem.boundingRect().center().y) *\r\n curItem.inverseScale +\r\n curItem.y;\r\n }\r\n }\r\n }\r\n alignVertical() {\r\n if (this.itemList.length < 3) {\r\n return;\r\n }\r\n for (let i = 0; i < this.itemList.length - 1; i++) {\r\n for (let j = 0; j < this.itemList.length - 1 - i; j++) {\r\n let curItemCenter = this.itemList[j].boundingRect().center();\r\n let nextItemCenter = this.itemList[j + 1]\r\n .boundingRect()\r\n .center();\r\n let curCenterY = this.itemList[j].mapToScene(curItemCenter.x, curItemCenter.y).y;\r\n let nextCenterY = this.itemList[j + 1].mapToScene(nextItemCenter.x, nextItemCenter.y).y;\r\n if (curCenterY > nextCenterY) {\r\n let temp = this.itemList[j];\r\n this.itemList[j] = this.itemList[j + 1];\r\n this.itemList[j + 1] = temp;\r\n }\r\n }\r\n }\r\n let top = this.itemList[0];\r\n let bottom = this.itemList[this.itemList.length - 1];\r\n let topCenter = top.boundingRect().center();\r\n let bottomCenter = bottom.boundingRect().center();\r\n let leftToRight = bottom.mapToScene(bottomCenter.x, bottomCenter.y).y -\r\n top.mapToScene(topCenter.x, topCenter.y).y;\r\n let average = leftToRight / (this.itemList.length - 1);\r\n for (let k = 1; k < this.itemList.length - 1; k++) {\r\n let curItem = this.itemList[k];\r\n if (curItem.moveable) {\r\n let p1 = top.mapToScene(top.boundingRect().center().x, top.boundingRect().center().y);\r\n let p2 = curItem.mapFromScene(p1.x, p1.y + average * k);\r\n curItem.y =\r\n (p2.y - curItem.boundingRect().center().y) *\r\n curItem.inverseScale +\r\n curItem.y;\r\n }\r\n }\r\n }\r\n alignHorizontal() {\r\n if (this.itemList.length < 3) {\r\n return;\r\n }\r\n for (let i = 0; i < this.itemList.length - 1; i++) {\r\n for (let j = 0; j < this.itemList.length - 1 - i; j++) {\r\n let curItemCenter = this.itemList[j].boundingRect().center();\r\n let nextItemCenter = this.itemList[j + 1]\r\n .boundingRect()\r\n .center();\r\n let curCenterX = this.itemList[j].mapToScene(curItemCenter.x, curItemCenter.y).x;\r\n let nextCenterX = this.itemList[j + 1].mapToScene(nextItemCenter.x, nextItemCenter.y).x;\r\n if (curCenterX > nextCenterX) {\r\n let temp = this.itemList[j];\r\n this.itemList[j] = this.itemList[j + 1];\r\n this.itemList[j + 1] = temp;\r\n }\r\n }\r\n }\r\n let left = this.itemList[0];\r\n let right = this.itemList[this.itemList.length - 1];\r\n let leftCenter = left.boundingRect().center();\r\n let rightCenter = right.boundingRect().center();\r\n let leftToRight = right.mapToScene(rightCenter.x, rightCenter.y).x -\r\n left.mapToScene(leftCenter.x, leftCenter.y).x;\r\n let average = leftToRight / (this.itemList.length - 1);\r\n for (let k = 1; k < this.itemList.length - 1; k++) {\r\n let curItem = this.itemList[k];\r\n if (curItem.moveable) {\r\n let p1 = left.mapToScene(left.boundingRect().center().x, left.boundingRect().center().y);\r\n let p2 = curItem.mapFromScene(p1.x + average * k, p1.y);\r\n curItem.x =\r\n (p2.x - curItem.boundingRect().center().x) *\r\n curItem.inverseScale +\r\n curItem.x;\r\n }\r\n }\r\n }\r\n setTop() {\r\n const arr = this.sortItemList(this.itemList, true);\r\n arr.forEach(it => {\r\n let max = it.zOrder;\r\n if (it.parent) {\r\n it.parent.children.forEach(item => {\r\n if (Number(max.toFixed()) == Number(item.zOrder.toFixed())) {\r\n if (item.zOrder > max) {\r\n max = item.zOrder;\r\n }\r\n }\r\n });\r\n it.zOrder = max + this.radix;\r\n }\r\n });\r\n }\r\n setBottom() {\r\n const arr = this.sortItemList(this.itemList, false);\r\n arr.forEach(it => {\r\n let min = it.zOrder;\r\n if (it.parent) {\r\n it.parent.children.forEach(item => {\r\n if (Number(min.toFixed()) == Number(item.zOrder.toFixed())) {\r\n if (item.zOrder < min) {\r\n min = item.zOrder;\r\n }\r\n }\r\n });\r\n it.zOrder = min - this.radix;\r\n }\r\n });\r\n }\r\n setBefore() {\r\n const arr = this.sortItemList(this.itemList, false);\r\n arr.forEach(it => {\r\n if (it.parent) {\r\n const min = it.zOrder;\r\n let temp = it.parent.children\r\n .map(child => {\r\n if (Number(child.zOrder.toFixed()) ==\r\n Number(min.toFixed())) {\r\n return child.zOrder;\r\n }\r\n })\r\n .filter(c => c);\r\n temp = [...new Set(temp)];\r\n const index = temp.indexOf(it.zOrder);\r\n if (index <= 1) {\r\n it.zOrder = temp[0] - this.radix;\r\n }\r\n else if (index > 1) {\r\n it.zOrder = (temp[index - 1] + temp[index - 2]) / 2;\r\n }\r\n }\r\n });\r\n }\r\n setAfter() {\r\n const arr = this.sortItemList(this.itemList, false);\r\n arr.forEach(it => {\r\n if (it.parent) {\r\n const max = it.zOrder;\r\n let temp = it.parent.children\r\n .map(child => {\r\n if (Number(child.zOrder.toFixed()) ==\r\n Number(max.toFixed())) {\r\n return child.zOrder;\r\n }\r\n })\r\n .filter(c => c);\r\n temp = [...new Set(temp)].reverse();\r\n const index = temp.indexOf(it.zOrder);\r\n if (index <= 1) {\r\n it.zOrder = temp[0] + this.radix;\r\n }\r\n else if (index > 1) {\r\n it.zOrder = (temp[index - 1] + temp[index - 2]) / 2;\r\n }\r\n }\r\n });\r\n }\r\n sortItemList(arr, flag = true) {\r\n const list = arr.map(t => t);\r\n list.sort(this.compare(\"zOrder\", flag));\r\n return list;\r\n }\r\n compare(prop, flag) {\r\n const f = flag ? 1 : -1;\r\n return (a, b) => {\r\n a = a[prop];\r\n b = b[prop];\r\n if (a < b) {\r\n return f * -1;\r\n }\r\n if (a > b) {\r\n return f * 1;\r\n }\r\n return 0;\r\n };\r\n }\r\n throttle(fn, wait) {\r\n if (this.timer)\r\n clearTimeout(this.timer);\r\n this.timer = setTimeout(() => {\r\n this.selectChange();\r\n }, wait);\r\n }\r\n selectChange() {\r\n this.$emit(\"listChange\", this.itemList);\r\n if (this.count > 0) {\r\n this.getSize();\r\n this.calExtreme();\r\n if (this.count > 1 ||\r\n (this.count == 1 && this.itemList[0].showSelect)) {\r\n this.visible = true;\r\n }\r\n }\r\n else {\r\n this.visible = false;\r\n this.curIndex = -1;\r\n }\r\n }\r\n calItemBounding() {\r\n if (this.itemList.length) {\r\n const fir = this.itemList[0];\r\n let rect = fir.boundingRect().adjusted(fir.pos.x, fir.pos.y, 0, 0);\r\n for (let i = 1; i < this.itemList.length; i++) {\r\n const cur = this.itemList[i];\r\n rect = rect.unioned(cur.boundingRect().adjusted(cur.pos.x, cur.pos.y, 0, 0));\r\n }\r\n return rect;\r\n }\r\n else {\r\n return new draw_1.SRect();\r\n }\r\n }\r\n getSize() {\r\n const r = this.calItemBounding();\r\n this.width = r.width;\r\n this.height = r.height;\r\n this.moveTo(r.left, r.top);\r\n }\r\n calExtreme() {\r\n this.pointList = [];\r\n this.pointList.push(new draw_1.SPoint(0, 0));\r\n this.pointList.push(new draw_1.SPoint(this.width / 2, 0));\r\n this.pointList.push(new draw_1.SPoint(this.width, 0));\r\n this.pointList.push(new draw_1.SPoint(this.width, this.height / 2));\r\n this.pointList.push(new draw_1.SPoint(this.width, this.height));\r\n this.pointList.push(new draw_1.SPoint(this.width / 2, this.height));\r\n this.pointList.push(new draw_1.SPoint(0, this.height));\r\n this.pointList.push(new draw_1.SPoint(0, this.height / 2));\r\n }\r\n getNearestPoint(p) {\r\n let len = this.sceneDis;\r\n this.curIndex = -1;\r\n for (let i = 0; i < this.pointList.length; i++) {\r\n let dis = SMathUtil_1.SMathUtil.pointDistance(p.x, p.y, this.pointList[i].x, this.pointList[i].y);\r\n if (dis < len) {\r\n len = dis;\r\n this.curIndex = i;\r\n }\r\n }\r\n }\r\n boundingRect() {\r\n if (this.visible) {\r\n return new draw_1.SRect(-this.sceneDis, -this.sceneDis, this.width + this.sceneDis + this.sceneDis, this.height + this.sceneDis + this.sceneDis);\r\n }\r\n else {\r\n return new draw_1.SRect();\r\n }\r\n }\r\n resize(oldSize, newSize) {\r\n for (let v of this.itemList) {\r\n v.resize && v.resize(oldSize, newSize);\r\n const p = v.mapToScene(this.pos.x, this.pos.y);\r\n const p2 = v.mapFromScene(p.x, p.y);\r\n v.moveTo(p2.x - v.boundingRect().x, p2.y - v.boundingRect().y);\r\n }\r\n }\r\n onMouseDown(event) {\r\n if (event.buttons == 1) {\r\n this.getNearestPoint(new draw_1.SPoint(event.x, event.y));\r\n if (this.curIndex < 0) {\r\n this.curPoint = undefined;\r\n return super.onMouseDown(event);\r\n }\r\n else {\r\n const cur = this.pointList[this.curIndex];\r\n this.curPoint = new draw_1.SPoint(cur.x, cur.y);\r\n this.oldWidth = this.width;\r\n this.oldHeight = this.height;\r\n this.grabItem(this);\r\n }\r\n this.update();\r\n return true;\r\n }\r\n return super.onMouseDown(event);\r\n }\r\n onMouseMove(event) {\r\n this.setCursor(9);\r\n if (this.curIndex > -1 &&\r\n this.count == 1 &&\r\n this.itemList[0]._resizeable) {\r\n this.setCursor(this.curIndex);\r\n const difX = event.x - this.curPoint.x;\r\n const difY = event.y - this.curPoint.y;\r\n const mp = this.toParentChange(difX, difY);\r\n const oldSize = new draw_1.SSize(this.width, this.height);\r\n let resultX, resultY;\r\n switch (this.curIndex) {\r\n case 0:\r\n resultX = this.width - difX;\r\n resultY = this.height - difY;\r\n if (resultX > this.minWidth && resultX < this.maxWidth) {\r\n this.width = resultX;\r\n this.x = this.x + mp.x;\r\n }\r\n if (resultY > this.minHeight && resultY < this.maxHeight) {\r\n this.height = resultY;\r\n this.y = this.y + mp.y;\r\n }\r\n break;\r\n case 1:\r\n resultY = this.height - difY;\r\n if (resultY > this.minHeight && resultY < this.maxHeight) {\r\n this.height = resultY;\r\n this.y = this.y + mp.y;\r\n }\r\n break;\r\n case 2:\r\n resultX = this.oldWidth + difX;\r\n resultY = this.height - difY;\r\n if (resultX > this.minWidth && resultX < this.maxWidth) {\r\n this.width = resultX;\r\n }\r\n if (resultY > this.minHeight && resultY < this.maxHeight) {\r\n this.height = resultY;\r\n this.y = this.y + mp.y;\r\n }\r\n break;\r\n case 3:\r\n resultX = this.oldWidth + difX;\r\n if (resultX > this.minWidth && resultX < this.maxWidth) {\r\n this.width = resultX;\r\n }\r\n break;\r\n case 4:\r\n resultX = this.oldWidth + difX;\r\n resultY = this.oldHeight + difY;\r\n if (resultX > this.minWidth && resultX < this.maxWidth) {\r\n this.width = resultX;\r\n }\r\n if (resultY > this.minHeight && resultY < this.maxHeight) {\r\n this.height = resultY;\r\n }\r\n break;\r\n case 5:\r\n resultY = this.oldHeight + difY;\r\n if (resultY > this.minHeight && resultY < this.maxHeight) {\r\n this.height = resultY;\r\n }\r\n break;\r\n case 6:\r\n resultX = this.width - difX;\r\n resultY = this.oldHeight + difY;\r\n if (resultX > this.minWidth && resultX < this.maxWidth) {\r\n this.width = resultX;\r\n this.x = this.x + mp.x;\r\n }\r\n if (resultY > this.minHeight && resultY < this.maxHeight) {\r\n this.height = resultY;\r\n }\r\n break;\r\n case 7:\r\n resultX = this.width - difX;\r\n if (resultX > this.minWidth && resultX < this.maxWidth) {\r\n this.width = resultX;\r\n this.x = this.x + mp.x;\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n const newSize = new draw_1.SSize(this.width, this.height);\r\n this.resize(oldSize, newSize);\r\n this.calExtreme();\r\n }\r\n else {\r\n let flag = true;\r\n for (let v of this.itemList) {\r\n if (!v.moveable) {\r\n flag = false;\r\n }\r\n }\r\n if (flag) {\r\n super.onMouseMove(event);\r\n this.setCursor(8);\r\n if (this._isMoving) {\r\n const mp = this.toParentChange(event.x - this._mouseDownPos.x, event.y - this._mouseDownPos.y);\r\n this.itemList.forEach(t => {\r\n t.moveTo(t.pos.x + mp.x, t.pos.y + mp.y);\r\n });\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n setCursor(n) {\r\n this.cursor = SGraphSelectContainer.cursorList[n] || \"default\";\r\n if (this.scene && this.scene.view) {\r\n this.scene.view.cursor = this.cursor;\r\n }\r\n }\r\n onMouseUp(event) {\r\n this.curIndex = -1;\r\n super.onMouseUp(event);\r\n return true;\r\n }\r\n onDraw(painter) {\r\n this.sceneDis = painter.toPx(this.dis);\r\n if (this.count > 1 ||\r\n (this.count == 1 && this.itemList[0].showSelect)) {\r\n painter.pen.lineWidth = painter.toPx(1);\r\n painter.pen.color = draw_1.SColor.White;\r\n painter.brush.color = draw_1.SColor.Transparent;\r\n painter.drawRect(0, 0, this.width, this.height);\r\n painter.pen.color = this.strokeColor;\r\n painter.pen.lineDash = [painter.toPx(4), painter.toPx(4)];\r\n painter.drawRect(0, 0, this.width, this.height);\r\n const r = painter.toPx(this.radius);\r\n painter.pen.lineDash = [];\r\n this.pointList.forEach((t, i) => {\r\n if (i == this.curIndex) {\r\n painter.brush.color = this.fillColor;\r\n }\r\n else {\r\n painter.brush.color = draw_1.SColor.White;\r\n }\r\n painter.drawCircle(t.x, t.y, r);\r\n });\r\n }\r\n }\r\n}\r\nexports.SGraphSelectContainer = SGraphSelectContainer;\r\nSGraphSelectContainer.cursorList = [\r\n \"nw-resize\",\r\n \"n-resize\",\r\n \"ne-resize\",\r\n \"e-resize\",\r\n \"se-resize\",\r\n \"s-resize\",\r\n \"sw-resize\",\r\n \"w-resize\",\r\n \"move\",\r\n \"default\"\r\n];\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SPolygonUtil = void 0;\r\nvar SPolygonUtil = (function () {\r\n function SPolygonUtil() {\r\n }\r\n SPolygonUtil.pointIn = function (x, y, pointList) {\r\n var crossNum = 0;\r\n for (var i = 0; i < pointList.length; i++) {\r\n var p1 = pointList[i];\r\n var p2 = pointList[(i + 1) % pointList.length];\r\n if (p1.y == p2.y) {\r\n continue;\r\n }\r\n if (y < Math.min(p1.y, p2.y) || y >= Math.max(p1.y, p2.y)) {\r\n continue;\r\n }\r\n var x0 = ((y - p1.y) * (p2.x - p1.x)) / (p2.y - p1.y) + p1.x;\r\n if (x0 > x) {\r\n crossNum++;\r\n }\r\n }\r\n return crossNum % 2 == 1;\r\n };\r\n SPolygonUtil.clockDir = function (pointList) {\r\n if (pointList.length < 3) {\r\n return 0;\r\n }\r\n var index = 0;\r\n var len = pointList.length;\r\n for (var i = 1; i < len; i++) {\r\n if (pointList[i].x > pointList[index].x) {\r\n index = i;\r\n }\r\n }\r\n var p1 = pointList[index == 0 ? len - 1 : index - 1];\r\n var p2 = pointList[index];\r\n var p3 = pointList[(index + 1) % len];\r\n return (p2.x - p1.x) * (p3.y - p2.y) - (p2.y - p1.y) * (p3.x - p2.x);\r\n };\r\n return SPolygonUtil;\r\n}());\r\nexports.SPolygonUtil = SPolygonUtil;\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACT0lEQVQ4T53TT0gUcRQH8O/7zWyZZYctRDoEJXQJTDrYXyWLCDtEEEanwNIZmXXM3TEsLZqE/ui2s8vOrLuz26mLsBCdPPXnIApBERWEh8CDh8CkOrSk1O7vxQYbRJrVuz6+H3jv8Qj/WbFkbm+wRn1J/5qPu+kDEuImgBYBOv7XQGIs11CSfAPMbQDKOaGUxK5VgdGkX68KDDPjNAQekEQjA5sABItf1I0rAiOuuyWAtVcZfB6gh2A5SCQ0Bp8FECdQd8TUan8DHOdukAOlAQA9ILxgwuX+kD7leBmNmdLM3K6Q2C6BdsvU9vwEotF760XVYh+AfmLMkYrBsKFPlJecSPkHSxKPAdyyTN2Oeb4HxmbL1M9QPp9X5uY/GgQaAlBgQdcKC+/GbduW5fDthL81oOAZwNOW2X0KAMfczIQg8Srcow1S1MvsE0xTABaEEK3hUNdM5bS271fXfOUpgNQqUdwfCoUK5V7M9d+AKWH1arkfI8Q9f7cERlmimUBesCYw1NHRseR42XHJ8qhQZFPEMGYrcMzNFiTj5MVe7dEvS7zjZtuI+IoEIgJ0GFIOC1KOhc2uJ5VwNJ2uFUUxT0qgPmKcm132jI6X3cnMr0EIM3imWsjnhmF8KiNOMt3EJKY/f9ixzrZbi8sDyVwzk5xUqkSdXOL7zNzAAhlJaxyVv7Ww5BGrV99WBlcFLnR2vo+n/BPM4hKDGwl4S6CFiKkd+QMw1sykTColUdfX1zVfmT/u5g5JkgMgPLVC+vUVgVQqtWFRqka/qY+u9q3fAXxg9qDXCpfwAAAAAElFTkSuQmCC\"","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAFKADAAQAAAABAAAAFAAAAACRFdLHAAABw0lEQVQ4Ea1Uv0vDQBROokkDdnEX7KLB2b9D6qJzC4W2QwfBzcWhuriIS1M7FAeX6uLSSXfdpArSSULdhCJoaxJi4veuPUlaLinYg7t3773vfffu3Q9JmnOTic80zUoQBMeYpjm/LMsu+nmxWKxw2yySEdZqtU+Av0DwEArawCLrqqpmCoWCFbLHThfH3jTI7kql0jZH1+v1KggPfN//y5r74iQnFGJAeIQdfAgBcCCZAOLJMIyzREJkmY0jIx8wDNLtdodCQk3Tqq7rngB8j67pur4pInYcZxWYR/gNIWE+n7cBsHEDfiB96MJtNxqNZc/z2HoKG+c4CDPka2Ar1yi6xvUkmUhYLpcPk0jC/ljCVqulDQYDVpZcLkcvxw8Ht9vtFOm9Xo9JmgtriLu32+/3h7Ztf1PHRX9rNps6BVHDYd1almVTx119GVklSZihoigd1O8SWWUhF9AvxifPYqFfYfJOCjBL0LfYnAZkE8B4E356ZKeGTJ4BTqGWayPL9Ij4DKyv4DgVbnk6bDbL3An5f2hhWytIeXTdo8mo8MElu1FzRJOBUVH3PXYoUHYQsA8p/KrgizBMKojv4P2bk/Z/678xZsFd61q4NgAAAABJRU5ErkJggg==\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SGraphSvgItem = exports.SGraphRectItem = exports.SGraphPolyGroupItem = exports.SGraphAreaGroupItem = exports.SGraphShape = exports.STextOrigin = exports.SOrderSetType = exports.SLineStyle = exports.SImageShowType = exports.STextItem = exports.SAnchorItem = exports.SObjectItem = exports.SImageItem = exports.SGraphPropertyCommand = exports.SGraphPointListUpdate = exports.SGraphPointListInsert = exports.SGraphPointListDelete = exports.SGraphMoveCommand = exports.SGraphAddCommand = exports.SGraphLayoutType = exports.SGraphSelectContainer = exports.SGraphView = exports.SGraphScene = exports.SGraphItem = exports.SGraphCommand = void 0;\r\nconst SGraphCommand_1 = require(\"./commands/SGraphCommand\");\r\nObject.defineProperty(exports, \"SGraphCommand\", { enumerable: true, get: function () { return SGraphCommand_1.SGraphCommand; } });\r\nconst SGraphItem_1 = require(\"./SGraphItem\");\r\nObject.defineProperty(exports, \"SGraphItem\", { enumerable: true, get: function () { return SGraphItem_1.SGraphItem; } });\r\nconst SGraphScene_1 = require(\"./SGraphScene\");\r\nObject.defineProperty(exports, \"SGraphScene\", { enumerable: true, get: function () { return SGraphScene_1.SGraphScene; } });\r\nconst SGraphView_1 = require(\"./SGraphView\");\r\nObject.defineProperty(exports, \"SGraphView\", { enumerable: true, get: function () { return SGraphView_1.SGraphView; } });\r\nconst SGraphSelectContainer_1 = require(\"./SGraphSelectContainer\");\r\nObject.defineProperty(exports, \"SGraphSelectContainer\", { enumerable: true, get: function () { return SGraphSelectContainer_1.SGraphSelectContainer; } });\r\nconst SGraphLayoutType_1 = require(\"./enums/SGraphLayoutType\");\r\nObject.defineProperty(exports, \"SGraphLayoutType\", { enumerable: true, get: function () { return SGraphLayoutType_1.SGraphLayoutType; } });\r\nconst SGraphAddCommand_1 = require(\"./commands/SGraphAddCommand\");\r\nObject.defineProperty(exports, \"SGraphAddCommand\", { enumerable: true, get: function () { return SGraphAddCommand_1.SGraphAddCommand; } });\r\nconst SGraphMoveCommand_1 = require(\"./commands/SGraphMoveCommand\");\r\nObject.defineProperty(exports, \"SGraphMoveCommand\", { enumerable: true, get: function () { return SGraphMoveCommand_1.SGraphMoveCommand; } });\r\nconst SGraphPointListDelete_1 = require(\"./commands/SGraphPointListDelete\");\r\nObject.defineProperty(exports, \"SGraphPointListDelete\", { enumerable: true, get: function () { return SGraphPointListDelete_1.SGraphPointListDelete; } });\r\nconst SGraphPointListInsert_1 = require(\"./commands/SGraphPointListInsert\");\r\nObject.defineProperty(exports, \"SGraphPointListInsert\", { enumerable: true, get: function () { return SGraphPointListInsert_1.SGraphPointListInsert; } });\r\nconst SGraphPointListUpdate_1 = require(\"./commands/SGraphPointListUpdate\");\r\nObject.defineProperty(exports, \"SGraphPointListUpdate\", { enumerable: true, get: function () { return SGraphPointListUpdate_1.SGraphPointListUpdate; } });\r\nconst SGraphPropertyCommand_1 = require(\"./commands/SGraphPropertyCommand\");\r\nObject.defineProperty(exports, \"SGraphPropertyCommand\", { enumerable: true, get: function () { return SGraphPropertyCommand_1.SGraphPropertyCommand; } });\r\nconst SImageItem_1 = require(\"./items/SImageItem\");\r\nObject.defineProperty(exports, \"SImageItem\", { enumerable: true, get: function () { return SImageItem_1.SImageItem; } });\r\nconst SObjectItem_1 = require(\"./items/SObjectItem\");\r\nObject.defineProperty(exports, \"SObjectItem\", { enumerable: true, get: function () { return SObjectItem_1.SObjectItem; } });\r\nconst SAnchorItem_1 = require(\"./items/SAnchorItem\");\r\nObject.defineProperty(exports, \"SAnchorItem\", { enumerable: true, get: function () { return SAnchorItem_1.SAnchorItem; } });\r\nconst STextItem_1 = require(\"./items/STextItem\");\r\nObject.defineProperty(exports, \"STextItem\", { enumerable: true, get: function () { return STextItem_1.STextItem; } });\r\nconst SImageShowType_1 = require(\"./enums/SImageShowType\");\r\nObject.defineProperty(exports, \"SImageShowType\", { enumerable: true, get: function () { return SImageShowType_1.SImageShowType; } });\r\nconst SLineStyle_1 = require(\"./enums/SLineStyle\");\r\nObject.defineProperty(exports, \"SLineStyle\", { enumerable: true, get: function () { return SLineStyle_1.SLineStyle; } });\r\nconst SOrderSetType_1 = require(\"./enums/SOrderSetType\");\r\nObject.defineProperty(exports, \"SOrderSetType\", { enumerable: true, get: function () { return SOrderSetType_1.SOrderSetType; } });\r\nconst STextOrigin_1 = require(\"./enums/STextOrigin\");\r\nObject.defineProperty(exports, \"STextOrigin\", { enumerable: true, get: function () { return STextOrigin_1.STextOrigin; } });\r\nconst SGraphShape_1 = require(\"./items/SGraphShape\");\r\nObject.defineProperty(exports, \"SGraphShape\", { enumerable: true, get: function () { return SGraphShape_1.SGraphShape; } });\r\nconst SGraphAreaGroupItem_1 = require(\"./items/SGraphAreaGroupItem\");\r\nObject.defineProperty(exports, \"SGraphAreaGroupItem\", { enumerable: true, get: function () { return SGraphAreaGroupItem_1.SGraphAreaGroupItem; } });\r\nconst SGraphPolyGroupItem_1 = require(\"./items/SGraphPolyGroupItem\");\r\nObject.defineProperty(exports, \"SGraphPolyGroupItem\", { enumerable: true, get: function () { return SGraphPolyGroupItem_1.SGraphPolyGroupItem; } });\r\nconst SGraphRectItem_1 = require(\"./items/SGraphRectItem\");\r\nObject.defineProperty(exports, \"SGraphRectItem\", { enumerable: true, get: function () { return SGraphRectItem_1.SGraphRectItem; } });\r\nconst SGraphSvgItem_1 = require(\"./items/SGraphSvgItem\");\r\nObject.defineProperty(exports, \"SGraphSvgItem\", { enumerable: true, get: function () { return SGraphSvgItem_1.SGraphSvgItem; } });\r\n","// (c) Copyright 2016, Sean Connelly (@voidqk), http://syntheti.cc\n// MIT License\n// Project Home: https://github.com/voidqk/polybooljs\n\n//\n// provides the raw computation functions that takes epsilon into account\n//\n// zero is defined to be between (-epsilon, epsilon) exclusive\n//\n\nfunction Epsilon(eps){\n\tif (typeof eps !== 'number')\n\t\teps = 0.0000000001; // sane default? sure why not\n\tvar my = {\n\t\tepsilon: function(v){\n\t\t\tif (typeof v === 'number')\n\t\t\t\teps = v;\n\t\t\treturn eps;\n\t\t},\n\t\tpointAboveOrOnLine: function(pt, left, right){\n\t\t\tvar Ax = left[0];\n\t\t\tvar Ay = left[1];\n\t\t\tvar Bx = right[0];\n\t\t\tvar By = right[1];\n\t\t\tvar Cx = pt[0];\n\t\t\tvar Cy = pt[1];\n\t\t\treturn (Bx - Ax) * (Cy - Ay) - (By - Ay) * (Cx - Ax) >= -eps;\n\t\t},\n\t\tpointBetween: function(p, left, right){\n\t\t\t// p must be collinear with left->right\n\t\t\t// returns false if p == left, p == right, or left == right\n\t\t\tvar d_py_ly = p[1] - left[1];\n\t\t\tvar d_rx_lx = right[0] - left[0];\n\t\t\tvar d_px_lx = p[0] - left[0];\n\t\t\tvar d_ry_ly = right[1] - left[1];\n\n\t\t\tvar dot = d_px_lx * d_rx_lx + d_py_ly * d_ry_ly;\n\t\t\t// if `dot` is 0, then `p` == `left` or `left` == `right` (reject)\n\t\t\t// if `dot` is less than 0, then `p` is to the left of `left` (reject)\n\t\t\tif (dot < eps)\n\t\t\t\treturn false;\n\n\t\t\tvar sqlen = d_rx_lx * d_rx_lx + d_ry_ly * d_ry_ly;\n\t\t\t// if `dot` > `sqlen`, then `p` is to the right of `right` (reject)\n\t\t\t// therefore, if `dot - sqlen` is greater than 0, then `p` is to the right of `right` (reject)\n\t\t\tif (dot - sqlen > -eps)\n\t\t\t\treturn false;\n\n\t\t\treturn true;\n\t\t},\n\t\tpointsSameX: function(p1, p2){\n\t\t\treturn Math.abs(p1[0] - p2[0]) < eps;\n\t\t},\n\t\tpointsSameY: function(p1, p2){\n\t\t\treturn Math.abs(p1[1] - p2[1]) < eps;\n\t\t},\n\t\tpointsSame: function(p1, p2){\n\t\t\treturn my.pointsSameX(p1, p2) && my.pointsSameY(p1, p2);\n\t\t},\n\t\tpointsCompare: function(p1, p2){\n\t\t\t// returns -1 if p1 is smaller, 1 if p2 is smaller, 0 if equal\n\t\t\tif (my.pointsSameX(p1, p2))\n\t\t\t\treturn my.pointsSameY(p1, p2) ? 0 : (p1[1] < p2[1] ? -1 : 1);\n\t\t\treturn p1[0] < p2[0] ? -1 : 1;\n\t\t},\n\t\tpointsCollinear: function(pt1, pt2, pt3){\n\t\t\t// does pt1->pt2->pt3 make a straight line?\n\t\t\t// essentially this is just checking to see if the slope(pt1->pt2) === slope(pt2->pt3)\n\t\t\t// if slopes are equal, then they must be collinear, because they share pt2\n\t\t\tvar dx1 = pt1[0] - pt2[0];\n\t\t\tvar dy1 = pt1[1] - pt2[1];\n\t\t\tvar dx2 = pt2[0] - pt3[0];\n\t\t\tvar dy2 = pt2[1] - pt3[1];\n\t\t\treturn Math.abs(dx1 * dy2 - dx2 * dy1) < eps;\n\t\t},\n\t\tlinesIntersect: function(a0, a1, b0, b1){\n\t\t\t// returns false if the lines are coincident (e.g., parallel or on top of each other)\n\t\t\t//\n\t\t\t// returns an object if the lines intersect:\n\t\t\t// {\n\t\t\t// pt: [x, y], where the intersection point is at\n\t\t\t// alongA: where intersection point is along A,\n\t\t\t// alongB: where intersection point is along B\n\t\t\t// }\n\t\t\t//\n\t\t\t// alongA and alongB will each be one of: -2, -1, 0, 1, 2\n\t\t\t//\n\t\t\t// with the following meaning:\n\t\t\t//\n\t\t\t// -2 intersection point is before segment's first point\n\t\t\t// -1 intersection point is directly on segment's first point\n\t\t\t// 0 intersection point is between segment's first and second points (exclusive)\n\t\t\t// 1 intersection point is directly on segment's second point\n\t\t\t// 2 intersection point is after segment's second point\n\t\t\tvar adx = a1[0] - a0[0];\n\t\t\tvar ady = a1[1] - a0[1];\n\t\t\tvar bdx = b1[0] - b0[0];\n\t\t\tvar bdy = b1[1] - b0[1];\n\n\t\t\tvar axb = adx * bdy - ady * bdx;\n\t\t\tif (Math.abs(axb) < eps)\n\t\t\t\treturn false; // lines are coincident\n\n\t\t\tvar dx = a0[0] - b0[0];\n\t\t\tvar dy = a0[1] - b0[1];\n\n\t\t\tvar A = (bdx * dy - bdy * dx) / axb;\n\t\t\tvar B = (adx * dy - ady * dx) / axb;\n\n\t\t\tvar ret = {\n\t\t\t\talongA: 0,\n\t\t\t\talongB: 0,\n\t\t\t\tpt: [\n\t\t\t\t\ta0[0] + A * adx,\n\t\t\t\t\ta0[1] + A * ady\n\t\t\t\t]\n\t\t\t};\n\n\t\t\t// categorize where intersection point is along A and B\n\n\t\t\tif (A <= -eps)\n\t\t\t\tret.alongA = -2;\n\t\t\telse if (A < eps)\n\t\t\t\tret.alongA = -1;\n\t\t\telse if (A - 1 <= -eps)\n\t\t\t\tret.alongA = 0;\n\t\t\telse if (A - 1 < eps)\n\t\t\t\tret.alongA = 1;\n\t\t\telse\n\t\t\t\tret.alongA = 2;\n\n\t\t\tif (B <= -eps)\n\t\t\t\tret.alongB = -2;\n\t\t\telse if (B < eps)\n\t\t\t\tret.alongB = -1;\n\t\t\telse if (B - 1 <= -eps)\n\t\t\t\tret.alongB = 0;\n\t\t\telse if (B - 1 < eps)\n\t\t\t\tret.alongB = 1;\n\t\t\telse\n\t\t\t\tret.alongB = 2;\n\n\t\t\treturn ret;\n\t\t},\n\t\tpointInsideRegion: function(pt, region){\n\t\t\tvar x = pt[0];\n\t\t\tvar y = pt[1];\n\t\t\tvar last_x = region[region.length - 1][0];\n\t\t\tvar last_y = region[region.length - 1][1];\n\t\t\tvar inside = false;\n\t\t\tfor (var i = 0; i < region.length; i++){\n\t\t\t\tvar curr_x = region[i][0];\n\t\t\t\tvar curr_y = region[i][1];\n\n\t\t\t\t// if y is between curr_y and last_y, and\n\t\t\t\t// x is to the right of the boundary created by the line\n\t\t\t\tif ((curr_y - y > eps) != (last_y - y > eps) &&\n\t\t\t\t\t(last_x - curr_x) * (y - curr_y) / (last_y - curr_y) + curr_x - x > eps)\n\t\t\t\t\tinside = !inside\n\n\t\t\t\tlast_x = curr_x;\n\t\t\t\tlast_y = curr_y;\n\t\t\t}\n\t\t\treturn inside;\n\t\t}\n\t};\n\treturn my;\n}\n\nmodule.exports = Epsilon;\n","var toInteger = require('../internals/to-integer');\n\nmodule.exports = function (it) {\n var result = toInteger(it);\n if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAAD2UlEQVRoBe2ZzWvUQBjGn+mHbf04ibD1D1CviojiwYJWb7YWaf0WRQSp1pN4FRFPXtxdi54Eta2u9aCgoKj17MWDIHgpiqg96EXQttju+MxuJjO7m3SzSXZbJIHtvJlk5v097zuZzKRAciQRSCKQRGAxIyAa5jwt+yBxlf5WQ2AUq3ARJ8RMVP+NEXBdnib0TQow/gSeU0RvVBGmw6ih8GvvBa/vFXhBET1RRDTpvupSlsMLfGYOxl1fErvxC09wW7a7dTUa9RPgBd+KLpzDAEWMWJzdBRE52WHVBTbrI8AP/oz4BCHySOE4CUctym5MMRMhRMQvoBy+SNmGOZhh0i/m0YljzMSYK0JilyOi2a0LYMQrwBsenH1SyOM1huV6l0mJSOEoz++7dUURp9zzAEZ8AirhJ+l/iL85h6MTfzGBrFznchUzcZKZmHLrgC2WXdWMR4AXfAu6cF5kSHCYgPMOSSczYUTckq1EHy1kyKC+NWZ1K/p7wA9+UHxx3WfkACFH+CuOb4FvaOIUmscV1vW69wk85bDqgcpMwCOagCDwGiQrDxD4niuiOLRa9GWWz5ipPgyJWauuqhleQC3wGiMtD9K8a4nQV0LBq8bhnoEw8MpbCo/4950yrSM0vOqjdgFh4XNyGR/YcUZ/c1zwqp/ahlBYeDXbzBbg98YJr/oKnoFo8A8Z+djhgwuIBp8jfE/ckdf92dOYristo8DP4AE7M/N8yKmyFKj0bOEhFBZ+QrZwzKs1zj7LXaTZxuqnxPR/iDPyCFN/hz99zyTU8sB+w5Z05Zwo+PeMvORLyRx1gVfd+w+hPJe3ZpaqBX6sUfBKgP8QEjA7JIHhgJFX8PtVx85Rt8hrB/4CUCJgWjfwLIvDRi3WGgqvWPwFSGsHJeH//SYnmznm1SKt3xJX98hrX/7PgJ0BwDsDCn6qsEwe0B2yrA6fkdu5Mt1ktVnYbMYHnBWvvG7yFyCYAek0afLIgIL/zsiDXxnMUR0+K3dye/PSNAlgqd1BWh7iUtvsoZ1m/gLsDOS5NVQdFIdVByfWdkZ+Dfsw28MgkVdO57HB8V1r4dnOX4C0HmLJ+d8+dGZMXfXI63tX8t3yGzt4upE//Y7RV71K5e0jWnHD66J/B2n5lRFf69WorC44fFnDOE79M1D83KH2sNOMk3qIpynoj2ubuje1bgPjAP9v+qgcQmnZxrdDN6O9YsmoFPiBQX4YE6Li6fMaQo85U+xZMvAaJItrNC/oU116vYm36YtLqsxjqxdPZQYE//UjcYk3L/dqsEh1P/lJ7PIi+U7cJhFIIpBEYIEI/AN8BmvT4TGaPQAAAABJRU5ErkJggg==\"","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAADC0lEQVRYR+1YS3LTQBB9LQd7STgBugHhBCRLVgknwMGmKtYmigzrOGvwh42cqthYnIDkBOAdO7hBcgOcZVLSNDVSBGMhKSM7xq4UWrms/rx5Pd3qbkKBp2rb6w+u6IlUOel3x7Gq+n/S3Cxyqg3SxVdrNHdAPCLQutQR4N2PbseTv+tW8zuAjVRbzAeDfqcXyTmnAG2nyTHwYei27eQ7LYCSodK1cR6DC40I2hocv/96m2P1ILVG0yPCy7yDhL6uSiMQT4ZuZ1cLoGSPCJ+lYXnSoBy0vF5vojp6bb3dYMEhu/Hjw7/wjnsXReTqe282YfCXmAQtgHXLaQF0KJX8cvAoCU73mujIzQaw4dgg6koHA7etdSgdMGkymQCjF+JZqmHCOpieA3wO4NuszqOwGeP47moDrCsMzeVcUzkrY8OES97B6p5trhklycw/fQjG0xP33Y+k0yk8grZoCrFSsxaBdqoaMF4M++3T1DA3HJuJTFkXaSq8Sm1bBMAwhFaTI9t8NHA7rdv8kFpC1OJ7m+Ks7+8FwLrlHDJgBmVxsJIMxizLz2QmwFeWUyWgO/X9LRhXBk+IcRQ3C7p3UL0GmQDzOo9COJnHg35nM9bRuYNaAKN6ZFQLgUkR9oXw1IbhzgDOCyxL/14BzE2S5TLotJjJDCqBvZJlRiUnE+BN671NxOasbDJoEojgrGiSaAHMnR8KIeazgdvZKVJmalZzn5hNvyKO8urg7za/EJ6EcLL3K5LFK5wkfzqelUwSrS/JPGHN0y0SYtkz/mcwyWYRBnOTJJwfgP15Qy2IP8U7HN12q2Y1ewQ2/bKormS7pVWo5a5FsLDlSWZmkTCBMHrqoB6HOGxmbzZlsf20BneZSQIgZYuSaHCXB5DFGETh+m4qpCidqgP98gDqzsVyODJAo/AUCx7cZYe0dl36GTGmO7gryxoGewZzuNZdxMOgHRBFa15NMig81VXpAoSHiwCVapNx6VcCU2cRGqaRXCCxwR4BjxcOknHJQDVrcfR30ij/pO2Z7xpw3vIyzdcvtVWp/2IYyjsAAAAASUVORK5CYII=\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SRelationState = void 0;\r\nvar SRelationState;\r\n(function (SRelationState) {\r\n SRelationState[SRelationState[\"Normal\"] = 0] = \"Normal\";\r\n SRelationState[SRelationState[\"Animation\"] = 1] = \"Animation\";\r\n SRelationState[SRelationState[\"Edit\"] = 2] = \"Edit\";\r\n SRelationState[SRelationState[\"Create\"] = 3] = \"Create\";\r\n})(SRelationState = exports.SRelationState || (exports.SRelationState = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SPaintEngine = void 0;\r\nvar SPaintState_1 = require(\"./SPaintState\");\r\nvar base_1 = require(\"@persagy-web/base\");\r\nvar SPaintEngine = (function () {\r\n function SPaintEngine() {\r\n this._state = new SPaintState_1.SPaintState();\r\n this.stateStack = new Array();\r\n }\r\n Object.defineProperty(SPaintEngine.prototype, \"state\", {\r\n get: function () {\r\n return this._state;\r\n },\r\n set: function (value) {\r\n this._state = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SPaintEngine.prototype.save = function () {\r\n var state = new SPaintState_1.SPaintState(this.state);\r\n this.stateStack.push(state);\r\n };\r\n SPaintEngine.prototype.restore = function () {\r\n if (this.stateStack.length > 0) {\r\n this.state = this.stateStack.pop();\r\n }\r\n };\r\n SPaintEngine.prototype.translate = function (x, y) {\r\n this.state.matrix.translate(x, y);\r\n };\r\n SPaintEngine.prototype.scale = function (x, y) {\r\n this.state.matrix.scale(x, y);\r\n };\r\n SPaintEngine.prototype.rotate = function (angle) {\r\n this.state.matrix.rotate(0, 0, angle);\r\n };\r\n SPaintEngine.prototype.transform = function (m11, m12, m21, m22, dx, dy) { };\r\n SPaintEngine.prototype.setTransform = function (m11, m12, m21, m22, dx, dy) { };\r\n SPaintEngine.prototype.resetTransform = function () {\r\n this.state.matrix = new base_1.SMatrix();\r\n };\r\n return SPaintEngine;\r\n}());\r\nexports.SPaintEngine = SPaintEngine;\r\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n"],"sourceRoot":""}