@vortex-ui/env-puzzle 2.0.0-beta.7 → 2.0.0-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -46
- package/lib/b-map/js/marker-clusterer.js +181 -181
- package/lib/b-map/js/marker-clusterer.js.map +1 -1
- package/lib/b-map/style/index.less +10 -10
- package/lib/create-modal/create-modal.js +1 -1
- package/lib/create-modal/create-modal.js.map +1 -1
- package/lib/create-modal/style/index.less +119 -122
- package/lib/global.less +6 -11
- package/lib/import-modal/style/index.less +15 -15
- package/lib/percent/style/index.less +41 -41
- package/lib/scroll/style/index.less +3 -3
- package/lib/scroll-select/style/index.less +7 -7
- package/lib/style/color.less +1 -1
- package/lib/style/darkGreen.css +88 -0
- package/lib/style/darkGreen.less +482 -370
- package/lib/template/action.js.map +1 -1
- package/lib/template/filter.d.ts +1 -0
- package/lib/template/filter.js +10 -7
- package/lib/template/filter.js.map +1 -1
- package/lib/template/renderColumnButtons.js +2 -2
- package/lib/template/renderColumnButtons.js.map +1 -1
- package/lib/template/style/action.less +71 -71
- package/lib/template/style/card.less +88 -88
- package/lib/template/style/check-row.less +27 -27
- package/lib/template/style/field.less +11 -11
- package/lib/template/style/filter.css +29 -0
- package/lib/template/style/filter.less +72 -46
- package/lib/template/style/icon.less +7 -7
- package/lib/template/style/index.css +31 -2
- package/lib/template/style/index.less +49 -49
- package/lib/template/style/table.css +2 -2
- package/lib/template/style/table.less +91 -84
- package/lib/template/table.js +6 -2
- package/lib/template/table.js.map +1 -1
- package/lib/template/template.d.ts +1 -1
- package/lib/template/template.js +73 -27
- package/lib/template/template.js.map +1 -1
- package/lib/template/vtx-search/index.d.ts +2 -0
- package/lib/template/vtx-search/index.js +126 -0
- package/lib/template/vtx-search/index.js.map +1 -0
- package/lib/template/vtx-search/style/index.css +92 -0
- package/lib/template/vtx-search/style/index.less +92 -0
- package/lib/to-map/style/index.less +86 -86
- package/lib/view-modal/style/index.less +57 -57
- package/package.json +143 -143
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marker-clusterer.js","names":["BMapLib","window","getExtendedBounds","map","bounds","gridSize","cutBoundsInRange","pixelNE","pointToPixel","getNorthEast","pixelSW","getSouthWest","x","y","newNE","pixelToPoint","newSW","BMap","Bounds","maxX","getRange","lng","minX","maxY","lat","minY","Point","i","mix","max","Math","min","isArray","source","Object","prototype","toString","call","indexOf","item","index","m","MarkerClusterer","options","_map","_markers","_clusters","opts","_gridSize","_maxZoom","_minClusterSize","_isAverageCenter","undefined","_styles","that","addEventListener","_redraw","mkrs","addMarkers","markers","len","length","_pushMarkerTo","_createClusters","marker","isInCluster","push","addMarker","mapBounds","getBounds","extendedBounds","containsPoint","getPosition","_addToClosestCluster","render","distance","clusterToAddTo","position","cluster","center","getCenter","d","getDistance","isMarkerInClusterBounds","Cluster","_clearLastClusters","remove","_removeMarkersFromCluster","_removeMarkersFromMap","tmplabel","getLabel","removeOverlay","setLabel","_removeMarker","splice","removeMarker","success","removeMarkers","r","clearMarkers","getGridSize","setGridSize","size","getMaxZoom","setMaxZoom","maxZoom","getStyles","setStyles","styles","getMinClusterSize","setMinClusterSize","isAverageCenter","getMap","getMarkers","getClustersCount","count","isReal","markerClusterer","_markerClusterer","_center","_gridBounds","_isReal","_clusterMarker","TextIconOverlay","isMarkerInCluster","updateGridBounds","l","addOverlay","updateClusterMarker","getZoom","hide","setPosition","setText","thatMap","thatBounds","event","setViewport","extend"],"sources":["b-map/js/marker-clusterer.js"],"sourcesContent":["/* eslint-disable*/\n/**\n * @fileoverview MarkerClusterer标记聚合器用来解决加载大量点要素到地图上产生覆盖现象的问题,并提高性能。\n * 主入口类是<a href=\"symbols/BMapLib.MarkerClusterer.html\">MarkerClusterer</a>,\n * 基于Baidu Map API 1.2。\n *\n * @author Baidu Map Api Group\n * @version 1.2\n */\n\n/**\n * @namespace BMap的所有library类均放在BMapLib命名空间下\n */\nvar BMapLib = (window.BMapLib = BMapLib || {});\n(function () {\n /**\n * 获取一个扩展的视图范围,把上下左右都扩大一样的像素值。\n * @param {Map} map BMap.Map的实例化对象\n * @param {BMap.Bounds} bounds BMap.Bounds的实例化对象\n * @param {Number} gridSize 要扩大的像素值\n *\n * @return {BMap.Bounds} 返回扩大后的视图范围。\n */\n var getExtendedBounds = function (map, bounds, gridSize) {\n bounds = cutBoundsInRange(bounds);\n var pixelNE = map.pointToPixel(bounds.getNorthEast());\n var pixelSW = map.pointToPixel(bounds.getSouthWest());\n pixelNE.x += gridSize;\n pixelNE.y -= gridSize;\n pixelSW.x -= gridSize;\n pixelSW.y += gridSize;\n var newNE = map.pixelToPoint(pixelNE);\n var newSW = map.pixelToPoint(pixelSW);\n return new BMap.Bounds(newSW, newNE);\n };\n\n /**\n * 按照百度地图支持的世界范围对bounds进行边界处理\n * @param {BMap.Bounds} bounds BMap.Bounds的实例化对象\n *\n * @return {BMap.Bounds} 返回不越界的视图范围\n */\n var cutBoundsInRange = function (bounds) {\n var maxX = getRange(bounds.getNorthEast().lng, -180, 180);\n var minX = getRange(bounds.getSouthWest().lng, -180, 180);\n var maxY = getRange(bounds.getNorthEast().lat, -74, 74);\n var minY = getRange(bounds.getSouthWest().lat, -74, 74);\n return new BMap.Bounds(\n new BMap.Point(minX, minY),\n new BMap.Point(maxX, maxY),\n );\n };\n\n /**\n * 对单个值进行边界处理。\n * @param {Number} i 要处理的数值\n * @param {Number} min 下边界值\n * @param {Number} max 上边界值\n *\n * @return {Number} 返回不越界的数值\n */\n var getRange = function (i, mix, max) {\n mix && (i = Math.max(i, mix));\n max && (i = Math.min(i, max));\n return i;\n };\n\n /**\n * 判断给定的对象是否为数组\n * @param {Object} source 要测试的对象\n *\n * @return {Boolean} 如果是数组返回true,否则返回false\n */\n var isArray = function (source) {\n return '[object Array]' === Object.prototype.toString.call(source);\n };\n\n /**\n * 返回item在source中的索引位置\n * @param {Object} item 要测试的对象\n * @param {Array} source 数组\n *\n * @return {Number} 如果在数组内,返回索引,否则返回-1\n */\n var indexOf = function (item, source) {\n var index = -1;\n if (isArray(source)) {\n if (source.indexOf) {\n index = source.indexOf(item);\n } else {\n for (var i = 0, m; (m = source[i]); i++) {\n if (m === item) {\n index = i;\n break;\n }\n }\n }\n }\n return index;\n };\n\n /**\n *@exports MarkerClusterer as BMapLib.MarkerClusterer\n */\n var MarkerClusterer =\n /**\n * MarkerClusterer\n * @class 用来解决加载大量点要素到地图上产生覆盖现象的问题,并提高性能\n * @constructor\n * @param {Map} map 地图的一个实例。\n * @param {Json Object} options 可选参数,可选项包括:<br />\n * markers {Array<Marker>} 要聚合的标记数组<br />\n * girdSize {Number} 聚合计算时网格的像素大小,默认60<br />\n * maxZoom {Number} 最大的聚合级别,大于该级别就不进行相应的聚合<br />\n * minClusterSize {Number} 最小的聚合数量,小于该数量的不能成为一个聚合,默认为2<br />\n * isAverangeCenter {Boolean} 聚合点的落脚位置是否是所有聚合在内点的平均值,默认为否,落脚在聚合内的第一个点<br />\n * styles {Array<IconStyle>} 自定义聚合后的图标风格,请参考TextIconOverlay类<br />\n */\n (BMapLib.MarkerClusterer = function (map, options) {\n if (!map) {\n return;\n }\n this._map = map;\n this._markers = [];\n this._clusters = [];\n\n var opts = options || {};\n this._gridSize = opts['gridSize'] || 60;\n this._maxZoom = opts['maxZoom'] || 18;\n this._minClusterSize = opts['minClusterSize'] || 2;\n this._isAverageCenter = false;\n if (opts['isAverageCenter'] != undefined) {\n this._isAverageCenter = opts['isAverageCenter'];\n }\n this._styles = opts['styles'] || [];\n\n var that = this;\n this._map.addEventListener('zoomend', function () {\n that._redraw();\n });\n\n this._map.addEventListener('moveend', function () {\n that._redraw();\n });\n\n var mkrs = opts['markers'];\n isArray(mkrs) && this.addMarkers(mkrs);\n });\n\n /**\n * 添加要聚合的标记数组。\n * @param {Array<Marker>} markers 要聚合的标记数组\n *\n * @return 无返回值。\n */\n MarkerClusterer.prototype.addMarkers = function (markers) {\n for (var i = 0, len = markers.length; i < len; i++) {\n this._pushMarkerTo(markers[i]);\n }\n this._createClusters();\n };\n\n /**\n * 把一个标记添加到要聚合的标记数组中\n * @param {BMap.Marker} marker 要添加的标记\n *\n * @return 无返回值。\n */\n MarkerClusterer.prototype._pushMarkerTo = function (marker) {\n var index = indexOf(marker, this._markers);\n if (index === -1) {\n marker.isInCluster = false;\n this._markers.push(marker); //Marker拖放后enableDragging不做变化,忽略\n }\n };\n\n /**\n * 添加一个聚合的标记。\n * @param {BMap.Marker} marker 要聚合的单个标记。\n * @return 无返回值。\n */\n MarkerClusterer.prototype.addMarker = function (marker) {\n this._pushMarkerTo(marker);\n this._createClusters();\n };\n\n /**\n * 根据所给定的标记,创建聚合点,并且遍历所有聚合点\n * @return 无返回值\n */\n MarkerClusterer.prototype._createClusters = function () {\n var mapBounds = this._map.getBounds();\n var extendedBounds = getExtendedBounds(\n this._map,\n mapBounds,\n this._gridSize,\n );\n for (var i = 0, marker; (marker = this._markers[i]); i++) {\n if (\n !marker.isInCluster &&\n extendedBounds.containsPoint(marker.getPosition())\n ) {\n this._addToClosestCluster(marker);\n }\n }\n\n var len = this._markers.length;\n for (var i = 0; i < len; i++) {\n if (this._clusters[i]) {\n this._clusters[i].render();\n }\n }\n };\n\n /**\n * 根据标记的位置,把它添加到最近的聚合中\n * @param {BMap.Marker} marker 要进行聚合的单个标记\n *\n * @return 无返回值。\n */\n MarkerClusterer.prototype._addToClosestCluster = function (marker) {\n var distance = 4000000;\n var clusterToAddTo = null;\n var position = marker.getPosition();\n for (var i = 0, cluster; (cluster = this._clusters[i]); i++) {\n var center = cluster.getCenter();\n if (center) {\n var d = this._map.getDistance(center, marker.getPosition());\n if (d < distance) {\n distance = d;\n clusterToAddTo = cluster;\n }\n }\n }\n\n if (clusterToAddTo && clusterToAddTo.isMarkerInClusterBounds(marker)) {\n clusterToAddTo.addMarker(marker);\n } else {\n var cluster = new Cluster(this);\n cluster.addMarker(marker);\n this._clusters.push(cluster);\n }\n };\n\n /**\n * 清除上一次的聚合的结果\n * @return 无返回值。\n */\n MarkerClusterer.prototype._clearLastClusters = function () {\n for (var i = 0, cluster; (cluster = this._clusters[i]); i++) {\n cluster.remove();\n }\n this._clusters = []; //置空Cluster数组\n this._removeMarkersFromCluster(); //把Marker的cluster标记设为false\n };\n\n /**\n * 清除某个聚合中的所有标记\n * @return 无返回值\n */\n MarkerClusterer.prototype._removeMarkersFromCluster = function () {\n for (var i = 0, marker; (marker = this._markers[i]); i++) {\n marker.isInCluster = false;\n }\n };\n\n /**\n * 把所有的标记从地图上清除\n * @return 无返回值\n */\n MarkerClusterer.prototype._removeMarkersFromMap = function () {\n for (var i = 0, marker; (marker = this._markers[i]); i++) {\n marker.isInCluster = false;\n tmplabel = marker.getLabel();\n this._map.removeOverlay(marker);\n marker.setLabel(tmplabel);\n }\n };\n\n /**\n * 删除单个标记\n * @param {BMap.Marker} marker 需要被删除的marker\n *\n * @return {Boolean} 删除成功返回true,否则返回false\n */\n MarkerClusterer.prototype._removeMarker = function (marker) {\n var index = indexOf(marker, this._markers);\n if (index === -1) {\n return false;\n }\n tmplabel = marker.getLabel();\n this._map.removeOverlay(marker);\n marker.setLabel(tmplabel);\n this._markers.splice(index, 1);\n return true;\n };\n\n /**\n * 删除单个标记\n * @param {BMap.Marker} marker 需要被删除的marker\n *\n * @return {Boolean} 删除成功返回true,否则返回false\n */\n MarkerClusterer.prototype.removeMarker = function (marker) {\n var success = this._removeMarker(marker);\n if (success) {\n this._clearLastClusters();\n this._createClusters();\n }\n return success;\n };\n\n /**\n * 删除一组标记\n * @param {Array<BMap.Marker>} markers 需要被删除的marker数组\n *\n * @return {Boolean} 删除成功返回true,否则返回false\n */\n MarkerClusterer.prototype.removeMarkers = function (markers) {\n var success = false;\n for (var i = 0; i < markers.length; i++) {\n var r = this._removeMarker(markers[i]);\n success = success || r;\n }\n\n if (success) {\n this._clearLastClusters();\n this._createClusters();\n }\n return success;\n };\n\n /**\n * 从地图上彻底清除所有的标记\n * @return 无返回值\n */\n MarkerClusterer.prototype.clearMarkers = function () {\n this._clearLastClusters();\n this._removeMarkersFromMap();\n this._markers = [];\n };\n\n /**\n * 重新生成,比如改变了属性等\n * @return 无返回值\n */\n MarkerClusterer.prototype._redraw = function () {\n this._clearLastClusters();\n this._createClusters();\n };\n\n /**\n * 获取网格大小\n * @return {Number} 网格大小\n */\n MarkerClusterer.prototype.getGridSize = function () {\n return this._gridSize;\n };\n\n /**\n * 设置网格大小\n * @param {Number} size 网格大小\n * @return 无返回值\n */\n MarkerClusterer.prototype.setGridSize = function (size) {\n this._gridSize = size;\n this._redraw();\n };\n\n /**\n * 获取聚合的最大缩放级别。\n * @return {Number} 聚合的最大缩放级别。\n */\n MarkerClusterer.prototype.getMaxZoom = function () {\n return this._maxZoom;\n };\n\n /**\n * 设置聚合的最大缩放级别\n * @param {Number} maxZoom 聚合的最大缩放级别\n * @return 无返回值\n */\n MarkerClusterer.prototype.setMaxZoom = function (maxZoom) {\n this._maxZoom = maxZoom;\n this._redraw();\n };\n\n /**\n * 获取聚合的样式风格集合\n * @return {Array<IconStyle>} 聚合的样式风格集合\n */\n MarkerClusterer.prototype.getStyles = function () {\n return this._styles;\n };\n\n /**\n * 设置聚合的样式风格集合\n * @param {Array<IconStyle>} styles 样式风格数组\n * @return 无返回值\n */\n MarkerClusterer.prototype.setStyles = function (styles) {\n this._styles = styles;\n this._redraw();\n };\n\n /**\n * 获取单个聚合的最小数量。\n * @return {Number} 单个聚合的最小数量。\n */\n MarkerClusterer.prototype.getMinClusterSize = function () {\n return this._minClusterSize;\n };\n\n /**\n * 设置单个聚合的最小数量。\n * @param {Number} size 单个聚合的最小数量。\n * @return 无返回值。\n */\n MarkerClusterer.prototype.setMinClusterSize = function (size) {\n this._minClusterSize = size;\n this._redraw();\n };\n\n /**\n * 获取单个聚合的落脚点是否是聚合内所有标记的平均中心。\n * @return {Boolean} true或false。\n */\n MarkerClusterer.prototype.isAverageCenter = function () {\n return this._isAverageCenter;\n };\n\n /**\n * 获取聚合的Map实例。\n * @return {Map} Map的示例。\n */\n MarkerClusterer.prototype.getMap = function () {\n return this._map;\n };\n\n /**\n * 获取所有的标记数组。\n * @return {Array<Marker>} 标记数组。\n */\n MarkerClusterer.prototype.getMarkers = function () {\n return this._markers;\n };\n\n /**\n * 获取聚合的总数量。\n * @return {Number} 聚合的总数量。\n */\n MarkerClusterer.prototype.getClustersCount = function () {\n var count = 0;\n for (var i = 0, cluster; (cluster = this._clusters[i]); i++) {\n cluster.isReal() && count++;\n }\n return count;\n };\n\n /**\n * @ignore\n * Cluster\n * @class 表示一个聚合对象,该聚合,包含有N个标记,这N个标记组成的范围,并有予以显示在Map上的TextIconOverlay等。\n * @constructor\n * @param {MarkerClusterer} markerClusterer 一个标记聚合器示例。\n */\n function Cluster(markerClusterer) {\n this._markerClusterer = markerClusterer;\n this._map = markerClusterer.getMap();\n this._minClusterSize = markerClusterer.getMinClusterSize();\n this._isAverageCenter = markerClusterer.isAverageCenter();\n this._center = null; //落脚位置\n this._markers = []; //这个Cluster中所包含的markers\n this._gridBounds = null; //以中心点为准,向四边扩大gridSize个像素的范围,也即网格范围\n this._isReal = false; //真的是个聚合\n\n this._clusterMarker = new BMapLib.TextIconOverlay(\n this._center,\n this._markers.length,\n {\n styles: this._markerClusterer.getStyles(),\n },\n );\n //this._map.addOverlay(this._clusterMarker);\n }\n\n /**\n * 向该聚合添加一个标记。\n * @param {Marker} marker 要添加的标记。\n * @return 无返回值。\n */\n Cluster.prototype.addMarker = function (marker) {\n if (this.isMarkerInCluster(marker)) {\n return false;\n } //也可用marker.isInCluster判断,外面判断OK,这里基本不会命中\n\n if (!this._center) {\n this._center = marker.getPosition();\n this.updateGridBounds(); //\n } else {\n if (this._isAverageCenter) {\n var l = this._markers.length + 1;\n var lat =\n (this._center.lat * (l - 1) + marker.getPosition().lat) / l;\n var lng =\n (this._center.lng * (l - 1) + marker.getPosition().lng) / l;\n this._center = new BMap.Point(lng, lat);\n this.updateGridBounds();\n } //计算新的Center\n }\n\n marker.isInCluster = true;\n this._markers.push(marker);\n };\n\n /**\n * 进行dom操作\n * @return 无返回值\n */\n Cluster.prototype.render = function () {\n var len = this._markers.length;\n\n if (len < this._minClusterSize) {\n for (var i = 0; i < len; i++) {\n this._map.addOverlay(this._markers[i]);\n }\n } else {\n this._map.addOverlay(this._clusterMarker);\n this._isReal = true;\n this.updateClusterMarker();\n }\n };\n\n /**\n * 判断一个标记是否在该聚合中。\n * @param {Marker} marker 要判断的标记。\n * @return {Boolean} true或false。\n */\n Cluster.prototype.isMarkerInCluster = function (marker) {\n if (this._markers.indexOf) {\n return this._markers.indexOf(marker) != -1;\n } else {\n for (var i = 0, m; (m = this._markers[i]); i++) {\n if (m === marker) {\n return true;\n }\n }\n }\n return false;\n };\n\n /**\n * 判断一个标记是否在该聚合网格范围中。\n * @param {Marker} marker 要判断的标记。\n * @return {Boolean} true或false。\n */\n Cluster.prototype.isMarkerInClusterBounds = function (marker) {\n return this._gridBounds.containsPoint(marker.getPosition());\n };\n\n Cluster.prototype.isReal = function (marker) {\n return this._isReal;\n };\n\n /**\n * 更新该聚合的网格范围。\n * @return 无返回值。\n */\n Cluster.prototype.updateGridBounds = function () {\n var bounds = new BMap.Bounds(this._center, this._center);\n this._gridBounds = getExtendedBounds(\n this._map,\n bounds,\n this._markerClusterer.getGridSize(),\n );\n };\n\n /**\n * 更新该聚合的显示样式,也即TextIconOverlay。\n * @return 无返回值。\n */\n Cluster.prototype.updateClusterMarker = function () {\n if (this._map.getZoom() > this._markerClusterer.getMaxZoom()) {\n this._clusterMarker && this._map.removeOverlay(this._clusterMarker);\n for (var i = 0, marker; (marker = this._markers[i]); i++) {\n this._map.addOverlay(marker);\n }\n return;\n }\n\n if (this._markers.length < this._minClusterSize) {\n this._clusterMarker.hide();\n return;\n }\n\n this._clusterMarker.setPosition(this._center);\n\n this._clusterMarker.setText(this._markers.length);\n\n var thatMap = this._map;\n var thatBounds = this.getBounds();\n this._clusterMarker.addEventListener('click', function (event) {\n thatMap.setViewport(thatBounds);\n });\n };\n\n /**\n * 删除该聚合。\n * @return 无返回值。\n */\n Cluster.prototype.remove = function () {\n for (var i = 0, m; (m = this._markers[i]); i++) {\n tmplabel = this._markers[i].getLabel();\n this._markers[i].getMap() &&\n this._map.removeOverlay(this._markers[i]);\n this._markers[i].setLabel(tmplabel);\n } //清除散的标记点\n this._map.removeOverlay(this._clusterMarker);\n this._markers.length = 0;\n delete this._markers;\n };\n\n /**\n * 获取该聚合所包含的所有标记的最小外接矩形的范围。\n * @return {BMap.Bounds} 计算出的范围。\n */\n Cluster.prototype.getBounds = function () {\n var bounds = new BMap.Bounds(this._center, this._center);\n for (var i = 0, marker; (marker = this._markers[i]); i++) {\n bounds.extend(marker.getPosition());\n }\n return bounds;\n };\n\n /**\n * 获取该聚合的落脚点。\n * @return {BMap.Point} 该聚合的落脚点。\n */\n Cluster.prototype.getCenter = function () {\n return this._center;\n };\n})();\n"],"mappings":";;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAIA,OAAO,GAAIC,MAAM,CAACD,OAAP,GAAiBA,OAAO,IAAI,EAA3C;;AACA,CAAC,YAAY;EACT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACI,IAAIE,iBAAiB,GAAG,SAApBA,iBAAoB,CAAUC,GAAV,EAAeC,MAAf,EAAuBC,QAAvB,EAAiC;IACrDD,MAAM,GAAGE,gBAAgB,CAACF,MAAD,CAAzB;IACA,IAAIG,OAAO,GAAGJ,GAAG,CAACK,YAAJ,CAAiBJ,MAAM,CAACK,YAAP,EAAjB,CAAd;IACA,IAAIC,OAAO,GAAGP,GAAG,CAACK,YAAJ,CAAiBJ,MAAM,CAACO,YAAP,EAAjB,CAAd;IACAJ,OAAO,CAACK,CAAR,IAAaP,QAAb;IACAE,OAAO,CAACM,CAAR,IAAaR,QAAb;IACAK,OAAO,CAACE,CAAR,IAAaP,QAAb;IACAK,OAAO,CAACG,CAAR,IAAaR,QAAb;IACA,IAAIS,KAAK,GAAGX,GAAG,CAACY,YAAJ,CAAiBR,OAAjB,CAAZ;IACA,IAAIS,KAAK,GAAGb,GAAG,CAACY,YAAJ,CAAiBL,OAAjB,CAAZ;IACA,OAAO,IAAIO,IAAI,CAACC,MAAT,CAAgBF,KAAhB,EAAuBF,KAAvB,CAAP;EACH,CAXD;EAaA;AACJ;AACA;AACA;AACA;AACA;;;EACI,IAAIR,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAUF,MAAV,EAAkB;IACrC,IAAIe,IAAI,GAAGC,QAAQ,CAAChB,MAAM,CAACK,YAAP,GAAsBY,GAAvB,EAA4B,CAAC,GAA7B,EAAkC,GAAlC,CAAnB;IACA,IAAIC,IAAI,GAAGF,QAAQ,CAAChB,MAAM,CAACO,YAAP,GAAsBU,GAAvB,EAA4B,CAAC,GAA7B,EAAkC,GAAlC,CAAnB;IACA,IAAIE,IAAI,GAAGH,QAAQ,CAAChB,MAAM,CAACK,YAAP,GAAsBe,GAAvB,EAA4B,CAAC,EAA7B,EAAiC,EAAjC,CAAnB;IACA,IAAIC,IAAI,GAAGL,QAAQ,CAAChB,MAAM,CAACO,YAAP,GAAsBa,GAAvB,EAA4B,CAAC,EAA7B,EAAiC,EAAjC,CAAnB;IACA,OAAO,IAAIP,IAAI,CAACC,MAAT,CACH,IAAID,IAAI,CAACS,KAAT,CAAeJ,IAAf,EAAqBG,IAArB,CADG,EAEH,IAAIR,IAAI,CAACS,KAAT,CAAeP,IAAf,EAAqBI,IAArB,CAFG,CAAP;EAIH,CATD;EAWA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;EACI,IAAIH,QAAQ,GAAG,SAAXA,QAAW,CAAUO,CAAV,EAAaC,GAAb,EAAkBC,GAAlB,EAAuB;IAClCD,GAAG,KAAKD,CAAC,GAAGG,IAAI,CAACD,GAAL,CAASF,CAAT,EAAYC,GAAZ,CAAT,CAAH;IACAC,GAAG,KAAKF,CAAC,GAAGG,IAAI,CAACC,GAAL,CAASJ,CAAT,EAAYE,GAAZ,CAAT,CAAH;IACA,OAAOF,CAAP;EACH,CAJD;EAMA;AACJ;AACA;AACA;AACA;AACA;;;EACI,IAAIK,OAAO,GAAG,SAAVA,OAAU,CAAUC,MAAV,EAAkB;IAC5B,OAAO,qBAAqBC,MAAM,CAACC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BJ,MAA/B,CAA5B;EACH,CAFD;EAIA;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACI,IAAIK,OAAO,GAAG,SAAVA,OAAU,CAAUC,IAAV,EAAgBN,MAAhB,EAAwB;IAClC,IAAIO,KAAK,GAAG,CAAC,CAAb;;IACA,IAAIR,OAAO,CAACC,MAAD,CAAX,EAAqB;MACjB,IAAIA,MAAM,CAACK,OAAX,EAAoB;QAChBE,KAAK,GAAGP,MAAM,CAACK,OAAP,CAAeC,IAAf,CAAR;MACH,CAFD,MAEO;QACH,KAAK,IAAIZ,CAAC,GAAG,CAAR,EAAWc,CAAhB,EAAoBA,CAAC,GAAGR,MAAM,CAACN,CAAD,CAA9B,EAAoCA,CAAC,EAArC,EAAyC;UACrC,IAAIc,CAAC,KAAKF,IAAV,EAAgB;YACZC,KAAK,GAAGb,CAAR;YACA;UACH;QACJ;MACJ;IACJ;;IACD,OAAOa,KAAP;EACH,CAfD;EAiBA;AACJ;AACA;;;EACI,IAAIE,eAAe;EACf;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACS1C,OAAO,CAAC0C,eAAR,GAA0B,UAAUvC,GAAV,EAAewC,OAAf,EAAwB;IAC/C,IAAI,CAACxC,GAAL,EAAU;MACN;IACH;;IACD,KAAKyC,IAAL,GAAYzC,GAAZ;IACA,KAAK0C,QAAL,GAAgB,EAAhB;IACA,KAAKC,SAAL,GAAiB,EAAjB;IAEA,IAAIC,IAAI,GAAGJ,OAAO,IAAI,EAAtB;IACA,KAAKK,SAAL,GAAiBD,IAAI,CAAC,UAAD,CAAJ,IAAoB,EAArC;IACA,KAAKE,QAAL,GAAgBF,IAAI,CAAC,SAAD,CAAJ,IAAmB,EAAnC;IACA,KAAKG,eAAL,GAAuBH,IAAI,CAAC,gBAAD,CAAJ,IAA0B,CAAjD;IACA,KAAKI,gBAAL,GAAwB,KAAxB;;IACA,IAAIJ,IAAI,CAAC,iBAAD,CAAJ,IAA2BK,SAA/B,EAA0C;MACtC,KAAKD,gBAAL,GAAwBJ,IAAI,CAAC,iBAAD,CAA5B;IACH;;IACD,KAAKM,OAAL,GAAeN,IAAI,CAAC,QAAD,CAAJ,IAAkB,EAAjC;IAEA,IAAIO,IAAI,GAAG,IAAX;;IACA,KAAKV,IAAL,CAAUW,gBAAV,CAA2B,SAA3B,EAAsC,YAAY;MAC9CD,IAAI,CAACE,OAAL;IACH,CAFD;;IAIA,KAAKZ,IAAL,CAAUW,gBAAV,CAA2B,SAA3B,EAAsC,YAAY;MAC9CD,IAAI,CAACE,OAAL;IACH,CAFD;;IAIA,IAAIC,IAAI,GAAGV,IAAI,CAAC,SAAD,CAAf;IACAf,OAAO,CAACyB,IAAD,CAAP,IAAiB,KAAKC,UAAL,CAAgBD,IAAhB,CAAjB;EACH,CA3CL;EA6CA;AACJ;AACA;AACA;AACA;AACA;;;EACIf,eAAe,CAACP,SAAhB,CAA0BuB,UAA1B,GAAuC,UAAUC,OAAV,EAAmB;IACtD,KAAK,IAAIhC,CAAC,GAAG,CAAR,EAAWiC,GAAG,GAAGD,OAAO,CAACE,MAA9B,EAAsClC,CAAC,GAAGiC,GAA1C,EAA+CjC,CAAC,EAAhD,EAAoD;MAChD,KAAKmC,aAAL,CAAmBH,OAAO,CAAChC,CAAD,CAA1B;IACH;;IACD,KAAKoC,eAAL;EACH,CALD;EAOA;AACJ;AACA;AACA;AACA;AACA;;;EACIrB,eAAe,CAACP,SAAhB,CAA0B2B,aAA1B,GAA0C,UAAUE,MAAV,EAAkB;IACxD,IAAIxB,KAAK,GAAGF,OAAO,CAAC0B,MAAD,EAAS,KAAKnB,QAAd,CAAnB;;IACA,IAAIL,KAAK,KAAK,CAAC,CAAf,EAAkB;MACdwB,MAAM,CAACC,WAAP,GAAqB,KAArB;;MACA,KAAKpB,QAAL,CAAcqB,IAAd,CAAmBF,MAAnB,EAFc,CAEc;;IAC/B;EACJ,CAND;EAQA;AACJ;AACA;AACA;AACA;;;EACItB,eAAe,CAACP,SAAhB,CAA0BgC,SAA1B,GAAsC,UAAUH,MAAV,EAAkB;IACpD,KAAKF,aAAL,CAAmBE,MAAnB;;IACA,KAAKD,eAAL;EACH,CAHD;EAKA;AACJ;AACA;AACA;;;EACIrB,eAAe,CAACP,SAAhB,CAA0B4B,eAA1B,GAA4C,YAAY;IACpD,IAAIK,SAAS,GAAG,KAAKxB,IAAL,CAAUyB,SAAV,EAAhB;;IACA,IAAIC,cAAc,GAAGpE,iBAAiB,CAClC,KAAK0C,IAD6B,EAElCwB,SAFkC,EAGlC,KAAKpB,SAH6B,CAAtC;;IAKA,KAAK,IAAIrB,CAAC,GAAG,CAAR,EAAWqC,MAAhB,EAAyBA,MAAM,GAAG,KAAKnB,QAAL,CAAclB,CAAd,CAAlC,EAAqDA,CAAC,EAAtD,EAA0D;MACtD,IACI,CAACqC,MAAM,CAACC,WAAR,IACAK,cAAc,CAACC,aAAf,CAA6BP,MAAM,CAACQ,WAAP,EAA7B,CAFJ,EAGE;QACE,KAAKC,oBAAL,CAA0BT,MAA1B;MACH;IACJ;;IAED,IAAIJ,GAAG,GAAG,KAAKf,QAAL,CAAcgB,MAAxB;;IACA,KAAK,IAAIlC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiC,GAApB,EAAyBjC,CAAC,EAA1B,EAA8B;MAC1B,IAAI,KAAKmB,SAAL,CAAenB,CAAf,CAAJ,EAAuB;QACnB,KAAKmB,SAAL,CAAenB,CAAf,EAAkB+C,MAAlB;MACH;IACJ;EACJ,CAtBD;EAwBA;AACJ;AACA;AACA;AACA;AACA;;;EACIhC,eAAe,CAACP,SAAhB,CAA0BsC,oBAA1B,GAAiD,UAAUT,MAAV,EAAkB;IAC/D,IAAIW,QAAQ,GAAG,OAAf;IACA,IAAIC,cAAc,GAAG,IAArB;IACA,IAAIC,QAAQ,GAAGb,MAAM,CAACQ,WAAP,EAAf;;IACA,KAAK,IAAI7C,CAAC,GAAG,CAAR,EAAWmD,OAAhB,EAA0BA,OAAO,GAAG,KAAKhC,SAAL,CAAenB,CAAf,CAApC,EAAwDA,CAAC,EAAzD,EAA6D;MACzD,IAAIoD,MAAM,GAAGD,OAAO,CAACE,SAAR,EAAb;;MACA,IAAID,MAAJ,EAAY;QACR,IAAIE,CAAC,GAAG,KAAKrC,IAAL,CAAUsC,WAAV,CAAsBH,MAAtB,EAA8Bf,MAAM,CAACQ,WAAP,EAA9B,CAAR;;QACA,IAAIS,CAAC,GAAGN,QAAR,EAAkB;UACdA,QAAQ,GAAGM,CAAX;UACAL,cAAc,GAAGE,OAAjB;QACH;MACJ;IACJ;;IAED,IAAIF,cAAc,IAAIA,cAAc,CAACO,uBAAf,CAAuCnB,MAAvC,CAAtB,EAAsE;MAClEY,cAAc,CAACT,SAAf,CAAyBH,MAAzB;IACH,CAFD,MAEO;MACH,IAAIc,OAAO,GAAG,IAAIM,OAAJ,CAAY,IAAZ,CAAd;MACAN,OAAO,CAACX,SAAR,CAAkBH,MAAlB;;MACA,KAAKlB,SAAL,CAAeoB,IAAf,CAAoBY,OAApB;IACH;EACJ,CAtBD;EAwBA;AACJ;AACA;AACA;;;EACIpC,eAAe,CAACP,SAAhB,CAA0BkD,kBAA1B,GAA+C,YAAY;IACvD,KAAK,IAAI1D,CAAC,GAAG,CAAR,EAAWmD,OAAhB,EAA0BA,OAAO,GAAG,KAAKhC,SAAL,CAAenB,CAAf,CAApC,EAAwDA,CAAC,EAAzD,EAA6D;MACzDmD,OAAO,CAACQ,MAAR;IACH;;IACD,KAAKxC,SAAL,GAAiB,EAAjB,CAJuD,CAIlC;;IACrB,KAAKyC,yBAAL,GALuD,CAKrB;;EACrC,CAND;EAQA;AACJ;AACA;AACA;;;EACI7C,eAAe,CAACP,SAAhB,CAA0BoD,yBAA1B,GAAsD,YAAY;IAC9D,KAAK,IAAI5D,CAAC,GAAG,CAAR,EAAWqC,MAAhB,EAAyBA,MAAM,GAAG,KAAKnB,QAAL,CAAclB,CAAd,CAAlC,EAAqDA,CAAC,EAAtD,EAA0D;MACtDqC,MAAM,CAACC,WAAP,GAAqB,KAArB;IACH;EACJ,CAJD;EAMA;AACJ;AACA;AACA;;;EACIvB,eAAe,CAACP,SAAhB,CAA0BqD,qBAA1B,GAAkD,YAAY;IAC1D,KAAK,IAAI7D,CAAC,GAAG,CAAR,EAAWqC,MAAhB,EAAyBA,MAAM,GAAG,KAAKnB,QAAL,CAAclB,CAAd,CAAlC,EAAqDA,CAAC,EAAtD,EAA0D;MACtDqC,MAAM,CAACC,WAAP,GAAqB,KAArB;MACAwB,QAAQ,GAAGzB,MAAM,CAAC0B,QAAP,EAAX;;MACA,KAAK9C,IAAL,CAAU+C,aAAV,CAAwB3B,MAAxB;;MACAA,MAAM,CAAC4B,QAAP,CAAgBH,QAAhB;IACH;EACJ,CAPD;EASA;AACJ;AACA;AACA;AACA;AACA;;;EACI/C,eAAe,CAACP,SAAhB,CAA0B0D,aAA1B,GAA0C,UAAU7B,MAAV,EAAkB;IACxD,IAAIxB,KAAK,GAAGF,OAAO,CAAC0B,MAAD,EAAS,KAAKnB,QAAd,CAAnB;;IACA,IAAIL,KAAK,KAAK,CAAC,CAAf,EAAkB;MACd,OAAO,KAAP;IACH;;IACDiD,QAAQ,GAAGzB,MAAM,CAAC0B,QAAP,EAAX;;IACA,KAAK9C,IAAL,CAAU+C,aAAV,CAAwB3B,MAAxB;;IACAA,MAAM,CAAC4B,QAAP,CAAgBH,QAAhB;;IACA,KAAK5C,QAAL,CAAciD,MAAd,CAAqBtD,KAArB,EAA4B,CAA5B;;IACA,OAAO,IAAP;EACH,CAVD;EAYA;AACJ;AACA;AACA;AACA;AACA;;;EACIE,eAAe,CAACP,SAAhB,CAA0B4D,YAA1B,GAAyC,UAAU/B,MAAV,EAAkB;IACvD,IAAIgC,OAAO,GAAG,KAAKH,aAAL,CAAmB7B,MAAnB,CAAd;;IACA,IAAIgC,OAAJ,EAAa;MACT,KAAKX,kBAAL;;MACA,KAAKtB,eAAL;IACH;;IACD,OAAOiC,OAAP;EACH,CAPD;EASA;AACJ;AACA;AACA;AACA;AACA;;;EACItD,eAAe,CAACP,SAAhB,CAA0B8D,aAA1B,GAA0C,UAAUtC,OAAV,EAAmB;IACzD,IAAIqC,OAAO,GAAG,KAAd;;IACA,KAAK,IAAIrE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgC,OAAO,CAACE,MAA5B,EAAoClC,CAAC,EAArC,EAAyC;MACrC,IAAIuE,CAAC,GAAG,KAAKL,aAAL,CAAmBlC,OAAO,CAAChC,CAAD,CAA1B,CAAR;;MACAqE,OAAO,GAAGA,OAAO,IAAIE,CAArB;IACH;;IAED,IAAIF,OAAJ,EAAa;MACT,KAAKX,kBAAL;;MACA,KAAKtB,eAAL;IACH;;IACD,OAAOiC,OAAP;EACH,CAZD;EAcA;AACJ;AACA;AACA;;;EACItD,eAAe,CAACP,SAAhB,CAA0BgE,YAA1B,GAAyC,YAAY;IACjD,KAAKd,kBAAL;;IACA,KAAKG,qBAAL;;IACA,KAAK3C,QAAL,GAAgB,EAAhB;EACH,CAJD;EAMA;AACJ;AACA;AACA;;;EACIH,eAAe,CAACP,SAAhB,CAA0BqB,OAA1B,GAAoC,YAAY;IAC5C,KAAK6B,kBAAL;;IACA,KAAKtB,eAAL;EACH,CAHD;EAKA;AACJ;AACA;AACA;;;EACIrB,eAAe,CAACP,SAAhB,CAA0BiE,WAA1B,GAAwC,YAAY;IAChD,OAAO,KAAKpD,SAAZ;EACH,CAFD;EAIA;AACJ;AACA;AACA;AACA;;;EACIN,eAAe,CAACP,SAAhB,CAA0BkE,WAA1B,GAAwC,UAAUC,IAAV,EAAgB;IACpD,KAAKtD,SAAL,GAAiBsD,IAAjB;;IACA,KAAK9C,OAAL;EACH,CAHD;EAKA;AACJ;AACA;AACA;;;EACId,eAAe,CAACP,SAAhB,CAA0BoE,UAA1B,GAAuC,YAAY;IAC/C,OAAO,KAAKtD,QAAZ;EACH,CAFD;EAIA;AACJ;AACA;AACA;AACA;;;EACIP,eAAe,CAACP,SAAhB,CAA0BqE,UAA1B,GAAuC,UAAUC,OAAV,EAAmB;IACtD,KAAKxD,QAAL,GAAgBwD,OAAhB;;IACA,KAAKjD,OAAL;EACH,CAHD;EAKA;AACJ;AACA;AACA;;;EACId,eAAe,CAACP,SAAhB,CAA0BuE,SAA1B,GAAsC,YAAY;IAC9C,OAAO,KAAKrD,OAAZ;EACH,CAFD;EAIA;AACJ;AACA;AACA;AACA;;;EACIX,eAAe,CAACP,SAAhB,CAA0BwE,SAA1B,GAAsC,UAAUC,MAAV,EAAkB;IACpD,KAAKvD,OAAL,GAAeuD,MAAf;;IACA,KAAKpD,OAAL;EACH,CAHD;EAKA;AACJ;AACA;AACA;;;EACId,eAAe,CAACP,SAAhB,CAA0B0E,iBAA1B,GAA8C,YAAY;IACtD,OAAO,KAAK3D,eAAZ;EACH,CAFD;EAIA;AACJ;AACA;AACA;AACA;;;EACIR,eAAe,CAACP,SAAhB,CAA0B2E,iBAA1B,GAA8C,UAAUR,IAAV,EAAgB;IAC1D,KAAKpD,eAAL,GAAuBoD,IAAvB;;IACA,KAAK9C,OAAL;EACH,CAHD;EAKA;AACJ;AACA;AACA;;;EACId,eAAe,CAACP,SAAhB,CAA0B4E,eAA1B,GAA4C,YAAY;IACpD,OAAO,KAAK5D,gBAAZ;EACH,CAFD;EAIA;AACJ;AACA;AACA;;;EACIT,eAAe,CAACP,SAAhB,CAA0B6E,MAA1B,GAAmC,YAAY;IAC3C,OAAO,KAAKpE,IAAZ;EACH,CAFD;EAIA;AACJ;AACA;AACA;;;EACIF,eAAe,CAACP,SAAhB,CAA0B8E,UAA1B,GAAuC,YAAY;IAC/C,OAAO,KAAKpE,QAAZ;EACH,CAFD;EAIA;AACJ;AACA;AACA;;;EACIH,eAAe,CAACP,SAAhB,CAA0B+E,gBAA1B,GAA6C,YAAY;IACrD,IAAIC,KAAK,GAAG,CAAZ;;IACA,KAAK,IAAIxF,CAAC,GAAG,CAAR,EAAWmD,OAAhB,EAA0BA,OAAO,GAAG,KAAKhC,SAAL,CAAenB,CAAf,CAApC,EAAwDA,CAAC,EAAzD,EAA6D;MACzDmD,OAAO,CAACsC,MAAR,MAAoBD,KAAK,EAAzB;IACH;;IACD,OAAOA,KAAP;EACH,CAND;EAQA;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACI,SAAS/B,OAAT,CAAiBiC,eAAjB,EAAkC;IAC9B,KAAKC,gBAAL,GAAwBD,eAAxB;IACA,KAAKzE,IAAL,GAAYyE,eAAe,CAACL,MAAhB,EAAZ;IACA,KAAK9D,eAAL,GAAuBmE,eAAe,CAACR,iBAAhB,EAAvB;IACA,KAAK1D,gBAAL,GAAwBkE,eAAe,CAACN,eAAhB,EAAxB;IACA,KAAKQ,OAAL,GAAe,IAAf,CAL8B,CAKT;;IACrB,KAAK1E,QAAL,GAAgB,EAAhB,CAN8B,CAMV;;IACpB,KAAK2E,WAAL,GAAmB,IAAnB,CAP8B,CAOL;;IACzB,KAAKC,OAAL,GAAe,KAAf,CAR8B,CAQR;;IAEtB,KAAKC,cAAL,GAAsB,IAAI1H,OAAO,CAAC2H,eAAZ,CAClB,KAAKJ,OADa,EAElB,KAAK1E,QAAL,CAAcgB,MAFI,EAGlB;MACI+C,MAAM,EAAE,KAAKU,gBAAL,CAAsBZ,SAAtB;IADZ,CAHkB,CAAtB,CAV8B,CAiB9B;EACH;EAED;AACJ;AACA;AACA;AACA;;;EACItB,OAAO,CAACjD,SAAR,CAAkBgC,SAAlB,GAA8B,UAAUH,MAAV,EAAkB;IAC5C,IAAI,KAAK4D,iBAAL,CAAuB5D,MAAvB,CAAJ,EAAoC;MAChC,OAAO,KAAP;IACH,CAH2C,CAG1C;;;IAEF,IAAI,CAAC,KAAKuD,OAAV,EAAmB;MACf,KAAKA,OAAL,GAAevD,MAAM,CAACQ,WAAP,EAAf;MACA,KAAKqD,gBAAL,GAFe,CAEU;IAC5B,CAHD,MAGO;MACH,IAAI,KAAK1E,gBAAT,EAA2B;QACvB,IAAI2E,CAAC,GAAG,KAAKjF,QAAL,CAAcgB,MAAd,GAAuB,CAA/B;QACA,IAAIrC,GAAG,GACH,CAAC,KAAK+F,OAAL,CAAa/F,GAAb,IAAoBsG,CAAC,GAAG,CAAxB,IAA6B9D,MAAM,CAACQ,WAAP,GAAqBhD,GAAnD,IAA0DsG,CAD9D;QAEA,IAAIzG,GAAG,GACH,CAAC,KAAKkG,OAAL,CAAalG,GAAb,IAAoByG,CAAC,GAAG,CAAxB,IAA6B9D,MAAM,CAACQ,WAAP,GAAqBnD,GAAnD,IAA0DyG,CAD9D;QAEA,KAAKP,OAAL,GAAe,IAAItG,IAAI,CAACS,KAAT,CAAeL,GAAf,EAAoBG,GAApB,CAAf;QACA,KAAKqG,gBAAL;MACH,CATE,CASD;;IACL;;IAED7D,MAAM,CAACC,WAAP,GAAqB,IAArB;;IACA,KAAKpB,QAAL,CAAcqB,IAAd,CAAmBF,MAAnB;EACH,CAtBD;EAwBA;AACJ;AACA;AACA;;;EACIoB,OAAO,CAACjD,SAAR,CAAkBuC,MAAlB,GAA2B,YAAY;IACnC,IAAId,GAAG,GAAG,KAAKf,QAAL,CAAcgB,MAAxB;;IAEA,IAAID,GAAG,GAAG,KAAKV,eAAf,EAAgC;MAC5B,KAAK,IAAIvB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiC,GAApB,EAAyBjC,CAAC,EAA1B,EAA8B;QAC1B,KAAKiB,IAAL,CAAUmF,UAAV,CAAqB,KAAKlF,QAAL,CAAclB,CAAd,CAArB;MACH;IACJ,CAJD,MAIO;MACH,KAAKiB,IAAL,CAAUmF,UAAV,CAAqB,KAAKL,cAA1B;;MACA,KAAKD,OAAL,GAAe,IAAf;MACA,KAAKO,mBAAL;IACH;EACJ,CAZD;EAcA;AACJ;AACA;AACA;AACA;;;EACI5C,OAAO,CAACjD,SAAR,CAAkByF,iBAAlB,GAAsC,UAAU5D,MAAV,EAAkB;IACpD,IAAI,KAAKnB,QAAL,CAAcP,OAAlB,EAA2B;MACvB,OAAO,KAAKO,QAAL,CAAcP,OAAd,CAAsB0B,MAAtB,KAAiC,CAAC,CAAzC;IACH,CAFD,MAEO;MACH,KAAK,IAAIrC,CAAC,GAAG,CAAR,EAAWc,CAAhB,EAAoBA,CAAC,GAAG,KAAKI,QAAL,CAAclB,CAAd,CAAxB,EAA2CA,CAAC,EAA5C,EAAgD;QAC5C,IAAIc,CAAC,KAAKuB,MAAV,EAAkB;UACd,OAAO,IAAP;QACH;MACJ;IACJ;;IACD,OAAO,KAAP;EACH,CAXD;EAaA;AACJ;AACA;AACA;AACA;;;EACIoB,OAAO,CAACjD,SAAR,CAAkBgD,uBAAlB,GAA4C,UAAUnB,MAAV,EAAkB;IAC1D,OAAO,KAAKwD,WAAL,CAAiBjD,aAAjB,CAA+BP,MAAM,CAACQ,WAAP,EAA/B,CAAP;EACH,CAFD;;EAIAY,OAAO,CAACjD,SAAR,CAAkBiF,MAAlB,GAA2B,UAAUpD,MAAV,EAAkB;IACzC,OAAO,KAAKyD,OAAZ;EACH,CAFD;EAIA;AACJ;AACA;AACA;;;EACIrC,OAAO,CAACjD,SAAR,CAAkB0F,gBAAlB,GAAqC,YAAY;IAC7C,IAAIzH,MAAM,GAAG,IAAIa,IAAI,CAACC,MAAT,CAAgB,KAAKqG,OAArB,EAA8B,KAAKA,OAAnC,CAAb;IACA,KAAKC,WAAL,GAAmBtH,iBAAiB,CAChC,KAAK0C,IAD2B,EAEhCxC,MAFgC,EAGhC,KAAKkH,gBAAL,CAAsBlB,WAAtB,EAHgC,CAApC;EAKH,CAPD;EASA;AACJ;AACA;AACA;;;EACIhB,OAAO,CAACjD,SAAR,CAAkB6F,mBAAlB,GAAwC,YAAY;IAChD,IAAI,KAAKpF,IAAL,CAAUqF,OAAV,KAAsB,KAAKX,gBAAL,CAAsBf,UAAtB,EAA1B,EAA8D;MAC1D,KAAKmB,cAAL,IAAuB,KAAK9E,IAAL,CAAU+C,aAAV,CAAwB,KAAK+B,cAA7B,CAAvB;;MACA,KAAK,IAAI/F,CAAC,GAAG,CAAR,EAAWqC,MAAhB,EAAyBA,MAAM,GAAG,KAAKnB,QAAL,CAAclB,CAAd,CAAlC,EAAqDA,CAAC,EAAtD,EAA0D;QACtD,KAAKiB,IAAL,CAAUmF,UAAV,CAAqB/D,MAArB;MACH;;MACD;IACH;;IAED,IAAI,KAAKnB,QAAL,CAAcgB,MAAd,GAAuB,KAAKX,eAAhC,EAAiD;MAC7C,KAAKwE,cAAL,CAAoBQ,IAApB;;MACA;IACH;;IAED,KAAKR,cAAL,CAAoBS,WAApB,CAAgC,KAAKZ,OAArC;;IAEA,KAAKG,cAAL,CAAoBU,OAApB,CAA4B,KAAKvF,QAAL,CAAcgB,MAA1C;;IAEA,IAAIwE,OAAO,GAAG,KAAKzF,IAAnB;IACA,IAAI0F,UAAU,GAAG,KAAKjE,SAAL,EAAjB;;IACA,KAAKqD,cAAL,CAAoBnE,gBAApB,CAAqC,OAArC,EAA8C,UAAUgF,KAAV,EAAiB;MAC3DF,OAAO,CAACG,WAAR,CAAoBF,UAApB;IACH,CAFD;EAGH,CAvBD;EAyBA;AACJ;AACA;AACA;;;EACIlD,OAAO,CAACjD,SAAR,CAAkBmD,MAAlB,GAA2B,YAAY;IACnC,KAAK,IAAI3D,CAAC,GAAG,CAAR,EAAWc,CAAhB,EAAoBA,CAAC,GAAG,KAAKI,QAAL,CAAclB,CAAd,CAAxB,EAA2CA,CAAC,EAA5C,EAAgD;MAC5C8D,QAAQ,GAAG,KAAK5C,QAAL,CAAclB,CAAd,EAAiB+D,QAAjB,EAAX;MACA,KAAK7C,QAAL,CAAclB,CAAd,EAAiBqF,MAAjB,MACI,KAAKpE,IAAL,CAAU+C,aAAV,CAAwB,KAAK9C,QAAL,CAAclB,CAAd,CAAxB,CADJ;;MAEA,KAAKkB,QAAL,CAAclB,CAAd,EAAiBiE,QAAjB,CAA0BH,QAA1B;IACH,CANkC,CAMjC;;;IACF,KAAK7C,IAAL,CAAU+C,aAAV,CAAwB,KAAK+B,cAA7B;;IACA,KAAK7E,QAAL,CAAcgB,MAAd,GAAuB,CAAvB;IACA,OAAO,KAAKhB,QAAZ;EACH,CAVD;EAYA;AACJ;AACA;AACA;;;EACIuC,OAAO,CAACjD,SAAR,CAAkBkC,SAAlB,GAA8B,YAAY;IACtC,IAAIjE,MAAM,GAAG,IAAIa,IAAI,CAACC,MAAT,CAAgB,KAAKqG,OAArB,EAA8B,KAAKA,OAAnC,CAAb;;IACA,KAAK,IAAI5F,CAAC,GAAG,CAAR,EAAWqC,MAAhB,EAAyBA,MAAM,GAAG,KAAKnB,QAAL,CAAclB,CAAd,CAAlC,EAAqDA,CAAC,EAAtD,EAA0D;MACtDvB,MAAM,CAACqI,MAAP,CAAczE,MAAM,CAACQ,WAAP,EAAd;IACH;;IACD,OAAOpE,MAAP;EACH,CAND;EAQA;AACJ;AACA;AACA;;;EACIgF,OAAO,CAACjD,SAAR,CAAkB6C,SAAlB,GAA8B,YAAY;IACtC,OAAO,KAAKuC,OAAZ;EACH,CAFD;AAGH,CAnnBD"}
|
|
1
|
+
{"version":3,"file":"marker-clusterer.js","names":["BMapLib","window","getExtendedBounds","map","bounds","gridSize","cutBoundsInRange","pixelNE","pointToPixel","getNorthEast","pixelSW","getSouthWest","x","y","newNE","pixelToPoint","newSW","BMap","Bounds","maxX","getRange","lng","minX","maxY","lat","minY","Point","i","mix","max","Math","min","isArray","source","Object","prototype","toString","call","indexOf","item","index","m","MarkerClusterer","options","_map","_markers","_clusters","opts","_gridSize","_maxZoom","_minClusterSize","_isAverageCenter","undefined","_styles","that","addEventListener","_redraw","mkrs","addMarkers","markers","len","length","_pushMarkerTo","_createClusters","marker","isInCluster","push","addMarker","mapBounds","getBounds","extendedBounds","containsPoint","getPosition","_addToClosestCluster","render","distance","clusterToAddTo","position","cluster","center","getCenter","d","getDistance","isMarkerInClusterBounds","Cluster","_clearLastClusters","remove","_removeMarkersFromCluster","_removeMarkersFromMap","tmplabel","getLabel","removeOverlay","setLabel","_removeMarker","splice","removeMarker","success","removeMarkers","r","clearMarkers","getGridSize","setGridSize","size","getMaxZoom","setMaxZoom","maxZoom","getStyles","setStyles","styles","getMinClusterSize","setMinClusterSize","isAverageCenter","getMap","getMarkers","getClustersCount","count","isReal","markerClusterer","_markerClusterer","_center","_gridBounds","_isReal","_clusterMarker","TextIconOverlay","isMarkerInCluster","updateGridBounds","l","addOverlay","updateClusterMarker","getZoom","hide","setPosition","setText","thatMap","thatBounds","event","setViewport","extend"],"sources":["b-map/js/marker-clusterer.js"],"sourcesContent":["/* eslint-disable*/\r\n/**\r\n * @fileoverview MarkerClusterer标记聚合器用来解决加载大量点要素到地图上产生覆盖现象的问题,并提高性能。\r\n * 主入口类是<a href=\"symbols/BMapLib.MarkerClusterer.html\">MarkerClusterer</a>,\r\n * 基于Baidu Map API 1.2。\r\n *\r\n * @author Baidu Map Api Group\r\n * @version 1.2\r\n */\r\n\r\n/**\r\n * @namespace BMap的所有library类均放在BMapLib命名空间下\r\n */\r\nvar BMapLib = (window.BMapLib = BMapLib || {});\r\n(function () {\r\n /**\r\n * 获取一个扩展的视图范围,把上下左右都扩大一样的像素值。\r\n * @param {Map} map BMap.Map的实例化对象\r\n * @param {BMap.Bounds} bounds BMap.Bounds的实例化对象\r\n * @param {Number} gridSize 要扩大的像素值\r\n *\r\n * @return {BMap.Bounds} 返回扩大后的视图范围。\r\n */\r\n var getExtendedBounds = function (map, bounds, gridSize) {\r\n bounds = cutBoundsInRange(bounds);\r\n var pixelNE = map.pointToPixel(bounds.getNorthEast());\r\n var pixelSW = map.pointToPixel(bounds.getSouthWest());\r\n pixelNE.x += gridSize;\r\n pixelNE.y -= gridSize;\r\n pixelSW.x -= gridSize;\r\n pixelSW.y += gridSize;\r\n var newNE = map.pixelToPoint(pixelNE);\r\n var newSW = map.pixelToPoint(pixelSW);\r\n return new BMap.Bounds(newSW, newNE);\r\n };\r\n\r\n /**\r\n * 按照百度地图支持的世界范围对bounds进行边界处理\r\n * @param {BMap.Bounds} bounds BMap.Bounds的实例化对象\r\n *\r\n * @return {BMap.Bounds} 返回不越界的视图范围\r\n */\r\n var cutBoundsInRange = function (bounds) {\r\n var maxX = getRange(bounds.getNorthEast().lng, -180, 180);\r\n var minX = getRange(bounds.getSouthWest().lng, -180, 180);\r\n var maxY = getRange(bounds.getNorthEast().lat, -74, 74);\r\n var minY = getRange(bounds.getSouthWest().lat, -74, 74);\r\n return new BMap.Bounds(\r\n new BMap.Point(minX, minY),\r\n new BMap.Point(maxX, maxY),\r\n );\r\n };\r\n\r\n /**\r\n * 对单个值进行边界处理。\r\n * @param {Number} i 要处理的数值\r\n * @param {Number} min 下边界值\r\n * @param {Number} max 上边界值\r\n *\r\n * @return {Number} 返回不越界的数值\r\n */\r\n var getRange = function (i, mix, max) {\r\n mix && (i = Math.max(i, mix));\r\n max && (i = Math.min(i, max));\r\n return i;\r\n };\r\n\r\n /**\r\n * 判断给定的对象是否为数组\r\n * @param {Object} source 要测试的对象\r\n *\r\n * @return {Boolean} 如果是数组返回true,否则返回false\r\n */\r\n var isArray = function (source) {\r\n return '[object Array]' === Object.prototype.toString.call(source);\r\n };\r\n\r\n /**\r\n * 返回item在source中的索引位置\r\n * @param {Object} item 要测试的对象\r\n * @param {Array} source 数组\r\n *\r\n * @return {Number} 如果在数组内,返回索引,否则返回-1\r\n */\r\n var indexOf = function (item, source) {\r\n var index = -1;\r\n if (isArray(source)) {\r\n if (source.indexOf) {\r\n index = source.indexOf(item);\r\n } else {\r\n for (var i = 0, m; (m = source[i]); i++) {\r\n if (m === item) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return index;\r\n };\r\n\r\n /**\r\n *@exports MarkerClusterer as BMapLib.MarkerClusterer\r\n */\r\n var MarkerClusterer =\r\n /**\r\n * MarkerClusterer\r\n * @class 用来解决加载大量点要素到地图上产生覆盖现象的问题,并提高性能\r\n * @constructor\r\n * @param {Map} map 地图的一个实例。\r\n * @param {Json Object} options 可选参数,可选项包括:<br />\r\n * markers {Array<Marker>} 要聚合的标记数组<br />\r\n * girdSize {Number} 聚合计算时网格的像素大小,默认60<br />\r\n * maxZoom {Number} 最大的聚合级别,大于该级别就不进行相应的聚合<br />\r\n * minClusterSize {Number} 最小的聚合数量,小于该数量的不能成为一个聚合,默认为2<br />\r\n * isAverangeCenter {Boolean} 聚合点的落脚位置是否是所有聚合在内点的平均值,默认为否,落脚在聚合内的第一个点<br />\r\n * styles {Array<IconStyle>} 自定义聚合后的图标风格,请参考TextIconOverlay类<br />\r\n */\r\n (BMapLib.MarkerClusterer = function (map, options) {\r\n if (!map) {\r\n return;\r\n }\r\n this._map = map;\r\n this._markers = [];\r\n this._clusters = [];\r\n\r\n var opts = options || {};\r\n this._gridSize = opts['gridSize'] || 60;\r\n this._maxZoom = opts['maxZoom'] || 18;\r\n this._minClusterSize = opts['minClusterSize'] || 2;\r\n this._isAverageCenter = false;\r\n if (opts['isAverageCenter'] != undefined) {\r\n this._isAverageCenter = opts['isAverageCenter'];\r\n }\r\n this._styles = opts['styles'] || [];\r\n\r\n var that = this;\r\n this._map.addEventListener('zoomend', function () {\r\n that._redraw();\r\n });\r\n\r\n this._map.addEventListener('moveend', function () {\r\n that._redraw();\r\n });\r\n\r\n var mkrs = opts['markers'];\r\n isArray(mkrs) && this.addMarkers(mkrs);\r\n });\r\n\r\n /**\r\n * 添加要聚合的标记数组。\r\n * @param {Array<Marker>} markers 要聚合的标记数组\r\n *\r\n * @return 无返回值。\r\n */\r\n MarkerClusterer.prototype.addMarkers = function (markers) {\r\n for (var i = 0, len = markers.length; i < len; i++) {\r\n this._pushMarkerTo(markers[i]);\r\n }\r\n this._createClusters();\r\n };\r\n\r\n /**\r\n * 把一个标记添加到要聚合的标记数组中\r\n * @param {BMap.Marker} marker 要添加的标记\r\n *\r\n * @return 无返回值。\r\n */\r\n MarkerClusterer.prototype._pushMarkerTo = function (marker) {\r\n var index = indexOf(marker, this._markers);\r\n if (index === -1) {\r\n marker.isInCluster = false;\r\n this._markers.push(marker); //Marker拖放后enableDragging不做变化,忽略\r\n }\r\n };\r\n\r\n /**\r\n * 添加一个聚合的标记。\r\n * @param {BMap.Marker} marker 要聚合的单个标记。\r\n * @return 无返回值。\r\n */\r\n MarkerClusterer.prototype.addMarker = function (marker) {\r\n this._pushMarkerTo(marker);\r\n this._createClusters();\r\n };\r\n\r\n /**\r\n * 根据所给定的标记,创建聚合点,并且遍历所有聚合点\r\n * @return 无返回值\r\n */\r\n MarkerClusterer.prototype._createClusters = function () {\r\n var mapBounds = this._map.getBounds();\r\n var extendedBounds = getExtendedBounds(\r\n this._map,\r\n mapBounds,\r\n this._gridSize,\r\n );\r\n for (var i = 0, marker; (marker = this._markers[i]); i++) {\r\n if (\r\n !marker.isInCluster &&\r\n extendedBounds.containsPoint(marker.getPosition())\r\n ) {\r\n this._addToClosestCluster(marker);\r\n }\r\n }\r\n\r\n var len = this._markers.length;\r\n for (var i = 0; i < len; i++) {\r\n if (this._clusters[i]) {\r\n this._clusters[i].render();\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * 根据标记的位置,把它添加到最近的聚合中\r\n * @param {BMap.Marker} marker 要进行聚合的单个标记\r\n *\r\n * @return 无返回值。\r\n */\r\n MarkerClusterer.prototype._addToClosestCluster = function (marker) {\r\n var distance = 4000000;\r\n var clusterToAddTo = null;\r\n var position = marker.getPosition();\r\n for (var i = 0, cluster; (cluster = this._clusters[i]); i++) {\r\n var center = cluster.getCenter();\r\n if (center) {\r\n var d = this._map.getDistance(center, marker.getPosition());\r\n if (d < distance) {\r\n distance = d;\r\n clusterToAddTo = cluster;\r\n }\r\n }\r\n }\r\n\r\n if (clusterToAddTo && clusterToAddTo.isMarkerInClusterBounds(marker)) {\r\n clusterToAddTo.addMarker(marker);\r\n } else {\r\n var cluster = new Cluster(this);\r\n cluster.addMarker(marker);\r\n this._clusters.push(cluster);\r\n }\r\n };\r\n\r\n /**\r\n * 清除上一次的聚合的结果\r\n * @return 无返回值。\r\n */\r\n MarkerClusterer.prototype._clearLastClusters = function () {\r\n for (var i = 0, cluster; (cluster = this._clusters[i]); i++) {\r\n cluster.remove();\r\n }\r\n this._clusters = []; //置空Cluster数组\r\n this._removeMarkersFromCluster(); //把Marker的cluster标记设为false\r\n };\r\n\r\n /**\r\n * 清除某个聚合中的所有标记\r\n * @return 无返回值\r\n */\r\n MarkerClusterer.prototype._removeMarkersFromCluster = function () {\r\n for (var i = 0, marker; (marker = this._markers[i]); i++) {\r\n marker.isInCluster = false;\r\n }\r\n };\r\n\r\n /**\r\n * 把所有的标记从地图上清除\r\n * @return 无返回值\r\n */\r\n MarkerClusterer.prototype._removeMarkersFromMap = function () {\r\n for (var i = 0, marker; (marker = this._markers[i]); i++) {\r\n marker.isInCluster = false;\r\n tmplabel = marker.getLabel();\r\n this._map.removeOverlay(marker);\r\n marker.setLabel(tmplabel);\r\n }\r\n };\r\n\r\n /**\r\n * 删除单个标记\r\n * @param {BMap.Marker} marker 需要被删除的marker\r\n *\r\n * @return {Boolean} 删除成功返回true,否则返回false\r\n */\r\n MarkerClusterer.prototype._removeMarker = function (marker) {\r\n var index = indexOf(marker, this._markers);\r\n if (index === -1) {\r\n return false;\r\n }\r\n tmplabel = marker.getLabel();\r\n this._map.removeOverlay(marker);\r\n marker.setLabel(tmplabel);\r\n this._markers.splice(index, 1);\r\n return true;\r\n };\r\n\r\n /**\r\n * 删除单个标记\r\n * @param {BMap.Marker} marker 需要被删除的marker\r\n *\r\n * @return {Boolean} 删除成功返回true,否则返回false\r\n */\r\n MarkerClusterer.prototype.removeMarker = function (marker) {\r\n var success = this._removeMarker(marker);\r\n if (success) {\r\n this._clearLastClusters();\r\n this._createClusters();\r\n }\r\n return success;\r\n };\r\n\r\n /**\r\n * 删除一组标记\r\n * @param {Array<BMap.Marker>} markers 需要被删除的marker数组\r\n *\r\n * @return {Boolean} 删除成功返回true,否则返回false\r\n */\r\n MarkerClusterer.prototype.removeMarkers = function (markers) {\r\n var success = false;\r\n for (var i = 0; i < markers.length; i++) {\r\n var r = this._removeMarker(markers[i]);\r\n success = success || r;\r\n }\r\n\r\n if (success) {\r\n this._clearLastClusters();\r\n this._createClusters();\r\n }\r\n return success;\r\n };\r\n\r\n /**\r\n * 从地图上彻底清除所有的标记\r\n * @return 无返回值\r\n */\r\n MarkerClusterer.prototype.clearMarkers = function () {\r\n this._clearLastClusters();\r\n this._removeMarkersFromMap();\r\n this._markers = [];\r\n };\r\n\r\n /**\r\n * 重新生成,比如改变了属性等\r\n * @return 无返回值\r\n */\r\n MarkerClusterer.prototype._redraw = function () {\r\n this._clearLastClusters();\r\n this._createClusters();\r\n };\r\n\r\n /**\r\n * 获取网格大小\r\n * @return {Number} 网格大小\r\n */\r\n MarkerClusterer.prototype.getGridSize = function () {\r\n return this._gridSize;\r\n };\r\n\r\n /**\r\n * 设置网格大小\r\n * @param {Number} size 网格大小\r\n * @return 无返回值\r\n */\r\n MarkerClusterer.prototype.setGridSize = function (size) {\r\n this._gridSize = size;\r\n this._redraw();\r\n };\r\n\r\n /**\r\n * 获取聚合的最大缩放级别。\r\n * @return {Number} 聚合的最大缩放级别。\r\n */\r\n MarkerClusterer.prototype.getMaxZoom = function () {\r\n return this._maxZoom;\r\n };\r\n\r\n /**\r\n * 设置聚合的最大缩放级别\r\n * @param {Number} maxZoom 聚合的最大缩放级别\r\n * @return 无返回值\r\n */\r\n MarkerClusterer.prototype.setMaxZoom = function (maxZoom) {\r\n this._maxZoom = maxZoom;\r\n this._redraw();\r\n };\r\n\r\n /**\r\n * 获取聚合的样式风格集合\r\n * @return {Array<IconStyle>} 聚合的样式风格集合\r\n */\r\n MarkerClusterer.prototype.getStyles = function () {\r\n return this._styles;\r\n };\r\n\r\n /**\r\n * 设置聚合的样式风格集合\r\n * @param {Array<IconStyle>} styles 样式风格数组\r\n * @return 无返回值\r\n */\r\n MarkerClusterer.prototype.setStyles = function (styles) {\r\n this._styles = styles;\r\n this._redraw();\r\n };\r\n\r\n /**\r\n * 获取单个聚合的最小数量。\r\n * @return {Number} 单个聚合的最小数量。\r\n */\r\n MarkerClusterer.prototype.getMinClusterSize = function () {\r\n return this._minClusterSize;\r\n };\r\n\r\n /**\r\n * 设置单个聚合的最小数量。\r\n * @param {Number} size 单个聚合的最小数量。\r\n * @return 无返回值。\r\n */\r\n MarkerClusterer.prototype.setMinClusterSize = function (size) {\r\n this._minClusterSize = size;\r\n this._redraw();\r\n };\r\n\r\n /**\r\n * 获取单个聚合的落脚点是否是聚合内所有标记的平均中心。\r\n * @return {Boolean} true或false。\r\n */\r\n MarkerClusterer.prototype.isAverageCenter = function () {\r\n return this._isAverageCenter;\r\n };\r\n\r\n /**\r\n * 获取聚合的Map实例。\r\n * @return {Map} Map的示例。\r\n */\r\n MarkerClusterer.prototype.getMap = function () {\r\n return this._map;\r\n };\r\n\r\n /**\r\n * 获取所有的标记数组。\r\n * @return {Array<Marker>} 标记数组。\r\n */\r\n MarkerClusterer.prototype.getMarkers = function () {\r\n return this._markers;\r\n };\r\n\r\n /**\r\n * 获取聚合的总数量。\r\n * @return {Number} 聚合的总数量。\r\n */\r\n MarkerClusterer.prototype.getClustersCount = function () {\r\n var count = 0;\r\n for (var i = 0, cluster; (cluster = this._clusters[i]); i++) {\r\n cluster.isReal() && count++;\r\n }\r\n return count;\r\n };\r\n\r\n /**\r\n * @ignore\r\n * Cluster\r\n * @class 表示一个聚合对象,该聚合,包含有N个标记,这N个标记组成的范围,并有予以显示在Map上的TextIconOverlay等。\r\n * @constructor\r\n * @param {MarkerClusterer} markerClusterer 一个标记聚合器示例。\r\n */\r\n function Cluster(markerClusterer) {\r\n this._markerClusterer = markerClusterer;\r\n this._map = markerClusterer.getMap();\r\n this._minClusterSize = markerClusterer.getMinClusterSize();\r\n this._isAverageCenter = markerClusterer.isAverageCenter();\r\n this._center = null; //落脚位置\r\n this._markers = []; //这个Cluster中所包含的markers\r\n this._gridBounds = null; //以中心点为准,向四边扩大gridSize个像素的范围,也即网格范围\r\n this._isReal = false; //真的是个聚合\r\n\r\n this._clusterMarker = new BMapLib.TextIconOverlay(\r\n this._center,\r\n this._markers.length,\r\n {\r\n styles: this._markerClusterer.getStyles(),\r\n },\r\n );\r\n //this._map.addOverlay(this._clusterMarker);\r\n }\r\n\r\n /**\r\n * 向该聚合添加一个标记。\r\n * @param {Marker} marker 要添加的标记。\r\n * @return 无返回值。\r\n */\r\n Cluster.prototype.addMarker = function (marker) {\r\n if (this.isMarkerInCluster(marker)) {\r\n return false;\r\n } //也可用marker.isInCluster判断,外面判断OK,这里基本不会命中\r\n\r\n if (!this._center) {\r\n this._center = marker.getPosition();\r\n this.updateGridBounds(); //\r\n } else {\r\n if (this._isAverageCenter) {\r\n var l = this._markers.length + 1;\r\n var lat =\r\n (this._center.lat * (l - 1) + marker.getPosition().lat) / l;\r\n var lng =\r\n (this._center.lng * (l - 1) + marker.getPosition().lng) / l;\r\n this._center = new BMap.Point(lng, lat);\r\n this.updateGridBounds();\r\n } //计算新的Center\r\n }\r\n\r\n marker.isInCluster = true;\r\n this._markers.push(marker);\r\n };\r\n\r\n /**\r\n * 进行dom操作\r\n * @return 无返回值\r\n */\r\n Cluster.prototype.render = function () {\r\n var len = this._markers.length;\r\n\r\n if (len < this._minClusterSize) {\r\n for (var i = 0; i < len; i++) {\r\n this._map.addOverlay(this._markers[i]);\r\n }\r\n } else {\r\n this._map.addOverlay(this._clusterMarker);\r\n this._isReal = true;\r\n this.updateClusterMarker();\r\n }\r\n };\r\n\r\n /**\r\n * 判断一个标记是否在该聚合中。\r\n * @param {Marker} marker 要判断的标记。\r\n * @return {Boolean} true或false。\r\n */\r\n Cluster.prototype.isMarkerInCluster = function (marker) {\r\n if (this._markers.indexOf) {\r\n return this._markers.indexOf(marker) != -1;\r\n } else {\r\n for (var i = 0, m; (m = this._markers[i]); i++) {\r\n if (m === marker) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n /**\r\n * 判断一个标记是否在该聚合网格范围中。\r\n * @param {Marker} marker 要判断的标记。\r\n * @return {Boolean} true或false。\r\n */\r\n Cluster.prototype.isMarkerInClusterBounds = function (marker) {\r\n return this._gridBounds.containsPoint(marker.getPosition());\r\n };\r\n\r\n Cluster.prototype.isReal = function (marker) {\r\n return this._isReal;\r\n };\r\n\r\n /**\r\n * 更新该聚合的网格范围。\r\n * @return 无返回值。\r\n */\r\n Cluster.prototype.updateGridBounds = function () {\r\n var bounds = new BMap.Bounds(this._center, this._center);\r\n this._gridBounds = getExtendedBounds(\r\n this._map,\r\n bounds,\r\n this._markerClusterer.getGridSize(),\r\n );\r\n };\r\n\r\n /**\r\n * 更新该聚合的显示样式,也即TextIconOverlay。\r\n * @return 无返回值。\r\n */\r\n Cluster.prototype.updateClusterMarker = function () {\r\n if (this._map.getZoom() > this._markerClusterer.getMaxZoom()) {\r\n this._clusterMarker && this._map.removeOverlay(this._clusterMarker);\r\n for (var i = 0, marker; (marker = this._markers[i]); i++) {\r\n this._map.addOverlay(marker);\r\n }\r\n return;\r\n }\r\n\r\n if (this._markers.length < this._minClusterSize) {\r\n this._clusterMarker.hide();\r\n return;\r\n }\r\n\r\n this._clusterMarker.setPosition(this._center);\r\n\r\n this._clusterMarker.setText(this._markers.length);\r\n\r\n var thatMap = this._map;\r\n var thatBounds = this.getBounds();\r\n this._clusterMarker.addEventListener('click', function (event) {\r\n thatMap.setViewport(thatBounds);\r\n });\r\n };\r\n\r\n /**\r\n * 删除该聚合。\r\n * @return 无返回值。\r\n */\r\n Cluster.prototype.remove = function () {\r\n for (var i = 0, m; (m = this._markers[i]); i++) {\r\n tmplabel = this._markers[i].getLabel();\r\n this._markers[i].getMap() &&\r\n this._map.removeOverlay(this._markers[i]);\r\n this._markers[i].setLabel(tmplabel);\r\n } //清除散的标记点\r\n this._map.removeOverlay(this._clusterMarker);\r\n this._markers.length = 0;\r\n delete this._markers;\r\n };\r\n\r\n /**\r\n * 获取该聚合所包含的所有标记的最小外接矩形的范围。\r\n * @return {BMap.Bounds} 计算出的范围。\r\n */\r\n Cluster.prototype.getBounds = function () {\r\n var bounds = new BMap.Bounds(this._center, this._center);\r\n for (var i = 0, marker; (marker = this._markers[i]); i++) {\r\n bounds.extend(marker.getPosition());\r\n }\r\n return bounds;\r\n };\r\n\r\n /**\r\n * 获取该聚合的落脚点。\r\n * @return {BMap.Point} 该聚合的落脚点。\r\n */\r\n Cluster.prototype.getCenter = function () {\r\n return this._center;\r\n };\r\n})();\r\n"],"mappings":";;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAIA,OAAO,GAAIC,MAAM,CAACD,OAAP,GAAiBA,OAAO,IAAI,EAA3C;;AACA,CAAC,YAAY;EACT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACI,IAAIE,iBAAiB,GAAG,SAApBA,iBAAoB,CAAUC,GAAV,EAAeC,MAAf,EAAuBC,QAAvB,EAAiC;IACrDD,MAAM,GAAGE,gBAAgB,CAACF,MAAD,CAAzB;IACA,IAAIG,OAAO,GAAGJ,GAAG,CAACK,YAAJ,CAAiBJ,MAAM,CAACK,YAAP,EAAjB,CAAd;IACA,IAAIC,OAAO,GAAGP,GAAG,CAACK,YAAJ,CAAiBJ,MAAM,CAACO,YAAP,EAAjB,CAAd;IACAJ,OAAO,CAACK,CAAR,IAAaP,QAAb;IACAE,OAAO,CAACM,CAAR,IAAaR,QAAb;IACAK,OAAO,CAACE,CAAR,IAAaP,QAAb;IACAK,OAAO,CAACG,CAAR,IAAaR,QAAb;IACA,IAAIS,KAAK,GAAGX,GAAG,CAACY,YAAJ,CAAiBR,OAAjB,CAAZ;IACA,IAAIS,KAAK,GAAGb,GAAG,CAACY,YAAJ,CAAiBL,OAAjB,CAAZ;IACA,OAAO,IAAIO,IAAI,CAACC,MAAT,CAAgBF,KAAhB,EAAuBF,KAAvB,CAAP;EACH,CAXD;EAaA;AACJ;AACA;AACA;AACA;AACA;;;EACI,IAAIR,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAUF,MAAV,EAAkB;IACrC,IAAIe,IAAI,GAAGC,QAAQ,CAAChB,MAAM,CAACK,YAAP,GAAsBY,GAAvB,EAA4B,CAAC,GAA7B,EAAkC,GAAlC,CAAnB;IACA,IAAIC,IAAI,GAAGF,QAAQ,CAAChB,MAAM,CAACO,YAAP,GAAsBU,GAAvB,EAA4B,CAAC,GAA7B,EAAkC,GAAlC,CAAnB;IACA,IAAIE,IAAI,GAAGH,QAAQ,CAAChB,MAAM,CAACK,YAAP,GAAsBe,GAAvB,EAA4B,CAAC,EAA7B,EAAiC,EAAjC,CAAnB;IACA,IAAIC,IAAI,GAAGL,QAAQ,CAAChB,MAAM,CAACO,YAAP,GAAsBa,GAAvB,EAA4B,CAAC,EAA7B,EAAiC,EAAjC,CAAnB;IACA,OAAO,IAAIP,IAAI,CAACC,MAAT,CACH,IAAID,IAAI,CAACS,KAAT,CAAeJ,IAAf,EAAqBG,IAArB,CADG,EAEH,IAAIR,IAAI,CAACS,KAAT,CAAeP,IAAf,EAAqBI,IAArB,CAFG,CAAP;EAIH,CATD;EAWA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;EACI,IAAIH,QAAQ,GAAG,SAAXA,QAAW,CAAUO,CAAV,EAAaC,GAAb,EAAkBC,GAAlB,EAAuB;IAClCD,GAAG,KAAKD,CAAC,GAAGG,IAAI,CAACD,GAAL,CAASF,CAAT,EAAYC,GAAZ,CAAT,CAAH;IACAC,GAAG,KAAKF,CAAC,GAAGG,IAAI,CAACC,GAAL,CAASJ,CAAT,EAAYE,GAAZ,CAAT,CAAH;IACA,OAAOF,CAAP;EACH,CAJD;EAMA;AACJ;AACA;AACA;AACA;AACA;;;EACI,IAAIK,OAAO,GAAG,SAAVA,OAAU,CAAUC,MAAV,EAAkB;IAC5B,OAAO,qBAAqBC,MAAM,CAACC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BJ,MAA/B,CAA5B;EACH,CAFD;EAIA;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACI,IAAIK,OAAO,GAAG,SAAVA,OAAU,CAAUC,IAAV,EAAgBN,MAAhB,EAAwB;IAClC,IAAIO,KAAK,GAAG,CAAC,CAAb;;IACA,IAAIR,OAAO,CAACC,MAAD,CAAX,EAAqB;MACjB,IAAIA,MAAM,CAACK,OAAX,EAAoB;QAChBE,KAAK,GAAGP,MAAM,CAACK,OAAP,CAAeC,IAAf,CAAR;MACH,CAFD,MAEO;QACH,KAAK,IAAIZ,CAAC,GAAG,CAAR,EAAWc,CAAhB,EAAoBA,CAAC,GAAGR,MAAM,CAACN,CAAD,CAA9B,EAAoCA,CAAC,EAArC,EAAyC;UACrC,IAAIc,CAAC,KAAKF,IAAV,EAAgB;YACZC,KAAK,GAAGb,CAAR;YACA;UACH;QACJ;MACJ;IACJ;;IACD,OAAOa,KAAP;EACH,CAfD;EAiBA;AACJ;AACA;;;EACI,IAAIE,eAAe;EACf;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACS1C,OAAO,CAAC0C,eAAR,GAA0B,UAAUvC,GAAV,EAAewC,OAAf,EAAwB;IAC/C,IAAI,CAACxC,GAAL,EAAU;MACN;IACH;;IACD,KAAKyC,IAAL,GAAYzC,GAAZ;IACA,KAAK0C,QAAL,GAAgB,EAAhB;IACA,KAAKC,SAAL,GAAiB,EAAjB;IAEA,IAAIC,IAAI,GAAGJ,OAAO,IAAI,EAAtB;IACA,KAAKK,SAAL,GAAiBD,IAAI,CAAC,UAAD,CAAJ,IAAoB,EAArC;IACA,KAAKE,QAAL,GAAgBF,IAAI,CAAC,SAAD,CAAJ,IAAmB,EAAnC;IACA,KAAKG,eAAL,GAAuBH,IAAI,CAAC,gBAAD,CAAJ,IAA0B,CAAjD;IACA,KAAKI,gBAAL,GAAwB,KAAxB;;IACA,IAAIJ,IAAI,CAAC,iBAAD,CAAJ,IAA2BK,SAA/B,EAA0C;MACtC,KAAKD,gBAAL,GAAwBJ,IAAI,CAAC,iBAAD,CAA5B;IACH;;IACD,KAAKM,OAAL,GAAeN,IAAI,CAAC,QAAD,CAAJ,IAAkB,EAAjC;IAEA,IAAIO,IAAI,GAAG,IAAX;;IACA,KAAKV,IAAL,CAAUW,gBAAV,CAA2B,SAA3B,EAAsC,YAAY;MAC9CD,IAAI,CAACE,OAAL;IACH,CAFD;;IAIA,KAAKZ,IAAL,CAAUW,gBAAV,CAA2B,SAA3B,EAAsC,YAAY;MAC9CD,IAAI,CAACE,OAAL;IACH,CAFD;;IAIA,IAAIC,IAAI,GAAGV,IAAI,CAAC,SAAD,CAAf;IACAf,OAAO,CAACyB,IAAD,CAAP,IAAiB,KAAKC,UAAL,CAAgBD,IAAhB,CAAjB;EACH,CA3CL;EA6CA;AACJ;AACA;AACA;AACA;AACA;;;EACIf,eAAe,CAACP,SAAhB,CAA0BuB,UAA1B,GAAuC,UAAUC,OAAV,EAAmB;IACtD,KAAK,IAAIhC,CAAC,GAAG,CAAR,EAAWiC,GAAG,GAAGD,OAAO,CAACE,MAA9B,EAAsClC,CAAC,GAAGiC,GAA1C,EAA+CjC,CAAC,EAAhD,EAAoD;MAChD,KAAKmC,aAAL,CAAmBH,OAAO,CAAChC,CAAD,CAA1B;IACH;;IACD,KAAKoC,eAAL;EACH,CALD;EAOA;AACJ;AACA;AACA;AACA;AACA;;;EACIrB,eAAe,CAACP,SAAhB,CAA0B2B,aAA1B,GAA0C,UAAUE,MAAV,EAAkB;IACxD,IAAIxB,KAAK,GAAGF,OAAO,CAAC0B,MAAD,EAAS,KAAKnB,QAAd,CAAnB;;IACA,IAAIL,KAAK,KAAK,CAAC,CAAf,EAAkB;MACdwB,MAAM,CAACC,WAAP,GAAqB,KAArB;;MACA,KAAKpB,QAAL,CAAcqB,IAAd,CAAmBF,MAAnB,EAFc,CAEc;;IAC/B;EACJ,CAND;EAQA;AACJ;AACA;AACA;AACA;;;EACItB,eAAe,CAACP,SAAhB,CAA0BgC,SAA1B,GAAsC,UAAUH,MAAV,EAAkB;IACpD,KAAKF,aAAL,CAAmBE,MAAnB;;IACA,KAAKD,eAAL;EACH,CAHD;EAKA;AACJ;AACA;AACA;;;EACIrB,eAAe,CAACP,SAAhB,CAA0B4B,eAA1B,GAA4C,YAAY;IACpD,IAAIK,SAAS,GAAG,KAAKxB,IAAL,CAAUyB,SAAV,EAAhB;;IACA,IAAIC,cAAc,GAAGpE,iBAAiB,CAClC,KAAK0C,IAD6B,EAElCwB,SAFkC,EAGlC,KAAKpB,SAH6B,CAAtC;;IAKA,KAAK,IAAIrB,CAAC,GAAG,CAAR,EAAWqC,MAAhB,EAAyBA,MAAM,GAAG,KAAKnB,QAAL,CAAclB,CAAd,CAAlC,EAAqDA,CAAC,EAAtD,EAA0D;MACtD,IACI,CAACqC,MAAM,CAACC,WAAR,IACAK,cAAc,CAACC,aAAf,CAA6BP,MAAM,CAACQ,WAAP,EAA7B,CAFJ,EAGE;QACE,KAAKC,oBAAL,CAA0BT,MAA1B;MACH;IACJ;;IAED,IAAIJ,GAAG,GAAG,KAAKf,QAAL,CAAcgB,MAAxB;;IACA,KAAK,IAAIlC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiC,GAApB,EAAyBjC,CAAC,EAA1B,EAA8B;MAC1B,IAAI,KAAKmB,SAAL,CAAenB,CAAf,CAAJ,EAAuB;QACnB,KAAKmB,SAAL,CAAenB,CAAf,EAAkB+C,MAAlB;MACH;IACJ;EACJ,CAtBD;EAwBA;AACJ;AACA;AACA;AACA;AACA;;;EACIhC,eAAe,CAACP,SAAhB,CAA0BsC,oBAA1B,GAAiD,UAAUT,MAAV,EAAkB;IAC/D,IAAIW,QAAQ,GAAG,OAAf;IACA,IAAIC,cAAc,GAAG,IAArB;IACA,IAAIC,QAAQ,GAAGb,MAAM,CAACQ,WAAP,EAAf;;IACA,KAAK,IAAI7C,CAAC,GAAG,CAAR,EAAWmD,OAAhB,EAA0BA,OAAO,GAAG,KAAKhC,SAAL,CAAenB,CAAf,CAApC,EAAwDA,CAAC,EAAzD,EAA6D;MACzD,IAAIoD,MAAM,GAAGD,OAAO,CAACE,SAAR,EAAb;;MACA,IAAID,MAAJ,EAAY;QACR,IAAIE,CAAC,GAAG,KAAKrC,IAAL,CAAUsC,WAAV,CAAsBH,MAAtB,EAA8Bf,MAAM,CAACQ,WAAP,EAA9B,CAAR;;QACA,IAAIS,CAAC,GAAGN,QAAR,EAAkB;UACdA,QAAQ,GAAGM,CAAX;UACAL,cAAc,GAAGE,OAAjB;QACH;MACJ;IACJ;;IAED,IAAIF,cAAc,IAAIA,cAAc,CAACO,uBAAf,CAAuCnB,MAAvC,CAAtB,EAAsE;MAClEY,cAAc,CAACT,SAAf,CAAyBH,MAAzB;IACH,CAFD,MAEO;MACH,IAAIc,OAAO,GAAG,IAAIM,OAAJ,CAAY,IAAZ,CAAd;MACAN,OAAO,CAACX,SAAR,CAAkBH,MAAlB;;MACA,KAAKlB,SAAL,CAAeoB,IAAf,CAAoBY,OAApB;IACH;EACJ,CAtBD;EAwBA;AACJ;AACA;AACA;;;EACIpC,eAAe,CAACP,SAAhB,CAA0BkD,kBAA1B,GAA+C,YAAY;IACvD,KAAK,IAAI1D,CAAC,GAAG,CAAR,EAAWmD,OAAhB,EAA0BA,OAAO,GAAG,KAAKhC,SAAL,CAAenB,CAAf,CAApC,EAAwDA,CAAC,EAAzD,EAA6D;MACzDmD,OAAO,CAACQ,MAAR;IACH;;IACD,KAAKxC,SAAL,GAAiB,EAAjB,CAJuD,CAIlC;;IACrB,KAAKyC,yBAAL,GALuD,CAKrB;;EACrC,CAND;EAQA;AACJ;AACA;AACA;;;EACI7C,eAAe,CAACP,SAAhB,CAA0BoD,yBAA1B,GAAsD,YAAY;IAC9D,KAAK,IAAI5D,CAAC,GAAG,CAAR,EAAWqC,MAAhB,EAAyBA,MAAM,GAAG,KAAKnB,QAAL,CAAclB,CAAd,CAAlC,EAAqDA,CAAC,EAAtD,EAA0D;MACtDqC,MAAM,CAACC,WAAP,GAAqB,KAArB;IACH;EACJ,CAJD;EAMA;AACJ;AACA;AACA;;;EACIvB,eAAe,CAACP,SAAhB,CAA0BqD,qBAA1B,GAAkD,YAAY;IAC1D,KAAK,IAAI7D,CAAC,GAAG,CAAR,EAAWqC,MAAhB,EAAyBA,MAAM,GAAG,KAAKnB,QAAL,CAAclB,CAAd,CAAlC,EAAqDA,CAAC,EAAtD,EAA0D;MACtDqC,MAAM,CAACC,WAAP,GAAqB,KAArB;MACAwB,QAAQ,GAAGzB,MAAM,CAAC0B,QAAP,EAAX;;MACA,KAAK9C,IAAL,CAAU+C,aAAV,CAAwB3B,MAAxB;;MACAA,MAAM,CAAC4B,QAAP,CAAgBH,QAAhB;IACH;EACJ,CAPD;EASA;AACJ;AACA;AACA;AACA;AACA;;;EACI/C,eAAe,CAACP,SAAhB,CAA0B0D,aAA1B,GAA0C,UAAU7B,MAAV,EAAkB;IACxD,IAAIxB,KAAK,GAAGF,OAAO,CAAC0B,MAAD,EAAS,KAAKnB,QAAd,CAAnB;;IACA,IAAIL,KAAK,KAAK,CAAC,CAAf,EAAkB;MACd,OAAO,KAAP;IACH;;IACDiD,QAAQ,GAAGzB,MAAM,CAAC0B,QAAP,EAAX;;IACA,KAAK9C,IAAL,CAAU+C,aAAV,CAAwB3B,MAAxB;;IACAA,MAAM,CAAC4B,QAAP,CAAgBH,QAAhB;;IACA,KAAK5C,QAAL,CAAciD,MAAd,CAAqBtD,KAArB,EAA4B,CAA5B;;IACA,OAAO,IAAP;EACH,CAVD;EAYA;AACJ;AACA;AACA;AACA;AACA;;;EACIE,eAAe,CAACP,SAAhB,CAA0B4D,YAA1B,GAAyC,UAAU/B,MAAV,EAAkB;IACvD,IAAIgC,OAAO,GAAG,KAAKH,aAAL,CAAmB7B,MAAnB,CAAd;;IACA,IAAIgC,OAAJ,EAAa;MACT,KAAKX,kBAAL;;MACA,KAAKtB,eAAL;IACH;;IACD,OAAOiC,OAAP;EACH,CAPD;EASA;AACJ;AACA;AACA;AACA;AACA;;;EACItD,eAAe,CAACP,SAAhB,CAA0B8D,aAA1B,GAA0C,UAAUtC,OAAV,EAAmB;IACzD,IAAIqC,OAAO,GAAG,KAAd;;IACA,KAAK,IAAIrE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgC,OAAO,CAACE,MAA5B,EAAoClC,CAAC,EAArC,EAAyC;MACrC,IAAIuE,CAAC,GAAG,KAAKL,aAAL,CAAmBlC,OAAO,CAAChC,CAAD,CAA1B,CAAR;;MACAqE,OAAO,GAAGA,OAAO,IAAIE,CAArB;IACH;;IAED,IAAIF,OAAJ,EAAa;MACT,KAAKX,kBAAL;;MACA,KAAKtB,eAAL;IACH;;IACD,OAAOiC,OAAP;EACH,CAZD;EAcA;AACJ;AACA;AACA;;;EACItD,eAAe,CAACP,SAAhB,CAA0BgE,YAA1B,GAAyC,YAAY;IACjD,KAAKd,kBAAL;;IACA,KAAKG,qBAAL;;IACA,KAAK3C,QAAL,GAAgB,EAAhB;EACH,CAJD;EAMA;AACJ;AACA;AACA;;;EACIH,eAAe,CAACP,SAAhB,CAA0BqB,OAA1B,GAAoC,YAAY;IAC5C,KAAK6B,kBAAL;;IACA,KAAKtB,eAAL;EACH,CAHD;EAKA;AACJ;AACA;AACA;;;EACIrB,eAAe,CAACP,SAAhB,CAA0BiE,WAA1B,GAAwC,YAAY;IAChD,OAAO,KAAKpD,SAAZ;EACH,CAFD;EAIA;AACJ;AACA;AACA;AACA;;;EACIN,eAAe,CAACP,SAAhB,CAA0BkE,WAA1B,GAAwC,UAAUC,IAAV,EAAgB;IACpD,KAAKtD,SAAL,GAAiBsD,IAAjB;;IACA,KAAK9C,OAAL;EACH,CAHD;EAKA;AACJ;AACA;AACA;;;EACId,eAAe,CAACP,SAAhB,CAA0BoE,UAA1B,GAAuC,YAAY;IAC/C,OAAO,KAAKtD,QAAZ;EACH,CAFD;EAIA;AACJ;AACA;AACA;AACA;;;EACIP,eAAe,CAACP,SAAhB,CAA0BqE,UAA1B,GAAuC,UAAUC,OAAV,EAAmB;IACtD,KAAKxD,QAAL,GAAgBwD,OAAhB;;IACA,KAAKjD,OAAL;EACH,CAHD;EAKA;AACJ;AACA;AACA;;;EACId,eAAe,CAACP,SAAhB,CAA0BuE,SAA1B,GAAsC,YAAY;IAC9C,OAAO,KAAKrD,OAAZ;EACH,CAFD;EAIA;AACJ;AACA;AACA;AACA;;;EACIX,eAAe,CAACP,SAAhB,CAA0BwE,SAA1B,GAAsC,UAAUC,MAAV,EAAkB;IACpD,KAAKvD,OAAL,GAAeuD,MAAf;;IACA,KAAKpD,OAAL;EACH,CAHD;EAKA;AACJ;AACA;AACA;;;EACId,eAAe,CAACP,SAAhB,CAA0B0E,iBAA1B,GAA8C,YAAY;IACtD,OAAO,KAAK3D,eAAZ;EACH,CAFD;EAIA;AACJ;AACA;AACA;AACA;;;EACIR,eAAe,CAACP,SAAhB,CAA0B2E,iBAA1B,GAA8C,UAAUR,IAAV,EAAgB;IAC1D,KAAKpD,eAAL,GAAuBoD,IAAvB;;IACA,KAAK9C,OAAL;EACH,CAHD;EAKA;AACJ;AACA;AACA;;;EACId,eAAe,CAACP,SAAhB,CAA0B4E,eAA1B,GAA4C,YAAY;IACpD,OAAO,KAAK5D,gBAAZ;EACH,CAFD;EAIA;AACJ;AACA;AACA;;;EACIT,eAAe,CAACP,SAAhB,CAA0B6E,MAA1B,GAAmC,YAAY;IAC3C,OAAO,KAAKpE,IAAZ;EACH,CAFD;EAIA;AACJ;AACA;AACA;;;EACIF,eAAe,CAACP,SAAhB,CAA0B8E,UAA1B,GAAuC,YAAY;IAC/C,OAAO,KAAKpE,QAAZ;EACH,CAFD;EAIA;AACJ;AACA;AACA;;;EACIH,eAAe,CAACP,SAAhB,CAA0B+E,gBAA1B,GAA6C,YAAY;IACrD,IAAIC,KAAK,GAAG,CAAZ;;IACA,KAAK,IAAIxF,CAAC,GAAG,CAAR,EAAWmD,OAAhB,EAA0BA,OAAO,GAAG,KAAKhC,SAAL,CAAenB,CAAf,CAApC,EAAwDA,CAAC,EAAzD,EAA6D;MACzDmD,OAAO,CAACsC,MAAR,MAAoBD,KAAK,EAAzB;IACH;;IACD,OAAOA,KAAP;EACH,CAND;EAQA;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACI,SAAS/B,OAAT,CAAiBiC,eAAjB,EAAkC;IAC9B,KAAKC,gBAAL,GAAwBD,eAAxB;IACA,KAAKzE,IAAL,GAAYyE,eAAe,CAACL,MAAhB,EAAZ;IACA,KAAK9D,eAAL,GAAuBmE,eAAe,CAACR,iBAAhB,EAAvB;IACA,KAAK1D,gBAAL,GAAwBkE,eAAe,CAACN,eAAhB,EAAxB;IACA,KAAKQ,OAAL,GAAe,IAAf,CAL8B,CAKT;;IACrB,KAAK1E,QAAL,GAAgB,EAAhB,CAN8B,CAMV;;IACpB,KAAK2E,WAAL,GAAmB,IAAnB,CAP8B,CAOL;;IACzB,KAAKC,OAAL,GAAe,KAAf,CAR8B,CAQR;;IAEtB,KAAKC,cAAL,GAAsB,IAAI1H,OAAO,CAAC2H,eAAZ,CAClB,KAAKJ,OADa,EAElB,KAAK1E,QAAL,CAAcgB,MAFI,EAGlB;MACI+C,MAAM,EAAE,KAAKU,gBAAL,CAAsBZ,SAAtB;IADZ,CAHkB,CAAtB,CAV8B,CAiB9B;EACH;EAED;AACJ;AACA;AACA;AACA;;;EACItB,OAAO,CAACjD,SAAR,CAAkBgC,SAAlB,GAA8B,UAAUH,MAAV,EAAkB;IAC5C,IAAI,KAAK4D,iBAAL,CAAuB5D,MAAvB,CAAJ,EAAoC;MAChC,OAAO,KAAP;IACH,CAH2C,CAG1C;;;IAEF,IAAI,CAAC,KAAKuD,OAAV,EAAmB;MACf,KAAKA,OAAL,GAAevD,MAAM,CAACQ,WAAP,EAAf;MACA,KAAKqD,gBAAL,GAFe,CAEU;IAC5B,CAHD,MAGO;MACH,IAAI,KAAK1E,gBAAT,EAA2B;QACvB,IAAI2E,CAAC,GAAG,KAAKjF,QAAL,CAAcgB,MAAd,GAAuB,CAA/B;QACA,IAAIrC,GAAG,GACH,CAAC,KAAK+F,OAAL,CAAa/F,GAAb,IAAoBsG,CAAC,GAAG,CAAxB,IAA6B9D,MAAM,CAACQ,WAAP,GAAqBhD,GAAnD,IAA0DsG,CAD9D;QAEA,IAAIzG,GAAG,GACH,CAAC,KAAKkG,OAAL,CAAalG,GAAb,IAAoByG,CAAC,GAAG,CAAxB,IAA6B9D,MAAM,CAACQ,WAAP,GAAqBnD,GAAnD,IAA0DyG,CAD9D;QAEA,KAAKP,OAAL,GAAe,IAAItG,IAAI,CAACS,KAAT,CAAeL,GAAf,EAAoBG,GAApB,CAAf;QACA,KAAKqG,gBAAL;MACH,CATE,CASD;;IACL;;IAED7D,MAAM,CAACC,WAAP,GAAqB,IAArB;;IACA,KAAKpB,QAAL,CAAcqB,IAAd,CAAmBF,MAAnB;EACH,CAtBD;EAwBA;AACJ;AACA;AACA;;;EACIoB,OAAO,CAACjD,SAAR,CAAkBuC,MAAlB,GAA2B,YAAY;IACnC,IAAId,GAAG,GAAG,KAAKf,QAAL,CAAcgB,MAAxB;;IAEA,IAAID,GAAG,GAAG,KAAKV,eAAf,EAAgC;MAC5B,KAAK,IAAIvB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiC,GAApB,EAAyBjC,CAAC,EAA1B,EAA8B;QAC1B,KAAKiB,IAAL,CAAUmF,UAAV,CAAqB,KAAKlF,QAAL,CAAclB,CAAd,CAArB;MACH;IACJ,CAJD,MAIO;MACH,KAAKiB,IAAL,CAAUmF,UAAV,CAAqB,KAAKL,cAA1B;;MACA,KAAKD,OAAL,GAAe,IAAf;MACA,KAAKO,mBAAL;IACH;EACJ,CAZD;EAcA;AACJ;AACA;AACA;AACA;;;EACI5C,OAAO,CAACjD,SAAR,CAAkByF,iBAAlB,GAAsC,UAAU5D,MAAV,EAAkB;IACpD,IAAI,KAAKnB,QAAL,CAAcP,OAAlB,EAA2B;MACvB,OAAO,KAAKO,QAAL,CAAcP,OAAd,CAAsB0B,MAAtB,KAAiC,CAAC,CAAzC;IACH,CAFD,MAEO;MACH,KAAK,IAAIrC,CAAC,GAAG,CAAR,EAAWc,CAAhB,EAAoBA,CAAC,GAAG,KAAKI,QAAL,CAAclB,CAAd,CAAxB,EAA2CA,CAAC,EAA5C,EAAgD;QAC5C,IAAIc,CAAC,KAAKuB,MAAV,EAAkB;UACd,OAAO,IAAP;QACH;MACJ;IACJ;;IACD,OAAO,KAAP;EACH,CAXD;EAaA;AACJ;AACA;AACA;AACA;;;EACIoB,OAAO,CAACjD,SAAR,CAAkBgD,uBAAlB,GAA4C,UAAUnB,MAAV,EAAkB;IAC1D,OAAO,KAAKwD,WAAL,CAAiBjD,aAAjB,CAA+BP,MAAM,CAACQ,WAAP,EAA/B,CAAP;EACH,CAFD;;EAIAY,OAAO,CAACjD,SAAR,CAAkBiF,MAAlB,GAA2B,UAAUpD,MAAV,EAAkB;IACzC,OAAO,KAAKyD,OAAZ;EACH,CAFD;EAIA;AACJ;AACA;AACA;;;EACIrC,OAAO,CAACjD,SAAR,CAAkB0F,gBAAlB,GAAqC,YAAY;IAC7C,IAAIzH,MAAM,GAAG,IAAIa,IAAI,CAACC,MAAT,CAAgB,KAAKqG,OAArB,EAA8B,KAAKA,OAAnC,CAAb;IACA,KAAKC,WAAL,GAAmBtH,iBAAiB,CAChC,KAAK0C,IAD2B,EAEhCxC,MAFgC,EAGhC,KAAKkH,gBAAL,CAAsBlB,WAAtB,EAHgC,CAApC;EAKH,CAPD;EASA;AACJ;AACA;AACA;;;EACIhB,OAAO,CAACjD,SAAR,CAAkB6F,mBAAlB,GAAwC,YAAY;IAChD,IAAI,KAAKpF,IAAL,CAAUqF,OAAV,KAAsB,KAAKX,gBAAL,CAAsBf,UAAtB,EAA1B,EAA8D;MAC1D,KAAKmB,cAAL,IAAuB,KAAK9E,IAAL,CAAU+C,aAAV,CAAwB,KAAK+B,cAA7B,CAAvB;;MACA,KAAK,IAAI/F,CAAC,GAAG,CAAR,EAAWqC,MAAhB,EAAyBA,MAAM,GAAG,KAAKnB,QAAL,CAAclB,CAAd,CAAlC,EAAqDA,CAAC,EAAtD,EAA0D;QACtD,KAAKiB,IAAL,CAAUmF,UAAV,CAAqB/D,MAArB;MACH;;MACD;IACH;;IAED,IAAI,KAAKnB,QAAL,CAAcgB,MAAd,GAAuB,KAAKX,eAAhC,EAAiD;MAC7C,KAAKwE,cAAL,CAAoBQ,IAApB;;MACA;IACH;;IAED,KAAKR,cAAL,CAAoBS,WAApB,CAAgC,KAAKZ,OAArC;;IAEA,KAAKG,cAAL,CAAoBU,OAApB,CAA4B,KAAKvF,QAAL,CAAcgB,MAA1C;;IAEA,IAAIwE,OAAO,GAAG,KAAKzF,IAAnB;IACA,IAAI0F,UAAU,GAAG,KAAKjE,SAAL,EAAjB;;IACA,KAAKqD,cAAL,CAAoBnE,gBAApB,CAAqC,OAArC,EAA8C,UAAUgF,KAAV,EAAiB;MAC3DF,OAAO,CAACG,WAAR,CAAoBF,UAApB;IACH,CAFD;EAGH,CAvBD;EAyBA;AACJ;AACA;AACA;;;EACIlD,OAAO,CAACjD,SAAR,CAAkBmD,MAAlB,GAA2B,YAAY;IACnC,KAAK,IAAI3D,CAAC,GAAG,CAAR,EAAWc,CAAhB,EAAoBA,CAAC,GAAG,KAAKI,QAAL,CAAclB,CAAd,CAAxB,EAA2CA,CAAC,EAA5C,EAAgD;MAC5C8D,QAAQ,GAAG,KAAK5C,QAAL,CAAclB,CAAd,EAAiB+D,QAAjB,EAAX;MACA,KAAK7C,QAAL,CAAclB,CAAd,EAAiBqF,MAAjB,MACI,KAAKpE,IAAL,CAAU+C,aAAV,CAAwB,KAAK9C,QAAL,CAAclB,CAAd,CAAxB,CADJ;;MAEA,KAAKkB,QAAL,CAAclB,CAAd,EAAiBiE,QAAjB,CAA0BH,QAA1B;IACH,CANkC,CAMjC;;;IACF,KAAK7C,IAAL,CAAU+C,aAAV,CAAwB,KAAK+B,cAA7B;;IACA,KAAK7E,QAAL,CAAcgB,MAAd,GAAuB,CAAvB;IACA,OAAO,KAAKhB,QAAZ;EACH,CAVD;EAYA;AACJ;AACA;AACA;;;EACIuC,OAAO,CAACjD,SAAR,CAAkBkC,SAAlB,GAA8B,YAAY;IACtC,IAAIjE,MAAM,GAAG,IAAIa,IAAI,CAACC,MAAT,CAAgB,KAAKqG,OAArB,EAA8B,KAAKA,OAAnC,CAAb;;IACA,KAAK,IAAI5F,CAAC,GAAG,CAAR,EAAWqC,MAAhB,EAAyBA,MAAM,GAAG,KAAKnB,QAAL,CAAclB,CAAd,CAAlC,EAAqDA,CAAC,EAAtD,EAA0D;MACtDvB,MAAM,CAACqI,MAAP,CAAczE,MAAM,CAACQ,WAAP,EAAd;IACH;;IACD,OAAOpE,MAAP;EACH,CAND;EAQA;AACJ;AACA;AACA;;;EACIgF,OAAO,CAACjD,SAAR,CAAkB6C,SAAlB,GAA8B,YAAY;IACtC,OAAO,KAAKuC,OAAZ;EACH,CAFD;AAGH,CAnnBD"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
.eh-bmap {
|
|
2
|
-
width: 100%;
|
|
3
|
-
height: 100%;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
.eh-bmap-marker__point {
|
|
7
|
-
display: flex;
|
|
8
|
-
cursor: pointer;
|
|
9
|
-
white-space: nowrap;
|
|
10
|
-
}
|
|
1
|
+
.eh-bmap {
|
|
2
|
+
width: 100%;
|
|
3
|
+
height: 100%;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.eh-bmap-marker__point {
|
|
7
|
+
display: flex;
|
|
8
|
+
cursor: pointer;
|
|
9
|
+
white-space: nowrap;
|
|
10
|
+
}
|
|
@@ -374,7 +374,7 @@ var renderFieldItem = function renderFieldItem(reactNode, parentNode, viewModel,
|
|
|
374
374
|
*
|
|
375
375
|
* @param {String | String[]} placeholder
|
|
376
376
|
* @param {String} label
|
|
377
|
-
* @param {ANY}
|
|
377
|
+
* @param {ANY} child
|
|
378
378
|
* @return {String | String[]} 返回placeholder
|
|
379
379
|
*/
|
|
380
380
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-modal.js","names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__rest","s","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","RangePicker","DatePicker","renderFieldItem","reactNode","parentNode","viewModel","viewMode","hasChildrenWithKeyProp","hasReactDOMWithKeyProp","React","Children","forEach","child","index","key","isValidElement","props","children","Array","isArray","resultArray","item","push","cloneElement","node","map","_a","_b","_c","createElement","className","type","displayName","title","Col","span","style","required","label","name","weights","rules","labelAfter","mode","viewName","tooltip","fromItemProps","fromElementProps","includes","replace","arr","split","charAt","toLocaleUpperCase","slice","join","undefined","propChildren","clonedNode","Input","TextArea","message","validator","_","test","Error","maxLength","isUpload","getValuePropName","rest","assign","valuePropName","getValueFromEvent","fileList","viewRest","VtxFormLayout","FormItem","Fragment","Tooltip","formNode1","placeholder","initPlaceholder","divNode","labelAfterNode","document","fontSize","innerHTML","visibility","body","appendChild","position","marginLeft","offsetWidth","top","height","removeChild","classnames","inline","extra","isInput","InputNumber","propTypes","isRange","CreateModal","ref","size","width","visible","onSave","onReset","onError","onCancel","deafultFooter","extraFooter","clearText","okText","closeText","onlyForm","footer","formProps","onlyCloseBtn","isViewLayout","isCompact","labelColSpan","layout","Form","useForm","form","formRef","useRef","useState","saving","setSaving","useImperativeHandle","handleSave","res","validateFields","error","data","msg","handleReset","resetFields","useEffect","current","getWidth","VtxModal","xsmall","small","large","getCols","getLabelColSpan","getLayout","renderFooter","Button","onClick","disabled","loading","formNode","scrollToFirstError","cols","maskClosable","forwardRef"],"sources":["create-modal/create-modal.js"],"sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport Button from 'antd/lib/button';\nimport message from 'antd/lib/message';\nimport Form from 'antd/lib/form';\nimport React, { forwardRef, useImperativeHandle, useRef, useState } from 'react';\nimport Col from 'antd/lib/col';\nimport Input from 'antd/lib/input';\nimport Tooltip from 'antd/lib/tooltip';\nimport InputNumber from 'antd/lib/input-number';\nimport VtxFormLayout from '@vtx/components/lib/vtx-form-layout';\nimport VtxModal from '@vtx/components/lib/vtx-modal';\nimport classnames from 'classnames';\nimport { DatePicker } from 'antd';\nconst { RangePicker } = DatePicker;\nexport const renderFieldItem = (reactNode, parentNode, viewModel, viewMode) => {\n let hasChildrenWithKeyProp = false;\n // 处理数组的方式传入的值\n let hasReactDOMWithKeyProp = false;\n React.Children.forEach(reactNode, (child, index) => {\n if ((child === null || child === void 0 ? void 0 : child.key) && child) {\n if (React.isValidElement(child.props.children)) {\n hasChildrenWithKeyProp = true;\n }\n else {\n hasReactDOMWithKeyProp = true;\n }\n }\n });\n if (hasReactDOMWithKeyProp) {\n if (Array.isArray(reactNode)) {\n const resultArray = [];\n reactNode.forEach((item) => {\n resultArray.push(React.cloneElement(item, {}, renderFieldItem(item)));\n });\n }\n }\n if (hasChildrenWithKeyProp) {\n if (Array.isArray(reactNode)) {\n const resultArray = [];\n reactNode.forEach((item) => {\n resultArray.push(React.cloneElement(item, {}, renderFieldItem(item.props.children)));\n });\n return resultArray;\n }\n else {\n const node = reactNode;\n const result = React.cloneElement(node, {}, renderFieldItem(node.props.children));\n return result;\n }\n }\n // child: : React.ReactNode 但是有个type类型\n return React.Children.map(reactNode, (child, index) => {\n var _a, _b, _c;\n if (child === null\n || typeof child === 'string'\n || typeof child === 'boolean'\n || typeof child === 'number') {\n return React.createElement(\"div\", { className: 'text-node' }, child);\n }\n const { props, type } = child;\n const displayName = (_a = child === null || child === void 0 ? void 0 : child.type) === null || _a === void 0 ? void 0 : _a.displayName;\n // 标题组件用到的props\n const title = props['data-title'];\n // 没有 label 也没有 name, 视为默认元素\n if (title) {\n return (React.createElement(Col, { key: title, span: 24 },\n React.createElement(\"div\", { className: \"env-create-modal-title\" }, title)));\n }\n // 传入样式处理\n const style = props['data-style'];\n const className = props['data-class'];\n // 表单组件用到的props\n const required = props['data-required'];\n const label = props['data-label'];\n const name = props['data-name'];\n const weights = props['data-weights'];\n // const weights = 2;\n const rules = props['data-rules'] || [];\n const labelAfter = props['data-label-after'];\n const mode = props['v-mode']; // 获取是编辑模式还是只读模式\n const viewName = (props === null || props === void 0 ? void 0 : props['v-name']) ? props === null || props === void 0 ? void 0 : props['v-name'] : name;\n const tooltip = props === null || props === void 0 ? void 0 : props['data-tooltip'];\n // 获取所有的\n // 自定义列 默认为24\n const fromItemProps = {};\n const fromElementProps = {};\n for (const i in props) {\n if (i.includes('data-')) {\n const result = i.replace('data-', '');\n const arr = result.split('-').map((item, index) => {\n if (index !== 0) {\n return (item.charAt(0).toLocaleUpperCase() + item.slice(1));\n }\n return item;\n });\n switch (result) {\n case 'span':\n break;\n case 'style':\n break;\n case 'label-after':\n break;\n case 'class':\n break;\n case 'required':\n break;\n default:\n fromItemProps[arr.join('')] = props[i];\n break;\n }\n fromElementProps[i] = undefined;\n }\n }\n // 不设置 `data-label` 和 `data-name` 则视为自定义字段\n if (!label && !name) {\n const propChildren = child.props.children;\n if (propChildren) {\n const clonedNode = React.cloneElement(child, {}, renderFieldItem(propChildren, child));\n return clonedNode;\n }\n return child;\n }\n if (!props['data-rules']) {\n if (type === Input || type === Input.TextArea) {\n rules.push({\n required: required !== null && required !== void 0 ? required : false,\n message: `${label}不能为空`,\n });\n rules.push({\n validator: (_, value) => {\n if (/^\\s+$/.test(value)) {\n return Promise.reject(new Error(`${label}不能只包含空白字符`));\n }\n else {\n return Promise.resolve();\n }\n },\n });\n }\n else {\n rules.push({\n required: required !== null && required !== void 0 ? required : false,\n message: `${label}不能为空`,\n });\n }\n }\n // 很多时候input会忘记设置最大长度的属性\n // 这里为input组件自动注入`maxlength`属性\n const { maxLength } = props;\n if ((type === Input || type === Input.TextArea) && !maxLength) {\n child = React.cloneElement(child, {\n maxLength: 50,\n });\n }\n // 深copy比较\n const isUpload = displayName === 'HJYUpload';\n const getValuePropName = () => {\n switch (displayName) {\n case 'Checkbox':\n case 'Switch':\n return 'checked';\n case 'HJYUpload':\n return 'fileList';\n default:\n return 'value';\n }\n };\n const rest = Object.assign(Object.assign(Object.assign(Object.assign({ valuePropName: getValuePropName() }, (isUpload\n ? {\n getValueFromEvent: (e) => {\n if (Array.isArray(e)) {\n return e;\n }\n return e && e.fileList;\n },\n }\n : {})), {\n rules,\n }), fromItemProps), { label });\n const viewRest = Object.assign({}, fromItemProps);\n if ((viewMode == 'read' && mode != 'edit') || mode == 'read') {\n // 图片用Upload组件配置 mode 模式即可\n return (React.createElement(VtxFormLayout.FormItem, Object.assign({ key: index, style: style, className: className, weights: weights, label: React.createElement(React.Fragment, null,\n React.createElement(Tooltip, { title: typeof tooltip == 'string' ? tooltip : label }, label)) }, viewRest, rest), (viewModel === null || viewModel === void 0 ? void 0 : viewModel[viewName]) ? viewModel[viewName] : '--'));\n }\n const formNode1 = React.cloneElement(child, Object.assign({ placeholder: initPlaceholder(props.placeholder, label, child) }, fromElementProps));\n const divNode = React.cloneElement(child, Object.assign({}, fromElementProps));\n let labelAfterNode = labelAfter;\n if (((_c = (_b = labelAfter === null || labelAfter === void 0 ? void 0 : labelAfter.props) === null || _b === void 0 ? void 0 : _b.children) === null || _c === void 0 ? void 0 : _c.type) === 'div'\n && typeof label == 'string') {\n const span = document.createElement('span');\n span.style.fontSize = '14px';\n span.innerHTML = label;\n span.style.visibility = 'hidden';\n document.body.appendChild(span);\n labelAfterNode = React.cloneElement(labelAfter, {}, React.cloneElement(labelAfter.props.children, {\n style: Object.assign(Object.assign({ position: 'absolute', marginLeft: span.offsetWidth + (required ? 30 : 22), top: -30 }, labelAfter.props.children.props.style), { height: 0 }),\n }));\n document.body.removeChild(span);\n }\n return (React.createElement(React.Fragment, null, child.type == 'div' ? (React.createElement(VtxFormLayout.FormItem, Object.assign({ key: index, style: style, className: classnames({\n className,\n ['vtx-form-item']: true,\n ['vtx-form-item-vertical']: true,\n ['vtx-form-item--inline']: true,\n }), weights: weights, inline: true }, rest), divNode)) : (React.createElement(VtxFormLayout.FormItem, Object.assign({ key: index, style: style, className: className, weights: weights }, rest, { extra: labelAfterNode }), formNode1))));\n });\n};\n/**\n *\n * @param {String | String[]} placeholder\n * @param {String} label\n * @param {ANY} type\n * @return {String | String[]} 返回placeholder\n */\nfunction initPlaceholder(placeholder, label, child) {\n var _a;\n const type = child === null || child === void 0 ? void 0 : child.type;\n if (placeholder) {\n return placeholder;\n }\n const isInput = type === Input\n || type === Input.TextArea\n || type === InputNumber\n || ((_a = type === null || type === void 0 ? void 0 : type.propTypes) === null || _a === void 0 ? void 0 : _a.maxLength);\n const isRange = type === RangePicker;\n // let itemType = undefined;\n // if (type && typeof type != 'object') {\n // itemType = type?.toString()?.match(/function\\s*([^(]*)\\(/)?.[1];\n // }\n if (isInput) {\n return '请输入' + label;\n // } else if (itemType === 'RangePicker') {\n }\n else if (isRange) {\n return ['开始时间', '结束时间'];\n }\n else {\n return '请选择' + label;\n }\n}\nconst CreateModal = (props, ref) => {\n const { size, width, children, visible, onSave, onReset, onError, onCancel, deafultFooter = false, extraFooter = [], clearText = '清空', okText = '保存', closeText = '关闭', onlyForm = false, footer, formProps, onlyCloseBtn, // viewMode == 'read' 的时候默认开启,手动设置onlyCloseBtn = false 可以关闭\n isViewLayout, // viewMode == 'read' 的时候默认开启,手动设置isViewLayout = false 可以关闭\n isCompact, // viewMode == 'read' 的时候默认开启,手动设置isCompact = false 可以关闭\n viewModel, // 存放查看数据内容的\n viewMode, // 全局的模式,优先级比v-mode低\n labelColSpan, layout } = props, rest = __rest(props, [\"size\", \"width\", \"children\", \"visible\", \"onSave\", \"onReset\", \"onError\", \"onCancel\", \"deafultFooter\", \"extraFooter\", \"clearText\", \"okText\", \"closeText\", \"onlyForm\", \"footer\", \"formProps\", \"onlyCloseBtn\", \"isViewLayout\", \"isCompact\", \"viewModel\", \"viewMode\", \"labelColSpan\", \"layout\"]);\n const [form] = Form.useForm();\n const formRef = useRef(null);\n const [saving, setSaving] = useState(false);\n useImperativeHandle(ref, () => ({\n form,\n }));\n const handleSave = () => __awaiter(void 0, void 0, void 0, function* () {\n var _a;\n let res = undefined;\n try {\n res = yield form.validateFields();\n }\n catch (e) {\n onError && onError(e);\n return;\n }\n try {\n setSaving(true);\n onSave && (yield onSave(res));\n }\n catch (e) {\n message.error(((_a = e === null || e === void 0 ? void 0 : e.data) === null || _a === void 0 ? void 0 : _a.msg) || (e === null || e === void 0 ? void 0 : e.data) || e);\n }\n finally {\n setSaving(false);\n }\n });\n const handleReset = () => {\n form.resetFields();\n onReset && onReset();\n };\n React.useEffect(() => {\n // 关闭弹窗后, 清除错误, 清除数据\n if (!visible && formRef.current && !onlyForm) {\n form.resetFields();\n }\n }, [visible]);\n const getWidth = () => {\n if (typeof width === 'number') {\n return width;\n }\n switch (size) {\n case 'xsmall':\n return VtxModal.size.xsmall;\n case 'small':\n return VtxModal.size.small;\n case 'middle':\n // return VtxModal.size.middle;\n return 900;\n case 'large':\n return VtxModal.size.large;\n default:\n // return VtxModal.size.middle;\n return 900;\n }\n };\n const getCols = () => {\n switch (size) {\n case 'xsmall':\n return 1;\n case 'small':\n return 1;\n case 'middle':\n return undefined;\n case 'large':\n return 3;\n default:\n return undefined;\n }\n };\n // const getCard = () => {\n // switch (size) {\n // case 'xsmall':\n // return false;\n // case 'small':\n // return false;\n // case 'middle':\n // return false;\n // case 'large':\n // return true;\n // default:\n // return true;\n // }\n // };\n const getLabelColSpan = () => {\n return labelColSpan ? labelColSpan : 8;\n };\n const getLayout = () => {\n if (layout)\n return layout;\n if (viewMode == 'mix') {\n return undefined;\n }\n else if ((viewMode == 'read' || viewMode == 'inline')\n && isViewLayout != false) {\n return 'inline';\n }\n else {\n return 'horizontal';\n }\n };\n const renderFooter = () => {\n if (footer) {\n // 优先使用自定义的footer\n return footer;\n }\n else if ((viewMode == 'read' || viewMode == 'inline')\n && onlyCloseBtn != false) {\n return [\n React.createElement(Button, { key: \"confirm\", onClick: onCancel }, closeText),\n ];\n }\n else if (deafultFooter) {\n // 使用默认的footer 确定和取消按钮\n return [\n React.createElement(Button, { key: \"cancel\", onClick: onCancel }, \"\\u53D6\\u6D88\"),\n React.createElement(Button, { key: \"save\", type: \"primary\", onClick: handleSave ? handleSave : null }, \"\\u786E\\u5B9A\"),\n ];\n }\n else {\n return [\n React.createElement(Button, { disabled: saving, key: \"clear\", onClick: handleReset }, clearText),\n ...extraFooter,\n React.createElement(Button, { loading: saving, key: \"save\", type: \"primary\", onClick: handleSave, disabled: saving }, okText),\n ];\n }\n };\n const formNode = (React.createElement(Form, Object.assign({ ref: formRef, form: form, layout: getLayout(), scrollToFirstError: true }, formProps),\n React.createElement(VtxFormLayout, { cols: getCols(), labelColSpan: getLabelColSpan(), layout: getLayout() }, renderFieldItem(children, undefined, viewModel, viewMode))));\n return (React.createElement(React.Fragment, null, !onlyForm ? (React.createElement(VtxModal, Object.assign({ className: viewMode == 'read' && isCompact != false\n ? 'env-create-view-modal'\n : 'env-create-modal', visible: onlyForm ? true : visible, width: getWidth(), maskClosable: false, onCancel: onCancel, footer: renderFooter() }, rest), formNode)) : (React.createElement(\"div\", { className: viewMode == 'read' && isCompact != false\n ? 'env-create-view-modal'\n : 'env-create-modal' }, formNode))));\n};\nexport default forwardRef(CreateModal);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create-modal.js","names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__rest","s","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","RangePicker","DatePicker","renderFieldItem","reactNode","parentNode","viewModel","viewMode","hasChildrenWithKeyProp","hasReactDOMWithKeyProp","React","Children","forEach","child","index","key","isValidElement","props","children","Array","isArray","resultArray","item","push","cloneElement","node","map","_a","_b","_c","createElement","className","type","displayName","title","Col","span","style","required","label","name","weights","rules","labelAfter","mode","viewName","tooltip","fromItemProps","fromElementProps","includes","replace","arr","split","charAt","toLocaleUpperCase","slice","join","undefined","propChildren","clonedNode","Input","TextArea","message","validator","_","test","Error","maxLength","isUpload","getValuePropName","rest","assign","valuePropName","getValueFromEvent","fileList","viewRest","VtxFormLayout","FormItem","Fragment","Tooltip","formNode1","placeholder","initPlaceholder","divNode","labelAfterNode","document","fontSize","innerHTML","visibility","body","appendChild","position","marginLeft","offsetWidth","top","height","removeChild","classnames","inline","extra","isInput","InputNumber","propTypes","isRange","CreateModal","ref","size","width","visible","onSave","onReset","onError","onCancel","deafultFooter","extraFooter","clearText","okText","closeText","onlyForm","footer","formProps","onlyCloseBtn","isViewLayout","isCompact","labelColSpan","layout","Form","useForm","form","formRef","useRef","useState","saving","setSaving","useImperativeHandle","handleSave","res","validateFields","error","data","msg","handleReset","resetFields","useEffect","current","getWidth","VtxModal","xsmall","small","large","getCols","getLabelColSpan","getLayout","renderFooter","Button","onClick","disabled","loading","formNode","scrollToFirstError","cols","maskClosable","forwardRef"],"sources":["create-modal/create-modal.js"],"sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport Button from 'antd/lib/button';\nimport message from 'antd/lib/message';\nimport Form from 'antd/lib/form';\nimport React, { forwardRef, useImperativeHandle, useRef, useState } from 'react';\nimport Col from 'antd/lib/col';\nimport Input from 'antd/lib/input';\nimport Tooltip from 'antd/lib/tooltip';\nimport InputNumber from 'antd/lib/input-number';\nimport VtxFormLayout from '@vtx/components/lib/vtx-form-layout';\nimport VtxModal from '@vtx/components/lib/vtx-modal';\nimport classnames from 'classnames';\nimport { DatePicker } from 'antd';\nconst { RangePicker } = DatePicker;\nexport const renderFieldItem = (reactNode, parentNode, viewModel, viewMode) => {\n let hasChildrenWithKeyProp = false;\n // 处理数组的方式传入的值\n let hasReactDOMWithKeyProp = false;\n React.Children.forEach(reactNode, (child, index) => {\n if ((child === null || child === void 0 ? void 0 : child.key) && child) {\n if (React.isValidElement(child.props.children)) {\n hasChildrenWithKeyProp = true;\n }\n else {\n hasReactDOMWithKeyProp = true;\n }\n }\n });\n if (hasReactDOMWithKeyProp) {\n if (Array.isArray(reactNode)) {\n const resultArray = [];\n reactNode.forEach((item) => {\n resultArray.push(React.cloneElement(item, {}, renderFieldItem(item)));\n });\n }\n }\n if (hasChildrenWithKeyProp) {\n if (Array.isArray(reactNode)) {\n const resultArray = [];\n reactNode.forEach((item) => {\n resultArray.push(React.cloneElement(item, {}, renderFieldItem(item.props.children)));\n });\n return resultArray;\n }\n else {\n const node = reactNode;\n const result = React.cloneElement(node, {}, renderFieldItem(node.props.children));\n return result;\n }\n }\n // child: : React.ReactNode 但是有个type类型\n return React.Children.map(reactNode, (child, index) => {\n var _a, _b, _c;\n if (child === null\n || typeof child === 'string'\n || typeof child === 'boolean'\n || typeof child === 'number') {\n return React.createElement(\"div\", { className: 'text-node' }, child);\n }\n const { props, type } = child;\n const displayName = (_a = child === null || child === void 0 ? void 0 : child.type) === null || _a === void 0 ? void 0 : _a.displayName;\n // 标题组件用到的props\n const title = props['data-title'];\n // 没有 label 也没有 name, 视为默认元素\n if (title) {\n return (React.createElement(Col, { key: title, span: 24 },\n React.createElement(\"div\", { className: \"env-create-modal-title\" }, title)));\n }\n // 传入样式处理\n const style = props['data-style'];\n const className = props['data-class'];\n // 表单组件用到的props\n const required = props['data-required'];\n const label = props['data-label'];\n const name = props['data-name'];\n const weights = props['data-weights'];\n // const weights = 2;\n const rules = props['data-rules'] || [];\n const labelAfter = props['data-label-after'];\n const mode = props['v-mode']; // 获取是编辑模式还是只读模式\n const viewName = (props === null || props === void 0 ? void 0 : props['v-name']) ? props === null || props === void 0 ? void 0 : props['v-name'] : name;\n const tooltip = props === null || props === void 0 ? void 0 : props['data-tooltip'];\n // 获取所有的\n // 自定义列 默认为24\n const fromItemProps = {};\n const fromElementProps = {};\n for (const i in props) {\n if (i.includes('data-')) {\n const result = i.replace('data-', '');\n const arr = result.split('-').map((item, index) => {\n if (index !== 0) {\n return (item.charAt(0).toLocaleUpperCase() + item.slice(1));\n }\n return item;\n });\n switch (result) {\n case 'span':\n break;\n case 'style':\n break;\n case 'label-after':\n break;\n case 'class':\n break;\n case 'required':\n break;\n default:\n fromItemProps[arr.join('')] = props[i];\n break;\n }\n fromElementProps[i] = undefined;\n }\n }\n // 不设置 `data-label` 和 `data-name` 则视为自定义字段\n if (!label && !name) {\n const propChildren = child.props.children;\n if (propChildren) {\n const clonedNode = React.cloneElement(child, {}, renderFieldItem(propChildren, child));\n return clonedNode;\n }\n return child;\n }\n if (!props['data-rules']) {\n if (type === Input || type === Input.TextArea) {\n rules.push({\n required: required !== null && required !== void 0 ? required : false,\n message: `${label}不能为空`,\n });\n rules.push({\n validator: (_, value) => {\n if (/^\\s+$/.test(value)) {\n return Promise.reject(new Error(`${label}不能只包含空白字符`));\n }\n else {\n return Promise.resolve();\n }\n },\n });\n }\n else {\n rules.push({\n required: required !== null && required !== void 0 ? required : false,\n message: `${label}不能为空`,\n });\n }\n }\n // 很多时候input会忘记设置最大长度的属性\n // 这里为input组件自动注入`maxlength`属性\n const { maxLength } = props;\n if ((type === Input || type === Input.TextArea) && !maxLength) {\n child = React.cloneElement(child, {\n maxLength: 50,\n });\n }\n // 深copy比较\n const isUpload = displayName === 'HJYUpload';\n const getValuePropName = () => {\n switch (displayName) {\n case 'Checkbox':\n case 'Switch':\n return 'checked';\n case 'HJYUpload':\n return 'fileList';\n default:\n return 'value';\n }\n };\n const rest = Object.assign(Object.assign(Object.assign(Object.assign({ valuePropName: getValuePropName() }, (isUpload\n ? {\n getValueFromEvent: (e) => {\n if (Array.isArray(e)) {\n return e;\n }\n return e && e.fileList;\n },\n }\n : {})), {\n rules,\n }), fromItemProps), { label });\n const viewRest = Object.assign({}, fromItemProps);\n if ((viewMode == 'read' && mode != 'edit') || mode == 'read') {\n // 图片用Upload组件配置 mode 模式即可\n return (React.createElement(VtxFormLayout.FormItem, Object.assign({ key: index, style: style, className: className, weights: weights, label: React.createElement(React.Fragment, null,\n React.createElement(Tooltip, { title: typeof tooltip == 'string' ? tooltip : label }, label)) }, viewRest, rest), (viewModel === null || viewModel === void 0 ? void 0 : viewModel[viewName]) ? viewModel[viewName] : '--'));\n }\n const formNode1 = React.cloneElement(child, Object.assign({ placeholder: initPlaceholder(props.placeholder, label, child) }, fromElementProps));\n const divNode = React.cloneElement(child, Object.assign({}, fromElementProps));\n let labelAfterNode = labelAfter;\n if (((_c = (_b = labelAfter === null || labelAfter === void 0 ? void 0 : labelAfter.props) === null || _b === void 0 ? void 0 : _b.children) === null || _c === void 0 ? void 0 : _c.type) === 'div'\n && typeof label == 'string') {\n const span = document.createElement('span');\n span.style.fontSize = '14px';\n span.innerHTML = label;\n span.style.visibility = 'hidden';\n document.body.appendChild(span);\n labelAfterNode = React.cloneElement(labelAfter, {}, React.cloneElement(labelAfter.props.children, {\n style: Object.assign(Object.assign({ position: 'absolute', marginLeft: span.offsetWidth + (required ? 30 : 22), top: -30 }, labelAfter.props.children.props.style), { height: 0 }),\n }));\n document.body.removeChild(span);\n }\n return (React.createElement(React.Fragment, null, child.type == 'div' ? (React.createElement(VtxFormLayout.FormItem, Object.assign({ key: index, style: style, className: classnames({\n className,\n ['vtx-form-item']: true,\n ['vtx-form-item-vertical']: true,\n ['vtx-form-item--inline']: true,\n }), weights: weights, inline: true }, rest), divNode)) : (React.createElement(VtxFormLayout.FormItem, Object.assign({ key: index, style: style, className: className, weights: weights }, rest, { extra: labelAfterNode }), formNode1))));\n });\n};\n/**\n *\n * @param {String | String[]} placeholder\n * @param {String} label\n * @param {ANY} child\n * @return {String | String[]} 返回placeholder\n */\nfunction initPlaceholder(placeholder, label, child) {\n var _a;\n const type = child === null || child === void 0 ? void 0 : child.type;\n if (placeholder) {\n return placeholder;\n }\n const isInput = type === Input\n || type === Input.TextArea\n || type === InputNumber\n || ((_a = type === null || type === void 0 ? void 0 : type.propTypes) === null || _a === void 0 ? void 0 : _a.maxLength);\n const isRange = type === RangePicker;\n // let itemType = undefined;\n // if (type && typeof type != 'object') {\n // itemType = type?.toString()?.match(/function\\s*([^(]*)\\(/)?.[1];\n // }\n if (isInput) {\n return '请输入' + label;\n // } else if (itemType === 'RangePicker') {\n }\n else if (isRange) {\n return ['开始时间', '结束时间'];\n }\n else {\n return '请选择' + label;\n }\n}\nconst CreateModal = (props, ref) => {\n const { size, width, children, visible, onSave, onReset, onError, onCancel, deafultFooter = false, extraFooter = [], clearText = '清空', okText = '保存', closeText = '关闭', onlyForm = false, footer, formProps, onlyCloseBtn, // viewMode == 'read' 的时候默认开启,手动设置onlyCloseBtn = false 可以关闭\n isViewLayout, // viewMode == 'read' 的时候默认开启,手动设置isViewLayout = false 可以关闭\n isCompact, // viewMode == 'read' 的时候默认开启,手动设置isCompact = false 可以关闭\n viewModel, // 存放查看数据内容的\n viewMode, // 全局的模式,优先级比v-mode低\n labelColSpan, layout } = props, rest = __rest(props, [\"size\", \"width\", \"children\", \"visible\", \"onSave\", \"onReset\", \"onError\", \"onCancel\", \"deafultFooter\", \"extraFooter\", \"clearText\", \"okText\", \"closeText\", \"onlyForm\", \"footer\", \"formProps\", \"onlyCloseBtn\", \"isViewLayout\", \"isCompact\", \"viewModel\", \"viewMode\", \"labelColSpan\", \"layout\"]);\n const [form] = Form.useForm();\n const formRef = useRef(null);\n const [saving, setSaving] = useState(false);\n useImperativeHandle(ref, () => ({\n form,\n }));\n const handleSave = () => __awaiter(void 0, void 0, void 0, function* () {\n var _a;\n let res = undefined;\n try {\n res = yield form.validateFields();\n }\n catch (e) {\n onError && onError(e);\n return;\n }\n try {\n setSaving(true);\n onSave && (yield onSave(res));\n }\n catch (e) {\n message.error(((_a = e === null || e === void 0 ? void 0 : e.data) === null || _a === void 0 ? void 0 : _a.msg) || (e === null || e === void 0 ? void 0 : e.data) || e);\n }\n finally {\n setSaving(false);\n }\n });\n const handleReset = () => {\n form.resetFields();\n onReset && onReset();\n };\n React.useEffect(() => {\n // 关闭弹窗后, 清除错误, 清除数据\n if (!visible && formRef.current && !onlyForm) {\n form.resetFields();\n }\n }, [visible]);\n const getWidth = () => {\n if (typeof width === 'number') {\n return width;\n }\n switch (size) {\n case 'xsmall':\n return VtxModal.size.xsmall;\n case 'small':\n return VtxModal.size.small;\n case 'middle':\n // return VtxModal.size.middle;\n return 900;\n case 'large':\n return VtxModal.size.large;\n default:\n // return VtxModal.size.middle;\n return 900;\n }\n };\n const getCols = () => {\n switch (size) {\n case 'xsmall':\n return 1;\n case 'small':\n return 1;\n case 'middle':\n return undefined;\n case 'large':\n return 3;\n default:\n return undefined;\n }\n };\n // const getCard = () => {\n // switch (size) {\n // case 'xsmall':\n // return false;\n // case 'small':\n // return false;\n // case 'middle':\n // return false;\n // case 'large':\n // return true;\n // default:\n // return true;\n // }\n // };\n const getLabelColSpan = () => {\n return labelColSpan ? labelColSpan : 8;\n };\n const getLayout = () => {\n if (layout)\n return layout;\n if (viewMode == 'mix') {\n return undefined;\n }\n else if ((viewMode == 'read' || viewMode == 'inline')\n && isViewLayout != false) {\n return 'inline';\n }\n else {\n return 'horizontal';\n }\n };\n const renderFooter = () => {\n if (footer) {\n // 优先使用自定义的footer\n return footer;\n }\n else if ((viewMode == 'read' || viewMode == 'inline')\n && onlyCloseBtn != false) {\n return [\n React.createElement(Button, { key: \"confirm\", onClick: onCancel }, closeText),\n ];\n }\n else if (deafultFooter) {\n // 使用默认的footer 确定和取消按钮\n return [\n React.createElement(Button, { key: \"cancel\", onClick: onCancel }, \"\\u53D6\\u6D88\"),\n React.createElement(Button, { key: \"save\", type: \"primary\", onClick: handleSave ? handleSave : null }, \"\\u786E\\u5B9A\"),\n ];\n }\n else {\n return [\n React.createElement(Button, { disabled: saving, key: \"clear\", onClick: handleReset }, clearText),\n ...extraFooter,\n React.createElement(Button, { loading: saving, key: \"save\", type: \"primary\", onClick: handleSave, disabled: saving }, okText),\n ];\n }\n };\n const formNode = (React.createElement(Form, Object.assign({ ref: formRef, form: form, layout: getLayout(), scrollToFirstError: true }, formProps),\n React.createElement(VtxFormLayout, { cols: getCols(), labelColSpan: getLabelColSpan(), layout: getLayout() }, renderFieldItem(children, undefined, viewModel, viewMode))));\n return (React.createElement(React.Fragment, null, !onlyForm ? (React.createElement(VtxModal, Object.assign({ className: viewMode == 'read' && isCompact != false\n ? 'env-create-view-modal'\n : 'env-create-modal', visible: onlyForm ? true : visible, width: getWidth(), maskClosable: false, onCancel: onCancel, footer: renderFooter() }, rest), formNode)) : (React.createElement(\"div\", { className: viewMode == 'read' && isCompact != false\n ? 'env-create-view-modal'\n : 'env-create-modal' }, formNode))));\n};\nexport default forwardRef(CreateModal);\n"],"mappings":"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"}
|