{"version":3,"sources":["webpack:///./node_modules/size-sensor/lib/sensors/index.js","webpack:///./node_modules/fmin/build/fmin.js","webpack:///./node_modules/lodash-es/_root.js","webpack:///./node_modules/lodash-es/stubFalse.js","webpack:///./node_modules/size-sensor/lib/debounce.js","webpack:///./node_modules/size-sensor/lib/sensorPool.js","webpack:///./node_modules/size-sensor/lib/sensors/object.js","webpack:///./node_modules/d3-regression/dist/d3-regression.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/lodash-es/isBuffer.js","webpack:///./node_modules/lodash-es/_freeGlobal.js","webpack:///./node_modules/size-sensor/lib/id.js","webpack:///./node_modules/size-sensor/lib/sensors/resizeObserver.js","webpack:///./node_modules/pdfast/src/index.js","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/size-sensor/lib/index.js","webpack:///./node_modules/lodash-es/_nodeUtil.js","webpack:///./node_modules/pdfast/src/helper.js","webpack:///./src/views/manage/activity/edit/statistics/statisticschart.vue?3c57","webpack:///./node_modules/@antv/g2plot/node_modules/tslib/tslib.es6.js","webpack:///./node_modules/@antv/g2plot/esm/utils/invariant.js","webpack:///./node_modules/@antv/g2plot/esm/constant.js","webpack:///./node_modules/@antv/g2plot/esm/utils/pick.js","webpack:///./node_modules/@antv/g2plot/esm/utils/data.js","webpack:///./node_modules/@antv/g2plot/esm/utils/deep-assign.js","webpack:///./node_modules/@antv/g2plot/esm/utils/context.js","webpack:///./node_modules/@antv/g2plot/esm/utils/dom.js","webpack:///./node_modules/@antv/g2plot/esm/utils/flow.js","webpack:///./node_modules/@antv/g2plot/esm/utils/geometry.js","webpack:///./node_modules/@antv/g2plot/esm/utils/kebab-case.js","webpack:///./node_modules/@antv/g2plot/esm/utils/label.js","webpack:///./node_modules/@antv/g2plot/esm/utils/measure-text.js","webpack:///./node_modules/@antv/g2plot/esm/utils/number.js","webpack:///./node_modules/@antv/g2plot/esm/utils/padding.js","webpack:///./node_modules/@antv/g2plot/esm/utils/path.js","webpack:///./node_modules/@antv/g2plot/esm/utils/statistic.js","webpack:///./node_modules/@antv/g2plot/esm/utils/template.js","webpack:///./node_modules/@antv/g2plot/esm/utils/view.js","webpack:///./node_modules/@antv/g2plot/esm/utils/pattern/util.js","webpack:///./node_modules/@antv/g2plot/esm/utils/pattern/dot.js","webpack:///./node_modules/@antv/g2plot/esm/utils/pattern/line.js","webpack:///./node_modules/@antv/g2plot/esm/utils/pattern/square.js","webpack:///./node_modules/@antv/g2plot/esm/utils/pattern/index.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/pattern.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/common.js","webpack:///./node_modules/@antv/g2plot/esm/core/global.js","webpack:///./node_modules/@antv/g2plot/esm/core/locale.js","webpack:///./node_modules/@antv/g2plot/esm/locales/en_US.js","webpack:///./node_modules/@antv/g2plot/esm/locales/zh_CN.js","webpack:///./node_modules/@antv/g2plot/esm/utils/tooltip.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/geometries/base.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/geometries/area.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/geometries/edge.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/geometries/interval.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/geometries/line.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/geometries/point.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/geometries/polygon.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/geometries/schema.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/geometries/violin.js","webpack:///./node_modules/@antv/g2plot/esm/core/plot.js","webpack:///./node_modules/@antv/g2plot/esm/utils/transform/percent.js","webpack:///./node_modules/@antv/g2plot/esm/plots/line/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/area/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/area/constants.js","webpack:///./node_modules/@antv/g2plot/esm/plots/area/index.js","webpack:///./node_modules/@antv/g2plot/esm/interactions/actions/reset-button.js","webpack:///./node_modules/@antv/g2plot/esm/interactions/brush.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/brush.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/connected-area.js","webpack:///./node_modules/@antv/g2plot/esm/utils/conversion.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/conversion-tag.js","webpack:///./node_modules/@antv/g2plot/esm/plots/column/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/bar/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/bar/constants.js","webpack:///./node_modules/@antv/g2plot/esm/plots/funnel/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/bar/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/column/constants.js","webpack:///./node_modules/@antv/g2plot/esm/plots/column/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/funnel/geometries/common.js","webpack:///./node_modules/@antv/g2plot/esm/plots/funnel/geometries/basic.js","webpack:///./node_modules/@antv/g2plot/esm/plots/funnel/geometries/compare.js","webpack:///./node_modules/@antv/g2plot/esm/plots/funnel/geometries/dynamic-height.js","webpack:///./node_modules/@antv/g2plot/esm/plots/funnel/geometries/facet.js","webpack:///./node_modules/@antv/g2plot/esm/plots/funnel/interactions/funnel-conversion-tag.js","webpack:///./node_modules/@antv/g2plot/esm/plots/funnel/interactions/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/funnel/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/funnel/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/gauge/constants.js","webpack:///./node_modules/@antv/g2plot/esm/plots/gauge/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/gauge/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/gauge/shapes/indicator.js","webpack:///./node_modules/@antv/g2plot/esm/plots/gauge/shapes/meter-gauge.js","webpack:///./node_modules/@antv/g2plot/esm/plots/gauge/index.js","webpack:///./node_modules/@antv/g2plot/esm/utils/transform/histogram.js","webpack:///./node_modules/@antv/g2plot/esm/plots/histogram/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/histogram/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/histogram/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/line/constants.js","webpack:///./node_modules/@antv/g2plot/esm/plots/line/interactions/marker-active.js","webpack:///./node_modules/@antv/g2plot/esm/plots/line/interactions/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/line/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/pie/contants.js","webpack:///./node_modules/@antv/g2plot/esm/utils/matrix.js","webpack:///./node_modules/@antv/g2plot/esm/plots/pie/interactions/actions/legend-active.js","webpack:///./node_modules/@antv/g2plot/esm/plots/pie/interactions/util.js","webpack:///./node_modules/@antv/g2plot/esm/plots/pie/interactions/actions/statistic-active.js","webpack:///./node_modules/@antv/g2plot/esm/plots/pie/interactions/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/pie/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/pie/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/pie/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/progress/constants.js","webpack:///./node_modules/@antv/g2plot/esm/plots/progress/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/progress/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/progress/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/ring-progress/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/ring-progress/constants.js","webpack:///./node_modules/@antv/g2plot/esm/plots/ring-progress/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/scatter/util.js","webpack:///./node_modules/@antv/g2plot/esm/plots/scatter/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/scatter/constant.js","webpack:///./node_modules/@antv/g2plot/esm/interactions/drag-move.js","webpack:///./node_modules/@antv/g2plot/esm/plots/scatter/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/stock/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/stock/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/stock/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/stock/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/tiny-line/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/tiny-line/constants.js","webpack:///./node_modules/@antv/g2plot/esm/plots/tiny-area/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/tiny-area/constants.js","webpack:///./node_modules/@antv/g2plot/esm/plots/tiny-area/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/tiny-column/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/tiny-column/constants.js","webpack:///./node_modules/@antv/g2plot/esm/plots/tiny-column/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/tiny-line/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/tiny-line/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/mix/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/mix/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/mix/interactions/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/mix/interactions/association.js","webpack:///./node_modules/@antv/g2plot/esm/plots/mix/index.js","webpack:///./node_modules/@antv/g2plot/esm/lab.js","webpack:///./node_modules/@antv/g2plot/esm/plots/bidirectional-bar/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/bidirectional-bar/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/bidirectional-bar/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/bidirectional-bar/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/box/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/box/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/box/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/box/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/bullet/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/bullet/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/bullet/constant.js","webpack:///./node_modules/@antv/g2plot/esm/utils/transform/chord.js","webpack:///./node_modules/@antv/g2plot/esm/plots/bullet/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/chord/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/chord/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/chord/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/circle-packing/constant.js","webpack:///./node_modules/@antv/g2plot/esm/interactions/actions/drill-down.js","webpack:///./node_modules/d3-hierarchy/src/array.js","webpack:///./node_modules/d3-hierarchy/src/pack/enclose.js","webpack:///./node_modules/d3-hierarchy/src/pack/siblings.js","webpack:///./node_modules/d3-hierarchy/src/accessors.js","webpack:///./node_modules/d3-hierarchy/src/constant.js","webpack:///./node_modules/d3-hierarchy/src/pack/index.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/count.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/each.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/find.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/sum.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/sort.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/path.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/ancestors.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/descendants.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/leaves.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/links.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/iterator.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/index.js","webpack:///./node_modules/@antv/g2plot/esm/utils/hierarchy/util.js","webpack:///./node_modules/@antv/g2plot/esm/utils/hierarchy/pack.js","webpack:///./node_modules/@antv/g2plot/esm/plots/circle-packing/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/circle-packing/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/interactions/drill-down.js","webpack:///./node_modules/@antv/g2plot/esm/plots/circle-packing/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/dual-axes/types.js","webpack:///./node_modules/@antv/g2plot/esm/plots/dual-axes/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/dual-axes/util/option.js","webpack:///./node_modules/@antv/g2plot/esm/plots/dual-axes/util/geometry.js","webpack:///./node_modules/@antv/g2plot/esm/plots/dual-axes/util/legend.js","webpack:///./node_modules/@antv/g2plot/esm/plots/dual-axes/util/render-sider.js","webpack:///./node_modules/@antv/g2plot/esm/plots/dual-axes/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/dual-axes/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/facet/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/facet/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/facet/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/facet/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/heatmap/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/heatmap/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/heatmap/shapes/circle.js","webpack:///./node_modules/@antv/g2plot/esm/plots/heatmap/shapes/square.js","webpack:///./node_modules/@antv/g2plot/esm/plots/heatmap/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/liquid/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/liquid/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/liquid/constants.js","webpack:///./node_modules/@antv/g2plot/esm/plots/liquid/shapes/liquid.js","webpack:///./node_modules/@antv/g2plot/esm/plots/liquid/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/radar/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/radar/interactions/radar-tooltip-action.js","webpack:///./node_modules/@antv/g2plot/esm/plots/radar/interactions/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/radar/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/radial-bar/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/radial-bar/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/radial-bar/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/radial-bar/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/rose/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/rose/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sankey/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/rose/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sankey/circle.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sankey/sankey/align.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sankey/sankey/helper.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sankey/sankey/sankey.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sankey/layout.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sankey/helper.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sankey/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sankey/interactions/actions/node-drag.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sankey/interactions/node-draggable.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sankey/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sunburst/constant.js","webpack:///./node_modules/d3-hierarchy/src/treemap/round.js","webpack:///./node_modules/d3-hierarchy/src/treemap/dice.js","webpack:///./node_modules/d3-hierarchy/src/partition.js","webpack:///./node_modules/@antv/g2plot/esm/utils/hierarchy/partition.js","webpack:///./node_modules/d3-hierarchy/src/cluster.js","webpack:///./node_modules/d3-hierarchy/src/stratify.js","webpack:///./node_modules/d3-hierarchy/src/tree.js","webpack:///./node_modules/d3-hierarchy/src/treemap/slice.js","webpack:///./node_modules/d3-hierarchy/src/treemap/squarify.js","webpack:///./node_modules/d3-hierarchy/src/treemap/index.js","webpack:///./node_modules/d3-hierarchy/src/treemap/binary.js","webpack:///./node_modules/d3-hierarchy/src/treemap/sliceDice.js","webpack:///./node_modules/d3-hierarchy/src/treemap/resquarify.js","webpack:///./node_modules/@antv/g2plot/esm/utils/hierarchy/treemap.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sunburst/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sunburst/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sunburst/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/treemap/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/treemap/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/treemap/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/treemap/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/interactions/util.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/interactions/actions/active.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/interactions/actions/highlight.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/interactions/actions/selected.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/interactions/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/label.js","webpack:///./node_modules/lodash-es/isArray.js","webpack:///./node_modules/lodash-es/_Symbol.js","webpack:///./node_modules/lodash-es/_getRawTag.js","webpack:///./node_modules/lodash-es/_objectToString.js","webpack:///./node_modules/lodash-es/_baseGetTag.js","webpack:///./node_modules/lodash-es/isObjectLike.js","webpack:///./node_modules/lodash-es/_createBaseFor.js","webpack:///./node_modules/lodash-es/_baseFor.js","webpack:///./node_modules/lodash-es/_baseTimes.js","webpack:///./node_modules/lodash-es/_baseIsArguments.js","webpack:///./node_modules/lodash-es/isArguments.js","webpack:///./node_modules/lodash-es/_isIndex.js","webpack:///./node_modules/lodash-es/isLength.js","webpack:///./node_modules/lodash-es/_baseIsTypedArray.js","webpack:///./node_modules/lodash-es/_baseUnary.js","webpack:///./node_modules/lodash-es/isTypedArray.js","webpack:///./node_modules/lodash-es/_arrayLikeKeys.js","webpack:///./node_modules/lodash-es/_isPrototype.js","webpack:///./node_modules/lodash-es/_overArg.js","webpack:///./node_modules/lodash-es/_nativeKeys.js","webpack:///./node_modules/lodash-es/_baseKeys.js","webpack:///./node_modules/lodash-es/isObject.js","webpack:///./node_modules/lodash-es/isFunction.js","webpack:///./node_modules/lodash-es/isArrayLike.js","webpack:///./node_modules/lodash-es/keys.js","webpack:///./node_modules/lodash-es/_baseForOwn.js","webpack:///./node_modules/lodash-es/_createBaseEach.js","webpack:///./node_modules/lodash-es/_baseEach.js","webpack:///./node_modules/lodash-es/_listCacheClear.js","webpack:///./node_modules/lodash-es/eq.js","webpack:///./node_modules/lodash-es/_assocIndexOf.js","webpack:///./node_modules/lodash-es/_listCacheDelete.js","webpack:///./node_modules/lodash-es/_listCacheGet.js","webpack:///./node_modules/lodash-es/_listCacheHas.js","webpack:///./node_modules/lodash-es/_listCacheSet.js","webpack:///./node_modules/lodash-es/_ListCache.js","webpack:///./node_modules/lodash-es/_stackClear.js","webpack:///./node_modules/lodash-es/_stackDelete.js","webpack:///./node_modules/lodash-es/_stackGet.js","webpack:///./node_modules/lodash-es/_stackHas.js","webpack:///./node_modules/lodash-es/_coreJsData.js","webpack:///./node_modules/lodash-es/_isMasked.js","webpack:///./node_modules/lodash-es/_toSource.js","webpack:///./node_modules/lodash-es/_baseIsNative.js","webpack:///./node_modules/lodash-es/_getValue.js","webpack:///./node_modules/lodash-es/_getNative.js","webpack:///./node_modules/lodash-es/_Map.js","webpack:///./node_modules/lodash-es/_nativeCreate.js","webpack:///./node_modules/lodash-es/_hashClear.js","webpack:///./node_modules/lodash-es/_hashDelete.js","webpack:///./node_modules/lodash-es/_hashGet.js","webpack:///./node_modules/lodash-es/_hashHas.js","webpack:///./node_modules/lodash-es/_hashSet.js","webpack:///./node_modules/lodash-es/_Hash.js","webpack:///./node_modules/lodash-es/_mapCacheClear.js","webpack:///./node_modules/lodash-es/_isKeyable.js","webpack:///./node_modules/lodash-es/_getMapData.js","webpack:///./node_modules/lodash-es/_mapCacheDelete.js","webpack:///./node_modules/lodash-es/_mapCacheGet.js","webpack:///./node_modules/lodash-es/_mapCacheHas.js","webpack:///./node_modules/lodash-es/_mapCacheSet.js","webpack:///./node_modules/lodash-es/_MapCache.js","webpack:///./node_modules/lodash-es/_stackSet.js","webpack:///./node_modules/lodash-es/_Stack.js","webpack:///./node_modules/lodash-es/_setCacheAdd.js","webpack:///./node_modules/lodash-es/_setCacheHas.js","webpack:///./node_modules/lodash-es/_SetCache.js","webpack:///./node_modules/lodash-es/_Uint8Array.js","webpack:///./node_modules/lodash-es/_setToArray.js","webpack:///./node_modules/lodash-es/_equalByTag.js","webpack:///./node_modules/lodash-es/stubArray.js","webpack:///./node_modules/lodash-es/_getSymbols.js","webpack:///./node_modules/lodash-es/_getAllKeys.js","webpack:///./node_modules/lodash-es/_equalObjects.js","webpack:///./node_modules/lodash-es/_DataView.js","webpack:///./node_modules/lodash-es/_Promise.js","webpack:///./node_modules/lodash-es/_Set.js","webpack:///./node_modules/lodash-es/_WeakMap.js","webpack:///./node_modules/lodash-es/_getTag.js","webpack:///./node_modules/lodash-es/_baseIsEqualDeep.js","webpack:///./node_modules/@antv/g2plot/node_modules/@antv/path-util/esm/parse-path-string.js","webpack:///./node_modules/@antv/g2plot/node_modules/@antv/path-util/esm/process/arc-2-cubic.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/shape.js","webpack:///./node_modules/@antv/g2plot/esm/utils/color/blend.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/layout/circleintersection.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/layout/diagram.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/layout/layout.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/violin/constant.js","webpack:///./node_modules/@antv/g2plot/esm/utils/transform/quantile.js","webpack:///./node_modules/@antv/g2plot/esm/plots/violin/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/violin/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/violin/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/waterfall/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/waterfall/shape.js","webpack:///./node_modules/@antv/g2plot/esm/plots/waterfall/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/waterfall/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/waterfall/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/word-cloud/constant.js","webpack:///./node_modules/@antv/g2plot/esm/utils/transform/word-cloud.js","webpack:///./node_modules/@antv/g2plot/esm/plots/word-cloud/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/word-cloud/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/word-cloud/shapes/word-cloud.js","webpack:///./node_modules/@antv/g2plot/esm/plots/word-cloud/index.js","webpack:///./node_modules/@antv/g2plot/esm/plugin/index.js","webpack:///./node_modules/@antv/g2plot/esm/index.js","webpack:///src/views/manage/activity/edit/statistics/statisticschart.vue","webpack:///./src/views/manage/activity/edit/statistics/statisticschart.vue?96d0","webpack:///./src/views/manage/activity/edit/statistics/statisticschart.vue","webpack:///./node_modules/size-sensor/lib/constant.js","webpack:///(webpack)/buildin/harmony-module.js"],"names":["Object","defineProperty","exports","value","createSensor","_object","_resizeObserver","ResizeObserver","global","factory","this","bisect","f","a","b","parameters","maxIterations","tolerance","fA","fB","delta","i","mid","fMid","Math","abs","zeros","x","r","Array","zerosM","y","map","dot","ret","length","norm2","sqrt","scale","c","weightedSum","w1","v1","w2","v2","j","nelderMead","x0","maxDiff","nonZeroDelta","zeroDelta","minErrorDelta","minTolerance","rho","undefined","chi","psi","sigma","N","simplex","fx","id","point","slice","updateSimplex","sortOrder","centroid","reflected","contracted","expanded","iteration","sort","history","sortedSimplex","state","push","max","worst","shouldReduce","wolfeLineSearch","pk","current","next","c1","c2","phi0","phiPrime0","fxprime","phi","phi_old","phiPrime","a0","zoom","a_lo","a_high","phi_lo","conjugateGradient","initial","params","temp","yk","alpha","delta_k","beta_k","gradientDescent","learnRate","gradientDescentLineSearch","functionCalls","inner","freeSelf","self","root","Function","stubFalse","_default","fn","delay","arguments","timer","_this","_len","args","_key","clearTimeout","setTimeout","apply","removeSensor","getSensor","Sensors","_id","_interopRequireDefault","_sensors","_constant","obj","__esModule","clean","sensorId","element","getAttribute","SizeSensorId","newId","setAttribute","sensor","destroy","_debounce","whenDestroy","listeners","newSensor","getComputedStyle","position","style","document","createElement","onload","contentDocument","defaultView","addEventListener","resizeListener","display","top","left","height","width","overflow","pointerEvents","zIndex","opacity","SensorClassName","SensorTabIndex","type","appendChild","data","forEach","listener","bind","cb","indexOf","parentNode","removeEventListener","removeChild","removeAttribute","unbind","idx","splice","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","isArray","_arr","_n","_d","_e","_s","_i","Symbol","iterator","done","err","TypeError","points","filter","d","u","v","isFinite","xv","yv","n","X","Float64Array","Y","ux","uy","visitPoints","iterations","dx","dy","determination","uY","predict","SSE","SST","sse","sst","angle","line","atan2","PI","midpoint","interpose","xmin","xmax","l","log","LOG10E","precision","pow","maxIter","px","iter","find","found","p0","p1","m","mp","a1","ols","uX","uXY","uX2","slope","intercept","exponential","domain","YL","XY","XYL","X2Y","Infinity","ly","xy","_ols","_ols2","exp","out","rSquared","linear","X2","median","floor","maxiters","epsilon","loess","bandwidth","_points","_points2","bw","yhat","residuals","robustWeights","fill","interval","i0","i1","edge","W","denom","k","xk","w","tricube","xkw","updateInterval","medianResidual","arg","_w","output","val","right","cnt","prev","logarithmic","base","E","lb","lx","quad","quadratic","x2","X3","X4","n0","X2X2","polynomial","order","o","coefficients","_o","lhs","rhs","coef","gaussianElimination","uncenter","z","matrix","t","power","YS","regressionExp","regressionLinear","regressionLoess","regressionLog","regressionPoly","regressionPow","regressionQuad","module","requireObjectCoercible","whitespaces","whitespace","ltrim","RegExp","rtrim","createMethod","TYPE","$this","string","String","replace","start","end","trim","freeExports","nodeType","freeModule","moduleExports","Buffer","nativeIsBuffer","isBuffer","freeGlobal","concat","s","observe","disconnect","DEFAULT_SIZE","DEFAULT_WIDTH","LN_2","helper","kernel","generatePartialAreas","partialAreas","accumulator","getUnifiedMinMax","options","getUnifiedMinMaxMulti","arrMulti","relaxMin","relaxMax","isNumber","size","min","findMinMulti","findMaxMulti","range","step","create","normalizedMinMax","buckets","xToBucket","partialArea","fullArea","initalValue","bucket","leftBlockCount","rightBlockCount","spilledAreaLeft","spilledAreaRight","weight","startGradPos","inside","gradAccumulator","area","getExpectedValueFromPdf","pdf","expected","getXWithLeftTailArea","last","getPerplexity","entropy","ln","DESCRIPTORS","isForced","redefine","has","classof","inheritIfRequired","toPrimitive","fails","getOwnPropertyNames","getOwnPropertyDescriptor","NUMBER","NativeNumber","NumberPrototype","prototype","BROKEN_CLASSOF","toNumber","argument","first","third","radix","maxCode","digits","index","code","it","charCodeAt","NaN","parseInt","key","NumberWrapper","dummy","valueOf","call","keys","split","constructor","ver","clear","_sensorPool","freeProcess","process","nodeUtil","types","require","binding","e","findMin","curr","findMax","render","_vm","_h","$createElement","_c","_self","directives","name","rawName","expression","staticClass","attrs","slot","_v","on","changeActivity","model","callback","$$v","selectKey","_l","item","getTime","timeType","pickerOptions","daterangeChange","daterange","ref","staticRenderFns","extendStatics","setPrototypeOf","__proto__","p","hasOwnProperty","__extends","__","__assign","assign","__rest","getOwnPropertySymbols","propertyIsEnumerable","__spreadArray","to","from","pack","ar","SuppressedError","LEVEL","AXIS_META_CONFIG_KEYS","BRAND","getMessage","format","argIndex","level","condition","console","pick","adjustYMetaByZero","field","numberData","datum","isNaN","gtZero","every","ltZero","transformDataToNodeLinkData","sourceField","targetField","weightField","rawFields","nodes","links","nodesMap","nodesIndex","source","target","rawData","values","processIllegalData","processData","WARN","MAX_MIX_LEVEL","toString","isObjectLike","isPlainObject","proto","getPrototypeOf","deep","dist","src","maxLevel","deepAssign","rst","getContainerSize","ele","clientWidth","paddingLeft","paddingRight","clientHeight","paddingTop","paddingBottom","flow","flows","param","reduce","result","findGeometry","view","geometries","g","getAllElements","geometry","elements","getAllElementsRecursively","views","subView","getAllGeometriesRecursively","kebabCase","word","match","toLowerCase","join","transformLabel","labelOptions","label","formatter","content","getCanvasContext","getContext","text","font","fontSize","_a","fontFamily","fontWeight","fontStyle","fontVariant","ctx","metrics","measureText","isRealNumber","isBetween","normalPadding","padding","length_1","getAdjustAppendPadding","append","currentAppendPadding","PADDING","startsWith","resolveAllPadding","paddings","normalPaddings","finalPadding","points2Path","isInCircle","path","smoothBezier","smooth","isLoop","constraint","prevPoint","nextPoint","cps","hasConstraint","len","sub","d0","distance","d1","sum","cp0","add","cp1","shift","catmullRom2bezier","crp","pointList","cp2","controlPointList","getSplinePath","constaint","prePoint","splinePath","unshift","adapteStyle","styleObject","justifyContent","alignItems","shapeStyleKeys","shadowColor","_b","shadowBlur","shadowOffsetX","shadowOffsetY","stroke","_f","lineWidth","includes","setStatisticContainerStyle","container","renderStatistic","chart","statistic","plotType","titleOpt","title","contentOpt","option","transform","annotation","html","coordinate","getCoordinate","containerW","getRadius","innerRadius","liquidShape","get","getCanvasBBox","getWidth","filteredData","getData","customHtml","renderGaugeStatistic","polarCoord","polarCenter","getCenter","polarRadius","polarMaxY","sin","startAngle","endAngle","offsetY","parseFloat","containerWidth","template","findViewById","getViews","parent","getSiblingViews","addViewAnimation","animation","animate","animationCfg","shapeType","getPixelRatio","window","devicePixelRatio","initCanvas","canvas","pixelRatio","drawBackground","context","cfg","backgroundColor","globalAlpha","fillStyle","beginPath","fillRect","closePath","getUnitPatternSize","isStagger","unitSize","getSymbolsPosition","symbolsPos","transformMatrix","dpr","rotation","radian","cos","defaultDotPatternCfg","fillOpacity","drawDot","strokeStyle","arc","createDotPattern","dotCfg","dots","dots_1","pattern","createPattern","setTransform","defaultLinePatternCfg","spacing","strokeOpacity","drawLine","Path2D","lineCap","createLinePattern","lineCfg","defaultSquarePatternCfg","drawSquare","strokeRect","createSquarePattern","squareCfg","squares","squares_1","getCanvasPattern","patternOption","defaultColor","getTheme","color","colorAttribute","colorField","getFields","seriesValue","getMappingValue","CanvasPattern","styleOption","legend","seriesField","tooltip","interaction","interactions","enable","removeInteraction","theme","slider","scrollbar","axes","meta","scales","axis","annotationOptions","annotationController","getController","annotations","annotationOption","yAxis","limitInPlot","some","transformations","coordinateType","actions","GLOBAL","locale","LocaleMap","registerLocale","localeObj","getLocale","EN_US_LOCALE","general","increase","decrease","total","conversionTag","waterfall","ZH_CN_LOCALE","getTooltipMapping","defaultFields","fields","getMappingField","xField","yField","shapeField","sizeField","styleField","mappingFields","tileMappingField","getMappingFunction","func","mapping","tooltipFields","customInfo","shape","ext","useDeferredLabel","otherAdaptor","isGroup","isStack","marginRatio","widthRatio","groupField","adjust","dodgeBy","columnWidthRatio","minColumnWidth","maxColumnWidth","columnBackground","dodgePadding","intervalPadding","background","stepType","connectNulls","polygon","schema","violin","SOURCE_ATTRIBUTE_NAME","PLOT_CONTAINER_OPTIONS","_super","Plot","getElementById","getDefaultOptions","createG2","bindEvents","renderer","xAxis","nice","autoRotate","autoHide","minGap","defaultInteractions","autoFit","getChartSize","localRefresh","chartSize","emit","execAdaptor","bindSizeSensor","update","updateOption","setState","status","getStates","stateObjects","states","changeData","changeSize","addAnnotations","incoming","controller","getComponents","co","extra","_loop_1","findIndex","removeAnnotations","_loop_2","unbindSizeSensor","off","adaptor","getSchemaAdaptor","appendPadding","triggerResize","forceFit","measure","as","sumMap","groupValue","set","Map","percentage","getDeepPercent","percent","getDataWhetherPercentage","asField","isPercent","lineStyle","lineShape","pointMapping","areaMapping","pointState","areaState","primary","second","areaParams","reflect","lineGeometry","layout","action","areaStyle","areaShape","lineMapping","startOnZero","chartData","tooltipOptions","Number","toFixed","lineParams","pointParams","areaGeometry","DEFAULT_OPTIONS","shared","showMarkers","showCrosshairs","crosshairs","radio","Area","PADDING_RIGHT","PADDING_TOP","BUTTON_ACTION_CONFIG","textStyle","default","cursor","buttonStyle","active","ButtonAction","buttonGroup","buttonCfg","getButtonCfg","drawButton","config","group","foregroundGroup","addGroup","textShape","drawText","getBBox","addShape","bbox","buttonShape","toBack","attr","resetPosition","coord","convert","setMatrix","show","hide","remove","isPointInView","isInPlot","getInteractionCfg","interactionType","brushType","mask","isStartEnable","maskType","showEnable","trigger","isEnable","maskStyle","processing","rollback","isInShape","BRUSH_TYPES","brushInteraction","brush","enabled","buttonConfig","button","INTERACTION_MAP","hover","click","getStartStages","connectedArea","disable","conversionTagFormatter","getConversionTagOptionsWithDefaults","horizontal","offset","arrow","headSize","textAlign","textBaseline","parsePoints","getModel","convertPoint","renderArrowTag","elemPrev","elemNext","pointPrev","pointNext","totalHeight","totalWidth","getElementId","mappingData","origin","nextElement","renderTextTag","textWidth","cWidth","cEnd","ceil","textAdjusted","renderTag","disabled","geom","elem","columnStyle","percentData","stackedItem","percentYMeta","minLimit","maxLimit","isRange","columnTooltip","customItems_1","customItems","tooltipFormatter_1","originalItems","items","datas","_origin","isBar","bottom","verticalAxis","horizontalAxis","coordinateOptions","barStyle","barWidthRatio","minBarWidth","maxBarWidth","barBackground","Bar","switchedFieldOptions","Column","FUNNEL_PERCENT","FUNNEL_MAPPING_VALUE","FUNNEL_CONVERSATION","FUNNEL_TOTAL_PERCENT","PLOYGON_X","PLOYGON_Y","minSize","maxSize","showTitle","offsetX","CONVERSION_TAG_NAME","originData","formatData","maxYFieldValue","row","conversionTagComponent","getLineCoordinate","getOptions","formatter_1","lineOption","funnelStyle","geo","transpose","isTransposed","dataArray","datumIndex","initLineOption","basicFunnel","sync","compareField","showFacetTitle","facet","eachView","rowIndex","columnIndex","formatterData","defaultFacetLabel","compareConversionTag","viewIndex","ratio","once","compareFunnel","preItemX","preItemY","dynamicHeightFunnel","facetFunnel","ConversionTagAction","rendering","change","conversionTag_1","filterData","FUNNEL_CONVERSION_TAG","FUNNEL_LEGEND_FILTER","interactionStart","i18n","defaultOption","dynamicHeight","Funnel","CONVERSATION_FIELD","PERCENT_FIELD","TOTAL_PERCENT_FIELD","RANGE_VALUE","RANGE_TYPE","PERCENT","DEFAULT_COLOR","INDICATEOR_VIEW_ID","RANGE_VIEW_ID","ticks","radius","syncViewPadding","subTickLine","tickLine","grid","indicator","pointer","pin","tickCount","tickInterval","processRangeData","getIndicatorData","getRangeData","clampTicks","gaugeStyle","meter","rangeWidth","indicatorData","createView","rangeData","rangeColor","zIndexReversed","sortZIndex","updated","contentOption","transformContent","lineHeight","containerTpl","domStyles","customContent","draw","center","parsePoint","x1","y1","y2","steps","STEP","stepRatio","STEP_RATIO","COORD_START_ANGLE","COORD_END_ANGLE","GAP","TOTAL","INTERVAL","getAngle","START_ANGLE","END_ANGLE","getSectorPath","Gauge","BEFORE_CHANGE_DATA","fromData","indicatorView","rangeView","AFTER_CHANGE_DATA","getBinKey","binWidth","binNumber","sturges","LN2","binHistogram","binField","stackField","originData_copy","_binWidth","_defaultBinNumber","bins","groups","bin","binKey","count","groupKey","groupKeyBinKey","plotData","HISTOGRAM_X_FIELD","HISTOGRAM_Y_FIELD","Histogram","MarkerActiveAction","getView","evt","event","items_1","reset","Line","pieStyle","components","ORIGIN_MATRIX","ulMatrix","PieLegendAction","getActiveElements","delegateObject","getDelegationObject","component","item_1","field_1","getActiveElementLabels","labels","labelsContainer","getChildren","transfrom","elementLabels","labelShape","isPolar","middleAngle","getCurrentElement","StatisticAction","getAnnotations","_view","getInitialAnnotation","initialAnnotation","init","colorField_1","getGroupedFields","toFront","initialStatistic","PIE_STATISTIC","getTotalValue","adaptOffset","defaultOffset","endsWith","isAllZero","angleField","percentageField_1","labelCfg","content_1","dataum","angleScale","getScaleByField","LABEL_LAYOUT_TYPE_MAP","outer","spider","labelLayoutType","labelLayoutCfg","transformStatisticOptions","titleOpt_1","contentOpt_1","metaFormatter","dataValue","pieAnnotation","startStages_1","stage","Pie","prevOptions","prevData","curData","getProgressData","clampPercent","progressStyle","Progress","RingProgress","REGRESSION_MAP","poly","getQuadrantDefaultConfig","xBaseline","yBaseline","textOffset","defaultConfig","regionStyle","labelStyle","xScaleView","yScaleView","pathData","getPath","regressionLine","algorithm","customEquation","equation","reg","getRegressionEquation","getMeta","xFieldValue","yFieldValue","xIsPositiveNumber","yIsPositiveNumber","getMetaMinMax","fieldMeta","getCustomValue","res","roundByPrecision","round","safeFormat","transformOptions","isOneX","isOneY","meta_1","pointStyle","newOptions","shapeLegend","sizeLegend","showLegend","scatterGeometry","scatterAnnotation","quadrant","labels_1","regionStyle_1","defaultConfig_1","quadrants","_","style_1","equationStyle","equationStyle_1","top_1","showEquation","showEquation_1","defaultStyle_1","defaulEquationStyle_1","throttle","wait","leading","trailing","Scatter","BEFORE_RENDER","FILTER","RESET","Y_FIELD","TREND_FIELD","TREND_UP","TREND_DOWN","DEFAULT_TOOLTIP_OPTIONS","follow","defaultContent","textContent","textBackground","risingFill","fallingFill","getStockData","open_1","close_1","high","low","stockStyle","baseMeta","Stock","getTinyData","X_FIELD","itemTpl","pointOptions","lineOptions","seriesData","TinyArea","TinyColumn","TinyLine","PLOT_ADAPTORS","pie","column","bar","gauge","progress","scatter","histogram","funnel","stock","PLOT_CONSTRUCTOR","DEFAULT_OPTIONS_MAP","execPlotAdaptor","plot","cls","error","multiView","region","viewOfG2","multiPlot","plots","getElementValue","record","clearHighlight","el","hasState","Association","getAssociationItems","linkField","dim","data_1","getXScale","getYScales","getGroupScales","inactive","showTooltip","siblings","box","minX","minY","hideTooltip","sibling","selected","highlight","Stage","Mix","notice","warn","DEV","BETA","STABLE","Lab","enumerable","configurable","FIRST_AXES_VIEW","SECOND_AXES_VIEW","SERIES_FIELD_KEY","reverse","hopeData","groupData","data1","data2","autoPadding","p2","__axisPosition","instance","firstView","secondView","firstViewData","secondViewData","aliasMap","metaKey","alias","leftGeometry","rightGeometry","cfg_1","leftLabelCfg","textAlignMap","positionMap_1","middle","textBaselineMap","BidirectionalBar","BOX_RANGE","BOX_RANGE_ALIAS","BOX_SYNC_NAME","OUTLIERS_VIEW_ID","boxStyle","newData","low_1","q1_1","median_1","q3_1","high_1","yFieldName","outliersPoint","outliersField","outliersStyle","outliersView","outliersViewData","outliersData","syncName","Box","getSeriesFieldKey","measureField","rangeField","ds","rangeValues","flat","rKey","measureValues","mKey","targetValues","tKey","bulletStyle","extData","rangeGeometry","measureGeometry","targetGeometry","Bullet","nodeWidthRatio","nodePaddingRatio","node","sourceWeight","targetWeight","sortBy","processGraph","nodeById","edges","inEdges","outEdges","frequency","sortNodes","sortMethods","localeCompare","method","layoutNodes","nodePaddingRatio_1","margin_1","nodeWidthRatio_1","totalValue_1","deltaX","maxX","maxY","deltaX_1","locatingEdges","valueById_1","sId","tId","sNode","tNode","sValue","currentSValue","sStart","sEnd","tValue","currentTValue","tStart","tEnd","chordLayout","chordLayoutOptions","chordLayoutInputData","outputNodes","outputLinks","NODE_COLOR_FIELD","EDGE_COLOR_FIELD","nodeStyle","edgeStyle","centerX","labelEmit","showContent","nodesData","isNode","edgesData","link","chordData","nodeGeometry","nodeView","edgeGeometry","edgeView","edgeOptions","Chord","RAW_FIELDS","hierarchyConfig","drilldown","PADDING_LEFT","BREAD_CRUMB_NAME","DEFAULT_BREAD_CRUMB_CONFIG","dividerText","activeTextStyle","HIERARCHY_DATA_TRANSFORM_PARAMS","DrillDownAction","historyCache","breadCrumbGroup","breadCrumbCfg","drill","drawBreadCrumb","back","backTo","hideCrumbGroup","nodeInfo","transformData","drillData","nodeData","depth","children","drillDownConfig","breadCrumb","drawBreadCrumbGroup","cache","rootText","textShapeBox","targetId","newHistoryCache","dividerShape","dividerBox","shuffle","array","random","circles","B","enclosesWeak","encloseBasis","extendBasis","enclosesWeakAll","enclosesNot","encloseBasis2","encloseBasis3","Error","dr","encloseBasis1","r1","r2","x21","y21","r21","x3","y3","r3","a2","a3","b2","b3","c3","d2","d3","ab","xa","xb","ya","yb","A","C","place","intersects","score","Node","circle","previous","packEnclose","aa","ca","sj","sk","enclose","optional","required","constantZero","defaultRadius","eachBefore","radiusLeaf","eachAfter","packChildren","translateChild","constant","that","pop","compare","ancestor","leastCommonAncestor","aNodes","ancestors","bNodes","leaves","each","hierarchy","mapChildren","objectChildren","child","childs","computeHeight","node_copy","copyData","descendants","copy","NODE_INDEX_FIELD","CHILD_NODE_COUNT","NODE_ANCESTORS_FIELD","INVALID_FIELD_ERR_MSG","getField","defaultField","getAllNodes","parent_1","index_1","eachNode","packLayout","enableDrillDown","ancestorNode","resolvePaddingForCircle","containerSize","tempPadding","wSize","hSize","restWidthPadding","restHeightPadding","finalTop","finalRight","finalBottom","finalLeft","finalSize","diameter","viewBBox","tempAppendPadding","appendPaddingByDrilldown","circleSize","nameFormatter","valueFormatter","adaptorInteraction","isParentNode","inCenter","centerY","CirclePacking","destroyed","AxisType","DualAxesGeometry","LEFT_AXES_VIEW","RIGHT_AXES_VIEW","DEFAULT_YAXIS_CONFIG","DEFAULT_LEFT_YAXIS_CONFIG","DEFAULT_RIGHT_YAXIS_CONFIG","isLine","geometryOption","isColumn","getGeometryOption","transformObjectToArray","transformAttribute","a1_1","a2_1","getYAxisWithDefault","axisType","Left","Right","drawSingleGeometry","FIELD_KEY","adjust_1","customOffset","getViewLegendItems","userMarker","legendItemName","marker","symbol","isGeometry","viewId","attributes","getGroupAttributes","attrItems","getLegendItems","doSliderFilter","sliderValue","xScale","dataSize","isHorizontal","xValues","xTickCount","minIndex","maxIndex","getRootView","geometryOptions","allLine","createViews","SORT_MAP","themeColor","colors10","groupScale","leftView","rightView","custom","leftLegend_1","rightLegend_1","leftItems","rightItems","yF","changeVisible","unchecked","legendItem_1","curLegendItem","originValue","DualAxes","execViewAdaptor","facetAdaptor","facetType","restFacetCfg","viewOptions","plotOptions","rowTitle","columnTitle","Facet","sizeRatio","heatmapStyle","geometryType","checkedSizeRatio","dautm","sequenceColors","coordinateOption","alignTick","lineDash","cx","cy","maxRadius","radiusRatio","defaultStyle","maxSideLength","lenRatio","sideLength","Heatmap","CAT_VALUE","getLiquidData","liquidStyle","outline","wave","shapeStyle","border","DURATION","lerp","factor","getFillAttrs","getLineAttrs","defaultAttrs","getWaterWavePositions","waveLength","amplitude","getWaterWavePath","waterLevel","phase","curves","_phase","waveRight","pos","addWaterWave","waveCount","waveAttrs","clip","stopAnimate","duration","repeat","h","theta","asin","y0","cpX","cpY","rx","ry","diamond","triangle","rect","GOLDEN_SECTION_RATIO","builtInShapeByName","minXPoint","halfWidth","outlineAttrs","buildPath","shapePath","waves","clipPath","setClip","Liquid","areaOptions","RadarTooltipController","getTooltipItems","getTooltipCfg","cfgTitle","hintItems","geometry_1","title_1","result_1","displayTitle","RadarTooltipAction","getTooltipController","Radar","getScaleMax","maxAngle","yData","maxValue","formatRadian","getStackedData","stackedData","valueItem","actualData","intervalGeometry","RadialBar","sectorStyle","Rose","COLOR_FIELD","NODES_VIEW_ID","EDGES_VIEW_ID","getNodes","getMatrix","graphMatrix","pre","cutoffCircle","removedData","visited","DFS","dfsNode","targetDepth","justify","sourceLinks","targetLinks","sumBy","maxValueBy","minValueBy","ascendingSourceBreadth","ascendingBreadth","ascendingTargetBreadth","defaultId","defaultNodes","graph","defaultLinks","computeLinkBreadths","nodes_1","py","linkSort","align","sankey","computeNodeLinks","computeNodeValues","computeNodeDepths","computeNodeHeights","computeNodeBreadths","nodes_2","nodes_3","fixedValue","Set","maxDepth","computeNodeLayers","kx","columns","nodes_4","layer","columns_1","initializeNodeBreadths","ky","columns_2","nodes_6","nodes_5","reorderLinks","beta","relaxRightToLeft","relaxLeftToRight","column_1","value_1","targetTop","dy_1","reorderNodeLinks","resolveCollisions","column_2","value_2","sourceTop","dy_2","subject","resolveCollisionsBottomToTop","resolveCollisionsTopToBottom","dy_3","dy_4","targetLinks_1","sourceLinks_2","sourceLinks_1","targetLinks_2","nodes_7","nodeId","nodeAlign","nodeDepth","nodeSort","nodeWidth","nodePadding","extent","ALIGN_METHOD","getNodeAlignFunction","sankeyLayoutOptions","sankeyLayout","sankeyProcessor","layoutData","sx","tx","isNodeLink","dataType","getNodeWidthRatio","getNodePaddingRatio","transformToViewsData","sankeyLayoutInputData","nodeState","edgeState","nodeDraggable","DRAG_INTERACTION","nodeInteractions","edgeInteractions","SankeyNodeDragAction","isDragging","isNodeElement","getNodeView","getEdgeView","getCurrentDatumIdx","currentElementIdx","prevNodeAnimateCfg","prevEdgeAnimateCfg","translate","currentPoint","prevDatum","datumGap_1","getHeight","nextDatum","name_1","edgeData","Sankey","isLast","appear","enter","nodesView","edgesView","SUNBURST_ANCESTOR_FIELD","SUNBURST_Y_FIELD","SUNBURST_PATH_FIELD","sunburstStyle","partition","positionNode","ignoreParentValue","prop","defaultSeparation","meanX","meanXReduce","maxYReduce","leafLeft","leafRight","separation","nodeSize","cluster","previousNode","preroot","ambiguous","defaultParentId","parentId","stratify","nodeKey","nodeByKey","nextLeft","nextRight","moveSubtree","wm","wp","executeShifts","nextAncestor","vim","TreeNode","treeRoot","tree","firstWalk","secondWalk","sizeNode","apportion","vip","vop","vom","sip","sop","sim","som","squarifyRatio","nodeValue","sumValue","minValue","newRatio","minRatio","rows","dice","squarify","tile","paddingStack","paddingInner","treemap","paddingOuter","sums","valueOffset","valueTarget","hi","valueLeft","valueRight","resquarify","_squarify","getTileMethod","tileMethod","activeDepth","pathFormatter","Sunburst","findInteraction","enableInteraction","enableDrillInteraction","resetDrillDown","drillDownInteraction","drillDownAction","curPath","rectStyle","viewZoomInteraction","getCanvas","ev","preventDefault","ID_FIELD","Treemap","transData","PATH_FIELD","blendMode","placeElementsOrdered","ElementActiveAction","VennElementActive","syncElementsPos","toggle","ElementHighlightAction","VennElementHighlight","ElementSelectedAction","ElementSingleSelectedAction","VennElementSelected","VennElementSingleSelected","VennLabel","getLabelPoint","customLabelInfo","objectProto","nativeObjectToString","symToStringTag","toStringTag","getRawTag","isOwn","tag","unmasked","objectToString","nullTag","undefinedTag","baseGetTag","createBaseFor","fromRight","object","iteratee","keysFunc","iterable","props","baseFor","baseTimes","argsTag","baseIsArguments","isArguments","MAX_SAFE_INTEGER","reIsUint","isIndex","test","isLength","arrayTag","boolTag","dateTag","errorTag","funcTag","mapTag","numberTag","objectTag","regexpTag","setTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","typedArrayTags","baseIsTypedArray","baseUnary","nodeIsTypedArray","isTypedArray","arrayLikeKeys","inherited","isArr","isArg","isBuff","isType","skipIndexes","isPrototype","Ctor","overArg","nativeKeys","baseKeys","isObject","asyncTag","genTag","proxyTag","isFunction","isArrayLike","baseForOwn","createBaseEach","eachFunc","collection","listCacheClear","__data__","eq","other","assocIndexOf","arrayProto","listCacheDelete","lastIndex","listCacheGet","listCacheHas","listCacheSet","ListCache","entries","entry","stackClear","stackDelete","stackGet","stackHas","coreJsData","maskSrcKey","uid","exec","IE_PROTO","isMasked","funcProto","funcToString","toSource","reRegExpChar","reIsHostCtor","reIsNative","baseIsNative","getValue","getNative","nativeCreate","hashClear","hashDelete","HASH_UNDEFINED","hashGet","hashHas","hashSet","Hash","mapCacheClear","isKeyable","getMapData","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","LARGE_ARRAY_SIZE","stackSet","pairs","Stack","setCacheAdd","setCacheHas","SetCache","Uint8Array","symbolProto","DataView","WeakMap","promiseTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ArrayBuffer","resolve","ctorString","SPACES","PATH_COMMAND","PATH_VALUES","parsePathString","pathString","paramCounts","q","segments","fillAttrs","getMarker","markerCfg","c0","blendObject","normal","multiply","screen","overlay","darken","lighten","dodge","burn","innerBlend","mode","blend","blendRgbArr","colorToArr","r0","g0","b0","g1","b1","rgbaArr","rgb2arr","toRGB","SMALL","intersectionArea","stats","intersectionPoints","getIntersectionPoints","innerPoints","containedInCircles","arcArea","polygonArea","arcs","midPoint","parentIndex","angleDiff","circleArea","smallest","disjoint","intersect","circleCircleIntersection","acos","circleOverlap","circleMargin","interior","exterior","margin","computeTextCentre","solution","valid","areaStats","getOverlappingCircles","circleids","circleid","computeTextCentres","areas","overlapped","sets","areaids","exclude","overlaps","setid","centre","circlePath","intersectionAreaPath","wide","venn","initialLayout","bestInitialLayout","loss","lossFunction","addMissingAreas","setids","setid_1","positions","distanceFromIntersectArea","overlap","ids","getDistanceMatrices","distances","constraints","constrainedMDSGradient","xi","yi","xj","yj","dij","squaredDistance","distance_1","greedyLayout","constrained","constrainedMDSLayout","constrainedLoss","greedyLoss","restarts","matrices","norm","best","setOverlaps","rowid","mostOverlapped","positioned","isPositioned","positionSet","setIndex","extraPoints","bestLoss","bestPoint","localLoss","getCircles","indices","getBoundingBox","minMax","lo","xRange","yRange","scaleSolution","bounds","xScaling","yScaling","scaling","xOffset","yOffset","scaled","getColorMap","colorPalette","setsField","colorMap","colorPaletteLen","colorArr","JSON","stringify","layoutVennData","vennData","textCenters","setCircles","islegalSets","legalArr","testArr","LEGEND_SPACE","colors20","palette","transformColor","map_1","currSets","filterSets","colorOptions","vennInteraction","MAP_1","Venn","VIOLIN_Y_FIELD","VIOLIN_SIZE_FIELD","MIN_MAX_FIELD","QUANTILE_FIELD","MEDIAN_FIELD","VIOLIN_VIEW_ID","MIN_MAX_VIEW_ID","QUANTILE_VIEW_ID","MEDIAN_VIEW_ID","kde","sampleSize","violinStyle","quantileSorted","swap","tmp","quickselect","sd","newLeft","newRight","quantile","multiQuantileSelect","results","quantileIndex","quantileSelect","stack","toBoxValue","q1","q3","toViolinValue","pdfOptions","pdfResults","violinSize","violinY","transformViolinData","group_1","records","resultList","seriesGroup","series","TOOLTIP_FIELDS","adjustCfg","boxView","minMaxView","quantileView","medianView","legendField_1","legendOptions","violinView","Violin","DIFF_FIELD","ABSOLUTE_FIELD","IS_TOTAL","leaderLine","waterfallStyle","getRectPath","newYField","processed","dIdx","localeTotalLabel","colorMapping","Y_FIELD_META","labelMode","nextPoints","rectPath","parsePath","leaderLineCfg","linkPath","Waterfall","WORD_CLOUD_COLOR_FIELD","timeInterval","wordStyle","rotationSteps","rotateRatio","spiral","wordCloud","words","tagCloud","imageMask","createMask","tags","_tags","cloudRadians","cw","ch","cloudText","cloudFont","cloudFontNormal","cloudFontSize","cloudRotate","cloudPadding","cloudSprite","contextAndRatio","di","sprite","clearRect","maxh","save","rotate","sr","cr","wcr","wsr","hcr","hsr","fillText","strokeText","restore","xoff","yoff","hasText","pixels","getImageData","w32","seen","seenRow","cloudCollide","board","sw","msx","cloudBounds","collideRects","archimedeanSpiral","rectangularSpiral","sign","zeroArray","cloudCanvas","functor","spirals","archimedean","rectangular","cloud","willReadFrequently","dxdy","startX","startY","maxDelta","dt","Date","now","hasImage","_bounds","img","can","cxt","drawImage","imageData","flag","rawOptions","chartPadding","wordField","placementStrategy","getSingleKeyValues","getFontSizeMapping","getSize","getRotate","resolvePadding","processImageMask","Promise","rej","HTMLImageElement","image_1","Image","crossOrigin","onerror","ERROR","fMin_1","fMax_1","min_1","max_1","resolveRotate","perSize","numbers","getTextAttrs","WordCloud","handler","then","catch","P","defaultOptions","originalModule","webpackPolyfill"],"mappings":"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","file":"fbStatic/js/chunk-9a981d40.f6c75a7c.js","sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createSensor = void 0;\nvar _object = require(\"./object\");\nvar _resizeObserver = require(\"./resizeObserver\");\n/**\n * Created by hustcc on 18/7/5.\n * Contract: i@hust.cc\n */\n\n/**\n * sensor strategies\n */\n// export const createSensor = createObjectSensor;\nvar createSensor = typeof ResizeObserver !== 'undefined' ? _resizeObserver.createSensor : _object.createSensor;\nexports.createSensor = createSensor;","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (factory((global.fmin = global.fmin || {})));\n}(this, function (exports) { 'use strict';\n\n /** finds the zeros of a function, given two starting points (which must\n * have opposite signs */\n function bisect(f, a, b, parameters) {\n parameters = parameters || {};\n var maxIterations = parameters.maxIterations || 100,\n tolerance = parameters.tolerance || 1e-10,\n fA = f(a),\n fB = f(b),\n delta = b - a;\n\n if (fA * fB > 0) {\n throw \"Initial bisect points must have opposite signs\";\n }\n\n if (fA === 0) return a;\n if (fB === 0) return b;\n\n for (var i = 0; i < maxIterations; ++i) {\n delta /= 2;\n var mid = a + delta,\n fMid = f(mid);\n\n if (fMid * fA >= 0) {\n a = mid;\n }\n\n if ((Math.abs(delta) < tolerance) || (fMid === 0)) {\n return mid;\n }\n }\n return a + delta;\n }\n\n // need some basic operations on vectors, rather than adding a dependency,\n // just define here\n function zeros(x) { var r = new Array(x); for (var i = 0; i < x; ++i) { r[i] = 0; } return r; }\n function zerosM(x,y) { return zeros(x).map(function() { return zeros(y); }); }\n\n function dot(a, b) {\n var ret = 0;\n for (var i = 0; i < a.length; ++i) {\n ret += a[i] * b[i];\n }\n return ret;\n }\n\n function norm2(a) {\n return Math.sqrt(dot(a, a));\n }\n\n function scale(ret, value, c) {\n for (var i = 0; i < value.length; ++i) {\n ret[i] = value[i] * c;\n }\n }\n\n function weightedSum(ret, w1, v1, w2, v2) {\n for (var j = 0; j < ret.length; ++j) {\n ret[j] = w1 * v1[j] + w2 * v2[j];\n }\n }\n\n /** minimizes a function using the downhill simplex method */\n function nelderMead(f, x0, parameters) {\n parameters = parameters || {};\n\n var maxIterations = parameters.maxIterations || x0.length * 200,\n nonZeroDelta = parameters.nonZeroDelta || 1.05,\n zeroDelta = parameters.zeroDelta || 0.001,\n minErrorDelta = parameters.minErrorDelta || 1e-6,\n minTolerance = parameters.minErrorDelta || 1e-5,\n rho = (parameters.rho !== undefined) ? parameters.rho : 1,\n chi = (parameters.chi !== undefined) ? parameters.chi : 2,\n psi = (parameters.psi !== undefined) ? parameters.psi : -0.5,\n sigma = (parameters.sigma !== undefined) ? parameters.sigma : 0.5,\n maxDiff;\n\n // initialize simplex.\n var N = x0.length,\n simplex = new Array(N + 1);\n simplex[0] = x0;\n simplex[0].fx = f(x0);\n simplex[0].id = 0;\n for (var i = 0; i < N; ++i) {\n var point = x0.slice();\n point[i] = point[i] ? point[i] * nonZeroDelta : zeroDelta;\n simplex[i+1] = point;\n simplex[i+1].fx = f(point);\n simplex[i+1].id = i+1;\n }\n\n function updateSimplex(value) {\n for (var i = 0; i < value.length; i++) {\n simplex[N][i] = value[i];\n }\n simplex[N].fx = value.fx;\n }\n\n var sortOrder = function(a, b) { return a.fx - b.fx; };\n\n var centroid = x0.slice(),\n reflected = x0.slice(),\n contracted = x0.slice(),\n expanded = x0.slice();\n\n for (var iteration = 0; iteration < maxIterations; ++iteration) {\n simplex.sort(sortOrder);\n\n if (parameters.history) {\n // copy the simplex (since later iterations will mutate) and\n // sort it to have a consistent order between iterations\n var sortedSimplex = simplex.map(function (x) {\n var state = x.slice();\n state.fx = x.fx;\n state.id = x.id;\n return state;\n });\n sortedSimplex.sort(function(a,b) { return a.id - b.id; });\n\n parameters.history.push({x: simplex[0].slice(),\n fx: simplex[0].fx,\n simplex: sortedSimplex});\n }\n\n maxDiff = 0;\n for (i = 0; i < N; ++i) {\n maxDiff = Math.max(maxDiff, Math.abs(simplex[0][i] - simplex[1][i]));\n }\n\n if ((Math.abs(simplex[0].fx - simplex[N].fx) < minErrorDelta) &&\n (maxDiff < minTolerance)) {\n break;\n }\n\n // compute the centroid of all but the worst point in the simplex\n for (i = 0; i < N; ++i) {\n centroid[i] = 0;\n for (var j = 0; j < N; ++j) {\n centroid[i] += simplex[j][i];\n }\n centroid[i] /= N;\n }\n\n // reflect the worst point past the centroid and compute loss at reflected\n // point\n var worst = simplex[N];\n weightedSum(reflected, 1+rho, centroid, -rho, worst);\n reflected.fx = f(reflected);\n\n // if the reflected point is the best seen, then possibly expand\n if (reflected.fx < simplex[0].fx) {\n weightedSum(expanded, 1+chi, centroid, -chi, worst);\n expanded.fx = f(expanded);\n if (expanded.fx < reflected.fx) {\n updateSimplex(expanded);\n } else {\n updateSimplex(reflected);\n }\n }\n\n // if the reflected point is worse than the second worst, we need to\n // contract\n else if (reflected.fx >= simplex[N-1].fx) {\n var shouldReduce = false;\n\n if (reflected.fx > worst.fx) {\n // do an inside contraction\n weightedSum(contracted, 1+psi, centroid, -psi, worst);\n contracted.fx = f(contracted);\n if (contracted.fx < worst.fx) {\n updateSimplex(contracted);\n } else {\n shouldReduce = true;\n }\n } else {\n // do an outside contraction\n weightedSum(contracted, 1-psi * rho, centroid, psi*rho, worst);\n contracted.fx = f(contracted);\n if (contracted.fx < reflected.fx) {\n updateSimplex(contracted);\n } else {\n shouldReduce = true;\n }\n }\n\n if (shouldReduce) {\n // if we don't contract here, we're done\n if (sigma >= 1) break;\n\n // do a reduction\n for (i = 1; i < simplex.length; ++i) {\n weightedSum(simplex[i], 1 - sigma, simplex[0], sigma, simplex[i]);\n simplex[i].fx = f(simplex[i]);\n }\n }\n } else {\n updateSimplex(reflected);\n }\n }\n\n simplex.sort(sortOrder);\n return {fx : simplex[0].fx,\n x : simplex[0]};\n }\n\n /// searches along line 'pk' for a point that satifies the wolfe conditions\n /// See 'Numerical Optimization' by Nocedal and Wright p59-60\n /// f : objective function\n /// pk : search direction\n /// current: object containing current gradient/loss\n /// next: output: contains next gradient/loss\n /// returns a: step size taken\n function wolfeLineSearch(f, pk, current, next, a, c1, c2) {\n var phi0 = current.fx, phiPrime0 = dot(current.fxprime, pk),\n phi = phi0, phi_old = phi0,\n phiPrime = phiPrime0,\n a0 = 0;\n\n a = a || 1;\n c1 = c1 || 1e-6;\n c2 = c2 || 0.1;\n\n function zoom(a_lo, a_high, phi_lo) {\n for (var iteration = 0; iteration < 16; ++iteration) {\n a = (a_lo + a_high)/2;\n weightedSum(next.x, 1.0, current.x, a, pk);\n phi = next.fx = f(next.x, next.fxprime);\n phiPrime = dot(next.fxprime, pk);\n\n if ((phi > (phi0 + c1 * a * phiPrime0)) ||\n (phi >= phi_lo)) {\n a_high = a;\n\n } else {\n if (Math.abs(phiPrime) <= -c2 * phiPrime0) {\n return a;\n }\n\n if (phiPrime * (a_high - a_lo) >=0) {\n a_high = a_lo;\n }\n\n a_lo = a;\n phi_lo = phi;\n }\n }\n\n return 0;\n }\n\n for (var iteration = 0; iteration < 10; ++iteration) {\n weightedSum(next.x, 1.0, current.x, a, pk);\n phi = next.fx = f(next.x, next.fxprime);\n phiPrime = dot(next.fxprime, pk);\n if ((phi > (phi0 + c1 * a * phiPrime0)) ||\n (iteration && (phi >= phi_old))) {\n return zoom(a0, a, phi_old);\n }\n\n if (Math.abs(phiPrime) <= -c2 * phiPrime0) {\n return a;\n }\n\n if (phiPrime >= 0 ) {\n return zoom(a, a0, phi);\n }\n\n phi_old = phi;\n a0 = a;\n a *= 2;\n }\n\n return a;\n }\n\n function conjugateGradient(f, initial, params) {\n // allocate all memory up front here, keep out of the loop for perfomance\n // reasons\n var current = {x: initial.slice(), fx: 0, fxprime: initial.slice()},\n next = {x: initial.slice(), fx: 0, fxprime: initial.slice()},\n yk = initial.slice(),\n pk, temp,\n a = 1,\n maxIterations;\n\n params = params || {};\n maxIterations = params.maxIterations || initial.length * 20;\n\n current.fx = f(current.x, current.fxprime);\n pk = current.fxprime.slice();\n scale(pk, current.fxprime,-1);\n\n for (var i = 0; i < maxIterations; ++i) {\n a = wolfeLineSearch(f, pk, current, next, a);\n\n // todo: history in wrong spot?\n if (params.history) {\n params.history.push({x: current.x.slice(),\n fx: current.fx,\n fxprime: current.fxprime.slice(),\n alpha: a});\n }\n\n if (!a) {\n // faiiled to find point that satifies wolfe conditions.\n // reset direction for next iteration\n scale(pk, current.fxprime, -1);\n\n } else {\n // update direction using Polak–Ribiere CG method\n weightedSum(yk, 1, next.fxprime, -1, current.fxprime);\n\n var delta_k = dot(current.fxprime, current.fxprime),\n beta_k = Math.max(0, dot(yk, next.fxprime) / delta_k);\n\n weightedSum(pk, beta_k, pk, -1, next.fxprime);\n\n temp = current;\n current = next;\n next = temp;\n }\n\n if (norm2(current.fxprime) <= 1e-5) {\n break;\n }\n }\n\n if (params.history) {\n params.history.push({x: current.x.slice(),\n fx: current.fx,\n fxprime: current.fxprime.slice(),\n alpha: a});\n }\n\n return current;\n }\n\n function gradientDescent(f, initial, params) {\n params = params || {};\n var maxIterations = params.maxIterations || initial.length * 100,\n learnRate = params.learnRate || 0.001,\n current = {x: initial.slice(), fx: 0, fxprime: initial.slice()};\n\n for (var i = 0; i < maxIterations; ++i) {\n current.fx = f(current.x, current.fxprime);\n if (params.history) {\n params.history.push({x: current.x.slice(),\n fx: current.fx,\n fxprime: current.fxprime.slice()});\n }\n\n weightedSum(current.x, 1, current.x, -learnRate, current.fxprime);\n if (norm2(current.fxprime) <= 1e-5) {\n break;\n }\n }\n\n return current;\n }\n\n function gradientDescentLineSearch(f, initial, params) {\n params = params || {};\n var current = {x: initial.slice(), fx: 0, fxprime: initial.slice()},\n next = {x: initial.slice(), fx: 0, fxprime: initial.slice()},\n maxIterations = params.maxIterations || initial.length * 100,\n learnRate = params.learnRate || 1,\n pk = initial.slice(),\n c1 = params.c1 || 1e-3,\n c2 = params.c2 || 0.1,\n temp,\n functionCalls = [];\n\n if (params.history) {\n // wrap the function call to track linesearch samples\n var inner = f;\n f = function(x, fxprime) {\n functionCalls.push(x.slice());\n return inner(x, fxprime);\n };\n }\n\n current.fx = f(current.x, current.fxprime);\n for (var i = 0; i < maxIterations; ++i) {\n scale(pk, current.fxprime, -1);\n learnRate = wolfeLineSearch(f, pk, current, next, learnRate, c1, c2);\n\n if (params.history) {\n params.history.push({x: current.x.slice(),\n fx: current.fx,\n fxprime: current.fxprime.slice(),\n functionCalls: functionCalls,\n learnRate: learnRate,\n alpha: learnRate});\n functionCalls = [];\n }\n\n\n temp = current;\n current = next;\n next = temp;\n\n if ((learnRate === 0) || (norm2(current.fxprime) < 1e-5)) break;\n }\n\n return current;\n }\n\n exports.bisect = bisect;\n exports.nelderMead = nelderMead;\n exports.conjugateGradient = conjugateGradient;\n exports.gradientDescent = gradientDescent;\n exports.gradientDescentLineSearch = gradientDescentLineSearch;\n exports.zeros = zeros;\n exports.zerosM = zerosM;\n exports.norm2 = norm2;\n exports.weightedSum = weightedSum;\n exports.scale = scale;\n\n}));","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n/**\n * Created by hustcc on 18/6/9.\n * Contract: i@hust.cc\n */\nvar _default = function _default(fn) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 60;\n var timer = null;\n return function () {\n var _this = this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n clearTimeout(timer);\n timer = setTimeout(function () {\n fn.apply(_this, args);\n }, delay);\n };\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.removeSensor = exports.getSensor = exports.Sensors = void 0;\nvar _id = _interopRequireDefault(require(\"./id\"));\nvar _sensors = require(\"./sensors\");\nvar _constant = require(\"./constant\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n/**\n * Created by hustcc on 18/6/9.\n * Contract: i@hust.cc\n */\n\n/**\n * all the sensor objects.\n * sensor pool\n */\nvar Sensors = {};\n\n/**\n * When destroy the sensor, remove it from the pool\n */\nexports.Sensors = Sensors;\nfunction clean(sensorId) {\n // exist, then remove from pool\n if (sensorId && Sensors[sensorId]) {\n delete Sensors[sensorId];\n }\n}\n\n/**\n * get one sensor\n * @param element\n * @returns {*}\n */\nvar getSensor = function getSensor(element) {\n var sensorId = element.getAttribute(_constant.SizeSensorId);\n\n // 1. if the sensor exists, then use it\n if (sensorId && Sensors[sensorId]) {\n return Sensors[sensorId];\n }\n\n // 2. not exist, then create one\n var newId = (0, _id[\"default\"])();\n element.setAttribute(_constant.SizeSensorId, newId);\n var sensor = (0, _sensors.createSensor)(element, function () {\n return clean(newId);\n });\n // add sensor into pool\n Sensors[newId] = sensor;\n return sensor;\n};\n\n/**\n * 移除 sensor\n * @param sensor\n */\nexports.getSensor = getSensor;\nvar removeSensor = function removeSensor(sensor) {\n var sensorId = sensor.element.getAttribute(_constant.SizeSensorId);\n // remove event, dom of the sensor used\n sensor.destroy();\n clean(sensorId);\n};\nexports.removeSensor = removeSensor;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createSensor = void 0;\nvar _debounce = _interopRequireDefault(require(\"../debounce\"));\nvar _constant = require(\"../constant\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n/**\n * Created by hustcc on 18/6/9.\n * Contract: i@hust.cc\n */\n\nvar createSensor = function createSensor(element, whenDestroy) {\n var sensor = undefined;\n // callback\n var listeners = [];\n\n /**\n * create object DOM of sensor\n * @returns {HTMLObjectElement}\n */\n var newSensor = function newSensor() {\n // adjust style\n if (getComputedStyle(element).position === 'static') {\n element.style.position = 'relative';\n }\n var obj = document.createElement('object');\n obj.onload = function () {\n obj.contentDocument.defaultView.addEventListener('resize', resizeListener);\n // 直接触发一次 resize\n resizeListener();\n };\n obj.style.display = 'block';\n obj.style.position = 'absolute';\n obj.style.top = '0';\n obj.style.left = '0';\n obj.style.height = '100%';\n obj.style.width = '100%';\n obj.style.overflow = 'hidden';\n obj.style.pointerEvents = 'none';\n obj.style.zIndex = '-1';\n obj.style.opacity = '0';\n obj.setAttribute('class', _constant.SensorClassName);\n obj.setAttribute('tabindex', _constant.SensorTabIndex);\n obj.type = 'text/html';\n\n // append into dom\n element.appendChild(obj);\n // for ie, should set data attribute delay, or will be white screen\n obj.data = 'about:blank';\n return obj;\n };\n\n /**\n * trigger listeners\n */\n var resizeListener = (0, _debounce[\"default\"])(function () {\n // trigger all listener\n listeners.forEach(function (listener) {\n listener(element);\n });\n });\n\n /**\n * listen with one callback function\n * @param cb\n */\n var bind = function bind(cb) {\n // if not exist sensor, then create one\n if (!sensor) {\n sensor = newSensor();\n }\n if (listeners.indexOf(cb) === -1) {\n listeners.push(cb);\n }\n };\n\n /**\n * destroy all\n */\n var destroy = function destroy() {\n if (sensor && sensor.parentNode) {\n if (sensor.contentDocument) {\n // remote event\n sensor.contentDocument.defaultView.removeEventListener('resize', resizeListener);\n }\n // remove dom\n sensor.parentNode.removeChild(sensor);\n // initial variable\n element.removeAttribute(_constant.SizeSensorId);\n sensor = undefined;\n listeners = [];\n whenDestroy && whenDestroy();\n }\n };\n\n /**\n * cancel listener bind\n * @param cb\n */\n var unbind = function unbind(cb) {\n var idx = listeners.indexOf(cb);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n\n // no listener, and sensor is exist\n // then destroy the sensor\n if (listeners.length === 0 && sensor) {\n destroy();\n }\n };\n return {\n element: element,\n bind: bind,\n destroy: destroy,\n unbind: unbind\n };\n};\nexports.createSensor = createSensor;","// https://github.com/HarryStevens/d3-regression#readme Version 1.3.10. Copyright 2022 Harry Stevens.\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.d3 = {}));\n}(this, (function (exports) { 'use strict';\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n\n // Adapted from vega-statistics by Jeffrey Heer\n // License: https://github.com/vega/vega/blob/f058b099decad9db78301405dd0d2e9d8ba3d51a/LICENSE\n // Source: https://github.com/vega/vega/blob/f058b099decad9db78301405dd0d2e9d8ba3d51a/packages/vega-statistics/src/regression/points.js\n function points(data, x, y, sort) {\n data = data.filter(function (d, i) {\n var u = x(d, i),\n v = y(d, i);\n return u != null && isFinite(u) && v != null && isFinite(v);\n });\n\n if (sort) {\n data.sort(function (a, b) {\n return x(a) - x(b);\n });\n }\n\n var n = data.length,\n X = new Float64Array(n),\n Y = new Float64Array(n); // extract values, calculate means\n\n var ux = 0,\n uy = 0,\n xv,\n yv,\n d;\n\n for (var i = 0; i < n;) {\n d = data[i];\n X[i] = xv = +x(d, i, data);\n Y[i] = yv = +y(d, i, data);\n ++i;\n ux += (xv - ux) / i;\n uy += (yv - uy) / i;\n } // mean center the data\n\n\n for (var _i = 0; _i < n; ++_i) {\n X[_i] -= ux;\n Y[_i] -= uy;\n }\n\n return [X, Y, ux, uy];\n }\n function visitPoints(data, x, y, cb) {\n var iterations = 0;\n\n for (var i = 0, n = data.length; i < n; i++) {\n var d = data[i],\n dx = +x(d, i, data),\n dy = +y(d, i, data);\n\n if (dx != null && isFinite(dx) && dy != null && isFinite(dy)) {\n cb(dx, dy, iterations++);\n }\n }\n }\n\n // return the coefficient of determination, or R squared.\n\n function determination(data, x, y, uY, predict) {\n var SSE = 0,\n SST = 0;\n visitPoints(data, x, y, function (dx, dy) {\n var sse = dy - predict(dx),\n sst = dy - uY;\n SSE += sse * sse;\n SST += sst * sst;\n });\n return 1 - SSE / SST;\n }\n\n // Returns the angle of a line in degrees.\n function angle(line) {\n return Math.atan2(line[1][1] - line[0][1], line[1][0] - line[0][0]) * 180 / Math.PI;\n } // Returns the midpoint of a line.\n\n function midpoint(line) {\n return [(line[0][0] + line[1][0]) / 2, (line[0][1] + line[1][1]) / 2];\n }\n\n // returns a smooth line.\n\n function interpose(xmin, xmax, predict) {\n var l = Math.log(xmax - xmin) * Math.LOG10E + 1 | 0;\n var precision = 1 * Math.pow(10, -l / 2 - 1),\n maxIter = 1e4;\n var points = [px(xmin), px(xmax)],\n iter = 0;\n\n while (find(points) && iter < maxIter) {\n }\n\n return points;\n\n function px(x) {\n return [x, predict(x)];\n }\n\n function find(points) {\n iter++;\n var n = points.length;\n var found = false;\n\n for (var i = 0; i < n - 1; i++) {\n var p0 = points[i],\n p1 = points[i + 1],\n m = midpoint([p0, p1]),\n mp = px(m[0]),\n a0 = angle([p0, m]),\n a1 = angle([p0, mp]),\n a = Math.abs(a0 - a1);\n\n if (a > precision) {\n points.splice(i + 1, 0, mp);\n found = true;\n }\n }\n\n return found;\n }\n }\n\n // Ordinary Least Squares from vega-statistics by Jeffrey Heer\n // License: https://github.com/vega/vega/blob/f058b099decad9db78301405dd0d2e9d8ba3d51a/LICENSE\n // Source: https://github.com/vega/vega/blob/f058b099decad9db78301405dd0d2e9d8ba3d51a/packages/vega-statistics/src/regression/ols.js\n function ols(uX, uY, uXY, uX2) {\n var delta = uX2 - uX * uX,\n slope = Math.abs(delta) < 1e-24 ? 0 : (uXY - uX * uY) / delta,\n intercept = uY - slope * uX;\n return [intercept, slope];\n }\n\n function exponential () {\n var x = function x(d) {\n return d[0];\n },\n y = function y(d) {\n return d[1];\n },\n domain;\n\n function exponential(data) {\n var n = 0,\n Y = 0,\n YL = 0,\n XY = 0,\n XYL = 0,\n X2Y = 0,\n xmin = domain ? +domain[0] : Infinity,\n xmax = domain ? +domain[1] : -Infinity;\n visitPoints(data, x, y, function (dx, dy) {\n var ly = Math.log(dy),\n xy = dx * dy;\n ++n;\n Y += (dy - Y) / n;\n XY += (xy - XY) / n;\n X2Y += (dx * xy - X2Y) / n;\n YL += (dy * ly - YL) / n;\n XYL += (xy * ly - XYL) / n;\n\n if (!domain) {\n if (dx < xmin) xmin = dx;\n if (dx > xmax) xmax = dx;\n }\n });\n\n var _ols = ols(XY / Y, YL / Y, XYL / Y, X2Y / Y),\n _ols2 = _slicedToArray(_ols, 2),\n a = _ols2[0],\n b = _ols2[1];\n\n a = Math.exp(a);\n\n var fn = function fn(x) {\n return a * Math.exp(b * x);\n },\n out = interpose(xmin, xmax, fn);\n\n out.a = a;\n out.b = b;\n out.predict = fn;\n out.rSquared = determination(data, x, y, Y, fn);\n return out;\n }\n\n exponential.domain = function (arr) {\n return arguments.length ? (domain = arr, exponential) : domain;\n };\n\n exponential.x = function (fn) {\n return arguments.length ? (x = fn, exponential) : x;\n };\n\n exponential.y = function (fn) {\n return arguments.length ? (y = fn, exponential) : y;\n };\n\n return exponential;\n }\n\n function linear () {\n var x = function x(d) {\n return d[0];\n },\n y = function y(d) {\n return d[1];\n },\n domain;\n\n function linear(data) {\n var n = 0,\n X = 0,\n // sum of x\n Y = 0,\n // sum of y\n XY = 0,\n // sum of x * y\n X2 = 0,\n // sum of x * x\n xmin = domain ? +domain[0] : Infinity,\n xmax = domain ? +domain[1] : -Infinity;\n visitPoints(data, x, y, function (dx, dy) {\n ++n;\n X += (dx - X) / n;\n Y += (dy - Y) / n;\n XY += (dx * dy - XY) / n;\n X2 += (dx * dx - X2) / n;\n\n if (!domain) {\n if (dx < xmin) xmin = dx;\n if (dx > xmax) xmax = dx;\n }\n });\n\n var _ols = ols(X, Y, XY, X2),\n _ols2 = _slicedToArray(_ols, 2),\n intercept = _ols2[0],\n slope = _ols2[1],\n fn = function fn(x) {\n return slope * x + intercept;\n },\n out = [[xmin, fn(xmin)], [xmax, fn(xmax)]];\n\n out.a = slope;\n out.b = intercept;\n out.predict = fn;\n out.rSquared = determination(data, x, y, Y, fn);\n return out;\n }\n\n linear.domain = function (arr) {\n return arguments.length ? (domain = arr, linear) : domain;\n };\n\n linear.x = function (fn) {\n return arguments.length ? (x = fn, linear) : x;\n };\n\n linear.y = function (fn) {\n return arguments.length ? (y = fn, linear) : y;\n };\n\n return linear;\n }\n\n // Returns the medium value of an array of numbers.\n function median(arr) {\n arr.sort(function (a, b) {\n return a - b;\n });\n var i = arr.length / 2;\n return i % 1 === 0 ? (arr[i - 1] + arr[i]) / 2 : arr[Math.floor(i)];\n }\n\n var maxiters = 2,\n epsilon = 1e-12;\n function loess () {\n var x = function x(d) {\n return d[0];\n },\n y = function y(d) {\n return d[1];\n },\n bandwidth = .3;\n\n function loess(data) {\n var _points = points(data, x, y, true),\n _points2 = _slicedToArray(_points, 4),\n xv = _points2[0],\n yv = _points2[1],\n ux = _points2[2],\n uy = _points2[3],\n n = xv.length,\n bw = Math.max(2, ~~(bandwidth * n)),\n yhat = new Float64Array(n),\n residuals = new Float64Array(n),\n robustWeights = new Float64Array(n).fill(1);\n\n for (var iter = -1; ++iter <= maxiters;) {\n var interval = [0, bw - 1];\n\n for (var i = 0; i < n; ++i) {\n var dx = xv[i],\n i0 = interval[0],\n i1 = interval[1],\n edge = dx - xv[i0] > xv[i1] - dx ? i0 : i1;\n var W = 0,\n X = 0,\n Y = 0,\n XY = 0,\n X2 = 0,\n denom = 1 / Math.abs(xv[edge] - dx || 1); // Avoid singularity\n\n for (var k = i0; k <= i1; ++k) {\n var xk = xv[k],\n yk = yv[k],\n w = tricube(Math.abs(dx - xk) * denom) * robustWeights[k],\n xkw = xk * w;\n W += w;\n X += xkw;\n Y += yk * w;\n XY += yk * xkw;\n X2 += xk * xkw;\n } // Linear regression fit\n\n\n var _ols = ols(X / W, Y / W, XY / W, X2 / W),\n _ols2 = _slicedToArray(_ols, 2),\n a = _ols2[0],\n b = _ols2[1];\n\n yhat[i] = a + b * dx;\n residuals[i] = Math.abs(yv[i] - yhat[i]);\n updateInterval(xv, i + 1, interval);\n }\n\n if (iter === maxiters) {\n break;\n }\n\n var medianResidual = median(residuals);\n if (Math.abs(medianResidual) < epsilon) break;\n\n for (var _i = 0, arg, _w; _i < n; ++_i) {\n arg = residuals[_i] / (6 * medianResidual); // Default to epsilon (rather than zero) for large deviations\n // Keeping weights tiny but non-zero prevents singularites\n\n robustWeights[_i] = arg >= 1 ? epsilon : (_w = 1 - arg * arg) * _w;\n }\n }\n\n return output(xv, yhat, ux, uy);\n }\n\n loess.bandwidth = function (bw) {\n return arguments.length ? (bandwidth = bw, loess) : bandwidth;\n };\n\n loess.x = function (fn) {\n return arguments.length ? (x = fn, loess) : x;\n };\n\n loess.y = function (fn) {\n return arguments.length ? (y = fn, loess) : y;\n };\n\n return loess;\n } // Weighting kernel for local regression\n\n function tricube(x) {\n return (x = 1 - x * x * x) * x * x;\n } // Advance sliding window interval of nearest neighbors\n\n\n function updateInterval(xv, i, interval) {\n var val = xv[i],\n left = interval[0],\n right = interval[1] + 1;\n if (right >= xv.length) return; // Step right if distance to new right edge is <= distance to old left edge\n // Step when distance is equal to ensure movement over duplicate x values\n\n while (i > left && xv[right] - val <= val - xv[left]) {\n interval[0] = ++left;\n interval[1] = right;\n ++right;\n }\n } // Generate smoothed output points\n // Average points with repeated x values\n\n\n function output(xv, yhat, ux, uy) {\n var n = xv.length,\n out = [];\n var i = 0,\n cnt = 0,\n prev = [],\n v;\n\n for (; i < n; ++i) {\n v = xv[i] + ux;\n\n if (prev[0] === v) {\n // Average output values via online update\n prev[1] += (yhat[i] - prev[1]) / ++cnt;\n } else {\n // Add new output point\n cnt = 0;\n prev[1] += uy;\n prev = [v, yhat[i]];\n out.push(prev);\n }\n }\n\n prev[1] += uy;\n return out;\n }\n\n function logarithmic () {\n var x = function x(d) {\n return d[0];\n },\n y = function y(d) {\n return d[1];\n },\n base = Math.E,\n domain;\n\n function logarithmic(data) {\n var n = 0,\n X = 0,\n Y = 0,\n XY = 0,\n X2 = 0,\n xmin = domain ? +domain[0] : Infinity,\n xmax = domain ? +domain[1] : -Infinity,\n lb = Math.log(base);\n visitPoints(data, x, y, function (dx, dy) {\n var lx = Math.log(dx) / lb;\n ++n;\n X += (lx - X) / n;\n Y += (dy - Y) / n;\n XY += (lx * dy - XY) / n;\n X2 += (lx * lx - X2) / n;\n\n if (!domain) {\n if (dx < xmin) xmin = dx;\n if (dx > xmax) xmax = dx;\n }\n });\n\n var _ols = ols(X, Y, XY, X2),\n _ols2 = _slicedToArray(_ols, 2),\n intercept = _ols2[0],\n slope = _ols2[1],\n fn = function fn(x) {\n return slope * Math.log(x) / lb + intercept;\n },\n out = interpose(xmin, xmax, fn);\n\n out.a = slope;\n out.b = intercept;\n out.predict = fn;\n out.rSquared = determination(data, x, y, Y, fn);\n return out;\n }\n\n logarithmic.domain = function (arr) {\n return arguments.length ? (domain = arr, logarithmic) : domain;\n };\n\n logarithmic.x = function (fn) {\n return arguments.length ? (x = fn, logarithmic) : x;\n };\n\n logarithmic.y = function (fn) {\n return arguments.length ? (y = fn, logarithmic) : y;\n };\n\n logarithmic.base = function (n) {\n return arguments.length ? (base = n, logarithmic) : base;\n };\n\n return logarithmic;\n }\n\n function quad () {\n var x = function x(d) {\n return d[0];\n },\n y = function y(d) {\n return d[1];\n },\n domain;\n\n function quadratic(data) {\n var _points = points(data, x, y),\n _points2 = _slicedToArray(_points, 4),\n xv = _points2[0],\n yv = _points2[1],\n ux = _points2[2],\n uy = _points2[3],\n n = xv.length;\n\n var X2 = 0,\n X3 = 0,\n X4 = 0,\n XY = 0,\n X2Y = 0,\n i,\n dx,\n dy,\n x2;\n\n for (i = 0; i < n;) {\n dx = xv[i];\n dy = yv[i++];\n x2 = dx * dx;\n X2 += (x2 - X2) / i;\n X3 += (x2 * dx - X3) / i;\n X4 += (x2 * x2 - X4) / i;\n XY += (dx * dy - XY) / i;\n X2Y += (x2 * dy - X2Y) / i;\n }\n\n var Y = 0,\n n0 = 0,\n xmin = domain ? +domain[0] : Infinity,\n xmax = domain ? +domain[1] : -Infinity;\n visitPoints(data, x, y, function (dx, dy) {\n n0++;\n Y += (dy - Y) / n0;\n\n if (!domain) {\n if (dx < xmin) xmin = dx;\n if (dx > xmax) xmax = dx;\n }\n });\n\n var X2X2 = X4 - X2 * X2,\n d = X2 * X2X2 - X3 * X3,\n a = (X2Y * X2 - XY * X3) / d,\n b = (XY * X2X2 - X2Y * X3) / d,\n c = -a * X2,\n fn = function fn(x) {\n x = x - ux;\n return a * x * x + b * x + c + uy;\n };\n\n var out = interpose(xmin, xmax, fn);\n out.a = a;\n out.b = b - 2 * a * ux;\n out.c = c - b * ux + a * ux * ux + uy;\n out.predict = fn;\n out.rSquared = determination(data, x, y, Y, fn);\n return out;\n }\n\n quadratic.domain = function (arr) {\n return arguments.length ? (domain = arr, quadratic) : domain;\n };\n\n quadratic.x = function (fn) {\n return arguments.length ? (x = fn, quadratic) : x;\n };\n\n quadratic.y = function (fn) {\n return arguments.length ? (y = fn, quadratic) : y;\n };\n\n return quadratic;\n }\n\n // Source: https://github.com/Tom-Alexander/regression-js/blob/master/src/regression.js#L246\n // License: https://github.com/Tom-Alexander/regression-js/blob/master/LICENSE\n // ...with ideas from vega-statistics by Jeffrey Heer\n // Source: https://github.com/vega/vega/blob/f21cb8792b4e0cbe2b1a3fd44b0f5db370dbaadb/packages/vega-statistics/src/regression/poly.js\n // License: https://github.com/vega/vega/blob/f058b099decad9db78301405dd0d2e9d8ba3d51a/LICENSE\n\n function polynomial () {\n var x = function x(d) {\n return d[0];\n },\n y = function y(d) {\n return d[1];\n },\n order = 3,\n domain;\n\n function polynomial(data) {\n // Use more efficient methods for lower orders\n if (order === 1) {\n var o = linear().x(x).y(y).domain(domain)(data);\n o.coefficients = [o.b, o.a];\n delete o.a;\n delete o.b;\n return o;\n }\n\n if (order === 2) {\n var _o = quad().x(x).y(y).domain(domain)(data);\n\n _o.coefficients = [_o.c, _o.b, _o.a];\n delete _o.a;\n delete _o.b;\n delete _o.c;\n return _o;\n }\n\n var _points = points(data, x, y),\n _points2 = _slicedToArray(_points, 4),\n xv = _points2[0],\n yv = _points2[1],\n ux = _points2[2],\n uy = _points2[3],\n n = xv.length,\n lhs = [],\n rhs = [],\n k = order + 1;\n\n var Y = 0,\n n0 = 0,\n xmin = domain ? +domain[0] : Infinity,\n xmax = domain ? +domain[1] : -Infinity;\n visitPoints(data, x, y, function (dx, dy) {\n ++n0;\n Y += (dy - Y) / n0;\n\n if (!domain) {\n if (dx < xmin) xmin = dx;\n if (dx > xmax) xmax = dx;\n }\n });\n var i, j, l, v, c;\n\n for (i = 0; i < k; ++i) {\n for (l = 0, v = 0; l < n; ++l) {\n v += Math.pow(xv[l], i) * yv[l];\n }\n\n lhs.push(v);\n c = new Float64Array(k);\n\n for (j = 0; j < k; ++j) {\n for (l = 0, v = 0; l < n; ++l) {\n v += Math.pow(xv[l], i + j);\n }\n\n c[j] = v;\n }\n\n rhs.push(c);\n }\n\n rhs.push(lhs);\n\n var coef = gaussianElimination(rhs),\n fn = function fn(x) {\n x -= ux;\n var y = uy + coef[0] + coef[1] * x + coef[2] * x * x;\n\n for (i = 3; i < k; ++i) {\n y += coef[i] * Math.pow(x, i);\n }\n\n return y;\n },\n out = interpose(xmin, xmax, fn);\n\n out.coefficients = uncenter(k, coef, -ux, uy);\n out.predict = fn;\n out.rSquared = determination(data, x, y, Y, fn);\n return out;\n }\n\n polynomial.domain = function (arr) {\n return arguments.length ? (domain = arr, polynomial) : domain;\n };\n\n polynomial.x = function (fn) {\n return arguments.length ? (x = fn, polynomial) : x;\n };\n\n polynomial.y = function (fn) {\n return arguments.length ? (y = fn, polynomial) : y;\n };\n\n polynomial.order = function (n) {\n return arguments.length ? (order = n, polynomial) : order;\n };\n\n return polynomial;\n }\n\n function uncenter(k, a, x, y) {\n var z = Array(k);\n var i, j, v, c; // initialize to zero\n\n for (i = 0; i < k; ++i) {\n z[i] = 0;\n } // polynomial expansion\n\n\n for (i = k - 1; i >= 0; --i) {\n v = a[i];\n c = 1;\n z[i] += v;\n\n for (j = 1; j <= i; ++j) {\n c *= (i + 1 - j) / j; // binomial coefficent\n\n z[i - j] += v * Math.pow(x, j) * c;\n }\n } // bias term\n\n\n z[0] += y;\n return z;\n } // Given an array for a two-dimensional matrix and the polynomial order,\n // solve A * x = b using Gaussian elimination.\n\n\n function gaussianElimination(matrix) {\n var n = matrix.length - 1,\n coef = [];\n var i, j, k, r, t;\n\n for (i = 0; i < n; ++i) {\n r = i; // max row\n\n for (j = i + 1; j < n; ++j) {\n if (Math.abs(matrix[i][j]) > Math.abs(matrix[i][r])) {\n r = j;\n }\n }\n\n for (k = i; k < n + 1; ++k) {\n t = matrix[k][i];\n matrix[k][i] = matrix[k][r];\n matrix[k][r] = t;\n }\n\n for (j = i + 1; j < n; ++j) {\n for (k = n; k >= i; k--) {\n matrix[k][j] -= matrix[k][i] * matrix[i][j] / matrix[i][i];\n }\n }\n }\n\n for (j = n - 1; j >= 0; --j) {\n t = 0;\n\n for (k = j + 1; k < n; ++k) {\n t += matrix[k][j] * coef[k];\n }\n\n coef[j] = (matrix[n][j] - t) / matrix[j][j];\n }\n\n return coef;\n }\n\n function power () {\n var x = function x(d) {\n return d[0];\n },\n y = function y(d) {\n return d[1];\n },\n domain;\n\n function power(data) {\n var n = 0,\n X = 0,\n Y = 0,\n XY = 0,\n X2 = 0,\n YS = 0,\n xmin = domain ? +domain[0] : Infinity,\n xmax = domain ? +domain[1] : -Infinity;\n visitPoints(data, x, y, function (dx, dy) {\n var lx = Math.log(dx),\n ly = Math.log(dy);\n ++n;\n X += (lx - X) / n;\n Y += (ly - Y) / n;\n XY += (lx * ly - XY) / n;\n X2 += (lx * lx - X2) / n;\n YS += (dy - YS) / n;\n\n if (!domain) {\n if (dx < xmin) xmin = dx;\n if (dx > xmax) xmax = dx;\n }\n });\n\n var _ols = ols(X, Y, XY, X2),\n _ols2 = _slicedToArray(_ols, 2),\n a = _ols2[0],\n b = _ols2[1];\n\n a = Math.exp(a);\n\n var fn = function fn(x) {\n return a * Math.pow(x, b);\n },\n out = interpose(xmin, xmax, fn);\n\n out.a = a;\n out.b = b;\n out.predict = fn;\n out.rSquared = determination(data, x, y, YS, fn);\n return out;\n }\n\n power.domain = function (arr) {\n return arguments.length ? (domain = arr, power) : domain;\n };\n\n power.x = function (fn) {\n return arguments.length ? (x = fn, power) : x;\n };\n\n power.y = function (fn) {\n return arguments.length ? (y = fn, power) : y;\n };\n\n return power;\n }\n\n exports.regressionExp = exponential;\n exports.regressionLinear = linear;\n exports.regressionLoess = loess;\n exports.regressionLog = logarithmic;\n exports.regressionPoly = polynomial;\n exports.regressionPow = power;\n exports.regressionQuad = quad;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n/**\n * Created by hustcc on 18/6/9.\n * Contract: i@hust.cc\n */\n\nvar id = 1;\n\n/**\n * generate unique id in application\n * @return {string}\n */\nvar _default = function _default() {\n return \"\".concat(id++);\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createSensor = void 0;\nvar _constant = require(\"../constant\");\nvar _debounce = _interopRequireDefault(require(\"../debounce\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n/**\n * Created by hustcc on 18/7/5.\n * Contract: i@hust.cc\n */\n\nvar createSensor = function createSensor(element, whenDestroy) {\n var sensor = undefined;\n // callback\n var listeners = [];\n\n /**\n * trigger listeners\n */\n var resizeListener = (0, _debounce[\"default\"])(function () {\n // trigger all\n listeners.forEach(function (listener) {\n listener(element);\n });\n });\n\n /**\n * create ResizeObserver sensor\n * @returns\n */\n var newSensor = function newSensor() {\n var s = new ResizeObserver(resizeListener);\n // listen element\n s.observe(element);\n\n // trigger once\n resizeListener();\n return s;\n };\n\n /**\n * listen with callback\n * @param cb\n */\n var bind = function bind(cb) {\n if (!sensor) {\n sensor = newSensor();\n }\n if (listeners.indexOf(cb) === -1) {\n listeners.push(cb);\n }\n };\n\n /**\n * destroy\n */\n var destroy = function destroy() {\n sensor.disconnect();\n listeners = [];\n sensor = undefined;\n element.removeAttribute(_constant.SizeSensorId);\n whenDestroy && whenDestroy();\n };\n\n /**\n * cancel bind\n * @param cb\n */\n var unbind = function unbind(cb) {\n var idx = listeners.indexOf(cb);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n\n // no listener, and sensor is exist\n // then destroy the sensor\n if (listeners.length === 0 && sensor) {\n destroy();\n }\n };\n return {\n element: element,\n bind: bind,\n destroy: destroy,\n unbind: unbind\n };\n};\nexports.createSensor = createSensor;","'use strict';\n\nvar DEFAULT_SIZE = 50;\nvar DEFAULT_WIDTH = 2;\n\nvar LN_2 = Math.log(2);\nvar self = module.exports;\n\nvar helper = require('./helper');\n\n// Triangle\nfunction kernel(x) {\n return 1 - Math.abs(x);\n}\n\n/**\n * Get min and max value for the pdf, covering all arr data range while respecting options' data\n * @param arr\n * @param options\n * @returns {*}\n */\nmodule.exports.getUnifiedMinMax = function (arr, options) {\n return self.getUnifiedMinMaxMulti([arr], options);\n};\n\nmodule.exports.getUnifiedMinMaxMulti = function (arrMulti, options) {\n options = options || {};\n\n var relaxMin = false;\n var relaxMax = false;\n\n var width = helper.isNumber(options.width) ? options.width : DEFAULT_WIDTH;\n var size = helper.isNumber(options.size) ? options.size : DEFAULT_SIZE;\n var min = helper.isNumber(options.min) ? options.min : (relaxMin = true, helper.findMinMulti(arrMulti));\n var max = helper.isNumber(options.max) ? options.max : (relaxMax = true, helper.findMaxMulti(arrMulti));\n\n var range = max - min;\n var step = range / (size - 1);\n\n // Relax?\n if (relaxMin) {\n min = min - 2 * width * step;\n }\n if (relaxMax) {\n max = max + 2 * width * step;\n }\n\n return {\n min: min,\n max: max\n };\n};\n\nmodule.exports.create = function (arr, options) {\n options = options || {};\n\n if (!arr || (arr.length === 0)) {\n return [];\n }\n\n var size = helper.isNumber(options.size) ? options.size : DEFAULT_SIZE;\n var width = helper.isNumber(options.width) ? options.width : DEFAULT_WIDTH;\n var normalizedMinMax = self.getUnifiedMinMax(arr, {\n size: size,\n width: width,\n min: options.min,\n max: options.max\n });\n\n var min = normalizedMinMax.min;\n var max = normalizedMinMax.max;\n\n var range = max - min;\n var step = range / (size - 1);\n if (range === 0) {\n // Special case...\n return [{x: min, y: 1}];\n }\n\n // Good to go\n\n var buckets = [];\n for (var i = 0; i < size; i++) {\n buckets.push({\n x: min + i * step,\n y: 0\n });\n }\n\n var xToBucket = function (x) {\n return Math.floor((x - min) / step);\n };\n\n var partialArea = generatePartialAreas(kernel, width);\n var fullArea = partialArea[width];\n var c = partialArea[width-1] - partialArea[width-2];\n\n var initalValue = 0;\n arr.forEach(function (x) {\n var bucket = xToBucket(x);\n\n // Totally outside?\n if ((bucket + width < 0) || (bucket - width >= buckets.length)) {\n return;\n }\n\n var start = Math.max(bucket - width, 0);\n var mid = bucket;\n var end = Math.min(bucket + width, buckets.length - 1);\n\n var leftBlockCount = start - (bucket - width);\n var rightBlockCount = (bucket + width) - end;\n var spilledAreaLeft = partialArea[-width-1 + leftBlockCount] || 0;\n var spilledAreaRight = partialArea[-width-1 + rightBlockCount] || 0;\n var weight = fullArea / (fullArea - spilledAreaLeft - spilledAreaRight);\n\n if (leftBlockCount > 0) {\n initalValue += weight * (leftBlockCount - 1) * c;\n }\n\n // Add grads\n var startGradPos = Math.max(0, bucket-width+1);\n if (helper.inside(0, buckets.length-1, startGradPos)) {\n buckets[startGradPos].y += weight * 1 * c;\n }\n if (helper.inside(0, buckets.length-1, mid + 1)) {\n buckets[mid + 1].y -= weight * 2 * c;\n }\n if (helper.inside(0, buckets.length-1, end + 1)) {\n buckets[end + 1].y += weight * 1 * c;\n }\n });\n\n var accumulator = initalValue;\n var gradAccumulator = 0;\n var area = 0;\n buckets.forEach(function (bucket) {\n gradAccumulator += bucket.y;\n accumulator += gradAccumulator;\n\n bucket.y = accumulator;\n area += accumulator;\n });\n\n // Normalize\n if (area > 0) {\n buckets.forEach(function (bucket) {\n bucket.y /= area;\n });\n }\n\n return buckets;\n};\n\nfunction generatePartialAreas(kernel, width) {\n var partialAreas = {};\n\n var accumulator = 0;\n for (var i = -width; i <= width; i++) {\n accumulator += kernel(i/width);\n partialAreas[i] = accumulator;\n }\n\n return partialAreas;\n}\n\nmodule.exports.getExpectedValueFromPdf = function (pdf) {\n if (!pdf || (pdf.length === 0)) {\n return undefined;\n }\n\n var expected = 0;\n\n pdf.forEach(function (obj) {\n expected += obj.x * obj.y;\n });\n\n return expected;\n};\n\nmodule.exports.getXWithLeftTailArea = function (pdf, area) {\n if (!pdf || (pdf.length === 0)) {\n return undefined;\n }\n\n var accumulator = 0;\n var last = 0;\n for (var i = 0; i < pdf.length; i++) {\n last = i;\n accumulator += pdf[i].y;\n\n if (accumulator >= area) {\n break;\n }\n }\n\n return pdf[last].x;\n};\n\nmodule.exports.getPerplexity = function (pdf) {\n if (!pdf || (pdf.length === 0)) {\n return undefined;\n }\n\n var entropy = 0;\n pdf.forEach(function (obj) {\n var ln = Math.log(obj.y);\n\n if (isFinite(ln)) {\n entropy += obj.y * ln;\n }\n });\n entropy = -entropy / LN_2;\n\n return Math.pow(2, entropy);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.github.io/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.github.io/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ver = exports.clear = exports.bind = void 0;\nvar _sensorPool = require(\"./sensorPool\");\n/**\n * Created by hustcc on 18/6/9.[高考时间]\n * Contract: i@hust.cc\n */\n\n/**\n * bind an element with resize callback function\n * @param {*} element\n * @param {*} cb\n */\nvar bind = function bind(element, cb) {\n var sensor = (0, _sensorPool.getSensor)(element);\n\n // listen with callback\n sensor.bind(cb);\n\n // return unbind function\n return function () {\n sensor.unbind(cb);\n };\n};\n\n/**\n * clear all the listener and sensor of an element\n * @param element\n */\nexports.bind = bind;\nvar clear = function clear(element) {\n var sensor = (0, _sensorPool.getSensor)(element);\n (0, _sensorPool.removeSensor)(sensor);\n};\nexports.clear = clear;\nvar ver = \"1.0.2\";\nexports.ver = ver;","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","'use strict';\n\nvar self = module.exports;\n\nmodule.exports.isNumber = function (x) {\n return (typeof x === 'number');\n};\n\nmodule.exports.findMin = function (arr) {\n if (arr.length === 0) {\n return Infinity;\n }\n\n var curr = arr[0];\n for (var i = 1; i < arr.length; i++) {\n curr = Math.min(curr, arr[i]);\n }\n return curr;\n};\n\nmodule.exports.findMax = function (arr) {\n if (arr.length === 0) {\n return -Infinity;\n }\n\n var curr = arr[0];\n for (var i = 1; i < arr.length; i++) {\n curr = Math.max(curr, arr[i]);\n }\n return curr;\n};\n\nmodule.exports.findMinMulti = function (arr) {\n var curr = self.findMin(arr[0]);\n for (var i = 1; i < arr.length; i++) {\n curr = Math.min(curr, self.findMin(arr[i]));\n }\n return curr;\n};\n\nmodule.exports.findMaxMulti = function (arr) {\n var curr = self.findMax(arr[0]);\n for (var i = 1; i < arr.length; i++) {\n curr = Math.max(curr, self.findMax(arr[i]));\n }\n return curr;\n};\n\nmodule.exports.inside = function (min, max, x) {\n return (min <= x) && (x <= max);\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('el-card',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.dataLoading),expression:\"dataLoading\"}],staticClass:\"box-card MT20\"},[_c('div',{staticClass:\"clearfix\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('span',[_c('span',{staticClass:\"el-icon-data-line\"}),_vm._v(\" 分时销售数据 \"),_c('span',{staticClass:\"color-danger\"},[_vm._v(\"(注意:分时统计展示的是历史销售数据,即当时售出的门票数(包括后来可能取消的门票),而非当前实际销售票数)\")])])]),(_vm.ticketNameData)?_c('div',{staticClass:\"page-filter-box\"},[_c('el-row',[_c('el-col',{attrs:{\"span\":4}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"size\":\"medium\",\"clearable\":\"\"},on:{\"change\":_vm.changeActivity},model:{value:(_vm.selectKey),callback:function ($$v) {_vm.selectKey=$$v},expression:\"selectKey\"}},_vm._l((_vm.ticketNameData),function(item,index){return _c('el-option',{key:index,attrs:{\"label\":item.value,\"value\":item.key}})}),1)],1),_c('el-col',{attrs:{\"span\":3}},[_c('el-radio-group',{staticClass:\"MR20\",attrs:{\"size\":\"medium\"},on:{\"change\":_vm.getTime},model:{value:(_vm.timeType),callback:function ($$v) {_vm.timeType=$$v},expression:\"timeType\"}},[_c('el-radio-button',{attrs:{\"label\":0}},[_vm._v(\"小时\")]),_c('el-radio-button',{attrs:{\"label\":1}},[_vm._v(\"天\")])],1)],1),_c('el-col',{attrs:{\"span\":8}},[_c('el-date-picker',{attrs:{\"type\":\"daterange\",\"range-separator\":\"-\",\"start-placeholder\":\"开始日期\",\"end-placeholder\":\"结束日期\",\"value-format\":\"yyyy-MM-dd HH:mm:ss\",\"clearable\":false,\"unlink-panels\":\"\",\"picker-options\":_vm.pickerOptions},on:{\"change\":_vm.daterangeChange},model:{value:(_vm.daterange),callback:function ($$v) {_vm.daterange=$$v},expression:\"daterange\"}})],1),_c('el-col',{attrs:{\"span\":5}},[_c('div',{staticClass:\"color-danger ML20\"},[_vm._v(\"按小时统计只能看最多7天的数据\"),_c('br'),_vm._v(\"按天统计只能看最多一年的数据\")])])],1)],1):_vm._e(),_c('div',{staticClass:\"content\"},[_c('div',{ref:\"chartContainer\",attrs:{\"id\":\"chartContainer\"}})])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","/**\n * Simplified from https://github.com/zertosh/invariant.\n */\nimport { __spreadArray } from \"tslib\";\nexport var LEVEL;\n(function (LEVEL) {\n LEVEL[\"ERROR\"] = \"error\";\n LEVEL[\"WARN\"] = \"warn\";\n LEVEL[\"INFO\"] = \"log\";\n})(LEVEL || (LEVEL = {}));\nvar BRAND = 'AntV/G2Plot';\n/**\n * 获取错误消息\n * @param format\n * @param args\n */\nfunction getMessage(format) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var argIndex = 0;\n return \"\".concat(BRAND, \": \").concat(format.replace(/%s/g, function () { return \"\".concat(args[argIndex++]); }));\n}\n/**\n * invariant error\n * @param condition\n * @param format\n * @param args\n */\nexport function invariant(condition, format) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n if (!condition) {\n var error = new Error(getMessage.apply(void 0, __spreadArray([format], args, false)));\n error.name = BRAND;\n // error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n/**\n * 打印语句\n * @param level\n * @param condition\n * @param format\n * @param args\n */\nexport function log(level, condition, format) {\n var args = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n args[_i - 3] = arguments[_i];\n }\n if (!condition) {\n console[level](getMessage.apply(void 0, __spreadArray([format], args, false)));\n }\n}\n//# sourceMappingURL=invariant.js.map","/**\n * 需要从轴配置中提取出来作为 meta 的属性 key 列表\n */\nexport var AXIS_META_CONFIG_KEYS = [\n 'type',\n 'alias',\n 'tickCount',\n 'tickInterval',\n 'min',\n 'max',\n 'nice',\n 'minLimit',\n 'maxLimit',\n // 坐标轴的范围\n 'range',\n 'tickMethod',\n // type: 'log' 的底\n 'base',\n // type: 'exp' 的指数\n 'exponent',\n // time 类型的格式化\n 'mask',\n // 是否同步\n 'sync',\n];\n//# sourceMappingURL=constant.js.map","/**\n * 类似 lodash.pick 的方法\n * @param obj\n * @param keys\n */\nexport function pick(obj, keys) {\n var r = {};\n if (obj !== null && typeof obj === 'object') {\n keys.forEach(function (key) {\n var v = obj[key];\n if (v !== undefined) {\n r[key] = v;\n }\n });\n }\n return r;\n}\n//# sourceMappingURL=pick.js.map","import { __assign } from \"tslib\";\nimport { filter, get, isNumber } from '@antv/util';\nimport { LEVEL, log } from './invariant';\nimport { pick } from './pick';\n/**\n * 查看数据是否是全负数、或者全正数\n * @param data\n * @param field\n */\nexport function adjustYMetaByZero(data, field) {\n if (!data)\n return {};\n // 过滤出数字数据\n var numberData = data.filter(function (datum) {\n var v = get(datum, [field]);\n return isNumber(v) && !isNaN(v);\n });\n var gtZero = numberData.every(function (datum) { return get(datum, [field]) >= 0; });\n var ltZero = numberData.every(function (datum) { return get(datum, [field]) <= 0; });\n // 目前是增量更新,对 { min: 0, max: undefined } 进行 update({ max: 0 }) 会得到 { min: 0, max: 0 }\n if (gtZero) {\n return { min: 0 };\n }\n if (ltZero) {\n return { max: 0 };\n }\n return {};\n}\n/**\n * 转换数据格式为带有节点与边的数据格式\n * @param data\n * @param sourceField\n * @param targetField\n * @param weightField\n * @param rawFields 存放一些原数据\n */\nexport function transformDataToNodeLinkData(data, sourceField, targetField, weightField, rawFields) {\n if (rawFields === void 0) { rawFields = []; }\n if (!Array.isArray(data)) {\n return {\n nodes: [],\n links: [],\n };\n }\n // const nodes = [];\n var links = [];\n // 先使用对象方式存储\n var nodesMap = {};\n var nodesIndex = -1;\n // 数组变换成 chord layout 的数据结构\n data.forEach(function (datum) {\n var source = datum[sourceField];\n var target = datum[targetField];\n var weight = datum[weightField];\n var rawData = pick(datum, rawFields);\n // source node\n if (!nodesMap[source]) {\n nodesMap[source] = __assign({ id: ++nodesIndex, name: source }, rawData);\n }\n if (!nodesMap[target]) {\n nodesMap[target] = __assign({ id: ++nodesIndex, name: target }, rawData);\n }\n // links\n links.push(__assign({ source: nodesMap[source].id, target: nodesMap[target].id, \n // sourceName: source,\n // targetName: target,\n value: weight }, rawData));\n });\n return {\n // 需要按照 id 的顺序\n nodes: Object.values(nodesMap).sort(function (a, b) { return a.id - b.id; }),\n links: links,\n };\n}\n/**\n * 处理不合法的数据(过滤 非数值型 和 NaN,保留 null)\n * @param data\n * @param angleField\n */\nexport function processIllegalData(data, field) {\n var processData = filter(data, function (d) {\n var v = d[field];\n return v === null || (typeof v === 'number' && !isNaN(v));\n });\n // 打印异常数据情况\n log(LEVEL.WARN, processData.length === data.length, 'illegal data existed in chart data.');\n return processData;\n}\n//# sourceMappingURL=data.js.map","var MAX_MIX_LEVEL = 5; // 最大比对层级\nvar toString = {}.toString;\n// 类型检测\nvar isType = function (value, type) { return toString.call(value) === '[object ' + type + ']'; };\nvar isArray = function (value) {\n return isType(value, 'Array');\n};\nvar isObjectLike = function (value) {\n /**\n * isObjectLike({}) => true\n * isObjectLike([1, 2, 3]) => true\n * isObjectLike(Function) => false\n */\n return typeof value === 'object' && value !== null;\n};\nvar isPlainObject = function (value) {\n /**\n * isObjectLike(new Foo) => false\n * isObjectLike([1, 2, 3]) => false\n * isObjectLike({ x: 0, y: 0 }) => true\n */\n if (!isObjectLike(value) || !isType(value, 'Object')) {\n return false;\n }\n var proto = value;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(value) === proto;\n};\n/***\n * @param {any} dist\n * @param {any} src\n * @param {number} level 当前层级\n * @param {number} maxLevel 最大层级\n */\nvar deep = function (dist, src, level, maxLevel) {\n level = level || 0;\n maxLevel = maxLevel || MAX_MIX_LEVEL;\n for (var key in src) {\n if (Object.prototype.hasOwnProperty.call(src, key)) {\n var value = src[key];\n if (!value) {\n // null 、 undefined 等情况直接赋值\n dist[key] = value;\n }\n else {\n if (isPlainObject(value)) {\n if (!isPlainObject(dist[key])) {\n dist[key] = {};\n }\n if (level < maxLevel) {\n deep(dist[key], value, level + 1, maxLevel);\n }\n else {\n // 层级过深直接赋值,性能问题\n dist[key] = src[key];\n }\n }\n else if (isArray(value)) {\n dist[key] = [];\n dist[key] = dist[key].concat(value);\n }\n else {\n dist[key] = value;\n }\n }\n }\n }\n};\n/**\n * deepAssign 功能类似 deepMix\n * 不同点在于 deepAssign 会将 null undefined 等类型直接覆盖给 source\n * 详细参考: __tests__/unit/utils/deep-assign-spec.ts\n */\nexport var deepAssign = function (rst) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n for (var i = 0; i < args.length; i += 1) {\n deep(rst, args[i]);\n }\n return rst;\n};\n//# sourceMappingURL=deep-assign.js.map","var ctx;\n/**\n * 获取 canvas context\n */\nexport function getCanvasContext() {\n if (!ctx) {\n ctx = document.createElement('canvas').getContext('2d');\n }\n return ctx;\n}\n//# sourceMappingURL=context.js.map","/**\n * get the element's bounding size\n * @param ele dom element\n * @returns the element width and height\n */\nexport function getContainerSize(ele) {\n if (!ele) {\n return { width: 0, height: 0 };\n }\n var style = getComputedStyle(ele);\n return {\n width: (ele.clientWidth || parseInt(style.width, 10)) -\n parseInt(style.paddingLeft, 10) -\n parseInt(style.paddingRight, 10),\n height: (ele.clientHeight || parseInt(style.height, 10)) -\n parseInt(style.paddingTop, 10) -\n parseInt(style.paddingBottom, 10),\n };\n}\n//# sourceMappingURL=dom.js.map","/**\n * 类似 lodash.flow 的方法\n * @param flows\n */\nexport function flow() {\n var flows = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n flows[_i] = arguments[_i];\n }\n return function (param) {\n return flows.reduce(function (result, f) {\n return f(result);\n }, param);\n };\n}\n//# sourceMappingURL=flow.js.map","import { get, reduce } from '@antv/util';\n/**\n * 在 View 中查找第一个指定 type 类型的 geometry\n * @param view\n * @param type\n */\nexport function findGeometry(view, type) {\n return view.geometries.find(function (g) { return g.type === type; });\n}\n/**\n * 获取 View 的 所有 elements\n */\nexport function getAllElements(view) {\n return reduce(view.geometries, function (r, geometry) {\n return r.concat(geometry.elements);\n }, []);\n}\n/**\n * 递归获取 View 的 所有 elements, 包括 View 的子 View\n */\nexport function getAllElementsRecursively(view) {\n if (get(view, ['views', 'length'], 0) <= 0) {\n return getAllElements(view);\n }\n return reduce(view.views, function (ele, subView) {\n return ele.concat(getAllElementsRecursively(subView));\n }, getAllElements(view));\n}\n/**\n * 递归获取 View 的 所有 geometries, 包括 View 的子 View\n */\nexport function getAllGeometriesRecursively(view) {\n if (get(view, ['views', 'length'], 0) <= 0) {\n return view.geometries;\n }\n return reduce(view.views, function (ele, subView) {\n return ele.concat(subView.geometries);\n }, view.geometries);\n}\n//# sourceMappingURL=geometry.js.map","/**\n * @desc simple kebabCase like lodash\n *\n * kebabCase('fooBar'); => 'foo-bar'\n */\nexport function kebabCase(word) {\n if (!word) {\n return word;\n }\n var result = word.match(/(([A-Z]{0,1}[a-z]*[^A-Z])|([A-Z]{1}))/g);\n return result.map(function (s) { return s.toLowerCase(); }).join('-');\n}\n//# sourceMappingURL=kebab-case.js.map","import { __assign } from \"tslib\";\nimport { isType } from '@antv/util';\n/**\n * 兼容 v1 label formatter\n * @param labelOptions\n */\nexport function transformLabel(labelOptions) {\n if (!isType(labelOptions, 'Object')) {\n return labelOptions;\n }\n var label = __assign({}, labelOptions);\n if (label.formatter && !label.content) {\n label.content = label.formatter;\n }\n return label;\n}\n//# sourceMappingURL=label.js.map","import { __spreadArray } from \"tslib\";\nimport { isString, memoize, values } from '@antv/util';\nimport { getCanvasContext } from './context';\n/**\n * 计算文本在画布中的宽度\n * @param text 文本\n * @param font 字体\n */\nexport var measureTextWidth = memoize(function (text, font) {\n if (font === void 0) { font = {}; }\n var fontSize = font.fontSize, _a = font.fontFamily, fontFamily = _a === void 0 ? 'sans-serif' : _a, fontWeight = font.fontWeight, fontStyle = font.fontStyle, fontVariant = font.fontVariant;\n var ctx = getCanvasContext();\n // @see https://developer.mozilla.org/zh-CN/docs/Web/CSS/font\n ctx.font = [fontStyle, fontWeight, fontVariant, \"\".concat(fontSize, \"px\"), fontFamily].join(' ');\n var metrics = ctx.measureText(isString(text) ? text : '');\n return metrics.width;\n}, function (text, font) {\n if (font === void 0) { font = {}; }\n return __spreadArray([text], values(font), true).join('');\n});\n//# sourceMappingURL=measure-text.js.map","/**\n * 是否真实的是数字\n * @param v\n */\nexport function isRealNumber(v) {\n return typeof v === 'number' && !isNaN(v);\n}\n/**\n * @ignore\n * Determines whether between is\n * @param value\n * @param start\n * @param end\n * @returns true if between\n */\nexport function isBetween(value, start, end) {\n var min = Math.min(start, end);\n var max = Math.max(start, end);\n return value >= min && value <= max;\n}\n//# sourceMappingURL=number.js.map","import { isArray, isNumber } from '@antv/util';\n/**\n * 把 padding 转换成统一的数组写法\n * @param padding\n */\nexport function normalPadding(padding) {\n if (isNumber(padding)) {\n return [padding, padding, padding, padding];\n }\n if (isArray(padding)) {\n var length_1 = padding.length;\n if (length_1 === 1) {\n return [padding[0], padding[0], padding[0], padding[0]];\n }\n if (length_1 === 2) {\n return [padding[0], padding[1], padding[0], padding[1]];\n }\n if (length_1 === 3) {\n return [padding[0], padding[1], padding[2], padding[1]];\n }\n if (length_1 === 4) {\n return padding;\n }\n }\n return [0, 0, 0, 0];\n}\n/**\n * 获取调整的 appendPadding\n */\nexport function getAdjustAppendPadding(padding, position, append) {\n if (position === void 0) { position = 'bottom'; }\n if (append === void 0) { append = 25; }\n var currentAppendPadding = normalPadding(padding);\n var PADDING = [\n position.startsWith('top') ? append : 0,\n position.startsWith('right') ? append : 0,\n position.startsWith('bottom') ? append : 0,\n position.startsWith('left') ? append : 0,\n ];\n return [\n currentAppendPadding[0] + PADDING[0],\n currentAppendPadding[1] + PADDING[1],\n currentAppendPadding[2] + PADDING[2],\n currentAppendPadding[3] + PADDING[3],\n ];\n}\n/**\n * 根据图表的 padding 和 appendPadding 计算出图表的最终 padding\n * @param array\n */\nexport function resolveAllPadding(paddings) {\n // 先把数组里的 padding 全部转换成 normal\n var normalPaddings = paddings.map(function (item) { return normalPadding(item); });\n var finalPadding = [0, 0, 0, 0];\n if (normalPaddings.length > 0) {\n finalPadding = finalPadding.map(function (item, index) {\n // 有几个 padding 数组就遍历几次,累加\n normalPaddings.forEach(function (d, i) {\n item += normalPaddings[i][index];\n });\n return item;\n });\n }\n return finalPadding;\n}\n//# sourceMappingURL=padding.js.map","import { vec2 } from '@antv/matrix-util';\nexport function points2Path(points, isInCircle) {\n var path = [];\n if (points.length) {\n path.push(['M', points[0].x, points[0].y]);\n for (var i = 1, length_1 = points.length; i < length_1; i += 1) {\n var item = points[i];\n path.push(['L', item.x, item.y]);\n }\n if (isInCircle) {\n path.push(['Z']);\n }\n }\n return path;\n}\n/**\n * @ignore\n * 计算光滑的贝塞尔曲线\n */\nexport var smoothBezier = function (points, smooth, isLoop, constraint) {\n var cps = [];\n var prevPoint;\n var nextPoint;\n var hasConstraint = !!constraint;\n var min;\n var max;\n if (hasConstraint) {\n min = [Infinity, Infinity];\n max = [-Infinity, -Infinity];\n for (var i = 0, l = points.length; i < l; i++) {\n var point = points[i];\n min = vec2.min([0, 0], min, point);\n max = vec2.max([0, 0], max, point);\n }\n min = vec2.min([0, 0], min, constraint[0]);\n max = vec2.max([0, 0], max, constraint[1]);\n }\n for (var i = 0, len = points.length; i < len; i++) {\n var point = points[i];\n if (isLoop) {\n prevPoint = points[i ? i - 1 : len - 1];\n nextPoint = points[(i + 1) % len];\n }\n else {\n if (i === 0 || i === len - 1) {\n cps.push(point);\n continue;\n }\n else {\n prevPoint = points[i - 1];\n nextPoint = points[i + 1];\n }\n }\n var v = [0, 0];\n v = vec2.sub(v, nextPoint, prevPoint);\n v = vec2.scale(v, v, smooth);\n var d0 = vec2.distance(point, prevPoint);\n var d1 = vec2.distance(point, nextPoint);\n var sum = d0 + d1;\n if (sum !== 0) {\n d0 /= sum;\n d1 /= sum;\n }\n var v1 = vec2.scale([0, 0], v, -d0);\n var v2 = vec2.scale([0, 0], v, d1);\n var cp0 = vec2.add([0, 0], point, v1);\n var cp1 = vec2.add([0, 0], point, v2);\n if (hasConstraint) {\n cp0 = vec2.max([0, 0], cp0, min);\n cp0 = vec2.min([0, 0], cp0, max);\n cp1 = vec2.max([0, 0], cp1, min);\n cp1 = vec2.min([0, 0], cp1, max);\n }\n cps.push(cp0);\n cps.push(cp1);\n }\n if (isLoop) {\n cps.push(cps.shift());\n }\n return cps;\n};\n/**\n * @ignore\n * 贝塞尔曲线\n */\nexport function catmullRom2bezier(crp, z, constraint) {\n var isLoop = !!z;\n var pointList = [];\n for (var i = 0, l = crp.length; i < l; i += 2) {\n pointList.push([crp[i], crp[i + 1]]);\n }\n var controlPointList = smoothBezier(pointList, 0.4, isLoop, constraint);\n var len = pointList.length;\n var d1 = [];\n var cp1;\n var cp2;\n var p;\n for (var i = 0; i < len - 1; i++) {\n cp1 = controlPointList[i * 2];\n cp2 = controlPointList[i * 2 + 1];\n p = pointList[i + 1];\n d1.push(['C', cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]]);\n }\n if (isLoop) {\n cp1 = controlPointList[len];\n cp2 = controlPointList[len + 1];\n p = pointList[0];\n d1.push(['C', cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]]);\n }\n return d1;\n}\n/**\n * @ignore\n * 根据关键点获取限定了范围的平滑线\n */\nexport function getSplinePath(points, isInCircle, constaint) {\n var data = [];\n var first = points[0];\n var prePoint = null;\n if (points.length <= 2) {\n // 两点以内直接绘制成路径\n return points2Path(points, isInCircle);\n }\n for (var i = 0, len = points.length; i < len; i++) {\n var point = points[i];\n if (!prePoint || !(prePoint.x === point.x && prePoint.y === point.y)) {\n data.push(point.x);\n data.push(point.y);\n prePoint = point;\n }\n }\n var constraint = constaint || [\n // 范围\n [0, 0],\n [1, 1],\n ];\n var splinePath = catmullRom2bezier(data, isInCircle, constraint);\n splinePath.unshift(['M', first.x, first.y]);\n return splinePath;\n}\n//# sourceMappingURL=path.js.map","import { __assign } from \"tslib\";\nimport { each, get, isFunction, isNumber, isString } from '@antv/util';\nimport { kebabCase } from './kebab-case';\nimport { pick } from './pick';\n/**\n * @desc 生成 html-statistic 的 style 字符串 (兼容 canvas 的 shapeStyle 到 css样式上)\n *\n * @param width\n * @param style\n */\nexport function adapteStyle(style) {\n var styleObject = {\n overflow: 'hidden',\n 'white-space': 'nowrap',\n 'text-overflow': 'ellipsis',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n };\n var shapeStyleKeys = [\n 'stroke',\n 'lineWidth',\n 'shadowColor',\n 'strokeOpacity',\n 'shadowBlur',\n 'shadowOffsetX',\n 'shadowOffsetY',\n 'fill',\n ];\n // 兼容 shapeStyle 设置 · start\n if (get(style, 'fill')) {\n styleObject['color'] = style['fill'];\n }\n var _a = pick(style, shapeStyleKeys), shadowColor = _a.shadowColor, _b = _a.shadowBlur, shadowBlur = _b === void 0 ? 0 : _b, _c = _a.shadowOffsetX, shadowOffsetX = _c === void 0 ? 0 : _c, _d = _a.shadowOffsetY, shadowOffsetY = _d === void 0 ? 0 : _d;\n styleObject['text-shadow'] = \"\".concat([shadowColor, \"\".concat(shadowOffsetX, \"px\"), \"\".concat(shadowOffsetY, \"px\"), \"\".concat(shadowBlur, \"px\")].join(' '));\n var _e = pick(style, shapeStyleKeys), stroke = _e.stroke, _f = _e.lineWidth, lineWidth = _f === void 0 ? 0 : _f;\n styleObject['-webkit-text-stroke'] = \"\".concat([\"\".concat(lineWidth, \"px\"), stroke].join(' '));\n // 兼容 shapeStyle 设置 · end\n each(style, function (v, k) {\n // 兼容 shapeStyle 的 fontSize 没有单位\n if (['fontSize'].includes(k) && isNumber(v)) {\n styleObject[kebabCase(k)] = \"\".concat(v, \"px\");\n }\n else if (k && !shapeStyleKeys.includes(k)) {\n styleObject[kebabCase(k)] = \"\".concat(v);\n }\n });\n return styleObject;\n}\n/**\n * @desc 设置 html-statistic 容器的默认样式\n *\n * - 默认事件穿透\n */\nexport function setStatisticContainerStyle(container, style) {\n container.style['pointer-events'] = 'none';\n each(style, function (v, k) {\n if (k && v) {\n container.style[k] = v;\n }\n });\n}\n/**\n * 渲染环图 html-annotation(默认 position 居中 [50%, 50%])\n * @param chart\n * @param options\n * @param meta 字段元信息\n * @param {optional} datum 当前的元数据\n */\nexport var renderStatistic = function (chart, options, datum) {\n var statistic = options.statistic, plotType = options.plotType;\n var titleOpt = statistic.title, contentOpt = statistic.content;\n [titleOpt, contentOpt].forEach(function (option, idx) {\n if (!option) {\n return;\n }\n var transform = '';\n if (idx === 0) {\n transform = contentOpt ? 'translate(-50%, -100%)' : 'translate(-50%, -50%)';\n }\n else {\n transform = titleOpt ? 'translate(-50%, 0)' : 'translate(-50%, -50%)';\n }\n var style = isFunction(option.style) ? option.style(datum) : option.style;\n chart.annotation().html(__assign({ position: ['50%', '50%'], html: function (container, view) {\n var coordinate = view.getCoordinate();\n var containerW = 0;\n if (plotType === 'pie' || plotType === 'ring-progress') {\n containerW = coordinate.getRadius() * coordinate.innerRadius * 2;\n }\n else if (plotType === 'liquid') {\n var liquidShape = get(view.geometries, [0, 'elements', 0, 'shape']);\n if (liquidShape) {\n // 获取到水波图边框大小\n var path = liquidShape.find(function (t) { return t.get('name') === 'wrap'; });\n var width = path.getCanvasBBox().width;\n containerW = width;\n }\n }\n else if (!containerW) {\n // 保底方案\n containerW = coordinate.getWidth();\n }\n setStatisticContainerStyle(container, __assign({ width: \"\".concat(containerW, \"px\"), transform: transform }, adapteStyle(style)));\n var filteredData = view.getData();\n if (option.customHtml) {\n return option.customHtml(container, view, datum, filteredData);\n }\n var text = option.content;\n if (option.formatter) {\n text = option.formatter(datum, filteredData);\n }\n // todo G2 层修复可以返回空字符串 & G2 层修复允许返回非字符串的内容,比如数值 number\n return text ? (isString(text) ? text : \"\".concat(text)) : '
';\n }, \n // @ts-ignore\n key: \"\".concat(idx === 0 ? 'top' : 'bottom', \"-statistic\") }, pick(option, ['offsetX', 'offsetY', 'rotate', 'style', 'formatter']) /** 透传配置 */));\n });\n};\n/**\n * 渲染 html-annotation for gauge (等不规则 plot), 默认 position 居中居底 [50%, 100%])\n * @param chart\n * @param options\n * @param meta 字段元信息\n * @param {optional} datum 当前的元数据\n */\nexport var renderGaugeStatistic = function (chart, options, datum) {\n var statistic = options.statistic;\n var titleOpt = statistic.title, contentOpt = statistic.content;\n [titleOpt, contentOpt].forEach(function (option) {\n if (!option) {\n return;\n }\n var style = isFunction(option.style) ? option.style(datum) : option.style;\n chart.annotation().html(__assign({ position: ['50%', '100%'], html: function (container, view) {\n var coordinate = view.getCoordinate();\n // 弧形的坐标\n var polarCoord = view.views[0].getCoordinate();\n var polarCenter = polarCoord.getCenter();\n var polarRadius = polarCoord.getRadius();\n var polarMaxY = Math.max(Math.sin(polarCoord.startAngle), Math.sin(polarCoord.endAngle)) * polarRadius;\n var offsetY = polarCenter.y + polarMaxY - coordinate.y.start - parseFloat(get(style, 'fontSize', 0));\n var containerWidth = coordinate.getRadius() * coordinate.innerRadius * 2;\n setStatisticContainerStyle(container, __assign({ width: \"\".concat(containerWidth, \"px\"), transform: \"translate(-50%, \".concat(offsetY, \"px)\") }, adapteStyle(style)));\n var filteredData = view.getData();\n if (option.customHtml) {\n return option.customHtml(container, view, datum, filteredData);\n }\n var text = option.content;\n if (option.formatter) {\n text = option.formatter(datum, filteredData);\n }\n // todo G2 层修复可以返回空字符串 & G2 层修复允许返回非字符串的内容,比如数值 number\n return text ? (isString(text) ? text : \"\".concat(text)) : '';\n } }, pick(option, ['offsetX', 'offsetY', 'rotate', 'style', 'formatter']) /** 透传配置 */));\n });\n};\n//# sourceMappingURL=statistic.js.map","import { reduce } from '@antv/util';\n/**\n * 简单的模板引擎,使用方式如下(空格自动忽略):\n * template('hello, {name}', { name: 'AntV' }); // hello, AntV\n * @param string\n * @param options\n */\nexport function template(source, data) {\n if (!data) {\n return source;\n }\n return reduce(\n // @ts-ignore\n data, function (r, v, k) { return r.replace(new RegExp(\"{\\\\s*\".concat(k, \"\\\\s*}\"), 'g'), v); }, source);\n}\n//# sourceMappingURL=template.js.map","import { each, isFunction } from '@antv/util';\n/**\n * 在 Chart 中查找特定 id 的子 View\n * @param chart\n * @param id\n */\nexport function findViewById(chart, id) {\n return chart.views.find(function (view) { return view.id === id; });\n}\n/**\n * 获取同 view 同一级的所有 views\n * @param view 当前 view\n * @returns 同一级的 views\n * @ignore\n */\nexport function getViews(view) {\n var parent = view.parent;\n return parent ? parent.views : [];\n}\n/**\n * 获取同 view 同一级的 views,不包括自身\n * @param view 当前 view\n * @returns 同一级的 views\n * @ignore\n */\nexport function getSiblingViews(view) {\n return getViews(view).filter(function (sub) { return sub !== view; });\n}\n/**\n * 所有的 Geometries 都使用同一动画(各个图形如有区别,自行覆盖)并添加处理动画回调\n * @param view View\n * @param animation 动画配置\n */\nexport function addViewAnimation(view, animation, geometries) {\n if (geometries === void 0) { geometries = view.geometries; }\n // 同时设置整个 view 动画选项\n if (typeof animation === 'boolean') {\n view.animate(animation);\n }\n else {\n view.animate(true);\n }\n // 所有的 Geometry 都使用同一动画(各个图形如有区别,自行覆盖)\n each(geometries, function (g) {\n var animationCfg;\n if (isFunction(animation)) {\n animationCfg = animation(g.type || g.shapeType, g) || true;\n }\n else {\n animationCfg = animation;\n }\n g.animate(animationCfg);\n });\n}\n//# sourceMappingURL=view.js.map","/**\n * 获取设备像素比\n */\nexport function getPixelRatio() {\n return typeof window === 'object' ? window === null || window === void 0 ? void 0 : window.devicePixelRatio : 2;\n}\n/**\n * 初始化 cavnas,设置宽高等\n */\nexport function initCanvas(width, height) {\n if (height === void 0) { height = width; }\n var canvas = document.createElement('canvas');\n var pixelRatio = getPixelRatio();\n // 画布尺寸\n canvas.width = width * pixelRatio;\n canvas.height = height * pixelRatio;\n // 显示尺寸\n canvas.style.width = \"\".concat(width, \"px\");\n canvas.style.height = \"\".concat(height, \"px\");\n var ctx = canvas.getContext('2d');\n ctx.scale(pixelRatio, pixelRatio);\n return canvas;\n}\n/**\n * 绘制背景\n *\n * @param context\n * @param cfg\n * @param width\n * @param height\n */\nexport function drawBackground(context, cfg, width, height) {\n if (height === void 0) { height = width; }\n var backgroundColor = cfg.backgroundColor, opacity = cfg.opacity;\n context.globalAlpha = opacity;\n context.fillStyle = backgroundColor;\n context.beginPath();\n context.fillRect(0, 0, width, height);\n context.closePath();\n}\n/**\n * 计算贴图单元大小\n *\n * @param size 元素大小\n * @param padding 圆点间隔\n * @param isStagger 是否交错\n * @reutrn 返回贴图单元大小\n */\nexport function getUnitPatternSize(size, padding, isStagger) {\n // 如果交错, unitSize 放大两倍\n var unitSize = size + padding;\n return isStagger ? unitSize * 2 : unitSize;\n}\n/**\n * 计算有交错情况的元素坐标\n *\n * @param unitSize 贴图单元大小\n * @param isStagger 是否交错\n * @reutrn 元素中心坐标 x,y 数组集合\n */\nexport function getSymbolsPosition(unitSize, isStagger) {\n // 如果交错, 交错绘制 dot\n var symbolsPos = isStagger\n ? [\n [unitSize * (1 / 4), unitSize * (1 / 4)],\n [unitSize * (3 / 4), unitSize * (3 / 4)],\n ]\n : [[unitSize * (1 / 2), unitSize * (1 / 2)]];\n return symbolsPos;\n}\n/**\n * 给整个 pattern贴图 做变换, 目前支持旋转\n *\n * @param pattern 整个贴图\n * @param dpr 设备像素比\n * @param rotation 旋转角度\n */\nexport function transformMatrix(dpr, rotation) {\n var radian = (rotation * Math.PI) / 180;\n var matrix = {\n a: Math.cos(radian) * (1 / dpr),\n b: Math.sin(radian) * (1 / dpr),\n c: -Math.sin(radian) * (1 / dpr),\n d: Math.cos(radian) * (1 / dpr),\n e: 0,\n f: 0,\n };\n return matrix;\n}\n//# sourceMappingURL=util.js.map","import { deepAssign } from '../../utils';\nimport { drawBackground, getPixelRatio, getSymbolsPosition, getUnitPatternSize, initCanvas, transformMatrix, } from './util';\n/**\n * dotPattern的默认配置\n */\nexport var defaultDotPatternCfg = {\n size: 6,\n padding: 2,\n backgroundColor: 'transparent',\n opacity: 1,\n rotation: 0,\n fill: '#fff',\n fillOpacity: 0.5,\n stroke: 'transparent',\n lineWidth: 0,\n isStagger: true,\n};\n/**\n * 绘制圆点\n *\n * @param context\n * @param cfg\n * @param x 圆点中心坐标x\n * @param y 圆点中心坐标y\n */\nexport function drawDot(context, cfg, x, y) {\n var size = cfg.size, fill = cfg.fill, lineWidth = cfg.lineWidth, stroke = cfg.stroke, fillOpacity = cfg.fillOpacity;\n context.beginPath();\n context.globalAlpha = fillOpacity;\n context.fillStyle = fill;\n context.strokeStyle = stroke;\n context.lineWidth = lineWidth;\n context.arc(x, y, size / 2, 0, 2 * Math.PI, false);\n context.fill();\n if (lineWidth) {\n context.stroke();\n }\n context.closePath();\n}\n/**\n * 创建 dot pattern,返回 HTMLCanvasElement\n *\n * @param cfg\n * @returns HTMLCanvasElement\n */\nexport function createDotPattern(cfg) {\n var dotCfg = deepAssign({}, defaultDotPatternCfg, cfg);\n var size = dotCfg.size, padding = dotCfg.padding, isStagger = dotCfg.isStagger, rotation = dotCfg.rotation;\n // 计算 画布大小,dots的位置\n var unitSize = getUnitPatternSize(size, padding, isStagger);\n var dots = getSymbolsPosition(unitSize, isStagger);\n // 初始化 patternCanvas\n var canvas = initCanvas(unitSize, unitSize);\n var ctx = canvas.getContext('2d');\n // 绘制 background,dots\n drawBackground(ctx, dotCfg, unitSize);\n for (var _i = 0, dots_1 = dots; _i < dots_1.length; _i++) {\n var _a = dots_1[_i], x = _a[0], y = _a[1];\n drawDot(ctx, dotCfg, x, y);\n }\n var pattern = ctx.createPattern(canvas, 'repeat');\n if (pattern) {\n var dpr = getPixelRatio();\n var matrix = transformMatrix(dpr, rotation);\n pattern.setTransform(matrix);\n }\n return pattern;\n}\n//# sourceMappingURL=dot.js.map","import { deepAssign } from '../../utils';\nimport { drawBackground, getPixelRatio, initCanvas, transformMatrix } from './util';\n/**\n * linePattern 的 默认配置\n */\nexport var defaultLinePatternCfg = {\n rotation: 45,\n spacing: 5,\n opacity: 1,\n backgroundColor: 'transparent',\n strokeOpacity: 0.5,\n stroke: '#fff',\n lineWidth: 2,\n};\n/**\n * 绘制line\n *\n * @param context canvasContext\n * @param cfg linePattern 的配置\n * @param d 绘制 path 所需的 d\n */\nexport function drawLine(context, cfg, d) {\n var stroke = cfg.stroke, lineWidth = cfg.lineWidth, strokeOpacity = cfg.strokeOpacity;\n var path = new Path2D(d);\n context.globalAlpha = strokeOpacity;\n context.lineCap = 'square';\n context.strokeStyle = lineWidth ? stroke : 'transparent';\n context.lineWidth = lineWidth;\n context.stroke(path);\n}\n/**\n * 创建 linePattern\n */\nexport function createLinePattern(cfg) {\n var lineCfg = deepAssign({}, defaultLinePatternCfg, cfg);\n var spacing = lineCfg.spacing, rotation = lineCfg.rotation, lineWidth = lineCfg.lineWidth;\n // 计算 pattern 画布的大小, path 所需的 d\n var width = spacing + lineWidth || 1;\n var height = spacing + lineWidth || 1;\n var d = \"\\n M 0 0 L \".concat(width, \" 0\\n M 0 \").concat(height, \" L \").concat(width, \" \").concat(height, \"\\n \");\n // 初始化 patternCanvas\n var canvas = initCanvas(width, height);\n var ctx = canvas.getContext('2d');\n // 绘制 background,line\n drawBackground(ctx, lineCfg, width, height);\n drawLine(ctx, lineCfg, d);\n var pattern = ctx.createPattern(canvas, 'repeat');\n if (pattern) {\n var dpr = getPixelRatio();\n var matrix = transformMatrix(dpr, rotation);\n pattern.setTransform(matrix);\n }\n // 返回 Pattern 对象\n return pattern;\n}\n//# sourceMappingURL=line.js.map","import { deepAssign } from '../../utils';\nimport { drawBackground, getPixelRatio, getSymbolsPosition, getUnitPatternSize, initCanvas, transformMatrix, } from './util';\n/**\n * squarePattern 的 默认配置\n */\nexport var defaultSquarePatternCfg = {\n size: 6,\n padding: 1,\n isStagger: true,\n backgroundColor: 'transparent',\n opacity: 1,\n rotation: 0,\n fill: '#fff',\n fillOpacity: 0.5,\n stroke: 'transparent',\n lineWidth: 0,\n};\n/**\n * 绘制square\n *\n * @param context canvasContext\n * @param cfg squarePattern 的配置\n * @param x和y square的中心位置\n */\nexport function drawSquare(context, cfg, x, y) {\n var stroke = cfg.stroke, size = cfg.size, fill = cfg.fill, lineWidth = cfg.lineWidth, fillOpacity = cfg.fillOpacity;\n context.globalAlpha = fillOpacity;\n context.strokeStyle = stroke;\n context.lineWidth = lineWidth;\n context.fillStyle = fill;\n // 因为正方形绘制从左上角开始,所以x,y做个偏移\n context.strokeRect(x - size / 2, y - size / 2, size, size);\n context.fillRect(x - size / 2, y - size / 2, size, size);\n}\n/**\n * 创建 squarePattern\n */\nexport function createSquarePattern(cfg) {\n var squareCfg = deepAssign({}, defaultSquarePatternCfg, cfg);\n var size = squareCfg.size, padding = squareCfg.padding, isStagger = squareCfg.isStagger, rotation = squareCfg.rotation;\n // 计算 画布大小,squares的位置\n var unitSize = getUnitPatternSize(size, padding, isStagger);\n var squares = getSymbolsPosition(unitSize, isStagger); // 计算方法与 dots 一样\n // 初始化 patternCanvas\n var canvas = initCanvas(unitSize, unitSize);\n var ctx = canvas.getContext('2d');\n // 绘制 background,squares\n drawBackground(ctx, squareCfg, unitSize);\n for (var _i = 0, squares_1 = squares; _i < squares_1.length; _i++) {\n var _a = squares_1[_i], x = _a[0], y = _a[1];\n drawSquare(ctx, squareCfg, x, y);\n }\n var pattern = ctx.createPattern(canvas, 'repeat');\n if (pattern) {\n var dpr = getPixelRatio();\n var matrix = transformMatrix(dpr, rotation);\n pattern.setTransform(matrix);\n }\n return pattern;\n}\n//# sourceMappingURL=square.js.map","import { createDotPattern } from './dot';\nimport { createLinePattern } from './line';\nimport { createSquarePattern } from './square';\n/**\n * 获取内置的 CanvasPattern 方法\n * @param options\n * @returns\n */\nexport function getCanvasPattern(options) {\n var type = options.type, cfg = options.cfg;\n var pattern;\n switch (type) {\n case 'dot':\n pattern = createDotPattern(cfg);\n break;\n case 'line':\n pattern = createLinePattern(cfg);\n break;\n case 'square':\n pattern = createSquarePattern(cfg);\n break;\n default:\n break;\n }\n return pattern;\n}\n//# sourceMappingURL=index.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { Util } from '@antv/g2';\nimport { get } from '@antv/util';\nimport { deepAssign } from '../utils';\nimport { getCanvasPattern } from '../utils/pattern';\n/**\n * Pattern 通道,处理图案填充\n * 🚀 目前支持图表类型:饼图、柱状图、条形图、玉珏图等(不支持在多 view 图表中,后续按需扩展)\n *\n * @param key key of style property\n * @returns\n */\nexport function pattern(key) {\n var _this = this;\n return function (params) {\n var _a;\n var options = params.options, chart = params.chart;\n var patternOption = options.pattern;\n // 没有 pattern 配置,则直接返回\n if (!patternOption) {\n return params;\n }\n /** ~~~~~~~ 进行贴图图案处理 ~~~~~~~ */\n var style = function (datum) {\n var _a, _b, _c;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var defaultColor = chart.getTheme().defaultColor;\n var color = defaultColor;\n var colorAttribute = (_b = (_a = chart.geometries) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.getAttribute('color');\n if (colorAttribute) {\n var colorField = colorAttribute.getFields()[0];\n var seriesValue = get(datum, colorField);\n color = Util.getMappingValue(colorAttribute, seriesValue, ((_c = colorAttribute.values) === null || _c === void 0 ? void 0 : _c[0]) || defaultColor);\n }\n var pattern = patternOption;\n // 1. 如果 patternOption 是一个回调,则获取回调结果。`(datum: Datum, color: string) => CanvasPattern`\n if (typeof patternOption === 'function') {\n pattern = patternOption.call(_this, datum, color);\n }\n // 2. 如果 pattern 不是 CanvasPattern,则进一步处理,否则直接赋予给 fill\n if (pattern instanceof CanvasPattern === false) {\n // 通过 createPattern(PatternStyle) 转换为 CanvasPattern\n pattern = getCanvasPattern(deepAssign({}, { cfg: { backgroundColor: color } }, pattern));\n }\n var styleOption = options[key];\n return __assign(__assign({}, (typeof styleOption === 'function' ? styleOption.call.apply(styleOption, __spreadArray([_this, datum], args, false)) : styleOption || {})), { fill: pattern || color });\n };\n return deepAssign({}, params, { options: (_a = {}, _a[key] = style, _a) });\n };\n}\n//# sourceMappingURL=pattern.js.map","import { __spreadArray } from \"tslib\";\nimport { each, isNil, isObject } from '@antv/util';\nimport { AXIS_META_CONFIG_KEYS } from '../constant';\nimport { addViewAnimation, deepAssign, pick } from '../utils';\n/**\n * 通用 legend 配置, 适用于带 colorField 或 seriesField 的图表\n * @param params\n */\nexport function legend(params) {\n var chart = params.chart, options = params.options;\n var legend = options.legend, colorField = options.colorField, seriesField = options.seriesField;\n if (legend === false) {\n chart.legend(false);\n }\n else if (colorField || seriesField) {\n chart.legend(colorField || seriesField, legend);\n }\n return params;\n}\n/**\n * 通用 tooltip 配置\n * @param params\n */\nexport function tooltip(params) {\n var chart = params.chart, options = params.options;\n var tooltip = options.tooltip;\n if (tooltip !== undefined) {\n chart.tooltip(tooltip);\n }\n return params;\n}\n/**\n * Interaction 配置\n * @param params\n */\nexport function interaction(params) {\n var chart = params.chart, options = params.options;\n var interactions = options.interactions;\n each(interactions, function (i) {\n if (i.enable === false) {\n chart.removeInteraction(i.type);\n }\n else {\n chart.interaction(i.type, i.cfg || {});\n }\n });\n return params;\n}\n/**\n * 动画\n * @param params\n */\nexport function animation(params) {\n var chart = params.chart, options = params.options;\n var animation = options.animation;\n // 所有的 Geometry 都使用同一动画(各个图形如有区别,自行覆盖)\n addViewAnimation(chart, animation);\n return params;\n}\n/**\n * 设置全局主题配置\n * @param params\n */\nexport function theme(params) {\n var chart = params.chart, options = params.options;\n var theme = options.theme;\n // 存在主题才设置主题\n if (theme) {\n chart.theme(theme);\n }\n return params;\n}\n/**\n * 状态 state 配置\n * @param params\n */\nexport function state(params) {\n var chart = params.chart, options = params.options;\n var state = options.state;\n if (state) {\n each(chart.geometries, function (geometry) {\n geometry.state(state);\n });\n }\n return params;\n}\n/**\n * 处理缩略轴的 adaptor\n * @param params\n */\nexport function slider(params) {\n var chart = params.chart, options = params.options;\n var slider = options.slider;\n chart.option('slider', slider);\n return params;\n}\n/**\n * 处理缩略轴的 adaptor\n * @param params\n */\nexport function scrollbar(params) {\n var chart = params.chart, options = params.options;\n var scrollbar = options.scrollbar;\n chart.option('scrollbar', scrollbar);\n return params;\n}\n/**\n * scale 的 adaptor\n * @param axes\n */\nexport function scale(axes, meta) {\n return function (params) {\n var chart = params.chart, options = params.options;\n // 1. 轴配置中的 scale 信息\n var scales = {};\n each(axes, function (axis, field) {\n scales[field] = pick(axis, AXIS_META_CONFIG_KEYS);\n });\n // 2. meta 直接是 scale 的信息\n scales = deepAssign({}, meta, options.meta, scales);\n chart.scale(scales);\n return params;\n };\n}\n/**\n * annotation 配置\n * @param params\n */\nexport function annotation(annotationOptions) {\n return function (params) {\n var chart = params.chart, options = params.options;\n var annotationController = chart.getController('annotation');\n /** 自定义 annotation */\n each(__spreadArray(__spreadArray([], (options.annotations || []), true), (annotationOptions || []), true), function (annotationOption) {\n // @ts-ignore\n annotationController.annotation(annotationOption);\n });\n return params;\n };\n}\n/**\n * 自动设置 limitInPlot\n * @param params\n */\nexport function limitInPlot(params) {\n var chart = params.chart, options = params.options;\n var yAxis = options.yAxis, limitInPlot = options.limitInPlot;\n var value = limitInPlot;\n // 用户没有设置 limitInPlot,则自动根据 yAxis 是否有 min/max 来设置 limitInPlot\n if (isObject(yAxis) && isNil(limitInPlot)) {\n if (Object.values(pick(yAxis, ['min', 'max', 'minLimit', 'maxLimit'])).some(function (value) { return !isNil(value); })) {\n value = true;\n }\n else {\n value = false;\n }\n }\n chart.limitInPlot = value;\n return params;\n}\n/**\n * 坐标系转换\n */\nexport function transformations(coordinateType) {\n if (coordinateType === void 0) { coordinateType = 'rect'; }\n return function (params) {\n var chart = params.chart, options = params.options;\n var coordinate = options.coordinate;\n var actions = Array.from(coordinate || [])\n .map(function (cfg) {\n if (cfg.type === 'reflectX')\n return ['reflect', 'x'];\n if (cfg.type === 'reflectY')\n return ['reflect', 'y'];\n if (cfg.type === 'transpose')\n return ['transpose'];\n return null;\n })\n .filter(function (d) { return !!d; });\n if (actions.length !== 0) {\n chart.coordinate({ type: coordinateType, actions: actions });\n }\n return params;\n };\n}\nexport { pattern } from './pattern';\n//# sourceMappingURL=common.js.map","import { each } from '@antv/util';\n/**\n * @file 全局的一些变量定义:含国际化、主题...\n */\nexport var GLOBAL = {\n /** 全局语言 */\n locale: 'en-US',\n};\n/**\n * 全局变量设置\n * @param key\n * @param value\n */\nexport function setGlobal(datum) {\n each(datum, function (v, k) { return (GLOBAL[k] = v); });\n}\n//# sourceMappingURL=global.js.map","import { get } from '@antv/util';\nimport { template } from '../utils';\nimport { GLOBAL } from './global';\nvar LocaleMap = {};\n/**\n * register a locale\n * @param locale\n * @param localeObj\n */\nexport function registerLocale(locale, localeObj) {\n LocaleMap[locale] = localeObj;\n}\n/**\n * get locale of specific language\n * @param lang\n * @returns\n */\nexport function getLocale(locale) {\n return {\n get: function (key, obj) {\n return template(get(LocaleMap[locale], key) || get(LocaleMap[GLOBAL.locale], key) || get(LocaleMap['en-US'], key) || key, obj);\n },\n };\n}\n//# sourceMappingURL=locale.js.map","export var EN_US_LOCALE = {\n locale: 'en-US',\n // General\n general: {\n increase: 'Increase',\n decrease: 'Decrease',\n root: 'Root',\n },\n // Plot Components\n /** statistic text component */\n statistic: {\n total: 'Total',\n },\n /** conversionTag component */\n conversionTag: {\n label: 'Rate',\n },\n legend: {},\n tooltip: {},\n slider: {},\n scrollbar: {},\n // Plots\n waterfall: {\n total: 'Total',\n },\n};\n//# sourceMappingURL=en_US.js.map","export var ZH_CN_LOCALE = {\n locale: 'zh-CN',\n // 通用\n general: {\n increase: '增加',\n decrease: '减少',\n root: '初始',\n },\n // 按照图表组件\n /** 中心文本 */\n statistic: {\n total: '总计',\n },\n /** 转化率组件 */\n conversionTag: {\n label: '转化率',\n },\n legend: {},\n tooltip: {},\n slider: {},\n scrollbar: {},\n // 按照图表类型\n waterfall: {\n total: '总计',\n },\n};\n//# sourceMappingURL=zh_CN.js.map","import { get } from '@antv/util';\n/**\n * 获得 tooltip 的映射信息\n * @param tooltip\n * @param defaultFields\n */\nexport function getTooltipMapping(tooltip, defaultFields) {\n if (tooltip === false) {\n return {\n fields: false, // 关闭 tooltip\n };\n }\n var fields = get(tooltip, 'fields');\n var formatter = get(tooltip, 'formatter');\n if (formatter && !fields) {\n fields = defaultFields;\n }\n return {\n fields: fields,\n formatter: formatter,\n };\n}\n//# sourceMappingURL=tooltip.js.map","import { __assign, __rest, __spreadArray } from \"tslib\";\nimport { isEmpty, isFunction, isNumber, isObject, isString, uniq } from '@antv/util';\nimport { transformLabel } from '../../utils';\n/**\n * 获得映射的字段列表\n * @param options\n * @param field\n */\nexport function getMappingField(o, field) {\n var type = o.type, xField = o.xField, yField = o.yField, colorField = o.colorField, shapeField = o.shapeField, sizeField = o.sizeField, styleField = o.styleField;\n var rawFields = o.rawFields;\n var fields = [];\n rawFields = (isFunction(rawFields) ? rawFields(type, field) : rawFields) || [];\n // 因为 color 会影响到数据分组,以及最后的图形映射。所以导致 bar 图中的 widthRatio 设置不生效\n // 所以对于 color 字段,仅仅保留 colorField 好了! + rawFields\n // shape, size 同理\n if (field === 'color') {\n fields = __spreadArray([colorField || xField], rawFields, true);\n }\n else if (field === 'shape') {\n fields = __spreadArray([shapeField || xField], rawFields, true);\n }\n else if (field === 'size') {\n fields = __spreadArray([sizeField || xField], rawFields, true);\n }\n else {\n fields = __spreadArray([xField, yField, colorField, shapeField, sizeField, styleField], rawFields, true);\n // 一定能找到的!\n var idx = ['x', 'y', 'color', 'shape', 'size', 'style'].indexOf(field);\n var f = fields[idx];\n // 删除当前字段\n fields.splice(idx, 1);\n // 插入到第一个\n fields.unshift(f);\n }\n var mappingFields = uniq(fields.filter(function (f) { return !!f; }));\n /**\n * 修复 line geometry 无拆分时 color 回调错误\n * eg:\n * geometry.color(xField, ()=> '#f24')\n */\n var tileMappingField = type === 'line' && [xField, yField].includes(mappingFields.join('*')) ? '' : mappingFields.join('*');\n return {\n mappingFields: mappingFields,\n tileMappingField: tileMappingField,\n };\n}\n/**\n * 获得映射函数\n * @param mappingFields\n * @param func\n */\nexport function getMappingFunction(mappingFields, func) {\n if (!func)\n return undefined;\n // 返回函数\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var params = {};\n mappingFields.forEach(function (f, idx) {\n params[f] = args[idx];\n });\n // 删除 undefined\n delete params['undefined'];\n return func(params);\n };\n}\n/**\n * 通用 geometry 的配置处理的 adaptor\n * @param params\n */\nexport function geometry(params) {\n var chart = params.chart, options = params.options;\n var type = options.type, args = options.args, mapping = options.mapping, xField = options.xField, yField = options.yField, colorField = options.colorField, shapeField = options.shapeField, sizeField = options.sizeField, tooltipFields = options.tooltipFields, label = options.label, state = options.state, customInfo = options.customInfo;\n // 如果没有 mapping 信息,那么直接返回\n if (!mapping) {\n return params;\n }\n var color = mapping.color, shape = mapping.shape, size = mapping.size, style = mapping.style, tooltip = mapping.tooltip;\n // 创建 geometry\n var geometry = chart[type](args).position(\"\".concat(xField, \"*\").concat(yField));\n /**\n * color 的几种情况\n * g.color('red');\n * g.color('color', ['red', 'blue']);\n * g.color('x', (x, y) => 'red');\n * g.color('color', (color, x, y) => 'red');\n */\n if (isString(color)) {\n colorField ? geometry.color(colorField, color) : geometry.color(color);\n }\n else if (isFunction(color)) {\n var _a = getMappingField(options, 'color'), mappingFields = _a.mappingFields, tileMappingField = _a.tileMappingField;\n geometry.color(tileMappingField, getMappingFunction(mappingFields, color));\n }\n else {\n colorField && geometry.color(colorField, color);\n }\n /**\n * shape 的几种情况\n * g.shape('rect');\n * g.shape('shape', ['rect', 'circle']);\n * g.shape('x*y', (x, y) => 'rect');\n * g.shape('shape*x*y', (shape, x, y) => 'rect');\n */\n if (isString(shape)) {\n shapeField ? geometry.shape(shapeField, [shape]) : geometry.shape(shape); // [shape] 需要在 G2 做掉\n }\n else if (isFunction(shape)) {\n var _b = getMappingField(options, 'shape'), mappingFields = _b.mappingFields, tileMappingField = _b.tileMappingField;\n geometry.shape(tileMappingField, getMappingFunction(mappingFields, shape));\n }\n else {\n shapeField && geometry.shape(shapeField, shape);\n }\n /**\n * size 的几种情况\n * g.size(10);\n * g.size('size', [10, 20]);\n * g.size('x*y', (x, y) => 10);\n * g.color('size*x*y', (size, x, y) => 1-);\n */\n if (isNumber(size)) {\n sizeField ? geometry.size(sizeField, size) : geometry.size(size);\n }\n else if (isFunction(size)) {\n var _c = getMappingField(options, 'size'), mappingFields = _c.mappingFields, tileMappingField = _c.tileMappingField;\n geometry.size(tileMappingField, getMappingFunction(mappingFields, size));\n }\n else {\n sizeField && geometry.size(sizeField, size);\n }\n /**\n * style 的几种情况\n * g.style({ fill: 'red' });\n * g.style('x*y*color', (x, y, color) => ({ fill: 'red' }));\n */\n if (isFunction(style)) {\n var _d = getMappingField(options, 'style'), mappingFields = _d.mappingFields, tileMappingField = _d.tileMappingField;\n geometry.style(tileMappingField, getMappingFunction(mappingFields, style));\n }\n else if (isObject(style)) {\n geometry.style(style);\n }\n /**\n * tooltip 的 API\n * g.tooltip('x*y*color', (x, y, color) => ({ name, value }));\n * g.tooltip(false);\n */\n if (tooltipFields === false) {\n geometry.tooltip(false);\n }\n else if (!isEmpty(tooltipFields)) {\n geometry.tooltip(tooltipFields.join('*'), getMappingFunction(tooltipFields, tooltip));\n }\n /**\n * label 的映射\n */\n if (label === false) {\n geometry.label(false);\n }\n else if (label) {\n var callback = label.callback, fields = label.fields, cfg = __rest(label, [\"callback\", \"fields\"]);\n geometry.label({\n fields: fields || [yField],\n callback: callback,\n cfg: transformLabel(cfg),\n });\n }\n /**\n * state 状态样式\n */\n if (state) {\n geometry.state(state);\n }\n /**\n * 自定义信息\n */\n if (customInfo) {\n geometry.customInfo(customInfo);\n }\n // 防止因为 x y 字段做了通道映射,导致生成图例\n [xField, yField]\n .filter(function (f) { return f !== colorField; })\n .forEach(function (f) {\n chart.legend(f, false);\n });\n return __assign(__assign({}, params), { \n // geometry adaptor 额外需要做的事情,就是将创建好的 geometry 返回到下一层 adaptor,防止通过 type 查询的时候容易误判\n ext: { geometry: geometry } });\n}\n//# sourceMappingURL=base.js.map","import { deepMix } from '@antv/util';\nimport { deepAssign } from '../../utils';\nimport { getTooltipMapping } from '../../utils/tooltip';\nimport { geometry } from './base';\n/**\n * area geometry 的配置处理\n * @param params\n */\nexport function area(params) {\n var options = params.options;\n var area = options.area, xField = options.xField, yField = options.yField, seriesField = options.seriesField, smooth = options.smooth, tooltip = options.tooltip, useDeferredLabel = options.useDeferredLabel;\n var _a = getTooltipMapping(tooltip, [xField, yField, seriesField]), fields = _a.fields, formatter = _a.formatter;\n // 如果存在才处理\n return area\n ? geometry(deepAssign({}, params, {\n options: {\n type: 'area',\n colorField: seriesField,\n tooltipFields: fields,\n mapping: deepMix({\n shape: smooth ? 'smooth' : 'area',\n tooltip: formatter,\n }, area),\n args: { useDeferredLabel: useDeferredLabel },\n },\n }))\n : params;\n}\n//# sourceMappingURL=area.js.map","import { __assign } from \"tslib\";\nimport { deepAssign } from '../../utils';\nimport { getTooltipMapping } from '../../utils/tooltip';\nimport { geometry } from './base';\n/**\n * edge 的配置处理\n * @param params\n */\nexport function edge(params) {\n var options = params.options;\n var edge = options.edge, xField = options.xField, yField = options.yField, seriesField = options.seriesField, tooltip = options.tooltip, useDeferredLabel = options.useDeferredLabel;\n var _a = getTooltipMapping(tooltip, [xField, yField, seriesField]), fields = _a.fields, formatter = _a.formatter;\n return edge\n ? geometry(deepAssign({}, params, {\n options: {\n type: 'edge',\n colorField: seriesField,\n tooltipFields: fields,\n mapping: __assign({ tooltip: formatter }, edge),\n args: { useDeferredLabel: useDeferredLabel },\n },\n }))\n : params;\n}\n//# sourceMappingURL=edge.js.map","import { __assign } from \"tslib\";\nimport { getTheme } from '@antv/g2';\nimport { isNil, isObject } from '@antv/util';\nimport { deepAssign } from '../../utils';\nimport { getTooltipMapping } from '../../utils/tooltip';\nimport { geometry } from './base';\n/**\n * 柱形图其他的 adaptor\n * @param params\n */\nfunction otherAdaptor(params) {\n var chart = params.chart, options = params.options, ext = params.ext;\n var seriesField = options.seriesField, isGroup = options.isGroup, isStack = options.isStack, marginRatio = options.marginRatio, widthRatio = options.widthRatio, groupField = options.groupField, theme = options.theme;\n /**\n * adjust\n */\n var adjust = [];\n if (seriesField) {\n // group\n if (isGroup) {\n adjust.push({\n type: 'dodge',\n dodgeBy: groupField || seriesField,\n marginRatio: marginRatio,\n });\n }\n // stack\n if (isStack) {\n adjust.push({\n type: 'stack',\n marginRatio: marginRatio,\n });\n }\n }\n if (adjust.length && (ext === null || ext === void 0 ? void 0 : ext.geometry)) {\n var g = ext === null || ext === void 0 ? void 0 : ext.geometry;\n g.adjust(adjust);\n }\n // widthRatio\n if (!isNil(widthRatio)) {\n chart.theme(deepAssign({}, isObject(theme) ? theme : getTheme(theme), {\n // columWidthRatio 配置覆盖 theme 中的配置\n columnWidthRatio: widthRatio,\n }));\n }\n return params;\n}\nexport function interval(params) {\n var options = params.options;\n var xField = options.xField, yField = options.yField, interval = options.interval, seriesField = options.seriesField, tooltip = options.tooltip, minColumnWidth = options.minColumnWidth, maxColumnWidth = options.maxColumnWidth, columnBackground = options.columnBackground, dodgePadding = options.dodgePadding, intervalPadding = options.intervalPadding, useDeferredLabel = options.useDeferredLabel;\n var _a = getTooltipMapping(tooltip, [xField, yField, seriesField]), fields = _a.fields, formatter = _a.formatter;\n // 保障一定要存在 interval 映射\n var ext = (interval\n ? geometry(deepAssign({}, params, {\n options: {\n type: 'interval',\n colorField: seriesField,\n tooltipFields: fields,\n mapping: __assign({ tooltip: formatter }, interval),\n args: {\n dodgePadding: dodgePadding,\n intervalPadding: intervalPadding,\n minColumnWidth: minColumnWidth,\n maxColumnWidth: maxColumnWidth,\n background: columnBackground,\n useDeferredLabel: useDeferredLabel,\n },\n },\n }))\n : params).ext;\n return otherAdaptor(__assign(__assign({}, params), { ext: ext }));\n}\n//# sourceMappingURL=interval.js.map","import { deepMix } from '@antv/util';\nimport { deepAssign } from '../../utils';\nimport { getTooltipMapping } from '../../utils/tooltip';\nimport { geometry } from './base';\n/**\n * line 辅助点的配置处理\n * @param params\n */\nexport function line(params) {\n var options = params.options;\n var line = options.line, stepType = options.stepType, xField = options.xField, yField = options.yField, seriesField = options.seriesField, smooth = options.smooth, connectNulls = options.connectNulls, tooltip = options.tooltip, useDeferredLabel = options.useDeferredLabel;\n var _a = getTooltipMapping(tooltip, [xField, yField, seriesField]), fields = _a.fields, formatter = _a.formatter;\n // 如果存在才处理\n return line\n ? geometry(deepAssign({}, params, {\n options: {\n type: 'line',\n colorField: seriesField,\n tooltipFields: fields,\n mapping: deepMix({\n shape: stepType || (smooth ? 'smooth' : 'line'),\n tooltip: formatter,\n }, line),\n args: { connectNulls: connectNulls, useDeferredLabel: useDeferredLabel },\n },\n }))\n : params;\n}\n//# sourceMappingURL=line.js.map","import { __assign } from \"tslib\";\nimport { deepAssign } from '../../utils';\nimport { getTooltipMapping } from '../../utils/tooltip';\nimport { geometry } from './base';\n/**\n * point 辅助点的配置处理\n * @param params\n */\nexport function point(params) {\n var options = params.options;\n var point = options.point, xField = options.xField, yField = options.yField, seriesField = options.seriesField, sizeField = options.sizeField, shapeField = options.shapeField, tooltip = options.tooltip, useDeferredLabel = options.useDeferredLabel;\n var _a = getTooltipMapping(tooltip, [xField, yField, seriesField, sizeField, shapeField]), fields = _a.fields, formatter = _a.formatter;\n return point\n ? geometry(deepAssign({}, params, {\n options: {\n type: 'point',\n colorField: seriesField,\n shapeField: shapeField,\n tooltipFields: fields,\n mapping: __assign({ tooltip: formatter }, point),\n args: { useDeferredLabel: useDeferredLabel },\n },\n }))\n : params;\n}\n//# sourceMappingURL=point.js.map","import { __assign } from \"tslib\";\nimport { deepAssign } from '../../utils';\nimport { getTooltipMapping } from '../../utils/tooltip';\nimport { geometry } from './base';\n/**\n * polygon 的配置处理\n * @param params\n */\nexport function polygon(params) {\n var options = params.options;\n var polygon = options.polygon, xField = options.xField, yField = options.yField, seriesField = options.seriesField, tooltip = options.tooltip, useDeferredLabel = options.useDeferredLabel;\n var _a = getTooltipMapping(tooltip, [xField, yField, seriesField]), fields = _a.fields, formatter = _a.formatter;\n return polygon\n ? geometry(deepAssign({}, params, {\n options: {\n type: 'polygon',\n colorField: seriesField,\n tooltipFields: fields,\n mapping: __assign({ tooltip: formatter }, polygon),\n args: { useDeferredLabel: useDeferredLabel },\n },\n }))\n : params;\n}\n//# sourceMappingURL=polygon.js.map","import { __assign } from \"tslib\";\nimport { deepAssign } from '../../utils';\nimport { getTooltipMapping } from '../../utils/tooltip';\nimport { geometry } from './base';\n/**\n * schema 的配置处理\n * @param params\n */\nexport function schema(params) {\n var options = params.options;\n var schema = options.schema, xField = options.xField, yField = options.yField, seriesField = options.seriesField, tooltip = options.tooltip, useDeferredLabel = options.useDeferredLabel;\n var _a = getTooltipMapping(tooltip, [xField, yField, seriesField]), fields = _a.fields, formatter = _a.formatter;\n return schema\n ? geometry(deepAssign({}, params, {\n options: {\n type: 'schema',\n colorField: seriesField,\n tooltipFields: fields,\n mapping: __assign({ tooltip: formatter }, schema),\n args: { useDeferredLabel: useDeferredLabel },\n },\n }))\n : params;\n}\n//# sourceMappingURL=schema.js.map","import { __assign } from \"tslib\";\nimport { deepAssign } from '../../utils';\nimport { getTooltipMapping } from '../../utils/tooltip';\nimport { geometry } from './base';\n/**\n * violin 辅助点的配置处理\n * @param params\n */\nexport function violin(params) {\n var options = params.options;\n var violin = options.violin, xField = options.xField, yField = options.yField, seriesField = options.seriesField, sizeField = options.sizeField, tooltip = options.tooltip;\n var _a = getTooltipMapping(tooltip, [xField, yField, seriesField, sizeField]), fields = _a.fields, formatter = _a.formatter;\n return violin\n ? geometry(deepAssign({}, params, {\n options: {\n type: 'violin',\n colorField: seriesField,\n tooltipFields: fields,\n mapping: __assign({ tooltip: formatter }, violin),\n },\n }))\n : params;\n}\n//# sourceMappingURL=violin.js.map","import { __assign, __extends, __spreadArray } from \"tslib\";\nimport EE from '@antv/event-emitter';\nimport { Chart } from '@antv/g2';\nimport { each } from '@antv/util';\nimport { bind } from 'size-sensor';\nimport { deepAssign, getAllElementsRecursively, getContainerSize, pick } from '../utils';\nvar SOURCE_ATTRIBUTE_NAME = 'data-chart-source-type';\n/** plot 图表容器的配置 */\nexport var PLOT_CONTAINER_OPTIONS = [\n 'padding',\n 'appendPadding',\n 'renderer',\n 'pixelRatio',\n 'syncViewPadding',\n 'supportCSSTransform',\n 'limitInPlot',\n];\n/**\n * 所有 plot 的基类\n */\nvar Plot = /** @class */ (function (_super) {\n __extends(Plot, _super);\n function Plot(container, options) {\n var _this = _super.call(this) || this;\n _this.container = typeof container === 'string' ? document.getElementById(container) : container;\n _this.options = deepAssign({}, _this.getDefaultOptions(), options);\n _this.createG2();\n _this.bindEvents();\n return _this;\n }\n /**\n * 获取默认的 options 配置项\n * 每个组件都可以复写\n */\n Plot.getDefaultOptions = function () {\n return {\n renderer: 'canvas',\n xAxis: {\n nice: true,\n label: {\n autoRotate: false,\n autoHide: { type: 'equidistance', cfg: { minGap: 6 } },\n },\n },\n yAxis: {\n nice: true,\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n animation: true,\n };\n };\n /**\n * 创建 G2 实例\n */\n Plot.prototype.createG2 = function () {\n var _a = this.options, width = _a.width, height = _a.height, defaultInteractions = _a.defaultInteractions;\n this.chart = new Chart(__assign(__assign(__assign(__assign({ container: this.container, autoFit: false }, this.getChartSize(width, height)), { localRefresh: false }), pick(this.options, PLOT_CONTAINER_OPTIONS)), { defaultInteractions: defaultInteractions }));\n // 给容器增加标识,知道图表的来源区别于 G2\n this.container.setAttribute(SOURCE_ATTRIBUTE_NAME, 'G2Plot');\n };\n /**\n * 计算默认的 chart 大小。逻辑简化:如果存在 width 或 height,则直接使用,否则使用容器大小\n * @param width\n * @param height\n */\n Plot.prototype.getChartSize = function (width, height) {\n var chartSize = getContainerSize(this.container);\n return { width: width || chartSize.width || 400, height: height || chartSize.height || 400 };\n };\n /**\n * 绑定代理所有 G2 的事件\n */\n Plot.prototype.bindEvents = function () {\n var _this = this;\n if (this.chart) {\n this.chart.on('*', function (e) {\n if (e === null || e === void 0 ? void 0 : e.type) {\n _this.emit(e.type, e);\n }\n });\n }\n };\n /**\n * 获取默认的 options 配置项\n * 每个组件都可以复写\n */\n Plot.prototype.getDefaultOptions = function () {\n return Plot.getDefaultOptions();\n };\n /**\n * 绘制\n */\n Plot.prototype.render = function () {\n // 暴力处理,先清空再渲染,需要 G2 层自行做好更新渲染\n this.chart.clear();\n // 因为子 view 会继承父 view 的 options 配置(包括 legend,所以会导致 legend 重复创建)\n // 所以这里给 chart 实例的 options 配置清空\n // 最好的解法是在 G2 view.clear 方法的时候,重置 options 配置。或者提供方法去 resetOptions\n // #1684 理论上在多 view 图形上,只要存在 custom legend,都存在类似问题(子弹图、双轴图)\n // @ts-ignore\n this.chart.options = {\n data: [],\n animate: true,\n };\n this.chart.views = []; // 删除已有的 views\n // 执行 adaptor\n this.execAdaptor();\n // 渲染\n this.chart.render();\n // 绑定\n this.bindSizeSensor();\n };\n /**\n * 更新: 更新配置且重新渲染\n * @param options\n */\n Plot.prototype.update = function (options) {\n this.updateOption(options);\n this.render();\n };\n /**\n * 更新配置\n * @param options\n */\n Plot.prototype.updateOption = function (options) {\n this.options = deepAssign({}, this.options, options);\n };\n /**\n * 设置状态\n * @param type 状态类型,支持 'active' | 'inactive' | 'selected' 三种\n * @param conditions 条件,支持数组\n * @param status 是否激活,默认 true\n */\n Plot.prototype.setState = function (type, condition, status) {\n if (status === void 0) { status = true; }\n var elements = getAllElementsRecursively(this.chart);\n each(elements, function (ele) {\n if (condition(ele.getData())) {\n ele.setState(type, status);\n }\n });\n };\n /**\n * 获取状态\n */\n Plot.prototype.getStates = function () {\n var elements = getAllElementsRecursively(this.chart);\n var stateObjects = [];\n each(elements, function (element) {\n var data = element.getData();\n var states = element.getStates();\n each(states, function (state) {\n stateObjects.push({ data: data, state: state, geometry: element.geometry, element: element });\n });\n });\n return stateObjects;\n };\n /**\n * 更新数据\n * @override\n * @param options\n */\n Plot.prototype.changeData = function (data) {\n // @ts-ignore\n this.update({ data: data });\n // TODO: 临时方案,最好使用下面的方式去更新数据\n // this.chart.changeData(data);\n };\n /**\n * 修改画布大小\n * @param width\n * @param height\n */\n Plot.prototype.changeSize = function (width, height) {\n this.chart.changeSize(width, height);\n };\n /**\n * 增加图表标注。通过 id 标识,如果匹配到,就做更新\n */\n Plot.prototype.addAnnotations = function (annotations, view) {\n view = view ? view : this.chart;\n var incoming = __spreadArray([], annotations, true);\n var controller = view.getController('annotation');\n var current = controller.getComponents().map(function (co) { return co.extra; });\n controller.clear(true);\n var _loop_1 = function (i) {\n var annotation = current[i];\n var findIndex = incoming.findIndex(function (item) { return item.id && item.id === annotation.id; });\n if (findIndex !== -1) {\n annotation = deepAssign({}, annotation, incoming[findIndex]);\n incoming.splice(findIndex, 1);\n }\n controller.annotation(annotation);\n };\n for (var i = 0; i < current.length; i++) {\n _loop_1(i);\n }\n incoming.forEach(function (annotation) { return controller.annotation(annotation); });\n view.render(true);\n };\n /**\n * 删除图表标注。通过 id 标识,如果匹配到,就做删除\n */\n Plot.prototype.removeAnnotations = function (annotations) {\n var controller = this.chart.getController('annotation');\n var current = controller.getComponents().map(function (co) { return co.extra; });\n controller.clear(true);\n var _loop_2 = function (i) {\n var annotation = current[i];\n if (!annotations.find(function (item) { return item.id && item.id === annotation.id; })) {\n controller.annotation(annotation);\n }\n };\n for (var i = 0; i < current.length; i++) {\n _loop_2(i);\n }\n this.chart.render(true);\n };\n /**\n * 销毁\n */\n Plot.prototype.destroy = function () {\n // 取消 size-sensor 的绑定\n this.unbindSizeSensor();\n // G2 的销毁\n this.chart.destroy();\n // 清空已经绑定的事件\n this.off();\n this.container.removeAttribute(SOURCE_ATTRIBUTE_NAME);\n };\n /**\n * 执行 adaptor 操作\n */\n Plot.prototype.execAdaptor = function () {\n var adaptor = this.getSchemaAdaptor();\n var _a = this.options, padding = _a.padding, appendPadding = _a.appendPadding;\n // 更新 padding\n this.chart.padding = padding;\n // 更新 appendPadding\n this.chart.appendPadding = appendPadding;\n // 转化成 G2 API\n adaptor({\n chart: this.chart,\n options: this.options,\n });\n };\n /**\n * 当图表容器大小变化的时候,执行的函数\n */\n Plot.prototype.triggerResize = function () {\n this.chart.forceFit();\n };\n /**\n * 绑定 dom 容器大小变化的事件\n */\n Plot.prototype.bindSizeSensor = function () {\n var _this = this;\n if (this.unbind) {\n return;\n }\n var _a = this.options.autoFit, autoFit = _a === void 0 ? true : _a;\n if (autoFit) {\n this.unbind = bind(this.container, function () {\n // 获取最新的宽高信息\n var _a = getContainerSize(_this.container), width = _a.width, height = _a.height;\n // 主要是防止绑定的时候触发 resize 回调\n if (width !== _this.chart.width || height !== _this.chart.height) {\n _this.triggerResize();\n }\n });\n }\n };\n /**\n * 取消绑定\n */\n Plot.prototype.unbindSizeSensor = function () {\n if (this.unbind) {\n this.unbind();\n this.unbind = undefined;\n }\n };\n return Plot;\n}(EE));\nexport { Plot };\n//# sourceMappingURL=plot.js.map","import { __assign } from \"tslib\";\nimport { map, reduce } from '@antv/util';\nimport { isRealNumber } from '../number';\n/**\n * 对数据进行百分比化\n * @param data\n * @param measure\n * @param groupField\n * @param as\n */\nexport function percent(data, measure, groupField, as) {\n // 1. 先计算每一个分组的 max 值\n var sumMap = reduce(data, function (map, datum) {\n var groupValue = datum[groupField];\n var sum = map.has(groupValue) ? map.get(groupValue) : 0;\n var v = datum[measure];\n sum = isRealNumber(v) ? sum + v : sum;\n map.set(groupValue, sum);\n return map;\n }, new Map());\n // 2. 循环数组,计算占比\n return map(data, function (datum) {\n var _a;\n var v = datum[measure];\n var groupValue = datum[groupField];\n var percentage = isRealNumber(v) && sumMap.get(groupValue) !== 0 ? v / sumMap.get(groupValue) : 0;\n return __assign(__assign({}, datum), (_a = {}, _a[as] = percentage, _a));\n });\n}\n/**\n * 对数据进行深层百分比化\n * @param data\n * @param measure // 数值\n * @param fields // 需要分组的 field值\n * @param as // 存储percent 百分比的值\n */\nexport function getDeepPercent(data, measure, fields, percent) {\n var sumMap = reduce(data, function (map, datum) {\n // 获取分组得到的枚举key值\n var groupValue = reduce(fields, function (value, field) { return \"\".concat(value).concat(datum[field]); }, '');\n var sum = map.has(groupValue) ? map.get(groupValue) : 0;\n var v = datum[measure];\n sum = isRealNumber(v) ? sum + v : sum;\n map.set(groupValue, sum);\n return map;\n }, new Map());\n // 2. 循环数组,计算占比\n return map(data, function (datum) {\n var _a;\n var v = datum[measure];\n // 获取分组得到的枚举key值\n var groupValue = reduce(fields, function (value, field) { return \"\".concat(value).concat(datum[field]); }, '');\n var percentage = isRealNumber(v) && sumMap.get(groupValue) !== 0 ? v / sumMap.get(groupValue) : 0;\n return __assign(__assign({}, datum), (_a = {}, _a[percent] = percentage, _a));\n });\n}\n/**\n * 获取数据,如果是百分比,进行数据转换 (适用于面积图、柱状图、条形图)\n * @param isPercent 是否百分比\n */\nexport function getDataWhetherPercentage(data, yField, groupField, asField, isPercent) {\n return !isPercent ? data : percent(data, yField, groupField, asField);\n}\n//# sourceMappingURL=percent.js.map","import { __assign, __rest } from \"tslib\";\nimport { each, isArray } from '@antv/util';\nimport { animation, annotation, interaction, limitInPlot, scale, scrollbar, slider, theme, tooltip, } from '../../adaptor/common';\nimport { area, line, point } from '../../adaptor/geometries';\nimport { deepAssign, findGeometry, flow, transformLabel } from '../../utils';\nimport { adjustYMetaByZero } from '../../utils/data';\n/**\n * geometry 配置处理\n * @param params\n */\nfunction geometry(params) {\n var chart = params.chart, options = params.options;\n var data = options.data, color = options.color, lineStyle = options.lineStyle, lineShape = options.lineShape, pointMapping = options.point, areaMapping = options.area, seriesField = options.seriesField;\n var pointState = pointMapping === null || pointMapping === void 0 ? void 0 : pointMapping.state;\n var areaState = areaMapping === null || areaMapping === void 0 ? void 0 : areaMapping.state;\n chart.data(data);\n // line geometry 处理\n var primary = deepAssign({}, params, {\n options: {\n shapeField: seriesField,\n line: {\n color: color,\n style: lineStyle,\n shape: lineShape,\n },\n // 颜色保持一致,因为如果颜色不一致,会导致 tooltip 中元素重复。\n // 如果存在,才设置,否则为空\n point: pointMapping && __assign({ color: color, shape: 'circle' }, pointMapping),\n // 面积配置\n area: areaMapping && __assign({ color: color }, areaMapping),\n // label 不传递给各个 geometry adaptor,由 label adaptor 处理\n label: undefined,\n },\n });\n var second = deepAssign({}, primary, { options: { tooltip: false, state: pointState } });\n var areaParams = deepAssign({}, primary, { options: { tooltip: false, state: areaState } });\n line(primary);\n point(second);\n area(areaParams);\n return params;\n}\n/**\n * meta 配置\n * @param params\n */\nexport function meta(params) {\n var _a, _b;\n var options = params.options;\n var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField, data = options.data;\n return flow(scale((_a = {},\n _a[xField] = xAxis,\n _a[yField] = yAxis,\n _a), (_b = {},\n _b[xField] = {\n type: 'cat',\n },\n _b[yField] = adjustYMetaByZero(data, yField),\n _b)))(params);\n}\n/**\n * 坐标系配置. 支持 reflect 镜像处理\n * @param params\n */\nfunction coordinate(params) {\n var chart = params.chart, options = params.options;\n var reflect = options.reflect;\n if (reflect) {\n var p = reflect;\n if (!isArray(p)) {\n p = [p];\n }\n var actions = p.map(function (d) { return ['reflect', d]; });\n chart.coordinate({ type: 'rect', actions: actions });\n }\n return params;\n}\n/**\n * axis 配置\n * @param params\n */\nexport function axis(params) {\n var chart = params.chart, options = params.options;\n var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField;\n // 为 false 则是不显示轴\n if (xAxis === false) {\n chart.axis(xField, false);\n }\n else {\n chart.axis(xField, xAxis);\n }\n if (yAxis === false) {\n chart.axis(yField, false);\n }\n else {\n chart.axis(yField, yAxis);\n }\n return params;\n}\n/**\n * legend 配置\n * @param params\n */\nexport function legend(params) {\n var chart = params.chart, options = params.options;\n var legend = options.legend, seriesField = options.seriesField;\n if (legend && seriesField) {\n chart.legend(seriesField, legend);\n }\n else if (legend === false) {\n chart.legend(false);\n }\n return params;\n}\n/**\n * 数据标签\n * @param params\n */\nfunction label(params) {\n var chart = params.chart, options = params.options;\n var label = options.label, yField = options.yField;\n var lineGeometry = findGeometry(chart, 'line');\n // label 为 false, 空 则不显示 label\n if (!label) {\n lineGeometry.label(false);\n }\n else {\n var fields = label.fields, callback = label.callback, cfg = __rest(label, [\"fields\", \"callback\"]);\n lineGeometry.label({\n fields: fields || [yField],\n callback: callback,\n cfg: __assign({ layout: [\n { type: 'limit-in-plot' },\n { type: 'path-adjust-position' },\n { type: 'point-adjust-position' },\n { type: 'limit-in-plot', cfg: { action: 'hide' } },\n ] }, transformLabel(cfg)),\n });\n }\n return params;\n}\n/**\n * 统一处理 adjust\n * @param params\n */\nexport function adjust(params) {\n var chart = params.chart, options = params.options;\n var isStack = options.isStack;\n if (isStack) {\n each(chart.geometries, function (g) {\n g.adjust('stack');\n });\n }\n return params;\n}\n/**\n * 折线图适配器\n * @param chart\n * @param options\n */\nexport function adaptor(params) {\n // flow 的方式处理所有的配置到 G2 API\n return flow(geometry, meta, adjust, theme, coordinate, axis, legend, tooltip, label, slider, scrollbar, interaction, animation, annotation(), limitInPlot)(params);\n}\n//# sourceMappingURL=adaptor.js.map","import { __assign, __rest } from \"tslib\";\nimport { each, omit } from '@antv/util';\nimport { animation, annotation, interaction, limitInPlot, pattern, slider, theme, tooltip, transformations, } from '../../adaptor/common';\nimport { area, line, point } from '../../adaptor/geometries';\nimport { deepAssign, findGeometry, flow, transformLabel } from '../../utils';\nimport { getDataWhetherPercentage } from '../../utils/transform/percent';\nimport { axis, legend, meta } from '../line/adaptor';\nexport { meta };\n/**\n * geometry 处理\n * @param params\n */\nfunction geometry(params) {\n var chart = params.chart, options = params.options;\n var data = options.data, areaStyle = options.areaStyle, areaShape = options.areaShape, color = options.color, pointMapping = options.point, lineMapping = options.line, isPercent = options.isPercent, xField = options.xField, yField = options.yField, tooltip = options.tooltip, seriesField = options.seriesField, startOnZero = options.startOnZero;\n var pointState = pointMapping === null || pointMapping === void 0 ? void 0 : pointMapping.state;\n var chartData = getDataWhetherPercentage(data, yField, xField, yField, isPercent);\n chart.data(chartData);\n // 百分比堆积图,默认会给一个 % 格式化逻辑, 用户可自定义\n var tooltipOptions = isPercent\n ? __assign({ formatter: function (datum) { return ({\n name: datum[seriesField] || datum[xField],\n value: (Number(datum[yField]) * 100).toFixed(2) + '%',\n }); } }, tooltip) : tooltip;\n var primary = deepAssign({}, params, {\n options: {\n area: {\n color: color,\n style: areaStyle,\n shape: areaShape,\n },\n point: pointMapping && __assign({ color: color }, pointMapping),\n tooltip: tooltipOptions,\n // label 不传递给各个 geometry adaptor,由 label adaptor 处理\n label: undefined,\n args: {\n startOnZero: startOnZero,\n },\n },\n });\n // 线默认 2px (折线不能复用面积图的 state,因为 fill 和 stroke 不匹配)\n var lineParams = {\n chart: chart,\n options: deepAssign({ line: { size: 2 } }, omit(options, ['state']), {\n // 颜色保持一致,因为如果颜色不一致,会导致 tooltip 中元素重复。\n // 如果存在,才设置,否则为空\n line: lineMapping && __assign({ color: color }, lineMapping),\n sizeField: seriesField,\n state: lineMapping === null || lineMapping === void 0 ? void 0 : lineMapping.state,\n tooltip: false,\n // label 不传递给各个 geometry adaptor,由 label adaptor 处理\n label: undefined,\n args: {\n startOnZero: startOnZero,\n },\n }),\n };\n var pointParams = deepAssign({}, primary, { options: { tooltip: false, state: pointState } });\n // area geometry 处理\n area(primary);\n line(lineParams);\n point(pointParams);\n return params;\n}\n/**\n * 数据标签\n * @param params\n */\nfunction label(params) {\n var chart = params.chart, options = params.options;\n var label = options.label, yField = options.yField;\n var areaGeometry = findGeometry(chart, 'area');\n // label 为 false, 空 则不显示 label\n if (!label) {\n areaGeometry.label(false);\n }\n else {\n var fields = label.fields, callback = label.callback, cfg = __rest(label, [\"fields\", \"callback\"]);\n areaGeometry.label({\n fields: fields || [yField],\n callback: callback,\n cfg: __assign({ layout: [\n { type: 'limit-in-plot' },\n { type: 'path-adjust-position' },\n { type: 'point-adjust-position' },\n { type: 'limit-in-plot', cfg: { action: 'hide' } },\n ] }, transformLabel(cfg)),\n });\n }\n return params;\n}\n/**\n * 处理 adjust\n * @param params\n */\nfunction adjust(params) {\n var chart = params.chart, options = params.options;\n var isStack = options.isStack, isPercent = options.isPercent, seriesField = options.seriesField;\n if ((isPercent || isStack) && seriesField) {\n each(chart.geometries, function (g) {\n g.adjust('stack');\n });\n }\n return params;\n}\n/**\n * 折线图适配器\n * @param chart\n * @param options\n */\nexport function adaptor(params) {\n // flow 的方式处理所有的配置到 G2 API\n return flow(theme, pattern('areaStyle'), transformations('rect'), geometry, meta, adjust, axis, legend, tooltip, label, slider, annotation(), interaction, animation, limitInPlot)(params);\n}\n//# sourceMappingURL=adaptor.js.map","import { Plot } from '../../core/plot';\nimport { deepAssign } from '../../utils';\n/**\n * 面积图默认配置项\n */\nexport var DEFAULT_OPTIONS = deepAssign({}, Plot.getDefaultOptions(), {\n tooltip: {\n shared: true,\n showMarkers: true,\n showCrosshairs: true,\n crosshairs: {\n type: 'x',\n },\n },\n isStack: true,\n // 默认开启\n line: {},\n legend: {\n position: 'top-left',\n radio: {},\n },\n});\n//# sourceMappingURL=constants.js.map","import { __extends } from \"tslib\";\nimport { Plot } from '../../core/plot';\nimport { getDataWhetherPercentage } from '../../utils/transform/percent';\nimport { adaptor, meta } from './adaptor';\nimport { DEFAULT_OPTIONS } from './constants';\nvar Area = /** @class */ (function (_super) {\n __extends(Area, _super);\n function Area() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /** 图表类型 */\n _this.type = 'area';\n return _this;\n }\n /**\n * 获取 面积图 默认配置项\n * 供外部使用\n */\n Area.getDefaultOptions = function () {\n return DEFAULT_OPTIONS;\n };\n /**\n * 获取 面积图 默认配置\n */\n Area.prototype.getDefaultOptions = function () {\n return Area.getDefaultOptions();\n };\n /**\n * @override\n * @param data\n */\n Area.prototype.changeData = function (data) {\n this.updateOption({ data: data });\n var _a = this.options, isPercent = _a.isPercent, xField = _a.xField, yField = _a.yField;\n var _b = this, chart = _b.chart, options = _b.options;\n meta({ chart: chart, options: options });\n this.chart.changeData(getDataWhetherPercentage(data, yField, xField, yField, isPercent));\n };\n /**\n * 获取 面积图 的适配器\n */\n Area.prototype.getSchemaAdaptor = function () {\n return adaptor;\n };\n return Area;\n}(Plot));\nexport { Area };\n//# sourceMappingURL=index.js.map","import { __assign, __extends } from \"tslib\";\nimport { Action, Util } from '@antv/g2';\nimport { get } from '@antv/util';\nimport { deepAssign, normalPadding } from '../../utils';\nvar PADDING_RIGHT = 10;\nvar PADDING_TOP = 5;\n/**\n * Action 中的 Button 按钮配置\n *\n * 可能的使用场景:brush filter\n */\nexport var BUTTON_ACTION_CONFIG = {\n padding: [8, 10],\n text: 'reset',\n textStyle: {\n default: {\n x: 0,\n y: 0,\n fontSize: 12,\n fill: '#333333',\n cursor: 'pointer',\n },\n },\n buttonStyle: {\n default: {\n fill: '#f7f7f7',\n stroke: '#cccccc',\n cursor: 'pointer',\n },\n active: {\n fill: '#e6e6e6',\n },\n },\n};\n/**\n * @override 复写 G2 Button Action, 后续直接使用 GUI\n */\nvar ButtonAction = /** @class */ (function (_super) {\n __extends(ButtonAction, _super);\n function ButtonAction() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.buttonGroup = null;\n _this.buttonCfg = __assign({ name: 'button' }, BUTTON_ACTION_CONFIG);\n return _this;\n }\n /**\n * 获取 mix 默认的配置和用户配置\n */\n ButtonAction.prototype.getButtonCfg = function () {\n var view = this.context.view;\n var buttonCfg = get(view, ['interactions', 'filter-action', 'cfg', 'buttonConfig']);\n return deepAssign(this.buttonCfg, buttonCfg, this.cfg);\n };\n /**\n * 绘制 Button 和 文本\n */\n ButtonAction.prototype.drawButton = function () {\n var config = this.getButtonCfg();\n var group = this.context.view.foregroundGroup.addGroup({\n name: config.name,\n });\n var textShape = this.drawText(group);\n this.drawBackground(group, textShape.getBBox());\n this.buttonGroup = group;\n };\n /**\n * 绘制文本\n */\n ButtonAction.prototype.drawText = function (group) {\n var _a;\n var config = this.getButtonCfg();\n // 添加文本\n return group.addShape({\n type: 'text',\n name: 'button-text',\n attrs: __assign({ text: config.text }, (_a = config.textStyle) === null || _a === void 0 ? void 0 : _a.default),\n });\n };\n ButtonAction.prototype.drawBackground = function (group, bbox) {\n var _a;\n var config = this.getButtonCfg();\n var padding = normalPadding(config.padding);\n // 添加背景按钮\n var buttonShape = group.addShape({\n type: 'rect',\n name: 'button-rect',\n attrs: __assign({ x: bbox.x - padding[3], y: bbox.y - padding[0], width: bbox.width + padding[1] + padding[3], height: bbox.height + padding[0] + padding[2] }, (_a = config.buttonStyle) === null || _a === void 0 ? void 0 : _a.default),\n });\n buttonShape.toBack(); // 在后面\n // active 效果内置\n group.on('mouseenter', function () {\n var _a;\n buttonShape.attr((_a = config.buttonStyle) === null || _a === void 0 ? void 0 : _a.active);\n });\n group.on('mouseleave', function () {\n var _a;\n buttonShape.attr((_a = config.buttonStyle) === null || _a === void 0 ? void 0 : _a.default);\n });\n return buttonShape;\n };\n // 重置位置\n ButtonAction.prototype.resetPosition = function () {\n var view = this.context.view;\n var coord = view.getCoordinate();\n var point = coord.convert({ x: 1, y: 1 }); // 后面直接改成左上角\n var buttonGroup = this.buttonGroup;\n var bbox = buttonGroup.getBBox();\n var matrix = Util.transform(null, [\n ['t', point.x - bbox.width - PADDING_RIGHT, point.y + bbox.height + PADDING_TOP],\n ]);\n buttonGroup.setMatrix(matrix);\n };\n /**\n * 显示\n */\n ButtonAction.prototype.show = function () {\n if (!this.buttonGroup) {\n this.drawButton();\n }\n this.resetPosition();\n this.buttonGroup.show();\n };\n /**\n * 隐藏\n */\n ButtonAction.prototype.hide = function () {\n if (this.buttonGroup) {\n this.buttonGroup.hide();\n }\n };\n /**\n * 销毁\n */\n ButtonAction.prototype.destroy = function () {\n var buttonGroup = this.buttonGroup;\n if (buttonGroup) {\n buttonGroup.remove();\n }\n _super.prototype.destroy.call(this);\n };\n return ButtonAction;\n}(Action));\nexport { ButtonAction };\n//# sourceMappingURL=reset-button.js.map","import { registerAction, registerInteraction } from '@antv/g2';\nimport { ButtonAction } from './actions/reset-button';\nregisterAction('brush-reset-button', ButtonAction, {\n name: 'brush-reset-button',\n});\nregisterInteraction('filter-action', {});\n/**\n * G2 已经内置了 brush、brush-x、brush-y 等交互,其它:\n *\n * 1. element-range-highlight 是否可用重命名为 brush-highlight?(mask 可以移动)\n * 2. brush-visible 与 brush 的区别是?\n */\nfunction isPointInView(context) {\n return context.isInPlot();\n}\n/**\n * 获取 交互 start 阶段的相关配置\n */\nexport function getInteractionCfg(interactionType, brushType, options) {\n var _a = options || {}, mask = _a.mask, isStartEnable = _a.isStartEnable;\n var maskType = brushType || 'rect';\n switch (interactionType) {\n case 'brush':\n return {\n showEnable: [\n { trigger: 'plot:mouseenter', action: 'cursor:crosshair', isEnable: isStartEnable || (function () { return true; }) },\n { trigger: 'plot:mouseleave', action: 'cursor:default' },\n ],\n start: [\n {\n trigger: 'mousedown',\n isEnable: isStartEnable || isPointInView,\n action: ['brush:start', \"\".concat(maskType, \"-mask:start\"), \"\".concat(maskType, \"-mask:show\")],\n // 对应第二个action的参数\n arg: [null, { maskStyle: mask === null || mask === void 0 ? void 0 : mask.style }],\n },\n ],\n processing: [\n {\n trigger: 'mousemove',\n isEnable: isPointInView,\n action: [\"\".concat(maskType, \"-mask:resize\")],\n },\n ],\n end: [\n {\n trigger: 'mouseup',\n isEnable: isPointInView,\n action: [\n 'brush:filter',\n 'brush:end',\n \"\".concat(maskType, \"-mask:end\"),\n \"\".concat(maskType, \"-mask:hide\"),\n 'brush-reset-button:show',\n ],\n },\n ],\n rollback: [\n {\n trigger: 'brush-reset-button:click',\n action: ['brush:reset', 'brush-reset-button:hide', 'cursor:crosshair'],\n },\n ],\n };\n case 'brush-highlight':\n return {\n showEnable: [\n { trigger: 'plot:mouseenter', action: 'cursor:crosshair', isEnable: isStartEnable || (function () { return true; }) },\n { trigger: 'plot:mousemove', action: 'cursor:crosshair', isEnable: isStartEnable || (function () { return true; }) },\n {\n trigger: 'plot:mousemove',\n action: 'cursor:default',\n isEnable: function (context) { return (isStartEnable ? !isStartEnable(context) : false); },\n },\n { trigger: 'mask:mouseenter', action: 'cursor:move', isEnable: isStartEnable || (function () { return true; }) },\n { trigger: 'plot:mouseleave', action: 'cursor:default' },\n { trigger: 'mask:mouseleave', action: 'cursor:crosshair' },\n ],\n start: [\n {\n trigger: 'plot:mousedown',\n isEnable: isStartEnable ||\n (function (context) {\n // 不要点击在 mask 上重新开始\n return !context.isInShape('mask');\n }),\n action: [\"\".concat(maskType, \"-mask:start\"), \"\".concat(maskType, \"-mask:show\")],\n // 对应第 1 个action的参数\n arg: [{ maskStyle: mask === null || mask === void 0 ? void 0 : mask.style }],\n },\n {\n trigger: 'mask:dragstart',\n action: [\"\".concat(maskType, \"-mask:moveStart\")],\n },\n ],\n processing: [\n {\n trigger: 'plot:mousemove',\n action: [\"\".concat(maskType, \"-mask:resize\")],\n },\n {\n trigger: 'mask:drag',\n action: [\"\".concat(maskType, \"-mask:move\")],\n },\n {\n trigger: 'mask:change',\n action: ['element-range-highlight:highlight'],\n },\n ],\n end: [\n { trigger: 'plot:mouseup', action: [\"\".concat(maskType, \"-mask:end\")] },\n { trigger: 'mask:dragend', action: [\"\".concat(maskType, \"-mask:moveEnd\")] },\n {\n trigger: 'document:mouseup',\n isEnable: function (context) {\n return !context.isInPlot();\n },\n action: ['element-range-highlight:clear', \"\".concat(maskType, \"-mask:end\"), \"\".concat(maskType, \"-mask:hide\")],\n },\n ],\n rollback: [{ trigger: 'dblclick', action: ['element-range-highlight:clear', \"\".concat(maskType, \"-mask:hide\")] }],\n };\n case 'brush-x':\n return {\n showEnable: [\n { trigger: 'plot:mouseenter', action: 'cursor:crosshair', isEnable: isStartEnable || (function () { return true; }) },\n { trigger: 'plot:mouseleave', action: 'cursor:default' },\n ],\n start: [\n {\n trigger: 'mousedown',\n isEnable: isStartEnable || isPointInView,\n action: ['brush-x:start', \"\".concat(maskType, \"-mask:start\"), \"\".concat(maskType, \"-mask:show\")],\n // 对应第二个action的参数\n arg: [null, { maskStyle: mask === null || mask === void 0 ? void 0 : mask.style }],\n },\n ],\n processing: [\n {\n trigger: 'mousemove',\n isEnable: isPointInView,\n action: [\"\".concat(maskType, \"-mask:resize\")],\n },\n ],\n end: [\n {\n trigger: 'mouseup',\n isEnable: isPointInView,\n action: ['brush-x:filter', 'brush-x:end', \"\".concat(maskType, \"-mask:end\"), \"\".concat(maskType, \"-mask:hide\")],\n },\n ],\n rollback: [{ trigger: 'dblclick', action: ['brush-x:reset'] }],\n };\n case 'brush-x-highlight':\n return {\n showEnable: [\n { trigger: 'plot:mouseenter', action: 'cursor:crosshair', isEnable: isStartEnable || (function () { return true; }) },\n { trigger: 'mask:mouseenter', action: 'cursor:move', isEnable: isStartEnable || (function () { return true; }) },\n { trigger: 'plot:mouseleave', action: 'cursor:default' },\n { trigger: 'mask:mouseleave', action: 'cursor:crosshair' },\n ],\n start: [\n {\n trigger: 'plot:mousedown',\n isEnable: isStartEnable ||\n (function (context) {\n // 不要点击在 mask 上重新开始\n return !context.isInShape('mask');\n }),\n action: [\"\".concat(maskType, \"-mask:start\"), \"\".concat(maskType, \"-mask:show\")],\n // 对应第 1 个action的参数\n arg: [{ maskStyle: mask === null || mask === void 0 ? void 0 : mask.style }],\n },\n {\n trigger: 'mask:dragstart',\n action: [\"\".concat(maskType, \"-mask:moveStart\")],\n },\n ],\n processing: [\n {\n trigger: 'plot:mousemove',\n action: [\"\".concat(maskType, \"-mask:resize\")],\n },\n {\n trigger: 'mask:drag',\n action: [\"\".concat(maskType, \"-mask:move\")],\n },\n {\n trigger: 'mask:change',\n action: ['element-range-highlight:highlight'],\n },\n ],\n end: [\n { trigger: 'plot:mouseup', action: [\"\".concat(maskType, \"-mask:end\")] },\n { trigger: 'mask:dragend', action: [\"\".concat(maskType, \"-mask:moveEnd\")] },\n {\n trigger: 'document:mouseup',\n isEnable: function (context) {\n return !context.isInPlot();\n },\n action: ['element-range-highlight:clear', \"\".concat(maskType, \"-mask:end\"), \"\".concat(maskType, \"-mask:hide\")],\n },\n ],\n rollback: [{ trigger: 'dblclick', action: ['element-range-highlight:clear', \"\".concat(maskType, \"-mask:hide\")] }],\n };\n case 'brush-y':\n return {\n showEnable: [\n { trigger: 'plot:mouseenter', action: 'cursor:crosshair', isEnable: isStartEnable || (function () { return true; }) },\n { trigger: 'plot:mouseleave', action: 'cursor:default' },\n ],\n start: [\n {\n trigger: 'mousedown',\n isEnable: isStartEnable || isPointInView,\n action: ['brush-y:start', \"\".concat(maskType, \"-mask:start\"), \"\".concat(maskType, \"-mask:show\")],\n // 对应第二个action的参数\n arg: [null, { maskStyle: mask === null || mask === void 0 ? void 0 : mask.style }],\n },\n ],\n processing: [\n {\n trigger: 'mousemove',\n isEnable: isPointInView,\n action: [\"\".concat(maskType, \"-mask:resize\")],\n },\n ],\n end: [\n {\n trigger: 'mouseup',\n isEnable: isPointInView,\n action: ['brush-y:filter', 'brush-y:end', \"\".concat(maskType, \"-mask:end\"), \"\".concat(maskType, \"-mask:hide\")],\n },\n ],\n rollback: [{ trigger: 'dblclick', action: ['brush-y:reset'] }],\n };\n case 'brush-y-highlight':\n return {\n showEnable: [\n { trigger: 'plot:mouseenter', action: 'cursor:crosshair', isEnable: isStartEnable || (function () { return true; }) },\n { trigger: 'mask:mouseenter', action: 'cursor:move', isEnable: isStartEnable || (function () { return true; }) },\n { trigger: 'plot:mouseleave', action: 'cursor:default' },\n { trigger: 'mask:mouseleave', action: 'cursor:crosshair' },\n ],\n start: [\n {\n trigger: 'plot:mousedown',\n isEnable: isStartEnable ||\n (function (context) {\n // 不要点击在 mask 上重新开始\n return !context.isInShape('mask');\n }),\n action: [\"\".concat(maskType, \"-mask:start\"), \"\".concat(maskType, \"-mask:show\")],\n // 对应第 1 个action的参数\n arg: [{ maskStyle: mask === null || mask === void 0 ? void 0 : mask.style }],\n },\n {\n trigger: 'mask:dragstart',\n action: [\"\".concat(maskType, \"-mask:moveStart\")],\n },\n ],\n processing: [\n {\n trigger: 'plot:mousemove',\n action: [\"\".concat(maskType, \"-mask:resize\")],\n },\n {\n trigger: 'mask:drag',\n action: [\"\".concat(maskType, \"-mask:move\")],\n },\n {\n trigger: 'mask:change',\n action: ['element-range-highlight:highlight'],\n },\n ],\n end: [\n { trigger: 'plot:mouseup', action: [\"\".concat(maskType, \"-mask:end\")] },\n { trigger: 'mask:dragend', action: [\"\".concat(maskType, \"-mask:moveEnd\")] },\n {\n trigger: 'document:mouseup',\n isEnable: function (context) {\n return !context.isInPlot();\n },\n action: ['element-range-highlight:clear', \"\".concat(maskType, \"-mask:end\"), \"\".concat(maskType, \"-mask:hide\")],\n },\n ],\n rollback: [{ trigger: 'dblclick', action: ['element-range-highlight:clear', \"\".concat(maskType, \"-mask:hide\")] }],\n };\n default:\n return {};\n }\n}\n// 直接拷贝过来的\nregisterInteraction('brush', getInteractionCfg('brush'));\n// 复写 element-range-highlight interaction\nregisterInteraction('brush-highlight', getInteractionCfg('brush-highlight'));\n// 复写\nregisterInteraction('brush-x', getInteractionCfg('brush-x', 'x-rect'));\n// 复写\nregisterInteraction('brush-y', getInteractionCfg('brush-y', 'y-rect'));\n// 新增, x 框选高亮\nregisterInteraction('brush-x-highlight', getInteractionCfg('brush-x-highlight', 'x-rect'));\n// 新增, y 框选高亮\nregisterInteraction('brush-y-highlight', getInteractionCfg('brush-y-highlight', 'y-rect'));\n//# sourceMappingURL=brush.js.map","import { filter } from '@antv/util';\n/** 先引入brush 交互 */\nimport '../interactions/brush';\nimport { getInteractionCfg } from '../interactions/brush';\nimport { deepAssign } from '../utils';\nvar BRUSH_TYPES = ['brush', 'brush-x', 'brush-y', 'brush-highlight', 'brush-x-highlight', 'brush-y-highlight'];\n/**\n * brush 交互\n */\nexport function brushInteraction(params) {\n var options = params.options;\n var brush = options.brush;\n // 先过滤掉 brush 等交互\n var interactions = filter(options.interactions || [], function (i) { return BRUSH_TYPES.indexOf(i.type) === -1; });\n // 设置 brush 交互\n if (brush === null || brush === void 0 ? void 0 : brush.enabled) {\n BRUSH_TYPES.forEach(function (type) {\n var enable = false;\n switch (brush.type) {\n case 'x-rect':\n enable = type === (brush.action === 'highlight' ? 'brush-x-highlight' : 'brush-x');\n break;\n case 'y-rect':\n enable = type === (brush.action === 'highlight' ? 'brush-y-highlight' : 'brush-y');\n break;\n default:\n enable = type === (brush.action === 'highlight' ? 'brush-highlight' : 'brush');\n break;\n }\n var obj = { type: type, enable: enable };\n if (brush) {\n obj.cfg = getInteractionCfg(type, brush.type, brush);\n }\n interactions.push(obj);\n });\n // 塞入 button 配置 (G2Plot 的封装)\n if ((brush === null || brush === void 0 ? void 0 : brush.action) !== 'highlight') {\n interactions.push({\n type: 'filter-action',\n cfg: {\n buttonConfig: brush.button,\n },\n });\n }\n }\n return deepAssign({}, params, { options: { interactions: interactions } });\n}\n//# sourceMappingURL=brush.js.map","import { registerInteraction } from '@antv/g2';\nvar INTERACTION_MAP = {\n hover: '__interval-connected-area-hover__',\n click: '__interval-connected-area-click__',\n};\nvar getStartStages = function (trigger, style) {\n if (trigger === 'hover') {\n return [\n {\n trigger: \"interval:mouseenter\",\n action: ['element-highlight-by-color:highlight', 'element-link-by-color:link'],\n arg: [null, { style: style }],\n },\n ];\n }\n return [\n {\n trigger: \"interval:click\",\n action: [\n 'element-highlight-by-color:clear',\n 'element-highlight-by-color:highlight',\n 'element-link-by-color:clear',\n 'element-link-by-color:unlink',\n 'element-link-by-color:link',\n ],\n arg: [null, null, null, null, { style: style }],\n },\n ];\n};\n/** hover 触发的连通区域交互 */\nregisterInteraction(INTERACTION_MAP.hover, {\n start: getStartStages(INTERACTION_MAP.hover),\n end: [\n {\n trigger: 'interval:mouseleave',\n action: ['element-highlight-by-color:reset', 'element-link-by-color:unlink'],\n },\n ],\n});\n/** click 触发的联通区域交互 */\nregisterInteraction(INTERACTION_MAP.click, {\n start: getStartStages(INTERACTION_MAP.click),\n end: [\n {\n trigger: 'document:mousedown',\n action: ['element-highlight-by-color:clear', 'element-link-by-color:clear'],\n },\n ],\n});\n/**\n * 返回支持联通区域组件交互的 adaptor,适用于堆叠柱形图/堆叠条形图\n * @param disable\n */\nexport function connectedArea(disable) {\n if (disable === void 0) { disable = false; }\n return function (params) {\n var chart = params.chart, options = params.options;\n var connectedArea = options.connectedArea;\n var clear = function () {\n chart.removeInteraction(INTERACTION_MAP.hover);\n chart.removeInteraction(INTERACTION_MAP.click);\n };\n if (!disable && connectedArea) {\n var trigger = connectedArea.trigger || 'hover';\n clear();\n chart.interaction(INTERACTION_MAP[trigger], {\n start: getStartStages(trigger, connectedArea.style),\n });\n }\n else {\n clear();\n }\n return params;\n };\n}\n//# sourceMappingURL=connected-area.js.map","import { isNumber } from '@antv/util';\n/**\n * 转化率的计算方式\n * @param prev\n * @param next\n */\nexport function conversionTagFormatter(prev, next) {\n if (!isNumber(prev) || !isNumber(next)) {\n return '-';\n }\n // 0 / 0 没有意义\n if (prev === 0 && next === 0) {\n return '-';\n }\n if (prev === next) {\n return '100%';\n }\n if (prev === 0) {\n return '∞';\n }\n return \"\".concat(((100 * next) / prev).toFixed(2), \"%\");\n}\n//# sourceMappingURL=conversion.js.map","import { __assign } from \"tslib\";\nimport { getTheme } from '@antv/g2';\nimport { each, find, isObject, map } from '@antv/util';\nimport { deepAssign } from '../utils';\nimport { conversionTagFormatter } from '../utils/conversion';\nfunction getConversionTagOptionsWithDefaults(options, horizontal) {\n return deepAssign({\n size: horizontal ? 32 : 80,\n spacing: horizontal ? 8 : 12,\n offset: horizontal ? 32 : 0,\n arrow: options.arrow !== false && {\n headSize: 12,\n style: {\n fill: 'rgba(0, 0, 0, 0.05)',\n },\n },\n text: options.text !== false && {\n style: {\n fontSize: 12,\n fill: 'rgba(0, 0, 0, 0.85)',\n textAlign: 'center',\n textBaseline: 'middle',\n },\n formatter: conversionTagFormatter,\n },\n }, options);\n}\nfunction parsePoints(coordinate, element) {\n // @ts-ignore\n return map(element.getModel().points, function (point) { return coordinate.convertPoint(point); });\n}\nfunction renderArrowTag(config, elemPrev, elemNext) {\n var view = config.view, geometry = config.geometry, group = config.group, options = config.options, horizontal = config.horizontal;\n var offset = options.offset, size = options.size, arrow = options.arrow;\n var coordinate = view.getCoordinate();\n var pointPrev = parsePoints(coordinate, elemPrev)[3];\n var pointNext = parsePoints(coordinate, elemNext)[0];\n var totalHeight = pointNext.y - pointPrev.y;\n var totalWidth = pointNext.x - pointPrev.x;\n if (typeof arrow === 'boolean') {\n return;\n }\n var headSize = arrow.headSize;\n var spacing = options.spacing;\n var points;\n if (horizontal) {\n if ((totalWidth - headSize) / 2 < spacing) {\n // 当柱间距不足容纳箭头尖与间隔时,画三角并挤占间隔\n spacing = Math.max(1, (totalWidth - headSize) / 2);\n points = [\n [pointPrev.x + spacing, pointPrev.y - offset],\n [pointPrev.x + spacing, pointPrev.y - offset - size],\n [pointNext.x - spacing, pointNext.y - offset - size / 2],\n ];\n }\n else {\n // 当柱间距足够时,画完整图形并留出间隔。\n points = [\n [pointPrev.x + spacing, pointPrev.y - offset],\n [pointPrev.x + spacing, pointPrev.y - offset - size],\n [pointNext.x - spacing - headSize, pointNext.y - offset - size],\n [pointNext.x - spacing, pointNext.y - offset - size / 2],\n [pointNext.x - spacing - headSize, pointNext.y - offset],\n ];\n }\n }\n else {\n if ((totalHeight - headSize) / 2 < spacing) {\n // 当柱间距不足容纳箭头尖与间隔时,画三角并挤占间隔\n spacing = Math.max(1, (totalHeight - headSize) / 2);\n points = [\n [pointPrev.x + offset, pointPrev.y + spacing],\n [pointPrev.x + offset + size, pointPrev.y + spacing],\n [pointNext.x + offset + size / 2, pointNext.y - spacing],\n ];\n }\n else {\n // 当柱间距足够时,画完整图形并留出间隔。\n points = [\n [pointPrev.x + offset, pointPrev.y + spacing],\n [pointPrev.x + offset + size, pointPrev.y + spacing],\n [pointNext.x + offset + size, pointNext.y - spacing - headSize],\n [pointNext.x + offset + size / 2, pointNext.y - spacing],\n [pointNext.x + offset, pointNext.y - spacing - headSize],\n ];\n }\n }\n group.addShape('polygon', {\n id: \"\".concat(view.id, \"-conversion-tag-arrow-\").concat(geometry.getElementId(elemPrev.getModel().mappingData)),\n name: 'conversion-tag-arrow',\n origin: {\n element: elemPrev,\n nextElement: elemNext,\n },\n attrs: __assign(__assign({}, (arrow.style || {})), { points: points }),\n });\n}\nfunction renderTextTag(config, elemPrev, elemNext) {\n var _a, _b, _c;\n var view = config.view, geometry = config.geometry, group = config.group, options = config.options, field = config.field, horizontal = config.horizontal;\n var offset = options.offset, size = options.size;\n if (typeof options.text === 'boolean') {\n return;\n }\n var coordinate = view.getCoordinate();\n var text = ((_a = options.text) === null || _a === void 0 ? void 0 : _a.formatter) && ((_b = options.text) === null || _b === void 0 ? void 0 : _b.formatter(elemPrev.getData()[field], elemNext.getData()[field]));\n var pointPrev = parsePoints(coordinate, elemPrev)[horizontal ? 3 : 0];\n var pointNext = parsePoints(coordinate, elemNext)[horizontal ? 0 : 3];\n var textShape = group.addShape('text', {\n id: \"\".concat(view.id, \"-conversion-tag-text-\").concat(geometry.getElementId(elemPrev.getModel().mappingData)),\n name: 'conversion-tag-text',\n origin: {\n element: elemPrev,\n nextElement: elemNext,\n },\n attrs: __assign(__assign({}, (((_c = options.text) === null || _c === void 0 ? void 0 : _c.style) || {})), { text: text, x: horizontal ? (pointPrev.x + pointNext.x) / 2 : pointPrev.x + offset + size / 2, y: horizontal ? pointPrev.y - offset - size / 2 : (pointPrev.y + pointNext.y) / 2 }),\n });\n if (horizontal) {\n var totalWidth = pointNext.x - pointPrev.x;\n var textWidth = textShape.getBBox().width;\n if (textWidth > totalWidth) {\n var cWidth = textWidth / text.length;\n var cEnd = Math.max(1, Math.ceil(totalWidth / cWidth) - 1);\n var textAdjusted = \"\".concat(text.slice(0, cEnd), \"...\");\n textShape.attr('text', textAdjusted);\n }\n }\n}\nfunction renderTag(options, elemPrev, elemNext) {\n renderArrowTag(options, elemPrev, elemNext);\n renderTextTag(options, elemPrev, elemNext);\n}\n/**\n * 返回支持转化率组件的 adaptor,适用于柱形图/条形图\n * @param field 用户转化率计算的字段\n * @param horizontal 是否水平方向的转化率\n * @param disabled 是否禁用\n */\nexport function conversionTag(field, horizontal, disabled) {\n if (horizontal === void 0) { horizontal = true; }\n if (disabled === void 0) { disabled = false; }\n return function (params) {\n var options = params.options, chart = params.chart;\n var conversionTag = options.conversionTag, theme = options.theme;\n if (conversionTag && !disabled) {\n // 有转化率组件时,柱子宽度占比自动为 1/3\n chart.theme(deepAssign({}, isObject(theme) ? theme : getTheme(theme), {\n columnWidthRatio: 1 / 3,\n }));\n // 使用 shape annotation 绘制转化率组件\n chart.annotation().shape({\n render: function (container, view) {\n var group = container.addGroup({\n id: \"\".concat(chart.id, \"-conversion-tag-group\"),\n name: 'conversion-tag-group',\n });\n var interval = find(chart.geometries, function (geom) { return geom.type === 'interval'; });\n var config = {\n view: view,\n geometry: interval,\n group: group,\n field: field,\n horizontal: horizontal,\n options: getConversionTagOptionsWithDefaults(conversionTag, horizontal),\n };\n var elements = interval.elements;\n each(elements, function (elem, idx) {\n if (idx > 0) {\n renderTag(config, elements[idx - 1], elem);\n }\n });\n },\n });\n }\n return params;\n };\n}\n//# sourceMappingURL=conversion-tag.js.map","import { __assign, __rest } from \"tslib\";\nimport { each, filter, isMatch } from '@antv/util';\nimport { brushInteraction } from '../../adaptor/brush';\nimport { animation, annotation, interaction, limitInPlot, scale, scrollbar, slider, state, theme, transformations, } from '../../adaptor/common';\nimport { connectedArea } from '../../adaptor/connected-area';\nimport { conversionTag } from '../../adaptor/conversion-tag';\nimport { interval } from '../../adaptor/geometries';\nimport { pattern } from '../../adaptor/pattern';\nimport { adjustYMetaByZero, deepAssign, findGeometry, flow, pick, transformLabel } from '../../utils';\nimport { getDataWhetherPercentage, getDeepPercent } from '../../utils/transform/percent';\n/**\n * defaultOptions\n * @param params\n */\nfunction defaultOptions(params) {\n var options = params.options;\n // 默认 legend 位置\n var legend = options.legend;\n var seriesField = options.seriesField, isStack = options.isStack;\n if (seriesField) {\n if (legend !== false) {\n legend = __assign({ position: isStack ? 'right-top' : 'top-left' }, legend);\n }\n }\n else {\n legend = false;\n }\n // @ts-ignore 直接改值\n params.options.legend = legend;\n return params;\n}\n/**\n * 字段\n * @param params\n */\nfunction geometry(params) {\n var chart = params.chart, options = params.options;\n var data = options.data, columnStyle = options.columnStyle, color = options.color, columnWidthRatio = options.columnWidthRatio, isPercent = options.isPercent, isGroup = options.isGroup, isStack = options.isStack, xField = options.xField, yField = options.yField, seriesField = options.seriesField, groupField = options.groupField, tooltip = options.tooltip, shape = options.shape;\n var percentData = isPercent && isGroup && isStack\n ? getDeepPercent(data, yField, [xField, groupField], yField)\n : getDataWhetherPercentage(data, yField, xField, yField, isPercent);\n var chartData = [];\n // 存在堆叠,并且存在堆叠seriesField分类,并且不存在分组的时候 进行堆叠\n if (isStack && seriesField && !isGroup) {\n percentData.forEach(function (item) {\n var stackedItem = chartData.find(function (v) { return v[xField] === item[xField] && v[seriesField] === item[seriesField]; });\n if (stackedItem) {\n stackedItem[yField] += item[yField] || 0;\n }\n else {\n chartData.push(__assign({}, item));\n }\n });\n }\n else {\n chartData = percentData;\n }\n chart.data(chartData);\n // 百分比堆积图,默认会给一个 % 格式化逻辑, 用户可自定义\n var tooltipOptions = isPercent\n ? __assign({ formatter: function (datum) {\n var _a;\n return ({\n name: isGroup && isStack ? \"\".concat(datum[seriesField], \" - \").concat(datum[groupField]) : (_a = datum[seriesField]) !== null && _a !== void 0 ? _a : datum[xField],\n value: (Number(datum[yField]) * 100).toFixed(2) + '%',\n });\n } }, tooltip) : tooltip;\n var p = deepAssign({}, params, {\n options: {\n data: chartData,\n widthRatio: columnWidthRatio,\n tooltip: tooltipOptions,\n interval: {\n shape: shape,\n style: columnStyle,\n color: color,\n },\n },\n });\n interval(p);\n return p;\n}\n/**\n * meta 配置\n * @param params\n */\nexport function meta(params) {\n var _a, _b;\n var options = params.options;\n var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField, data = options.data, isPercent = options.isPercent;\n var percentYMeta = isPercent ? { max: 1, min: 0, minLimit: 0, maxLimit: 1 } : {};\n return flow(scale((_a = {},\n _a[xField] = xAxis,\n _a[yField] = yAxis,\n _a), (_b = {},\n _b[xField] = {\n type: 'cat',\n },\n _b[yField] = __assign(__assign({}, adjustYMetaByZero(data, yField)), percentYMeta),\n _b)))(params);\n}\n/**\n * axis 配置\n * @param params\n */\nfunction axis(params) {\n var chart = params.chart, options = params.options;\n var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField;\n // 为 false 则是不显示轴\n if (xAxis === false) {\n chart.axis(xField, false);\n }\n else {\n chart.axis(xField, xAxis);\n }\n if (yAxis === false) {\n chart.axis(yField, false);\n }\n else {\n chart.axis(yField, yAxis);\n }\n return params;\n}\n/**\n * legend 配置\n * @param params\n */\nexport function legend(params) {\n var chart = params.chart, options = params.options;\n var legend = options.legend, seriesField = options.seriesField;\n if (legend && seriesField) {\n chart.legend(seriesField, legend);\n }\n else if (legend === false) {\n chart.legend(false);\n }\n return params;\n}\n/**\n * 数据标签\n * @param params\n */\nfunction label(params) {\n var chart = params.chart, options = params.options;\n var label = options.label, yField = options.yField, isRange = options.isRange;\n var geometry = findGeometry(chart, 'interval');\n if (!label) {\n geometry.label(false);\n }\n else {\n var callback = label.callback, cfg = __rest(label, [\"callback\"]);\n geometry.label({\n fields: [yField],\n callback: callback,\n cfg: __assign({ \n // 配置默认的 label layout: 如果用户没有指定 layout 和 position, 则自动配置 layout\n layout: (cfg === null || cfg === void 0 ? void 0 : cfg.position)\n ? undefined\n : [\n { type: 'interval-adjust-position' },\n { type: 'interval-hide-overlap' },\n { type: 'adjust-color' },\n { type: 'limit-in-plot', cfg: { action: 'hide' } },\n ] }, transformLabel(isRange\n ? __assign({ content: function (item) {\n var _a;\n return (_a = item[yField]) === null || _a === void 0 ? void 0 : _a.join('-');\n } }, cfg) : cfg)),\n });\n }\n return params;\n}\n/**\n * 柱形图 tooltip 配置 (对堆叠、分组做特殊处理)\n * @param params\n */\nfunction columnTooltip(params) {\n var chart = params.chart, options = params.options;\n var tooltip = options.tooltip, isGroup = options.isGroup, isStack = options.isStack, groupField = options.groupField, data = options.data, xField = options.xField, yField = options.yField, seriesField = options.seriesField;\n if (tooltip === false) {\n chart.tooltip(false);\n }\n else {\n var tooltipOptions = tooltip;\n // fix: https://github.com/antvis/G2Plot/issues/2572\n if (isGroup && isStack) {\n var customItems_1 = tooltipOptions.customItems;\n var tooltipFormatter_1 = (tooltipOptions === null || tooltipOptions === void 0 ? void 0 : tooltipOptions.formatter) ||\n (function (datum) { return ({ name: \"\".concat(datum[seriesField], \" - \").concat(datum[groupField]), value: datum[yField] }); });\n tooltipOptions = __assign(__assign({}, tooltipOptions), { customItems: function (originalItems) {\n var items = [];\n each(originalItems, function (item) {\n // Find datas in same cluster\n var datas = filter(data, function (d) { return isMatch(d, pick(item.data, [xField, seriesField])); });\n datas.forEach(function (datum) {\n items.push(__assign(__assign(__assign({}, item), { value: datum[yField], data: datum, mappingData: { _origin: datum } }), tooltipFormatter_1(datum)));\n });\n });\n // fix https://github.com/antvis/G2Plot/issues/3367\n return customItems_1 ? customItems_1(items) : items;\n } });\n }\n chart.tooltip(tooltipOptions);\n }\n return params;\n}\n/**\n * 柱形图适配器\n * @param params\n */\nexport function adaptor(params, isBar) {\n if (isBar === void 0) { isBar = false; }\n var options = params.options;\n var seriesField = options.seriesField;\n return flow(defaultOptions, // 处理默认配置\n theme, // theme 需要在 geometry 之前\n pattern('columnStyle'), state, transformations('rect'), geometry, meta, axis, legend, columnTooltip, slider, scrollbar, label, brushInteraction, interaction, animation, annotation(), conversionTag(options.yField, !isBar, !!seriesField), // 有拆分的时候禁用转化率\n connectedArea(!options.isStack), limitInPlot)(params);\n}\n//# sourceMappingURL=adaptor.js.map","import { __assign } from \"tslib\";\nimport { tooltip } from '../../adaptor/common';\nimport { deepAssign, flow } from '../../utils';\nimport { adaptor as columnAdaptor } from '../column/adaptor';\nexport { meta } from '../column/adaptor';\n/**\n * 处理默认配置项\n * 1. switch xField、 yField\n * 2. switch xAxis、 yAxis and adjust axis.position configuration\n */\nfunction defaultOptions(params) {\n var options = params.options;\n var xField = options.xField, yField = options.yField, xAxis = options.xAxis, yAxis = options.yAxis;\n var position = {\n left: 'bottom',\n right: 'top',\n top: 'left',\n bottom: 'right',\n };\n var verticalAxis = yAxis !== false\n ? __assign({ position: position[(yAxis === null || yAxis === void 0 ? void 0 : yAxis.position) || 'left'] }, yAxis) : false;\n var horizontalAxis = xAxis !== false\n ? __assign({ position: position[(xAxis === null || xAxis === void 0 ? void 0 : xAxis.position) || 'bottom'] }, xAxis) : false;\n return __assign(__assign({}, params), { options: __assign(__assign({}, options), { xField: yField, yField: xField, \n // 条形图 xAxis,yAxis 不可以做 deepAssign\n xAxis: verticalAxis, yAxis: horizontalAxis }) });\n}\n/**\n * label 适配器\n * @param params\n */\nfunction label(params) {\n var options = params.options;\n var label = options.label;\n // label of bar charts default position is left, if plot has label\n if (label && !label.position) {\n label.position = 'left';\n // 配置默认的 label layout: 如果用户没有指定 layout 和 position, 则自动配置 layout\n if (!label.layout) {\n label.layout = [\n { type: 'interval-adjust-position' },\n { type: 'interval-hide-overlap' },\n { type: 'adjust-color' },\n { type: 'limit-in-plot', cfg: { action: 'hide' } },\n ];\n }\n }\n return deepAssign({}, params, { options: { label: label } });\n}\n/**\n * legend 适配器\n * @param params\n */\nfunction legend(params) {\n var options = params.options;\n // 默认 legend 位置\n var seriesField = options.seriesField, isStack = options.isStack;\n var legend = options.legend;\n if (seriesField) {\n if (legend !== false) {\n legend = __assign({ position: isStack ? 'top-left' : 'right-top' }, (legend || {}));\n }\n }\n else {\n legend = false;\n }\n return deepAssign({}, params, { options: { legend: legend } });\n}\n/**\n * coordinate 适配器\n * @param params\n */\nfunction coordinate(params) {\n // transpose column to bar 对角变换 & y 方向镜像变换\n var options = params.options;\n var coordinateOptions = [{ type: 'transpose' }, { type: 'reflectY' }].concat(options.coordinate || []);\n return deepAssign({}, params, { options: { coordinate: coordinateOptions } });\n}\n/**\n * 柱形图适配器\n * @param params\n */\nexport function geometry(params) {\n var chart = params.chart, options = params.options;\n var barStyle = options.barStyle, barWidthRatio = options.barWidthRatio, minBarWidth = options.minBarWidth, maxBarWidth = options.maxBarWidth, barBackground = options.barBackground;\n return columnAdaptor({\n chart: chart,\n options: __assign(__assign({}, options), { \n // rename attrs as column\n columnStyle: barStyle, columnWidthRatio: barWidthRatio, minColumnWidth: minBarWidth, maxColumnWidth: maxBarWidth, columnBackground: barBackground }),\n }, true);\n}\n/**\n * @param chart\n * @param options\n */\nexport function adaptor(params) {\n // flow 的方式处理所有的配置到 G2 API\n return flow(defaultOptions, label, legend, tooltip, coordinate, geometry)(params);\n}\n//# sourceMappingURL=adaptor.js.map","import { Plot } from '../../core/plot';\nimport { deepAssign } from '../../utils';\n/**\n * 条形图默认配置项\n */\nexport var DEFAULT_OPTIONS = deepAssign({}, Plot.getDefaultOptions(), {\n barWidthRatio: 0.6,\n marginRatio: 1 / 32,\n tooltip: {\n shared: true,\n showMarkers: false,\n offset: 20,\n },\n legend: {\n radio: {},\n },\n interactions: [{ type: 'active-region' }],\n});\n//# sourceMappingURL=constants.js.map","var _a;\n// 漏斗占比: data[n][yField] / data[0][yField]\nexport var FUNNEL_PERCENT = '$$percentage$$';\n// 漏斗映射值\nexport var FUNNEL_MAPPING_VALUE = '$$mappingValue$$';\n// 漏斗转化率: data[n][yField] / data[n-1][yField];\nexport var FUNNEL_CONVERSATION = '$$conversion$$';\n// 漏斗单项占总体和的百分比,用于动态漏斗图计算高度:\n// data[n][yField] / sum(data[0-n][yField])\nexport var FUNNEL_TOTAL_PERCENT = '$$totalPercentage$$';\n// 漏斗多边型 x 坐标\nexport var PLOYGON_X = '$$x$$';\nexport var PLOYGON_Y = '$$y$$';\n/**\n * 漏斗图 默认配置项\n */\nexport var DEFAULT_OPTIONS = {\n appendPadding: [0, 80],\n minSize: 0,\n maxSize: 1,\n meta: (_a = {},\n _a[FUNNEL_MAPPING_VALUE] = {\n min: 0,\n max: 1,\n nice: false,\n },\n _a),\n label: {\n style: {\n fill: '#fff',\n fontSize: 12,\n },\n },\n tooltip: {\n showTitle: false,\n showMarkers: false,\n shared: false,\n },\n conversionTag: {\n offsetX: 10,\n offsetY: 0,\n style: {\n fontSize: 12,\n fill: 'rgba(0,0,0,0.45)',\n },\n },\n};\n//# sourceMappingURL=constant.js.map","import { __assign, __extends } from \"tslib\";\nimport { Plot } from '../../core/plot';\nimport { getDataWhetherPercentage } from '../../utils/transform/percent';\nimport { adaptor, meta } from './adaptor';\nimport { DEFAULT_OPTIONS } from './constants';\n/**\n * 条形图\n */\nvar Bar = /** @class */ (function (_super) {\n __extends(Bar, _super);\n function Bar() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /** 图表类型 */\n _this.type = 'bar';\n return _this;\n }\n /**\n * 获取 条形图 默认配置项\n * 供外部使用\n */\n Bar.getDefaultOptions = function () {\n return DEFAULT_OPTIONS;\n };\n /**\n * @override\n */\n Bar.prototype.changeData = function (data) {\n var _a, _b;\n this.updateOption({ data: data });\n var _c = this, chart = _c.chart, options = _c.options;\n var isPercent = options.isPercent;\n var xField = options.xField, yField = options.yField, xAxis = options.xAxis, yAxis = options.yAxis;\n _a = [yField, xField], xField = _a[0], yField = _a[1];\n _b = [yAxis, xAxis], xAxis = _b[0], yAxis = _b[1];\n var switchedFieldOptions = __assign(__assign({}, options), { xField: xField, yField: yField, yAxis: yAxis, xAxis: xAxis });\n meta({ chart: chart, options: switchedFieldOptions });\n chart.changeData(getDataWhetherPercentage(data, xField, yField, xField, isPercent));\n };\n /**\n * 获取 条形图 默认配置\n */\n Bar.prototype.getDefaultOptions = function () {\n return Bar.getDefaultOptions();\n };\n /**\n * 获取 条形图 的适配器\n */\n Bar.prototype.getSchemaAdaptor = function () {\n return adaptor;\n };\n return Bar;\n}(Plot));\nexport { Bar };\n//# sourceMappingURL=index.js.map","import { Plot } from '../../core/plot';\nimport { deepAssign } from '../../utils';\n/**\n * 柱形图默认配置项\n */\nexport var DEFAULT_OPTIONS = deepAssign({}, Plot.getDefaultOptions(), {\n columnWidthRatio: 0.6,\n marginRatio: 1 / 32,\n tooltip: {\n shared: true,\n showMarkers: false,\n offset: 20,\n },\n legend: {\n radio: {},\n },\n interactions: [{ type: 'active-region' }],\n});\n//# sourceMappingURL=constants.js.map","import { __extends } from \"tslib\";\nimport { Plot } from '../../core/plot';\nimport { getDataWhetherPercentage } from '../../utils/transform/percent';\nimport { adaptor, meta } from './adaptor';\nimport { DEFAULT_OPTIONS } from './constants';\n/**\n * 柱形图\n */\nvar Column = /** @class */ (function (_super) {\n __extends(Column, _super);\n function Column() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /** 图表类型 */\n _this.type = 'column';\n return _this;\n }\n /**\n * 获取 柱形图 默认配置项\n * 供外部使用\n */\n Column.getDefaultOptions = function () {\n return DEFAULT_OPTIONS;\n };\n /**\n * @override\n */\n Column.prototype.changeData = function (data) {\n this.updateOption({ data: data });\n var _a = this.options, yField = _a.yField, xField = _a.xField, isPercent = _a.isPercent;\n var _b = this, chart = _b.chart, options = _b.options;\n meta({ chart: chart, options: options });\n this.chart.changeData(getDataWhetherPercentage(data, yField, xField, yField, isPercent));\n };\n /**\n * 获取 柱形图 默认配置\n */\n Column.prototype.getDefaultOptions = function () {\n return Column.getDefaultOptions();\n };\n /**\n * 获取 柱形图 的适配器\n */\n Column.prototype.getSchemaAdaptor = function () {\n return adaptor;\n };\n return Column;\n}(Plot));\nexport { Column };\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { get, isFunction, isNumber, map, maxBy } from '@antv/util';\nimport { FUNNEL_CONVERSATION, FUNNEL_MAPPING_VALUE, FUNNEL_PERCENT } from '../constant';\nexport var CONVERSION_TAG_NAME = 'CONVERSION_TAG_NAME';\n/**\n * 漏斗图 transform\n * @param geometry\n */\nexport function transformData(data, originData, options) {\n var formatData = [];\n var yField = options.yField, maxSize = options.maxSize, minSize = options.minSize;\n var maxYFieldValue = get(maxBy(originData, yField), [yField]);\n var max = isNumber(maxSize) ? maxSize : 1;\n var min = isNumber(minSize) ? minSize : 0;\n // format 数据\n formatData = map(data, function (row, index) {\n var percent = (row[yField] || 0) / maxYFieldValue;\n row[FUNNEL_PERCENT] = percent;\n row[FUNNEL_MAPPING_VALUE] = (max - min) * percent + min;\n // 转化率数据存储前后数据\n row[FUNNEL_CONVERSATION] = [get(data, [index - 1, yField]), row[yField]];\n return row;\n });\n return formatData;\n}\n/**\n * 漏斗图通用转化率组件\n * @param getLineCoordinate 用于获取特定的 line 的位置及配置\n */\nexport function conversionTagComponent(getLineCoordinate) {\n return function (params) {\n var chart = params.chart, options = params.options;\n // @ts-ignore\n var conversionTag = options.conversionTag, filteredData = options.filteredData;\n var data = filteredData || chart.getOptions().data;\n if (conversionTag) {\n var formatter_1 = conversionTag.formatter;\n data.forEach(function (obj, index) {\n if (index <= 0 || Number.isNaN(obj[FUNNEL_MAPPING_VALUE]))\n return;\n var lineOption = getLineCoordinate(obj, index, data, {\n top: true,\n name: CONVERSION_TAG_NAME,\n text: {\n content: isFunction(formatter_1) ? formatter_1(obj, data) : formatter_1,\n offsetX: conversionTag.offsetX,\n offsetY: conversionTag.offsetY,\n position: 'end',\n autoRotate: false,\n style: __assign({ textAlign: 'start', textBaseline: 'middle' }, conversionTag.style),\n },\n });\n chart.annotation().line(lineOption);\n });\n }\n return params;\n };\n}\n//# sourceMappingURL=common.js.map","import { __assign } from \"tslib\";\nimport { get, isArray, map } from '@antv/util';\nimport { geometry as baseGeometry } from '../../../adaptor/geometries/base';\nimport { findGeometry, flow } from '../../../utils';\nimport { getTooltipMapping } from '../../../utils/tooltip';\nimport { FUNNEL_CONVERSATION, FUNNEL_MAPPING_VALUE, FUNNEL_PERCENT } from '../constant';\nimport { conversionTagComponent, transformData } from './common';\n/**\n * 处理字段数据\n * @param params\n */\nfunction field(params) {\n var chart = params.chart, options = params.options;\n var _a = options.data, data = _a === void 0 ? [] : _a, yField = options.yField, maxSize = options.maxSize, minSize = options.minSize;\n var formatData = transformData(data, data, {\n yField: yField,\n maxSize: maxSize,\n minSize: minSize,\n });\n // 绘制漏斗图\n chart.data(formatData);\n return params;\n}\n/**\n * geometry处理\n * @param params\n */\nfunction geometry(params) {\n var chart = params.chart, options = params.options;\n var xField = options.xField, yField = options.yField, color = options.color, tooltip = options.tooltip, label = options.label, _a = options.shape, shape = _a === void 0 ? 'funnel' : _a, funnelStyle = options.funnelStyle, state = options.state;\n var _b = getTooltipMapping(tooltip, [xField, yField]), fields = _b.fields, formatter = _b.formatter;\n baseGeometry({\n chart: chart,\n options: {\n type: 'interval',\n xField: xField,\n yField: FUNNEL_MAPPING_VALUE,\n colorField: xField,\n tooltipFields: isArray(fields) && fields.concat([FUNNEL_PERCENT, FUNNEL_CONVERSATION]),\n mapping: {\n shape: shape,\n tooltip: formatter,\n color: color,\n style: funnelStyle,\n },\n label: label,\n state: state,\n },\n });\n var geo = findGeometry(params.chart, 'interval');\n geo.adjust('symmetric');\n return params;\n}\n/**\n * 转置处理\n * @param params\n */\nfunction transpose(params) {\n var chart = params.chart, options = params.options;\n var isTransposed = options.isTransposed;\n chart.coordinate({\n type: 'rect',\n actions: !isTransposed ? [['transpose'], ['scale', 1, -1]] : [],\n });\n return params;\n}\n/**\n * 转化率组件\n * @param params\n */\nexport function conversionTag(params) {\n var options = params.options, chart = params.chart;\n var maxSize = options.maxSize;\n // 获取形状位置,再转化为需要的转化率位置\n var dataArray = get(chart, ['geometries', '0', 'dataArray'], []);\n var size = get(chart, ['options', 'data', 'length']);\n var x = map(dataArray, function (item) { return get(item, ['0', 'nextPoints', '0', 'x']) * size - 0.5; });\n var getLineCoordinate = function (datum, datumIndex, data, initLineOption) {\n var percent = maxSize - (maxSize - datum[FUNNEL_MAPPING_VALUE]) / 2;\n return __assign(__assign({}, initLineOption), { start: [x[datumIndex - 1] || datumIndex - 0.5, percent], end: [x[datumIndex - 1] || datumIndex - 0.5, percent + 0.05] });\n };\n conversionTagComponent(getLineCoordinate)(params);\n return params;\n}\n/**\n * 基础漏斗\n * @param chart\n * @param options\n */\nexport function basicFunnel(params) {\n return flow(field, geometry, transpose, conversionTag)(params);\n}\n//# sourceMappingURL=basic.js.map","import { get, isArray, isNumber, map } from '@antv/util';\nimport { geometry as baseGeometry } from '../../../adaptor/geometries/base';\nimport { deepAssign, flow } from '../../../utils';\nimport { getTooltipMapping } from '../../../utils/tooltip';\nimport { FUNNEL_CONVERSATION, FUNNEL_MAPPING_VALUE, FUNNEL_PERCENT } from '../constant';\nimport { conversionTagComponent, transformData } from './common';\n/**\n * 处理字段数据\n * @param params\n */\nfunction field(params) {\n var _a;\n var chart = params.chart, options = params.options;\n var _b = options.data, data = _b === void 0 ? [] : _b, yField = options.yField;\n // 绘制漏斗图\n chart.data(data);\n chart.scale((_a = {},\n _a[yField] = {\n sync: true,\n },\n _a));\n return params;\n}\n/**\n * geometry处理\n * @param params\n */\nfunction geometry(params) {\n var chart = params.chart, options = params.options;\n var data = options.data, xField = options.xField, yField = options.yField, color = options.color, compareField = options.compareField, isTransposed = options.isTransposed, tooltip = options.tooltip, maxSize = options.maxSize, minSize = options.minSize, label = options.label, funnelStyle = options.funnelStyle, state = options.state, showFacetTitle = options.showFacetTitle;\n chart.facet('mirror', {\n fields: [compareField],\n // 漏斗图的转置规则与分面相反,默认是垂直布局\n transpose: !isTransposed,\n padding: isTransposed ? 0 : [32, 0, 0, 0],\n showTitle: showFacetTitle,\n eachView: function (view, facet) {\n var index = isTransposed ? facet.rowIndex : facet.columnIndex;\n if (!isTransposed) {\n view.coordinate({\n type: 'rect',\n actions: [['transpose'], ['scale', index === 0 ? -1 : 1, -1]],\n });\n }\n var formatterData = transformData(facet.data, data, {\n yField: yField,\n maxSize: maxSize,\n minSize: minSize,\n });\n view.data(formatterData);\n // 绘制图形\n var _a = getTooltipMapping(tooltip, [xField, yField, compareField]), fields = _a.fields, formatter = _a.formatter;\n var defaultFacetLabel = isTransposed\n ? {\n offset: index === 0 ? 10 : -23,\n position: (index === 0 ? 'bottom' : 'top'),\n }\n : {\n offset: 10,\n position: 'left',\n style: {\n textAlign: index === 0 ? 'end' : 'start',\n },\n };\n baseGeometry({\n chart: view,\n options: {\n type: 'interval',\n xField: xField,\n yField: FUNNEL_MAPPING_VALUE,\n colorField: xField,\n tooltipFields: isArray(fields) && fields.concat([FUNNEL_PERCENT, FUNNEL_CONVERSATION]),\n mapping: {\n // todo 暂时不提供 金字塔 shape,后续需要自定义下形状\n shape: 'funnel',\n tooltip: formatter,\n color: color,\n style: funnelStyle,\n },\n label: label === false ? false : deepAssign({}, defaultFacetLabel, label),\n state: state,\n },\n });\n },\n });\n return params;\n}\nexport function compareConversionTag(params) {\n // @ts-ignore\n var chart = params.chart, index = params.index, options = params.options;\n var conversionTag = options.conversionTag, isTransposed = options.isTransposed;\n (isNumber(index) ? [chart] : chart.views).forEach(function (view, viewIndex) {\n // 获取形状位置,再转化为需要的转化率位置\n var dataArray = get(view, ['geometries', '0', 'dataArray'], []);\n var size = get(view, ['options', 'data', 'length']);\n var x = map(dataArray, function (item) { return get(item, ['0', 'nextPoints', '0', 'x']) * size - 0.5; });\n var getLineCoordinate = function (datum, datumIndex, data, initLineOption) {\n var ratio = (index || viewIndex) === 0 ? -1 : 1;\n return deepAssign({}, initLineOption, {\n start: [x[datumIndex - 1] || datumIndex - 0.5, datum[FUNNEL_MAPPING_VALUE]],\n end: [x[datumIndex - 1] || datumIndex - 0.5, datum[FUNNEL_MAPPING_VALUE] + 0.05],\n text: isTransposed\n ? {\n style: {\n textAlign: 'start',\n },\n }\n : {\n offsetX: conversionTag !== false ? ratio * conversionTag.offsetX : 0,\n style: {\n textAlign: (index || viewIndex) === 0 ? 'end' : 'start',\n },\n },\n });\n };\n conversionTagComponent(getLineCoordinate)(deepAssign({}, {\n chart: view,\n options: options,\n }));\n });\n}\n/**\n * 转化率组件\n * @param params\n */\nfunction conversionTag(params) {\n var chart = params.chart;\n // @ts-ignore\n chart.once('beforepaint', function () { return compareConversionTag(params); });\n return params;\n}\n/**\n * 对比漏斗\n * @param chart\n * @param options\n */\nexport function compareFunnel(params) {\n return flow(field, geometry, conversionTag)(params);\n}\n//# sourceMappingURL=compare.js.map","import { __assign } from \"tslib\";\nimport { get, isArray, map, maxBy, reduce } from '@antv/util';\nimport { geometry as baseGeometry } from '../../../adaptor/geometries/base';\nimport { flow } from '../../../utils';\nimport { getTooltipMapping } from '../../../utils/tooltip';\nimport { FUNNEL_CONVERSATION, FUNNEL_PERCENT, FUNNEL_TOTAL_PERCENT, PLOYGON_X, PLOYGON_Y } from '../constant';\nimport { conversionTagComponent } from './common';\n/**\n * 动态高度漏斗图\n * @param params\n * 需求: 每个漏斗项的高度根据 yfield 等比生成。漏斗上下宽度比为2,即斜率为 2。\n * 实现方式: 使用 g2 多边形,data -> 点坐标 -> 绘制\n * 以漏斗底部中心点为坐标轴原点,漏斗在 -0.5 <= x <= 0.5, 0 <= y <= 1 的正方形中绘制\n * 先计算第一象限的点, 第二象限的点即为镜像 x 轴取反。\n * 第一象限共需计算 data.length + 1 个点,在 y = 4x - 1 上。首尾分别是[0.5, 1], [0.25, 0]。根据 data 计算出 y 值,从而得到 y 值\n */\n/**\n * 处理数据\n * @param params\n */\nfunction field(params) {\n var chart = params.chart, options = params.options;\n var _a = options.data, data = _a === void 0 ? [] : _a, yField = options.yField;\n // 计算各数据项所占高度\n var sum = reduce(data, function (total, item) {\n return total + (item[yField] || 0);\n }, 0);\n var max = maxBy(data, yField)[yField];\n var formatData = map(data, function (row, index) {\n // 储存四个点 x,y 坐标,方向为顺时针,即 [左上, 右上,右下,左下]\n var x = [];\n var y = [];\n row[FUNNEL_TOTAL_PERCENT] = (row[yField] || 0) / sum;\n // 获取左上角,右上角坐标\n if (index) {\n var preItemX = data[index - 1][PLOYGON_X];\n var preItemY = data[index - 1][PLOYGON_Y];\n x[0] = preItemX[3];\n y[0] = preItemY[3];\n x[1] = preItemX[2];\n y[1] = preItemY[2];\n }\n else {\n x[0] = -0.5;\n y[0] = 1;\n x[1] = 0.5;\n y[1] = 1;\n }\n // 获取右下角坐标\n y[2] = y[1] - row[FUNNEL_TOTAL_PERCENT];\n x[2] = (y[2] + 1) / 4;\n y[3] = y[2];\n x[3] = -x[2];\n // 赋值\n row[PLOYGON_X] = x;\n row[PLOYGON_Y] = y;\n row[FUNNEL_PERCENT] = (row[yField] || 0) / max;\n row[FUNNEL_CONVERSATION] = [get(data, [index - 1, yField]), row[yField]];\n return row;\n });\n chart.data(formatData);\n return params;\n}\n/**\n * geometry处理\n * @param params\n */\nfunction geometry(params) {\n var chart = params.chart, options = params.options;\n var xField = options.xField, yField = options.yField, color = options.color, tooltip = options.tooltip, label = options.label, funnelStyle = options.funnelStyle, state = options.state;\n var _a = getTooltipMapping(tooltip, [xField, yField]), fields = _a.fields, formatter = _a.formatter;\n // 绘制漏斗图\n baseGeometry({\n chart: chart,\n options: {\n type: 'polygon',\n xField: PLOYGON_X,\n yField: PLOYGON_Y,\n colorField: xField,\n tooltipFields: isArray(fields) && fields.concat([FUNNEL_PERCENT, FUNNEL_CONVERSATION]),\n label: label,\n state: state,\n mapping: {\n tooltip: formatter,\n color: color,\n style: funnelStyle,\n },\n },\n });\n return params;\n}\n/**\n * 转置处理\n * @param params\n */\nfunction transpose(params) {\n var chart = params.chart, options = params.options;\n var isTransposed = options.isTransposed;\n chart.coordinate({\n type: 'rect',\n actions: isTransposed ? [['transpose'], ['reflect', 'x']] : [],\n });\n return params;\n}\n/**\n * 转化率组件\n * @param params\n */\nfunction conversionTag(params) {\n var getLineCoordinate = function (datum, datumIndex, data, initLineOption) {\n return __assign(__assign({}, initLineOption), { start: [datum[PLOYGON_X][1], datum[PLOYGON_Y][1]], end: [datum[PLOYGON_X][1] + 0.05, datum[PLOYGON_Y][1]] });\n };\n conversionTagComponent(getLineCoordinate)(params);\n return params;\n}\n/**\n * 动态高度漏斗\n * @param chart\n * @param options\n */\nexport function dynamicHeightFunnel(params) {\n return flow(field, geometry, transpose, conversionTag)(params);\n}\n//# sourceMappingURL=dynamic-height.js.map","import { deepAssign, flow } from '../../../utils';\nimport { basicFunnel } from './basic';\n/**\n * 处理字段数据\n * @param params\n */\nfunction field(params) {\n var _a;\n var chart = params.chart, options = params.options;\n var _b = options.data, data = _b === void 0 ? [] : _b, yField = options.yField;\n // 绘制漏斗图\n chart.data(data);\n chart.scale((_a = {},\n _a[yField] = {\n sync: true,\n },\n _a));\n return params;\n}\n/**\n * geometry处理\n * @param params\n */\nfunction geometry(params) {\n var chart = params.chart, options = params.options;\n var seriesField = options.seriesField, isTransposed = options.isTransposed, showFacetTitle = options.showFacetTitle;\n chart.facet('rect', {\n fields: [seriesField],\n padding: [isTransposed ? 0 : 32, 10, 0, 10],\n showTitle: showFacetTitle,\n eachView: function (view, facet) {\n basicFunnel(deepAssign({}, params, {\n chart: view,\n options: {\n data: facet.data,\n },\n }));\n },\n });\n return params;\n}\n/**\n * 分面漏斗\n * @param chart\n * @param options\n */\nexport function facetFunnel(params) {\n return flow(field, geometry)(params);\n}\n//# sourceMappingURL=facet.js.map","import { __assign, __extends } from \"tslib\";\nimport { Action } from '@antv/g2';\nimport { each, filter, get, map } from '@antv/util';\nimport { conversionTag as basicConversionTag } from '../geometries/basic';\nimport { CONVERSION_TAG_NAME, transformData } from '../geometries/common';\nimport { compareConversionTag } from '../geometries/compare';\n/**\n * Funnel 转化率跟随 legend 变化事件\n */\nvar ConversionTagAction = /** @class */ (function (_super) {\n __extends(ConversionTagAction, _super);\n function ConversionTagAction() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.rendering = false;\n return _this;\n }\n ConversionTagAction.prototype.change = function (options) {\n var _this = this;\n // 防止多次重复渲染\n if (!this.rendering) {\n var seriesField = options.seriesField, compareField = options.compareField;\n var conversionTag_1 = compareField ? compareConversionTag : basicConversionTag;\n var view = this.context.view;\n // 兼容分面漏斗图\n var views = seriesField || compareField ? view.views : [view];\n map(views, function (v, index) {\n // 防止影响其他 annotations 被去除\n var annotationController = v.getController('annotation');\n var annotations = filter(get(annotationController, ['option'], []), function (_a) {\n var name = _a.name;\n return name !== CONVERSION_TAG_NAME;\n });\n annotationController.clear(true);\n each(annotations, function (annotation) {\n if (typeof annotation === 'object') {\n v.annotation()[annotation.type](annotation);\n }\n });\n var data = get(v, ['filteredData'], v.getOptions().data);\n conversionTag_1({\n chart: v,\n index: index,\n options: __assign(__assign({}, options), { \n // @ts-ignore\n filteredData: transformData(data, data, options) }),\n });\n v.filterData(data);\n _this.rendering = true;\n v.render(true);\n });\n }\n this.rendering = false;\n };\n return ConversionTagAction;\n}(Action));\nexport { ConversionTagAction };\n//# sourceMappingURL=funnel-conversion-tag.js.map","import { registerAction, registerInteraction } from '@antv/g2';\nimport { ConversionTagAction } from './funnel-conversion-tag';\nvar FUNNEL_CONVERSION_TAG = 'funnel-conversion-tag';\nexport var FUNNEL_LEGEND_FILTER = 'funnel-afterrender';\nexport var interactionStart = { trigger: 'afterrender', action: \"\".concat(FUNNEL_CONVERSION_TAG, \":change\") };\nregisterAction(FUNNEL_CONVERSION_TAG, ConversionTagAction);\nregisterInteraction(FUNNEL_LEGEND_FILTER, {\n start: [interactionStart],\n});\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { clone, each, isFunction } from '@antv/util';\nimport { animation, annotation, scale, theme, tooltip } from '../../adaptor/common';\nimport { getLocale } from '../../core/locale';\nimport { deepAssign, flow } from '../../utils';\nimport { conversionTagFormatter } from '../../utils/conversion';\nimport { FUNNEL_CONVERSATION, FUNNEL_PERCENT } from './constant';\nimport { basicFunnel } from './geometries/basic';\nimport { compareFunnel } from './geometries/compare';\nimport { dynamicHeightFunnel } from './geometries/dynamic-height';\nimport { facetFunnel } from './geometries/facet';\nimport { FUNNEL_LEGEND_FILTER, interactionStart } from './interactions';\n/**\n *\n * 各式漏斗图geometry实现细节有较大不同,\n * 1. 普通漏斗图:interval.shape('funnel')\n * 2. 对比漏斗图:分面\n * 3. 动态高度漏斗图:polypon\n * 4. 分面漏斗图:普通 + list 分面\n* /\n\n/**\n * options 处理\n * @param params\n */\nfunction defaultOptions(params) {\n var options = params.options;\n var compareField = options.compareField, xField = options.xField, yField = options.yField, locale = options.locale, funnelStyle = options.funnelStyle, data = options.data;\n var i18n = getLocale(locale);\n var defaultOption = {\n label: compareField\n ? {\n fields: [xField, yField, compareField, FUNNEL_PERCENT, FUNNEL_CONVERSATION],\n formatter: function (datum) { return \"\".concat(datum[yField]); },\n }\n : {\n fields: [xField, yField, FUNNEL_PERCENT, FUNNEL_CONVERSATION],\n offset: 0,\n position: 'middle',\n formatter: function (datum) { return \"\".concat(datum[xField], \" \").concat(datum[yField]); },\n },\n tooltip: {\n title: xField,\n formatter: function (datum) {\n return { name: datum[xField], value: datum[yField] };\n },\n },\n conversionTag: {\n // conversionTag 的计算和显示逻辑统一保持一致\n formatter: function (datum) {\n return \"\".concat(i18n.get(['conversionTag', 'label']), \": \").concat(conversionTagFormatter.apply(void 0, datum[FUNNEL_CONVERSATION]));\n },\n },\n };\n // 漏斗图样式\n var style;\n if (compareField || funnelStyle) {\n style = function (datum) {\n return deepAssign({}, \n // 对比漏斗图默认描边\n compareField && { lineWidth: 1, stroke: '#fff' }, isFunction(funnelStyle) ? funnelStyle(datum) : funnelStyle);\n };\n }\n return deepAssign({ options: defaultOption }, params, { options: { funnelStyle: style, data: clone(data) } });\n}\n/**\n * geometry处理\n * @param params\n */\nfunction geometry(params) {\n var options = params.options;\n var compareField = options.compareField, dynamicHeight = options.dynamicHeight, seriesField = options.seriesField;\n if (seriesField) {\n return facetFunnel(params);\n }\n if (compareField) {\n return compareFunnel(params);\n }\n if (dynamicHeight) {\n return dynamicHeightFunnel(params);\n }\n return basicFunnel(params);\n}\n/**\n * meta 配置\n * @param params\n */\nexport function meta(params) {\n var _a;\n var options = params.options;\n var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField;\n return flow(scale((_a = {},\n _a[xField] = xAxis,\n _a[yField] = yAxis,\n _a)))(params);\n}\n/**\n * 坐标轴\n * @param params\n */\nfunction axis(params) {\n var chart = params.chart;\n chart.axis(false);\n return params;\n}\n/**\n * legend 配置\n * @param params\n */\nfunction legend(params) {\n var chart = params.chart, options = params.options;\n var legend = options.legend;\n if (legend === false) {\n chart.legend(false);\n }\n else {\n chart.legend(legend);\n // TODO FIX: legend-click 时间和转化率组件之间的关联\n }\n return params;\n}\n/**\n * Interaction 配置\n * @param params\n */\nexport function interaction(params) {\n var chart = params.chart, options = params.options;\n // @ts-ignore\n var interactions = options.interactions, dynamicHeight = options.dynamicHeight;\n each(interactions, function (i) {\n if (i.enable === false) {\n chart.removeInteraction(i.type);\n }\n else {\n chart.interaction(i.type, i.cfg || {});\n }\n });\n // 动态高度 不进行交互操作\n if (!dynamicHeight) {\n chart.interaction(FUNNEL_LEGEND_FILTER, {\n start: [__assign(__assign({}, interactionStart), { arg: options })],\n });\n }\n else {\n chart.removeInteraction(FUNNEL_LEGEND_FILTER);\n }\n return params;\n}\n/**\n * 漏斗图适配器\n * @param chart\n * @param options\n */\nexport function adaptor(params) {\n return flow(defaultOptions, geometry, meta, axis, tooltip, interaction, legend, animation, theme, annotation())(params);\n}\n//# sourceMappingURL=adaptor.js.map","import { __extends } from \"tslib\";\nimport { each } from '@antv/util';\nimport { Plot } from '../../core/plot';\nimport { getAllElementsRecursively } from '../../utils';\nimport { adaptor } from './adaptor';\nimport { DEFAULT_OPTIONS, FUNNEL_CONVERSATION as FUNNEL_CONVERSATION_FIELD, FUNNEL_PERCENT, FUNNEL_TOTAL_PERCENT, } from './constant';\nimport './interactions';\nexport { FUNNEL_CONVERSATION_FIELD };\nvar Funnel = /** @class */ (function (_super) {\n __extends(Funnel, _super);\n function Funnel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /** 图表类型 */\n _this.type = 'funnel';\n return _this;\n }\n Funnel.getDefaultOptions = function () {\n return DEFAULT_OPTIONS;\n };\n /**\n * 获取 漏斗图 默认配置项\n */\n Funnel.prototype.getDefaultOptions = function () {\n // 由于不同漏斗图 defaultOption 有部分逻辑不同,此处仅处理 core.getDefaultOptions 覆盖范围,funnel 的 defaulOption 为不分散逻辑统一写到 adaptor 的 defaultOption 中\n return Funnel.getDefaultOptions();\n };\n /**\n * 获取 漏斗图 的适配器\n */\n Funnel.prototype.getSchemaAdaptor = function () {\n return adaptor;\n };\n /**\n * 设置状态\n * @param type 状态类型,支持 'active' | 'inactive' | 'selected' 三种\n * @param conditions 条件,支持数组\n * @param status 是否激活,默认 true\n */\n Funnel.prototype.setState = function (type, condition, status) {\n if (status === void 0) { status = true; }\n var elements = getAllElementsRecursively(this.chart);\n each(elements, function (ele) {\n if (condition(ele.getData())) {\n ele.setState(type, status);\n }\n });\n };\n /**\n * 获取状态\n */\n Funnel.prototype.getStates = function () {\n var elements = getAllElementsRecursively(this.chart);\n var stateObjects = [];\n each(elements, function (element) {\n var data = element.getData();\n var states = element.getStates();\n each(states, function (state) {\n stateObjects.push({ data: data, state: state, geometry: element.geometry, element: element });\n });\n });\n return stateObjects;\n };\n // 内部变量\n /** 漏斗 转化率 字段 */\n Funnel.CONVERSATION_FIELD = FUNNEL_CONVERSATION_FIELD;\n /** 漏斗 百分比 字段 */\n Funnel.PERCENT_FIELD = FUNNEL_PERCENT;\n /** 漏斗 总转换率百分比 字段 */\n Funnel.TOTAL_PERCENT_FIELD = FUNNEL_TOTAL_PERCENT;\n return Funnel;\n}(Plot));\nexport { Funnel };\n//# sourceMappingURL=index.js.map","var _a;\nexport var RANGE_VALUE = 'range';\nexport var RANGE_TYPE = 'type';\nexport var PERCENT = 'percent';\nexport var DEFAULT_COLOR = '#f0f0f0';\n/** 仪表盘由 指针和表盘 组成 */\nexport var INDICATEOR_VIEW_ID = 'indicator-view';\nexport var RANGE_VIEW_ID = 'range-view';\n/**\n * 仪表盘默认配置项\n */\nexport var DEFAULT_OPTIONS = {\n percent: 0,\n range: {\n ticks: [],\n },\n innerRadius: 0.9,\n radius: 0.95,\n startAngle: (-7 / 6) * Math.PI,\n endAngle: (1 / 6) * Math.PI,\n syncViewPadding: true,\n axis: {\n line: null,\n label: {\n offset: -24,\n style: {\n textAlign: 'center',\n textBaseline: 'middle',\n },\n },\n subTickLine: {\n length: -8,\n },\n tickLine: {\n length: -12,\n },\n grid: null,\n },\n indicator: {\n pointer: {\n style: {\n lineWidth: 5,\n lineCap: 'round',\n },\n },\n pin: {\n style: {\n r: 9.75,\n lineWidth: 4.5,\n fill: '#fff',\n },\n },\n },\n statistic: {\n title: false,\n },\n meta: (_a = {},\n // 两个 view 的 scale 同步到 v 上\n _a[RANGE_VALUE] = {\n sync: 'v',\n },\n _a[PERCENT] = {\n sync: 'v',\n tickCount: 5,\n tickInterval: 0.2,\n },\n _a),\n animation: false,\n};\n//# sourceMappingURL=constants.js.map","import { clamp, get, size, uniq } from '@antv/util';\nimport { PERCENT, RANGE_TYPE, RANGE_VALUE } from './constants';\n/**\n * 将 range 生成为 data 数据\n * @param range\n * @param key\n * @returns {GaugeRangeData}\n */\nexport function processRangeData(range, percent) {\n return (range\n // 映射为 stack 的数据\n .map(function (r, idx) {\n var _a;\n return _a = {}, _a[RANGE_VALUE] = r - (range[idx - 1] || 0), _a[RANGE_TYPE] = \"\".concat(idx), _a[PERCENT] = percent, _a;\n }));\n}\n/**\n * 获取 仪表盘 指针数据\n * @param percent\n */\nexport function getIndicatorData(percent) {\n var _a;\n return [(_a = {}, _a[PERCENT] = clamp(percent, 0, 1), _a)];\n}\n/**\n * 获取仪表盘 表盘弧形数据\n * @param percent\n * @param range\n */\nexport function getRangeData(percent, range) {\n var ticks = get(range, ['ticks'], []);\n var clampTicks = size(ticks) ? uniq(ticks) : [0, clamp(percent, 0, 1), 1];\n if (!clampTicks[0]) {\n clampTicks.shift();\n }\n return processRangeData(clampTicks, percent);\n}\n//# sourceMappingURL=utils.js.map","import { __assign } from \"tslib\";\nimport { get, isString } from '@antv/util';\nimport { animation, annotation, interaction, scale, theme } from '../../adaptor/common';\nimport { interval } from '../../adaptor/geometries';\nimport { AXIS_META_CONFIG_KEYS } from '../../constant';\nimport { deepAssign, flow, pick, renderGaugeStatistic } from '../../utils';\nimport { DEFAULT_COLOR, INDICATEOR_VIEW_ID, PERCENT, RANGE_TYPE, RANGE_VALUE, RANGE_VIEW_ID } from './constants';\nimport { getIndicatorData, getRangeData } from './utils';\n/**\n * geometry 处理\n * @param params\n */\nfunction geometry(params) {\n var chart = params.chart, options = params.options;\n var percent = options.percent, range = options.range, radius = options.radius, innerRadius = options.innerRadius, startAngle = options.startAngle, endAngle = options.endAngle, axis = options.axis, indicator = options.indicator, gaugeStyle = options.gaugeStyle, type = options.type, meter = options.meter;\n var color = range.color, rangeWidth = range.width;\n // 指标 & 指针\n // 如果开启在应用\n if (indicator) {\n var indicatorData = getIndicatorData(percent);\n var v1 = chart.createView({ id: INDICATEOR_VIEW_ID });\n v1.data(indicatorData);\n v1.point()\n .position(\"\".concat(PERCENT, \"*1\"))\n .shape(indicator.shape || 'gauge-indicator')\n // 传入指针的样式到自定义 shape 中\n .customInfo({\n defaultColor: chart.getTheme().defaultColor,\n indicator: indicator,\n });\n v1.coordinate('polar', {\n startAngle: startAngle,\n endAngle: endAngle,\n radius: innerRadius * radius, // 外部的 innerRadius * radius = 这里的 radius\n });\n v1.axis(PERCENT, axis);\n // 一部分应用到 scale 中\n v1.scale(PERCENT, pick(axis, AXIS_META_CONFIG_KEYS));\n }\n // 辅助 range\n // [{ range: 1, type: '0', percent: 原始进度百分比 }]\n var rangeData = getRangeData(percent, options.range);\n var v2 = chart.createView({ id: RANGE_VIEW_ID });\n v2.data(rangeData);\n var rangeColor = isString(color) ? [color, DEFAULT_COLOR] : color;\n var ext = interval({\n chart: v2,\n options: {\n xField: '1',\n yField: RANGE_VALUE,\n seriesField: RANGE_TYPE,\n rawFields: [PERCENT],\n isStack: true,\n interval: {\n color: rangeColor,\n style: gaugeStyle,\n shape: type === 'meter' ? 'meter-gauge' : null,\n },\n args: {\n zIndexReversed: true,\n sortZIndex: true,\n },\n minColumnWidth: rangeWidth,\n maxColumnWidth: rangeWidth,\n },\n }).ext;\n var geometry = ext.geometry;\n // 传入到自定义 shape 中\n geometry.customInfo({ meter: meter });\n v2.coordinate('polar', {\n innerRadius: innerRadius,\n radius: radius,\n startAngle: startAngle,\n endAngle: endAngle,\n }).transpose();\n return params;\n}\n/**\n * meta 配置\n * @param params\n */\nfunction meta(params) {\n var _a;\n return flow(scale((_a = {\n range: {\n min: 0,\n max: 1,\n maxLimit: 1,\n minLimit: 0,\n }\n },\n _a[PERCENT] = {},\n _a)))(params);\n}\n/**\n * 统计指标文档\n * @param params\n */\nfunction statistic(params, updated) {\n var chart = params.chart, options = params.options;\n var statistic = options.statistic, percent = options.percent;\n // 先清空标注,再重新渲染\n chart.getController('annotation').clear(true);\n if (statistic) {\n var contentOption = statistic.content;\n var transformContent = void 0;\n // 当设置 content 的时候,设置默认样式\n if (contentOption) {\n transformContent = deepAssign({}, {\n content: \"\".concat((percent * 100).toFixed(2), \"%\"),\n style: {\n opacity: 0.75,\n fontSize: '30px',\n lineHeight: 1,\n textAlign: 'center',\n color: 'rgba(44,53,66,0.85)',\n },\n }, contentOption);\n }\n renderGaugeStatistic(chart, { statistic: __assign(__assign({}, statistic), { content: transformContent }) }, { percent: percent });\n }\n if (updated) {\n chart.render(true);\n }\n return params;\n}\n/**\n * tooltip 配置\n */\nfunction tooltip(params) {\n var chart = params.chart, options = params.options;\n var tooltip = options.tooltip;\n if (tooltip) {\n chart.tooltip(deepAssign({\n showTitle: false,\n showMarkers: false,\n containerTpl: '