From 06cd2ea5f91c66d25d8accdc771074a7962a51d2 Mon Sep 17 00:00:00 2001 From: 100pah Date: Sat, 30 May 2026 16:23:58 +0800 Subject: [PATCH] fixRegression: Fix #21586. (1). Remove some verbose and unnecessary code. (2). Remove the breaking change to `visualMap[type='continuous'].formatter: function () {}` - not necessary, and that breaking change can cause the existing lables display incorrectly when labels touch. (3). Switch to a more comprehensive implementation - adjust the positions of the two labels to avoid overlap. The previous approach (merging two labels) may occupy extra horizontal space and may unexpectedly cause overlap with other content. (4). Add visual test for `visualMap[type='continuous']` --- src/component/visualMap/ContinuousView.ts | 185 +++++++----------- src/component/visualMap/VisualMapModel.ts | 5 + test/runTest/actions/__meta__.json | 1 + .../runTest/actions/visualMap-continuous.json | 1 + test/visualMap-continuous.html | 9 +- 5 files changed, 87 insertions(+), 114 deletions(-) create mode 100644 test/runTest/actions/visualMap-continuous.json diff --git a/src/component/visualMap/ContinuousView.ts b/src/component/visualMap/ContinuousView.ts index ef6776e7fe..939707b5c8 100644 --- a/src/component/visualMap/ContinuousView.ts +++ b/src/component/visualMap/ContinuousView.ts @@ -22,7 +22,7 @@ import LinearGradient, { LinearGradientObject } from 'zrender/src/graphic/Linear import * as eventTool from 'zrender/src/core/event'; import VisualMapView from './VisualMapView'; import * as graphic from '../../util/graphic'; -import * as numberUtil from '../../util/number'; +import {linearMap, mathMax, mathMin, mathPI} from '../../util/number'; import sliderMove from '../helper/sliderMove'; import * as helper from './helper'; import * as modelUtil from '../../util/model'; @@ -42,10 +42,6 @@ import { createTextStyle } from '../../label/labelStyle'; import { findEventDispatcher } from '../../util/event'; import BoundingRect from 'zrender/src/core/BoundingRect'; -const linearMap = numberUtil.linearMap; -const each = zrUtil.each; -const mathMin = Math.min; -const mathMax = Math.max; // Arbitrary value const HOVER_LINK_SIZE = 12; @@ -53,6 +49,12 @@ const HOVER_LINK_OUT = 6; /** Pixels to inflate handle label bounds when testing overlap (merge slightly before touching). */ const HANDLE_LABEL_MERGE_MARGIN = 2; +const elInner = modelUtil.makeInner<{ + hdlIdx: ContinuousVisualMapHandleIndex +}, Element>(); + +type ContinuousVisualMapHandleIndex = 0 | 1 | 'all'; + type Orient = VisualMapModel['option']['orient']; type ShapeStorage = { @@ -111,8 +113,6 @@ class ContinuousView extends VisualMapView { private _firstShowIndicator: boolean; - /** Whether the two handle value labels are merged into one (overlap). */ - private _handleLabelsMerged: boolean | undefined; init(ecModel: GlobalModel, api: ExtensionAPI) { super.init(ecModel, api); @@ -134,7 +134,6 @@ class ContinuousView extends VisualMapView { private _buildView() { this.group.removeAll(); - this._handleLabelsMerged = undefined; const visualMapModel = this.visualMapModel; const thisGroup = this.group; @@ -223,10 +222,9 @@ class ContinuousView extends VisualMapView { gradientBarGroup.add(shapes.outOfRange = createPolygon()); gradientBarGroup.add(shapes.inRange = createPolygon( null, - useHandle ? getCursor(this._orient) : null, - zrUtil.bind(this._dragHandle, this, 'all', false), - zrUtil.bind(this._dragHandle, this, 'all', true) + useHandle ? getCursor(this._orient) : null )); + this._mountDrag(shapes.inRange, 'all'); // A border radius clip. gradientBarGroup.setClipPath(new graphic.Rect({ @@ -265,8 +263,6 @@ class ContinuousView extends VisualMapView { textSize: number, orient: Orient ) { - const onDrift = zrUtil.bind(this._dragHandle, this, handleIndex, false); - const onDragEnd = zrUtil.bind(this._dragHandle, this, handleIndex, true); const handleSize = parsePercent(visualMapModel.get('handleSize'), itemSize[0]); const handleThumb = createSymbol( visualMapModel.get('handleIcon'), @@ -276,13 +272,11 @@ class ContinuousView extends VisualMapView { const cursor = getCursor(this._orient); handleThumb.attr({ cursor: cursor, - draggable: true, - drift: onDrift, - ondragend: onDragEnd, onmousemove(e) { eventTool.stop(e.event); } }); + this._mountDrag(handleThumb, handleIndex); handleThumb.x = itemSize[0] / 2; handleThumb.useStyle(visualMapModel.getModel('handleStyle').getItemStyle()); @@ -304,19 +298,17 @@ class ContinuousView extends VisualMapView { const textStyleModel = this.visualMapModel.textStyleModel; const handleLabel = new graphic.Text({ cursor: cursor, - draggable: true, - drift: onDrift, onmousemove(e) { // For mobile device, prevent screen slider on the button. eventTool.stop(e.event); }, - ondragend: onDragEnd, style: createTextStyle(textStyleModel, { x: 0, y: 0, text: '' }) }); + this._mountDrag(handleLabel, handleIndex); handleLabel.ensureState('blur').style = { opacity: 0.1 }; @@ -324,11 +316,9 @@ class ContinuousView extends VisualMapView { this.group.add(handleLabel); - const handleLabelPoint = [handleSize, 0]; - const shapes = this._shapes; shapes.handleThumbs[handleIndex] = handleThumb; - shapes.handleLabelPoints[handleIndex] = handleLabelPoint; + shapes.handleLabelPoints[handleIndex] = [handleSize, 0]; shapes.handleLabels[handleIndex] = handleLabel; } @@ -392,8 +382,17 @@ class ContinuousView extends VisualMapView { this._firstShowIndicator = true; } + private _mountDrag(el: Element, handleIndex: ContinuousVisualMapHandleIndex): void { + el.attr({ + draggable: true, + drift: zrUtil.bind(this._dragHandle, this, el, false), + ondragend: zrUtil.bind(this._dragHandle, this, el, true), + }); + elInner(el).hdlIdx = handleIndex; + } + private _dragHandle( - handleIndex: 0 | 1 | 'all', + sourceEl: Element, isEnd?: boolean, // dx is event from ondragend if isEnd is true. It's not used dx?: number | ElementEvent, @@ -403,6 +402,10 @@ class ContinuousView extends VisualMapView { return; } + const handleIndex = elInner(sourceEl).hdlIdx; + if (__DEV__) { + zrUtil.assert(handleIndex != null); + } this._dragging = !isEnd; if (!isEnd) { @@ -457,7 +460,7 @@ class ContinuousView extends VisualMapView { * @param {number} dx * @param {number} dy */ - private _updateInterval(handleIndex: 0 | 1 | 'all', delta: number) { + private _updateInterval(handleIndex: ContinuousVisualMapHandleIndex, delta: number) { delta = delta || 0; const visualMapModel = this.visualMapModel; const handleEnds = this._handleEnds; @@ -589,28 +592,23 @@ class ContinuousView extends VisualMapView { } private _createBarGroup(itemAlign: helper.ItemAlign) { - const orient = this._orient; + const isVertical = this._orient === 'vertical'; + const isItemAlignButtom = itemAlign === 'bottom'; + const isItemAlignLeft = itemAlign === 'left'; const inverse = this.visualMapModel.get('inverse'); return new graphic.Group( - (orient === 'horizontal' && !inverse) - ? {scaleX: itemAlign === 'bottom' ? 1 : -1, rotation: Math.PI / 2} - : (orient === 'horizontal' && inverse) - ? {scaleX: itemAlign === 'bottom' ? -1 : 1, rotation: -Math.PI / 2} - : (orient === 'vertical' && !inverse) - ? {scaleX: itemAlign === 'left' ? 1 : -1, scaleY: -1} - : {scaleX: itemAlign === 'left' ? 1 : -1} + (!isVertical && !inverse) + ? {scaleX: isItemAlignButtom ? 1 : -1, rotation: mathPI / 2} + : (!isVertical && inverse) + ? {scaleX: isItemAlignButtom ? -1 : 1, rotation: -mathPI / 2} + : (isVertical && !inverse) + ? {scaleX: isItemAlignLeft ? 1 : -1, scaleY: -1} + // isVertical && inverse + : {scaleX: isItemAlignLeft ? 1 : -1} ); } - private _getHandleLabelRectInGroup(label: graphic.Text): BoundingRect { - const local = label.getBoundingRect(); - const rect = new BoundingRect(0, 0, 0, 0); - const m = graphic.getTransform(label, this.group); - BoundingRect.applyTransform(rect, local, m); - return rect; - } - private _updateHandle(handleEnds: number[], visualInRange: BarVisual) { if (!this._useHandle) { return; @@ -622,11 +620,14 @@ class ContinuousView extends VisualMapView { const handleLabels = shapes.handleLabels; const itemSize = visualMapModel.itemSize; const dataExtent = visualMapModel.getExtent(); - const align = this._applyTransform('left', shapes.mainGroup); - const textPoints: [number, number][] = []; - - each( - [0, 1], + const barGroup = shapes.mainGroup; + const align = this._applyTransform('left', barGroup); + const isVertical = this._orient === 'vertical'; + const textPosPair: graphic.Point[] = []; + const textRectPair: BoundingRect[] = []; + + zrUtil.each( + [0, 1] as const, function (handleIndex) { const handleThumb = handleThumbs[handleIndex]; handleThumb.setStyle('fill', visualInRange.handlesColor[handleIndex]); @@ -649,7 +650,7 @@ class ContinuousView extends VisualMapView { graphic.getTransform(handleThumb, this.group), ); - if (this._orient === 'horizontal') { + if (!isVertical) { // If visualMap controls symbol size, an additional offset needs to be added to labels to avoid collision at minimum size. // Offset reaches value of 0 at "maximum" position, so maximum position is not altered at all. const minimumOffset = @@ -660,78 +661,45 @@ class ContinuousView extends VisualMapView { textPoint[1] += minimumOffset; } - textPoints[handleIndex] = [textPoint[0], textPoint[1]]; - handleLabels[handleIndex].setStyle({ x: textPoint[0], y: textPoint[1], text: visualMapModel.formatValueText(this._dataInterval[handleIndex]), verticalAlign: 'middle', align: - this._orient === 'vertical' - ? (this._applyTransform('left', shapes.mainGroup) as TextAlign) + isVertical + ? (this._applyTransform('left', barGroup) as TextAlign) : 'center', }); + elInner(handleLabels[handleIndex]).hdlIdx = handleIndex; // May be updated if previously overlapped. + + textPosPair[handleIndex] = new graphic.Point(textPoint[0], textPoint[1]); + textRectPair[handleIndex] = handleLabels[handleIndex].getBoundingRect().clone(); + graphic.expandOrShrinkRect(textRectPair[handleIndex], HANDLE_LABEL_MERGE_MARGIN, false, true); }, this, ); - const rect0 = this._getHandleLabelRectInGroup(handleLabels[0]); - const rect1 = this._getHandleLabelRectInGroup(handleLabels[1]); - const margin = HANDLE_LABEL_MERGE_MARGIN; - const inflated0 = { - x: rect0.x - margin, - y: rect0.y - margin, - width: rect0.width + margin * 2, - height: rect0.height + margin * 2, - }; - const inflated1 = { - x: rect1.x - margin, - y: rect1.y - margin, - width: rect1.width + margin * 2, - height: rect1.height + margin * 2, - }; - const labelsOverlap = BoundingRect.intersect(inflated0, inflated1); - - if (labelsOverlap) { - const midX = (textPoints[0][0] + textPoints[1][0]) / 2; - const midY = (textPoints[0][1] + textPoints[1][1]) / 2; - handleLabels[0].setStyle({ - x: midX, - y: midY, - text: visualMapModel.formatValueText(this._dataInterval), - verticalAlign: 'middle', - align: - this._orient === 'vertical' - ? (this._applyTransform('left', shapes.mainGroup) as TextAlign) - : 'center', - }); - handleLabels[1].attr({ - invisible: true, - silent: true, - draggable: false, - }); - } - else { - handleLabels[1].attr({ - invisible: false, - silent: false, - draggable: true, - }); - } - - if (labelsOverlap !== this._handleLabelsMerged) { - this._handleLabelsMerged = labelsOverlap; - if (labelsOverlap) { - handleLabels[0].drift = zrUtil.bind(this._dragHandle, this, 'all', false); - handleLabels[0].ondragend = zrUtil.bind(this._dragHandle, this, 'all', true); - } - else { - handleLabels[0].drift = zrUtil.bind(this._dragHandle, this, 0, false); - handleLabels[0].ondragend = zrUtil.bind(this._dragHandle, this, 0, true); - handleLabels[1].drift = zrUtil.bind(this._dragHandle, this, 1, false); - handleLabels[1].ondragend = zrUtil.bind(this._dragHandle, this, 1, true); + const mtv = new graphic.Point(); + const directionVec = this._applyTransform([0, 1], barGroup); + const labelsOverlap = BoundingRect.intersect( + textRectPair[0], + textRectPair[1], + mtv, + { + direction: Math.atan2(directionVec[1], directionVec[0]), + bidirectional: false, } + ); + if (labelsOverlap) { + textPosPair[0].scaleAndAdd(mtv, -0.5); + textPosPair[1].scaleAndAdd(mtv, 0.5); + handleLabels[0].setStyle(textPosPair[0]); + handleLabels[1].setStyle(textPosPair[1]); + // When two handles are too close, the bar is difficult to hit, so dragging in + // 'all' mode becomes hard to trigger. Therefore, we provide another way for + // that -- switch labels dragging to 'all' mode. + elInner(handleLabels[0]).hdlIdx = elInner(handleLabels[1]).hdlIdx = 'all'; } } @@ -1020,19 +988,14 @@ class ContinuousView extends VisualMapView { function createPolygon( points?: number[][], cursor?: string, - onDrift?: (x: number, y: number) => void, - onDragEnd?: () => void ) { return new graphic.Polygon({ - shape: {points: points}, - draggable: !!onDrift, + shape: {points}, cursor: cursor, - drift: onDrift, onmousemove(e) { // For mobile device, prevent screen slider on the button. eventTool.stop(e.event); }, - ondragend: onDragEnd }); } diff --git a/src/component/visualMap/VisualMapModel.ts b/src/component/visualMap/VisualMapModel.ts index 843387a465..26262e975f 100644 --- a/src/component/visualMap/VisualMapModel.ts +++ b/src/component/visualMap/VisualMapModel.ts @@ -331,6 +331,11 @@ class VisualMapModel extends Com } /** + * [CAVEAT] + * For `visualMap.type: 'continuous'`, the input `value` can only be an `number[]`. + * For `visualMap.type: 'piecewise'`, the input `value` can only be an `number | string`. + * Otherwise a breaking change will be introduced to `visualMap.formatter: function() {}`. + * * @example * this.formatValueText(someVal); // format single numeric value to text. * this.formatValueText(someVal, true); // format single category value to text. diff --git a/test/runTest/actions/__meta__.json b/test/runTest/actions/__meta__.json index c0dc3b70db..ace1711f51 100644 --- a/test/runTest/actions/__meta__.json +++ b/test/runTest/actions/__meta__.json @@ -264,6 +264,7 @@ "universalTransition2": 3, "universalTransition3": 2, "visualMap-categories": 1, + "visualMap-continuous": 7, "visualMap-multi-continuous": 1, "visualMap-on-data": 1, "visualMap-selectMode": 2 diff --git a/test/runTest/actions/visualMap-continuous.json b/test/runTest/actions/visualMap-continuous.json new file mode 100644 index 0000000000..59229906aa --- /dev/null +++ b/test/runTest/actions/visualMap-continuous.json @@ -0,0 +1 @@ +[{"name":"Action 1","ops":[{"type":"mousemove","time":581,"x":774,"y":340},{"type":"mousemove","time":789,"x":713,"y":365},{"type":"mousemove","time":996,"x":512,"y":363},{"type":"mousemove","time":1206,"x":493,"y":368},{"type":"mousemove","time":1379,"x":492,"y":369},{"type":"mousemove","time":1579,"x":370,"y":467},{"type":"mousemove","time":1780,"x":293,"y":515},{"type":"mousemove","time":2003,"x":295,"y":540},{"type":"mousemove","time":2204,"x":304,"y":541},{"type":"mousemove","time":2412,"x":307,"y":541},{"type":"mousedown","time":2627,"x":307,"y":541},{"type":"mousemove","time":2652,"x":307,"y":541},{"type":"mousemove","time":2853,"x":357,"y":540},{"type":"mousemove","time":3061,"x":400,"y":534},{"type":"mousemove","time":3261,"x":408,"y":533},{"type":"mouseup","time":3361,"x":408,"y":533},{"time":3362,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":3374,"x":416,"y":537},{"type":"mousemove","time":3574,"x":451,"y":542},{"type":"mousemove","time":3794,"x":466,"y":532},{"type":"mousemove","time":4012,"x":482,"y":534},{"type":"mousemove","time":4213,"x":485,"y":534},{"type":"mousemove","time":4425,"x":490,"y":533},{"type":"mousemove","time":4626,"x":490,"y":533},{"type":"mousedown","time":4809,"x":490,"y":533},{"type":"mousemove","time":4827,"x":490,"y":533},{"type":"mousemove","time":5029,"x":451,"y":535},{"type":"mousemove","time":5235,"x":432,"y":535},{"type":"mousemove","time":5440,"x":413,"y":534},{"type":"mousemove","time":5659,"x":399,"y":534},{"type":"mousemove","time":5872,"x":388,"y":535},{"type":"mousemove","time":6072,"x":382,"y":536},{"type":"mousemove","time":6290,"x":381,"y":536},{"type":"mousemove","time":6466,"x":380,"y":536},{"type":"mousemove","time":6679,"x":386,"y":536},{"type":"mousemove","time":6890,"x":401,"y":535},{"type":"mousemove","time":7115,"x":418,"y":534},{"type":"mousemove","time":7342,"x":421,"y":534},{"type":"mouseup","time":7399,"x":421,"y":534},{"time":7400,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":7447,"x":400,"y":541},{"type":"mousemove","time":7654,"x":379,"y":545},{"type":"mousemove","time":7878,"x":376,"y":544},{"type":"mousedown","time":8198,"x":376,"y":544},{"type":"mousemove","time":8224,"x":377,"y":544},{"type":"mousemove","time":8425,"x":403,"y":544},{"type":"mousemove","time":8633,"x":422,"y":544},{"type":"mousemove","time":8839,"x":433,"y":544},{"type":"mousemove","time":9040,"x":441,"y":544},{"type":"mousemove","time":9253,"x":454,"y":543},{"type":"mousemove","time":9460,"x":454,"y":542},{"type":"mousemove","time":9672,"x":433,"y":546},{"type":"mousemove","time":9877,"x":417,"y":547},{"type":"mousemove","time":10079,"x":384,"y":548},{"type":"mousemove","time":10282,"x":369,"y":548},{"type":"mousemove","time":10500,"x":367,"y":548},{"type":"mouseup","time":10596,"x":367,"y":548},{"time":10597,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":10609,"x":387,"y":537},{"type":"mousemove","time":10810,"x":676,"y":425},{"type":"mousemove","time":11023,"x":720,"y":394},{"type":"mousemove","time":11234,"x":756,"y":371},{"type":"mousedown","time":11293,"x":757,"y":371},{"type":"mouseup","time":11377,"x":757,"y":371},{"time":11378,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":11443,"x":757,"y":371}],"scrollY":74,"scrollX":0,"timestamp":1780127159369},{"name":"Action 2","ops":[{"type":"mousemove","time":564,"x":381,"y":261},{"type":"mousemove","time":765,"x":182,"y":204},{"type":"mousemove","time":1005,"x":226,"y":191},{"type":"mousemove","time":1208,"x":250,"y":157},{"type":"mousemove","time":1414,"x":289,"y":133},{"type":"mousemove","time":1615,"x":301,"y":104},{"type":"mousemove","time":1828,"x":341,"y":55},{"type":"mousemove","time":2032,"x":335,"y":37},{"type":"mousedown","time":2128,"x":335,"y":34},{"type":"mousemove","time":2242,"x":335,"y":34},{"type":"mouseup","time":2256,"x":335,"y":34},{"time":2257,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":2487,"x":409,"y":48},{"type":"mousemove","time":2688,"x":412,"y":46},{"type":"mousedown","time":2864,"x":418,"y":37},{"type":"mousemove","time":2935,"x":418,"y":37},{"type":"mouseup","time":2993,"x":418,"y":37},{"time":2994,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":3115,"x":416,"y":37},{"type":"mousemove","time":3323,"x":347,"y":37},{"type":"mousemove","time":3528,"x":330,"y":36},{"type":"mousedown","time":3592,"x":329,"y":36},{"type":"mouseup","time":3693,"x":329,"y":36},{"time":3694,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":3741,"x":335,"y":36},{"type":"mousemove","time":3942,"x":420,"y":40},{"type":"mousedown","time":4063,"x":420,"y":39},{"type":"mousemove","time":4171,"x":420,"y":39},{"type":"mouseup","time":4183,"x":420,"y":39},{"time":4184,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":4405,"x":143,"y":159},{"type":"mousemove","time":4612,"x":111,"y":146},{"type":"mousemove","time":4843,"x":82,"y":130},{"type":"mousemove","time":5043,"x":55,"y":135},{"type":"mousedown","time":5535,"x":55,"y":135},{"type":"mousemove","time":5557,"x":55,"y":137},{"type":"mousemove","time":5766,"x":57,"y":181},{"type":"mousemove","time":6001,"x":58,"y":196},{"type":"mousemove","time":6232,"x":59,"y":216},{"type":"mouseup","time":6335,"x":59,"y":216},{"time":6336,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":6373,"x":55,"y":241},{"type":"mousemove","time":6574,"x":54,"y":263},{"type":"mousedown","time":6726,"x":54,"y":263},{"type":"mousemove","time":6755,"x":54,"y":263},{"type":"mousemove","time":6956,"x":55,"y":234},{"type":"mousemove","time":7176,"x":56,"y":211},{"type":"mousemove","time":7394,"x":57,"y":191},{"type":"mousemove","time":7607,"x":57,"y":191},{"type":"mouseup","time":7646,"x":57,"y":191},{"time":7647,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":7814,"x":58,"y":382},{"type":"mousemove","time":8014,"x":55,"y":398},{"type":"mousemove","time":8221,"x":55,"y":415},{"type":"mousemove","time":8421,"x":55,"y":415},{"type":"mousedown","time":8610,"x":55,"y":415},{"type":"mousemove","time":8643,"x":55,"y":415},{"type":"mousemove","time":8844,"x":59,"y":322},{"type":"mousemove","time":9070,"x":61,"y":299},{"type":"mousemove","time":9303,"x":62,"y":294},{"type":"mousemove","time":9412,"x":62,"y":295},{"type":"mousemove","time":9613,"x":66,"y":332},{"type":"mousemove","time":9829,"x":69,"y":385},{"type":"mousemove","time":10029,"x":69,"y":400},{"type":"mousemove","time":10252,"x":68,"y":422},{"type":"mouseup","time":10446,"x":68,"y":422},{"time":10447,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":10462,"x":65,"y":411},{"type":"mousemove","time":10662,"x":53,"y":348},{"type":"mousemove","time":10876,"x":53,"y":332},{"type":"mousemove","time":11198,"x":53,"y":320},{"type":"mousemove","time":11398,"x":56,"y":291},{"type":"mousemove","time":11601,"x":56,"y":268},{"type":"mousemove","time":11802,"x":56,"y":264},{"type":"mousemove","time":11975,"x":58,"y":249},{"type":"mousemove","time":12176,"x":63,"y":192},{"type":"mousemove","time":12400,"x":64,"y":142},{"type":"mousemove","time":12613,"x":73,"y":141},{"type":"mousemove","time":12826,"x":83,"y":140},{"type":"mousemove","time":13032,"x":87,"y":142},{"type":"mousedown","time":13327,"x":87,"y":142},{"type":"mousemove","time":13345,"x":87,"y":142},{"type":"mousemove","time":13556,"x":89,"y":201},{"type":"mousemove","time":13756,"x":90,"y":223},{"type":"mousemove","time":13960,"x":90,"y":221},{"type":"mousemove","time":14161,"x":90,"y":208},{"type":"mouseup","time":14336,"x":90,"y":208},{"time":14337,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":14373,"x":90,"y":234},{"type":"mousemove","time":14576,"x":88,"y":367},{"type":"mousemove","time":14793,"x":88,"y":376},{"type":"mousemove","time":14808,"x":84,"y":389},{"type":"mousemove","time":15017,"x":85,"y":415},{"type":"mousemove","time":15218,"x":88,"y":412},{"type":"mousedown","time":15578,"x":88,"y":412},{"type":"mousemove","time":15590,"x":88,"y":413},{"type":"mouseup","time":15644,"x":88,"y":413},{"time":15645,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":15791,"x":87,"y":416},{"type":"mousemove","time":16009,"x":86,"y":418},{"type":"mousedown","time":16229,"x":86,"y":418},{"type":"mousemove","time":16246,"x":86,"y":417},{"type":"mousemove","time":16460,"x":88,"y":320},{"type":"mousemove","time":16661,"x":89,"y":315},{"type":"mousemove","time":16809,"x":89,"y":314},{"type":"mousemove","time":17010,"x":87,"y":238},{"type":"mousemove","time":17229,"x":89,"y":212},{"type":"mousemove","time":17429,"x":89,"y":200},{"type":"mousemove","time":17649,"x":90,"y":191},{"type":"mousemove","time":17869,"x":90,"y":186},{"type":"mousemove","time":18070,"x":92,"y":198},{"type":"mousemove","time":18295,"x":94,"y":216},{"type":"mousemove","time":18512,"x":93,"y":246},{"type":"mousemove","time":18721,"x":93,"y":248},{"type":"mouseup","time":18934,"x":93,"y":248},{"time":18935,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":18972,"x":92,"y":235},{"type":"mousemove","time":19175,"x":92,"y":229},{"type":"mousemove","time":19441,"x":92,"y":232},{"type":"mousedown","time":19662,"x":92,"y":232},{"type":"mousemove","time":19681,"x":92,"y":232},{"type":"mousemove","time":19882,"x":92,"y":217},{"type":"mousemove","time":20109,"x":92,"y":212},{"type":"mouseup","time":20229,"x":92,"y":212},{"time":20230,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":20268,"x":81,"y":215},{"type":"mousemove","time":20469,"x":63,"y":219},{"type":"mousemove","time":20694,"x":62,"y":216},{"type":"mousedown","time":21012,"x":62,"y":216},{"type":"mousemove","time":21059,"x":62,"y":212},{"type":"mousemove","time":21267,"x":65,"y":181},{"type":"mousemove","time":21487,"x":66,"y":174},{"type":"mousemove","time":21709,"x":68,"y":166},{"type":"mouseup","time":21977,"x":68,"y":166},{"time":21978,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":22020,"x":81,"y":168},{"type":"mousemove","time":22221,"x":85,"y":165},{"type":"mousemove","time":22435,"x":87,"y":162},{"type":"mousedown","time":22527,"x":87,"y":162},{"type":"mousemove","time":22574,"x":87,"y":164},{"type":"mousemove","time":22776,"x":88,"y":189},{"type":"mousemove","time":22976,"x":89,"y":197},{"type":"mousemove","time":23176,"x":89,"y":199},{"type":"mousemove","time":23395,"x":89,"y":189},{"type":"mousemove","time":23616,"x":89,"y":181},{"type":"mousemove","time":23835,"x":90,"y":197},{"type":"mousemove","time":24061,"x":90,"y":214},{"type":"mousemove","time":24262,"x":90,"y":221},{"type":"mousemove","time":24482,"x":90,"y":226},{"type":"mousemove","time":24748,"x":90,"y":226},{"type":"mousemove","time":24949,"x":91,"y":213},{"type":"mousemove","time":25179,"x":91,"y":209},{"type":"mouseup","time":25239,"x":91,"y":209},{"time":25240,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":25278,"x":76,"y":221},{"type":"mousemove","time":25479,"x":63,"y":227},{"type":"mousemove","time":25698,"x":61,"y":224},{"type":"mousemove","time":26380,"x":61,"y":224},{"type":"mousemove","time":26589,"x":59,"y":224},{"type":"mousedown","time":26762,"x":59,"y":224},{"type":"mousemove","time":26780,"x":59,"y":224},{"type":"mousemove","time":26986,"x":64,"y":254},{"type":"mousemove","time":27222,"x":64,"y":258},{"type":"mousemove","time":27483,"x":65,"y":259},{"type":"mouseup","time":27618,"x":65,"y":259},{"time":27619,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":27664,"x":162,"y":306},{"type":"mousemove","time":27865,"x":181,"y":309},{"type":"mousemove","time":27983,"x":193,"y":307},{"type":"mousemove","time":28191,"x":315,"y":298},{"type":"mousemove","time":28415,"x":332,"y":291}],"scrollY":715.5,"scrollX":0,"timestamp":1780127236483},{"name":"Action 3","ops":[{"type":"mousemove","time":534,"x":721,"y":310},{"type":"mousemove","time":750,"x":563,"y":258},{"type":"mousemove","time":953,"x":559,"y":245},{"type":"mousemove","time":1159,"x":500,"y":228},{"type":"mousedown","time":1269,"x":497,"y":228},{"type":"mouseup","time":1369,"x":497,"y":228},{"time":1370,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":1402,"x":497,"y":228},{"type":"mousemove","time":1530,"x":503,"y":229},{"type":"mousemove","time":1752,"x":549,"y":236},{"type":"mousemove","time":1953,"x":545,"y":278},{"type":"mousemove","time":2158,"x":469,"y":352},{"type":"mousemove","time":2361,"x":496,"y":314},{"type":"mousemove","time":2575,"x":526,"y":267},{"type":"mousedown","time":2695,"x":525,"y":264},{"type":"mouseup","time":2780,"x":524,"y":264},{"time":2781,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":2826,"x":524,"y":264},{"type":"mousemove","time":3054,"x":519,"y":265},{"type":"mousemove","time":3274,"x":219,"y":385},{"type":"mousemove","time":3584,"x":222,"y":372},{"type":"mousemove","time":3793,"x":471,"y":282},{"type":"mousemove","time":4001,"x":478,"y":267},{"type":"mousemove","time":4218,"x":472,"y":238},{"type":"mousedown","time":4267,"x":471,"y":234},{"type":"mouseup","time":4404,"x":471,"y":234},{"time":4405,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":4451,"x":471,"y":234},{"type":"mousemove","time":4652,"x":210,"y":349},{"type":"mousemove","time":4856,"x":359,"y":352},{"type":"mousemove","time":5059,"x":368,"y":343},{"type":"mousemove","time":5278,"x":146,"y":344},{"type":"mousemove","time":5482,"x":75,"y":342},{"type":"mousemove","time":5682,"x":47,"y":331},{"type":"mousemove","time":5896,"x":44,"y":325},{"type":"mousemove","time":6099,"x":43,"y":319},{"type":"mousemove","time":6322,"x":43,"y":315},{"type":"mousedown","time":6568,"x":43,"y":315},{"type":"mousemove","time":6630,"x":43,"y":319},{"type":"mousemove","time":6832,"x":40,"y":386},{"type":"mousemove","time":7051,"x":40,"y":392},{"type":"mousemove","time":7326,"x":41,"y":394},{"type":"mouseup","time":7355,"x":41,"y":394},{"time":7356,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":7369,"x":38,"y":406},{"type":"mousemove","time":7572,"x":31,"y":432},{"type":"mousemove","time":7797,"x":30,"y":448},{"type":"mousedown","time":8101,"x":30,"y":448},{"type":"mousemove","time":8148,"x":30,"y":446},{"type":"mousemove","time":8397,"x":36,"y":419},{"type":"mousemove","time":8639,"x":38,"y":415},{"type":"mouseup","time":8721,"x":38,"y":415},{"time":8722,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":8855,"x":51,"y":458},{"type":"mousemove","time":9073,"x":66,"y":456},{"type":"mousemove","time":9281,"x":48,"y":490},{"type":"mousemove","time":9481,"x":38,"y":502},{"type":"mousemove","time":9690,"x":43,"y":478},{"type":"mousemove","time":9903,"x":599,"y":165},{"type":"mousemove","time":10104,"x":621,"y":189},{"type":"mousedown","time":10294,"x":586,"y":212},{"type":"mousemove","time":10313,"x":586,"y":212},{"type":"mouseup","time":10389,"x":586,"y":212},{"time":10390,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":10551,"x":576,"y":228},{"type":"mousemove","time":10764,"x":311,"y":364},{"type":"mousemove","time":10980,"x":325,"y":356},{"type":"mousemove","time":11183,"x":483,"y":287},{"type":"mousemove","time":11389,"x":551,"y":214},{"type":"mousedown","time":11507,"x":553,"y":209},{"type":"mouseup","time":11608,"x":553,"y":209},{"time":11609,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":11624,"x":553,"y":210},{"type":"mousemove","time":11830,"x":139,"y":468},{"type":"mousemove","time":12053,"x":139,"y":464},{"type":"mousemove","time":12261,"x":134,"y":415},{"type":"mousemove","time":12475,"x":18,"y":490},{"type":"mousemove","time":12680,"x":25,"y":490},{"type":"mousemove","time":12887,"x":35,"y":481},{"type":"mousemove","time":13120,"x":36,"y":481},{"type":"mousedown","time":13314,"x":36,"y":481},{"type":"mousemove","time":13365,"x":36,"y":481},{"type":"mousemove","time":13570,"x":51,"y":411},{"type":"mousemove","time":13800,"x":52,"y":404},{"type":"mousemove","time":14057,"x":45,"y":482},{"type":"mousemove","time":14270,"x":41,"y":514},{"type":"mousemove","time":14476,"x":40,"y":529},{"type":"mousemove","time":14726,"x":39,"y":538},{"type":"mouseup","time":14815,"x":39,"y":538},{"time":14816,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":14957,"x":55,"y":426},{"type":"mousemove","time":15166,"x":38,"y":372},{"type":"mousemove","time":15371,"x":37,"y":362},{"type":"mousemove","time":15586,"x":38,"y":362},{"type":"mousedown","time":15833,"x":38,"y":362},{"type":"mousemove","time":15881,"x":38,"y":362},{"type":"mousemove","time":16143,"x":47,"y":312},{"type":"mousemove","time":16367,"x":49,"y":306},{"type":"mouseup","time":16567,"x":49,"y":305},{"time":16568,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":16581,"x":52,"y":318},{"type":"mousemove","time":16799,"x":59,"y":351},{"type":"mousemove","time":16999,"x":56,"y":354},{"type":"mousemove","time":17202,"x":53,"y":346},{"type":"mousemove","time":17402,"x":48,"y":322},{"type":"mousemove","time":17606,"x":503,"y":293},{"type":"mousemove","time":17815,"x":527,"y":240},{"type":"mousedown","time":18015,"x":525,"y":192},{"type":"mousemove","time":18034,"x":525,"y":191},{"type":"mouseup","time":18070,"x":525,"y":191},{"time":18071,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":18247,"x":277,"y":412},{"type":"mousemove","time":18449,"x":253,"y":434},{"type":"mousemove","time":18658,"x":478,"y":280},{"type":"mousemove","time":18864,"x":124,"y":345},{"type":"mousemove","time":19098,"x":91,"y":384},{"type":"mousemove","time":19313,"x":41,"y":393},{"type":"mousemove","time":19524,"x":40,"y":411},{"type":"mousemove","time":19727,"x":40,"y":434},{"type":"mousemove","time":19929,"x":40,"y":443},{"type":"mousemove","time":20134,"x":40,"y":423},{"type":"mousemove","time":20372,"x":41,"y":345},{"type":"mousemove","time":20518,"x":41,"y":345},{"type":"mousemove","time":20727,"x":44,"y":325},{"type":"mousemove","time":20948,"x":360,"y":340},{"type":"mousemove","time":21166,"x":318,"y":373},{"type":"mousemove","time":21395,"x":316,"y":381},{"type":"mousemove","time":21605,"x":328,"y":375},{"type":"mousemove","time":21814,"x":498,"y":258},{"type":"mousemove","time":22017,"x":510,"y":243},{"type":"mousemove","time":22233,"x":522,"y":237},{"type":"mousemove","time":22446,"x":446,"y":223},{"type":"mousemove","time":22647,"x":406,"y":228},{"type":"mousemove","time":22866,"x":131,"y":411},{"type":"mousemove","time":23091,"x":115,"y":426},{"type":"mousemove","time":23298,"x":90,"y":499},{"type":"mousemove","time":23504,"x":81,"y":515},{"type":"mousedown","time":23964,"x":81,"y":515},{"type":"mousemove","time":24006,"x":81,"y":515},{"type":"mousemove","time":24211,"x":84,"y":441},{"type":"mousemove","time":24435,"x":84,"y":441},{"type":"mouseup","time":24475,"x":84,"y":441},{"time":24476,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":24638,"x":80,"y":363},{"type":"mousemove","time":24861,"x":78,"y":334},{"type":"mousemove","time":25066,"x":79,"y":322},{"type":"mousemove","time":25287,"x":79,"y":311},{"type":"mousemove","time":25498,"x":79,"y":312},{"type":"mousedown","time":25648,"x":79,"y":312},{"type":"mousemove","time":25688,"x":79,"y":312},{"type":"mousemove","time":25888,"x":68,"y":415},{"type":"mousemove","time":26116,"x":68,"y":433},{"type":"mousemove","time":26320,"x":68,"y":436},{"type":"mousemove","time":26556,"x":68,"y":437},{"type":"mousemove","time":26653,"x":69,"y":437},{"type":"mousemove","time":26864,"x":69,"y":437},{"type":"mouseup","time":26965,"x":69,"y":437},{"time":26966,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":26981,"x":61,"y":440},{"type":"mousemove","time":27188,"x":38,"y":442},{"type":"mousemove","time":27417,"x":38,"y":439},{"type":"mousedown","time":27732,"x":38,"y":439},{"type":"mousemove","time":27772,"x":38,"y":439},{"type":"mousemove","time":28028,"x":41,"y":404},{"type":"mouseup","time":28198,"x":41,"y":404},{"time":28199,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":28239,"x":35,"y":434},{"type":"mousemove","time":28453,"x":34,"y":449},{"type":"mousedown","time":28882,"x":34,"y":449},{"type":"mousemove","time":28921,"x":34,"y":449},{"type":"mousemove","time":29122,"x":39,"y":413},{"type":"mousemove","time":29370,"x":40,"y":407},{"type":"mousemove","time":29628,"x":42,"y":403},{"type":"mousemove","time":29835,"x":41,"y":387},{"type":"mousemove","time":30048,"x":36,"y":371},{"type":"mousemove","time":30182,"x":36,"y":371},{"type":"mousemove","time":30436,"x":42,"y":400},{"type":"mousemove","time":30636,"x":43,"y":410},{"type":"mousemove","time":30881,"x":44,"y":423},{"type":"mousemove","time":31082,"x":44,"y":424},{"type":"mouseup","time":31281,"x":44,"y":424},{"time":31282,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":31296,"x":55,"y":419},{"type":"mousemove","time":31502,"x":158,"y":371},{"type":"mousemove","time":31729,"x":171,"y":364}],"scrollY":1356.5,"scrollX":0,"timestamp":1780127280012},{"name":"Action 4","ops":[{"type":"mousemove","time":1446,"x":777,"y":460},{"type":"mousemove","time":1660,"x":444,"y":530},{"type":"mousemove","time":1862,"x":404,"y":561},{"type":"mousemove","time":2064,"x":375,"y":563},{"type":"mousedown","time":2237,"x":363,"y":564},{"type":"mousemove","time":2281,"x":363,"y":564},{"type":"mouseup","time":2335,"x":363,"y":564},{"time":2336,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":2497,"x":365,"y":564},{"type":"mousemove","time":2711,"x":398,"y":565},{"type":"mousedown","time":2896,"x":415,"y":570},{"type":"mousemove","time":2953,"x":416,"y":570},{"type":"mouseup","time":2976,"x":416,"y":570},{"time":2977,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":3368,"x":415,"y":570},{"type":"mousemove","time":3576,"x":298,"y":508},{"type":"mousemove","time":3779,"x":309,"y":531},{"type":"mousemove","time":3991,"x":320,"y":552},{"type":"mousedown","time":4208,"x":354,"y":564},{"type":"mousemove","time":4220,"x":354,"y":564},{"type":"mouseup","time":4308,"x":354,"y":564},{"time":4309,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":4432,"x":371,"y":564},{"type":"mousemove","time":4636,"x":435,"y":564},{"type":"mousedown","time":4727,"x":435,"y":564},{"type":"mouseup","time":4846,"x":435,"y":564},{"time":4847,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":4883,"x":435,"y":564},{"type":"mousemove","time":5096,"x":272,"y":435},{"type":"mousemove","time":5309,"x":220,"y":378},{"type":"mousemove","time":5515,"x":98,"y":197},{"type":"mousemove","time":5728,"x":92,"y":152},{"type":"mousemove","time":5928,"x":55,"y":103},{"type":"mousemove","time":6134,"x":42,"y":95},{"type":"mousemove","time":6362,"x":40,"y":95},{"type":"mousedown","time":6610,"x":40,"y":95},{"type":"mousemove","time":6632,"x":40,"y":96},{"type":"mousemove","time":6856,"x":47,"y":149},{"type":"mousemove","time":7076,"x":45,"y":163},{"type":"mousemove","time":7292,"x":43,"y":150},{"type":"mouseup","time":7347,"x":43,"y":150},{"time":7348,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":7580,"x":201,"y":362},{"type":"mousemove","time":7781,"x":286,"y":548},{"type":"mousemove","time":7993,"x":302,"y":570},{"type":"mousemove","time":8194,"x":298,"y":574},{"type":"mousedown","time":8260,"x":295,"y":571},{"type":"mouseup","time":8334,"x":295,"y":571},{"time":8335,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":8418,"x":295,"y":571},{"type":"mousemove","time":8551,"x":298,"y":571},{"type":"mousemove","time":8766,"x":507,"y":559},{"type":"mousedown","time":8939,"x":513,"y":558},{"type":"mousemove","time":8987,"x":513,"y":558},{"type":"mouseup","time":9032,"x":513,"y":558},{"time":9033,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":9187,"x":498,"y":563},{"type":"mousedown","time":9315,"x":498,"y":563},{"type":"mouseup","time":9406,"x":498,"y":563},{"time":9407,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":9496,"x":491,"y":563},{"type":"mousemove","time":9700,"x":441,"y":562},{"type":"mousedown","time":9751,"x":440,"y":562},{"type":"mouseup","time":9850,"x":440,"y":562},{"time":9851,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":9916,"x":440,"y":562},{"type":"mousemove","time":10015,"x":438,"y":562},{"type":"mousemove","time":10227,"x":381,"y":562},{"type":"mousedown","time":10362,"x":368,"y":562},{"type":"mousemove","time":10445,"x":368,"y":562},{"type":"mouseup","time":10492,"x":368,"y":562},{"time":10493,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":10671,"x":319,"y":570},{"type":"mousedown","time":10848,"x":302,"y":567},{"type":"mousemove","time":10895,"x":302,"y":567},{"type":"mouseup","time":10971,"x":302,"y":567},{"time":10972,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":11098,"x":347,"y":567},{"type":"mousedown","time":11253,"x":364,"y":567},{"type":"mousemove","time":11312,"x":364,"y":567},{"type":"mouseup","time":11343,"x":364,"y":567},{"time":11344,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":11538,"x":403,"y":567},{"type":"mousedown","time":11752,"x":418,"y":567},{"type":"mousemove","time":11797,"x":418,"y":567},{"type":"mouseup","time":11846,"x":418,"y":567},{"time":11847,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":12015,"x":461,"y":572},{"type":"mousedown","time":12250,"x":481,"y":572},{"type":"mousemove","time":12267,"x":481,"y":572},{"type":"mouseup","time":12420,"x":481,"y":572},{"time":12421,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":12580,"x":481,"y":572},{"type":"mousemove","time":12781,"x":481,"y":571},{"type":"mousemove","time":12984,"x":481,"y":565},{"type":"mousemove","time":13184,"x":481,"y":560},{"type":"mousemove","time":13399,"x":394,"y":384},{"type":"mousemove","time":13610,"x":281,"y":207},{"type":"mousemove","time":13849,"x":224,"y":205},{"type":"mousemove","time":13868,"x":200,"y":188},{"type":"mousemove","time":14078,"x":21,"y":81},{"type":"mousemove","time":14283,"x":21,"y":78},{"type":"mousemove","time":14497,"x":38,"y":87},{"type":"mousemove","time":14711,"x":38,"y":91},{"type":"mousemove","time":14927,"x":38,"y":91},{"type":"mousedown","time":15110,"x":38,"y":91},{"type":"mousemove","time":15133,"x":38,"y":92},{"type":"mousemove","time":15341,"x":39,"y":157},{"type":"mousemove","time":15549,"x":39,"y":168},{"type":"mousemove","time":15758,"x":41,"y":189},{"type":"mouseup","time":16331,"x":41,"y":189},{"time":16332,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":16346,"x":41,"y":193},{"type":"mousemove","time":16560,"x":41,"y":205},{"type":"mousemove","time":16794,"x":41,"y":209},{"type":"mousedown","time":16893,"x":41,"y":209},{"type":"mousemove","time":16916,"x":41,"y":199},{"type":"mousemove","time":17128,"x":45,"y":168},{"type":"mouseup","time":17438,"x":45,"y":168},{"time":17439,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":17454,"x":43,"y":181},{"type":"mousemove","time":17680,"x":39,"y":221},{"type":"mousemove","time":17891,"x":36,"y":251},{"type":"mousemove","time":18093,"x":36,"y":251},{"type":"mousemove","time":18321,"x":36,"y":251},{"type":"mousedown","time":18350,"x":36,"y":251},{"type":"mousemove","time":18371,"x":36,"y":250},{"type":"mousemove","time":18595,"x":42,"y":185},{"type":"mousemove","time":18821,"x":43,"y":139},{"type":"mousemove","time":19063,"x":43,"y":137},{"type":"mousemove","time":19278,"x":44,"y":158},{"type":"mousemove","time":19500,"x":44,"y":168},{"type":"mousemove","time":19703,"x":43,"y":210},{"type":"mousemove","time":19912,"x":43,"y":211},{"type":"mouseup","time":19927,"x":43,"y":211},{"time":19928,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":19943,"x":44,"y":193},{"type":"mousemove","time":20146,"x":47,"y":132},{"type":"mousemove","time":20364,"x":43,"y":137},{"type":"mousemove","time":20608,"x":42,"y":134},{"type":"mousemove","time":20811,"x":42,"y":134},{"type":"mousedown","time":20855,"x":42,"y":134},{"type":"mousemove","time":20879,"x":42,"y":136},{"type":"mousemove","time":21099,"x":42,"y":226},{"type":"mousemove","time":21317,"x":42,"y":236},{"type":"mousemove","time":21539,"x":39,"y":207},{"type":"mousemove","time":21749,"x":38,"y":195},{"type":"mouseup","time":22020,"x":38,"y":195},{"time":22021,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":22037,"x":52,"y":197},{"type":"mousemove","time":22249,"x":66,"y":198},{"type":"mousemove","time":22464,"x":67,"y":196},{"type":"mousedown","time":22676,"x":66,"y":196},{"type":"mousemove","time":22698,"x":66,"y":196},{"type":"mousemove","time":22901,"x":69,"y":248},{"type":"mousemove","time":23103,"x":70,"y":255},{"type":"mousemove","time":23304,"x":70,"y":250},{"type":"mousemove","time":23527,"x":67,"y":216},{"type":"mousemove","time":23750,"x":67,"y":192},{"type":"mousemove","time":23957,"x":66,"y":175},{"type":"mousemove","time":24190,"x":65,"y":175},{"type":"mouseup","time":24225,"x":65,"y":175},{"time":24226,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":24241,"x":57,"y":178},{"type":"mousemove","time":24449,"x":44,"y":184},{"type":"mousemove","time":24650,"x":43,"y":188},{"type":"mousemove","time":24871,"x":43,"y":189},{"type":"mousedown","time":25130,"x":43,"y":189},{"type":"mousemove","time":25152,"x":43,"y":191},{"type":"mousemove","time":25362,"x":40,"y":259},{"type":"mousemove","time":25586,"x":40,"y":280},{"type":"mousemove","time":25800,"x":42,"y":287},{"type":"mouseup","time":25965,"x":42,"y":287},{"time":25966,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":25981,"x":127,"y":284},{"type":"mousemove","time":26182,"x":751,"y":85},{"type":"mousemove","time":26390,"x":740,"y":43},{"type":"mousemove","time":26606,"x":705,"y":29},{"type":"mousemove","time":26810,"x":688,"y":20},{"type":"mousedown","time":26889,"x":688,"y":18},{"type":"mouseup","time":26987,"x":688,"y":18},{"time":26988,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":27050,"x":688,"y":19},{"type":"mousemove","time":27250,"x":685,"y":29},{"type":"mousemove","time":27452,"x":658,"y":52},{"type":"mousemove","time":27683,"x":371,"y":227},{"type":"mousemove","time":27888,"x":367,"y":227},{"type":"mousemove","time":28095,"x":94,"y":234},{"type":"mousemove","time":28309,"x":50,"y":198},{"type":"mousemove","time":28514,"x":28,"y":276},{"type":"mousemove","time":28726,"x":28,"y":288},{"type":"mousemove","time":28956,"x":34,"y":289},{"type":"mousedown","time":29293,"x":34,"y":289},{"type":"mousemove","time":29319,"x":34,"y":287},{"type":"mousemove","time":29532,"x":41,"y":262},{"type":"mousemove","time":29750,"x":44,"y":248},{"type":"mousemove","time":29978,"x":45,"y":248},{"type":"mouseup","time":30068,"x":45,"y":248},{"time":30069,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":30184,"x":36,"y":204},{"type":"mousemove","time":30399,"x":39,"y":186},{"type":"mousemove","time":30634,"x":39,"y":178},{"type":"mousemove","time":30865,"x":39,"y":177},{"type":"mousedown","time":31000,"x":39,"y":177},{"type":"mousemove","time":31026,"x":39,"y":176},{"type":"mousemove","time":31237,"x":41,"y":135},{"type":"mousemove","time":31464,"x":42,"y":115},{"type":"mousemove","time":31685,"x":42,"y":110},{"type":"mousemove","time":31885,"x":39,"y":132},{"type":"mousemove","time":32122,"x":41,"y":144},{"type":"mousemove","time":32337,"x":43,"y":164},{"type":"mousemove","time":32545,"x":44,"y":174},{"type":"mousemove","time":32756,"x":45,"y":187},{"type":"mousemove","time":32981,"x":45,"y":191},{"type":"mousemove","time":33202,"x":45,"y":196},{"type":"mousemove","time":33423,"x":45,"y":202},{"type":"mousemove","time":33627,"x":46,"y":217},{"type":"mousemove","time":33854,"x":46,"y":217},{"type":"mousemove","time":34079,"x":46,"y":206},{"type":"mousemove","time":34281,"x":42,"y":137},{"type":"mousemove","time":34500,"x":44,"y":78},{"type":"mousemove","time":34700,"x":44,"y":73},{"type":"mouseup","time":34795,"x":44,"y":73},{"time":34796,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":34812,"x":41,"y":99},{"type":"mousemove","time":35015,"x":36,"y":182},{"type":"mousemove","time":35216,"x":36,"y":221},{"type":"mousemove","time":35428,"x":37,"y":215},{"type":"mousemove","time":35668,"x":38,"y":210},{"type":"mousedown","time":35686,"x":38,"y":210},{"type":"mousemove","time":35721,"x":38,"y":213},{"type":"mousemove","time":35927,"x":41,"y":306},{"type":"mousemove","time":36141,"x":42,"y":314},{"type":"mousemove","time":36366,"x":42,"y":314},{"type":"mouseup","time":36545,"x":42,"y":314},{"time":36546,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":36586,"x":42,"y":275},{"type":"mousemove","time":36806,"x":38,"y":244},{"type":"mousedown","time":36948,"x":38,"y":244},{"type":"mousemove","time":36984,"x":39,"y":241},{"type":"mousemove","time":37206,"x":46,"y":207},{"type":"mouseup","time":37415,"x":46,"y":207},{"time":37416,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":37435,"x":54,"y":206},{"type":"mousemove","time":37658,"x":57,"y":206},{"type":"mousemove","time":40860,"x":68,"y":212},{"type":"mousemove","time":41250,"x":68,"y":216},{"type":"mousemove","time":41453,"x":264,"y":567},{"type":"mousemove","time":41654,"x":266,"y":572},{"type":"mousemove","time":41875,"x":284,"y":569},{"type":"mousemove","time":42077,"x":294,"y":569},{"type":"mousedown","time":42090,"x":294,"y":569},{"type":"mouseup","time":42203,"x":294,"y":569},{"time":42204,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":42395,"x":295,"y":569},{"type":"mousemove","time":42598,"x":359,"y":569},{"type":"mousedown","time":42646,"x":361,"y":570},{"type":"mouseup","time":42752,"x":361,"y":570},{"time":42753,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":42798,"x":374,"y":570},{"type":"mousemove","time":43006,"x":395,"y":569},{"type":"mousedown","time":43188,"x":414,"y":568},{"type":"mousemove","time":43242,"x":414,"y":568},{"type":"mouseup","time":43262,"x":414,"y":568},{"time":43263,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":43619,"x":487,"y":569},{"type":"mousedown","time":43735,"x":503,"y":568},{"type":"mouseup","time":43825,"x":503,"y":568},{"time":43826,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":43858,"x":503,"y":568},{"type":"mousemove","time":44067,"x":361,"y":561},{"type":"mousemove","time":44272,"x":302,"y":564},{"type":"mousedown","time":44358,"x":301,"y":564},{"type":"mouseup","time":44447,"x":301,"y":564},{"time":44448,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":44485,"x":305,"y":564},{"type":"mousemove","time":44697,"x":343,"y":564},{"type":"mousedown","time":44726,"x":343,"y":564},{"type":"mouseup","time":44791,"x":343,"y":564},{"time":44792,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":44909,"x":387,"y":564},{"type":"mousemove","time":45130,"x":410,"y":564},{"type":"mousedown","time":45197,"x":410,"y":564},{"type":"mouseup","time":45297,"x":410,"y":564},{"time":45298,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":45435,"x":410,"y":564},{"type":"mousemove","time":45496,"x":410,"y":564},{"type":"mousemove","time":45698,"x":483,"y":573},{"type":"mousedown","time":45912,"x":489,"y":573},{"type":"mousemove","time":45947,"x":489,"y":573},{"type":"mouseup","time":46091,"x":489,"y":573},{"time":46092,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":46278,"x":489,"y":571},{"type":"mousemove","time":46499,"x":490,"y":556},{"type":"mousemove","time":46708,"x":491,"y":549}],"scrollY":2045.5,"scrollX":0,"timestamp":1780127323317},{"name":"Action 5","ops":[{"type":"mousemove","time":170,"x":742,"y":287},{"type":"mousemove","time":378,"x":696,"y":279},{"type":"mousemove","time":682,"x":499,"y":198},{"type":"mousemove","time":887,"x":296,"y":120},{"type":"mousemove","time":1104,"x":265,"y":75},{"type":"mousemove","time":1306,"x":261,"y":61},{"type":"mousemove","time":1520,"x":259,"y":55},{"type":"mousemove","time":1721,"x":258,"y":57},{"type":"mousedown","time":1902,"x":258,"y":57},{"type":"mousemove","time":1937,"x":256,"y":57},{"type":"mousemove","time":2138,"x":187,"y":64},{"type":"mousemove","time":2354,"x":183,"y":66},{"type":"mouseup","time":2423,"x":183,"y":66},{"time":2424,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":2555,"x":129,"y":47},{"type":"mousemove","time":2755,"x":123,"y":48},{"type":"mousemove","time":2984,"x":120,"y":53},{"type":"mousemove","time":3267,"x":120,"y":53},{"type":"mousedown","time":3369,"x":120,"y":53},{"type":"mousemove","time":3394,"x":123,"y":53},{"type":"mousemove","time":3604,"x":190,"y":68},{"type":"mousemove","time":3832,"x":201,"y":68},{"type":"mousemove","time":4051,"x":172,"y":67},{"type":"mouseup","time":4311,"x":172,"y":67},{"time":4312,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":4327,"x":178,"y":54},{"type":"mousemove","time":4569,"x":183,"y":37},{"type":"mousedown","time":4924,"x":183,"y":37},{"type":"mousemove","time":4952,"x":185,"y":36},{"type":"mousemove","time":5170,"x":254,"y":34},{"type":"mousemove","time":5374,"x":258,"y":34},{"type":"mousemove","time":5586,"x":174,"y":34},{"type":"mousemove","time":5796,"x":163,"y":34},{"type":"mousemove","time":6018,"x":158,"y":34},{"type":"mousemove","time":6220,"x":196,"y":39},{"type":"mousemove","time":6458,"x":208,"y":38},{"type":"mouseup","time":6604,"x":208,"y":38},{"time":6605,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":6621,"x":268,"y":40},{"type":"mousemove","time":6834,"x":347,"y":49},{"type":"mousemove","time":7050,"x":309,"y":29},{"type":"mousemove","time":7295,"x":316,"y":29},{"type":"mousedown","time":7523,"x":316,"y":29},{"type":"mousemove","time":7552,"x":318,"y":29},{"type":"mousemove","time":7780,"x":376,"y":32},{"type":"mouseup","time":8009,"x":376,"y":32},{"time":8010,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":8027,"x":407,"y":24},{"type":"mousemove","time":8230,"x":455,"y":21},{"type":"mousemove","time":8451,"x":459,"y":21},{"type":"mousemove","time":8665,"x":459,"y":25},{"type":"mousemove","time":8897,"x":459,"y":26},{"type":"mousedown","time":9173,"x":459,"y":26},{"type":"mousemove","time":9200,"x":456,"y":26},{"type":"mousemove","time":9420,"x":412,"y":30},{"type":"mousemove","time":9621,"x":401,"y":30},{"type":"mousemove","time":9851,"x":384,"y":27},{"type":"mousemove","time":10064,"x":363,"y":25},{"type":"mousemove","time":10279,"x":397,"y":28},{"type":"mousemove","time":10507,"x":402,"y":28},{"type":"mousemove","time":10718,"x":380,"y":29},{"type":"mousemove","time":10933,"x":363,"y":30},{"type":"mousemove","time":11149,"x":348,"y":29},{"type":"mousemove","time":11355,"x":346,"y":28},{"type":"mousemove","time":11476,"x":346,"y":28},{"type":"mousemove","time":11695,"x":385,"y":32},{"type":"mousemove","time":11907,"x":395,"y":30},{"type":"mouseup","time":11938,"x":395,"y":30},{"time":11939,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":12123,"x":357,"y":31},{"type":"mousemove","time":12357,"x":347,"y":32},{"type":"mousedown","time":12675,"x":347,"y":32},{"type":"mousemove","time":12715,"x":349,"y":31},{"type":"mousemove","time":12929,"x":396,"y":29},{"type":"mousemove","time":13145,"x":403,"y":30},{"type":"mousemove","time":13347,"x":395,"y":30},{"type":"mousemove","time":13567,"x":381,"y":34},{"type":"mouseup","time":13697,"x":381,"y":34},{"time":13698,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":13767,"x":181,"y":89},{"type":"mousemove","time":13977,"x":90,"y":109},{"type":"mousemove","time":14182,"x":43,"y":116},{"type":"mousemove","time":14403,"x":43,"y":116},{"type":"mousedown","time":14676,"x":43,"y":116},{"type":"mousemove","time":14703,"x":42,"y":118},{"type":"mousemove","time":14912,"x":28,"y":198},{"type":"mousemove","time":15121,"x":28,"y":198},{"type":"mouseup","time":15153,"x":28,"y":198},{"time":15154,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":15171,"x":28,"y":205},{"type":"mousemove","time":15387,"x":35,"y":238},{"type":"mousemove","time":15601,"x":42,"y":249},{"type":"mousemove","time":15819,"x":45,"y":254},{"type":"mousemove","time":16067,"x":45,"y":253},{"type":"mousedown","time":16102,"x":45,"y":253},{"type":"mousemove","time":16133,"x":45,"y":242},{"type":"mousemove","time":16364,"x":44,"y":198},{"type":"mousemove","time":16578,"x":45,"y":184},{"type":"mousemove","time":16806,"x":45,"y":194},{"type":"mousemove","time":17026,"x":45,"y":199},{"type":"mouseup","time":17141,"x":45,"y":199},{"time":17142,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":17159,"x":40,"y":204},{"type":"mousemove","time":17362,"x":42,"y":206},{"type":"mousemove","time":17584,"x":43,"y":203},{"type":"mousemove","time":17872,"x":42,"y":201},{"type":"mousedown","time":18095,"x":42,"y":201},{"type":"mousemove","time":18123,"x":42,"y":200},{"type":"mousemove","time":18337,"x":47,"y":162},{"type":"mousemove","time":18540,"x":48,"y":154},{"type":"mousemove","time":18756,"x":48,"y":146},{"type":"mousemove","time":18978,"x":47,"y":145},{"type":"mousemove","time":19076,"x":47,"y":145},{"type":"mousemove","time":19289,"x":44,"y":134},{"type":"mousemove","time":19504,"x":47,"y":172},{"type":"mousemove","time":19712,"x":49,"y":190},{"type":"mousemove","time":19944,"x":48,"y":199},{"type":"mouseup","time":20184,"x":48,"y":199},{"time":20185,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":20204,"x":61,"y":315},{"type":"mousemove","time":20476,"x":60,"y":314},{"type":"mousemove","time":20679,"x":51,"y":315},{"type":"mousemove","time":20891,"x":45,"y":317},{"type":"mousemove","time":21110,"x":43,"y":317},{"type":"mousedown","time":21271,"x":43,"y":317},{"type":"mousemove","time":21300,"x":43,"y":318},{"type":"mousemove","time":21505,"x":42,"y":367},{"type":"mouseup","time":21660,"x":42,"y":367},{"time":21661,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":21720,"x":42,"y":402},{"type":"mousemove","time":21948,"x":43,"y":465},{"type":"mousemove","time":22156,"x":41,"y":457},{"type":"mousemove","time":22386,"x":38,"y":454},{"type":"mousedown","time":22577,"x":38,"y":454},{"type":"mousemove","time":22607,"x":38,"y":452},{"type":"mousemove","time":22822,"x":43,"y":393},{"type":"mousemove","time":23032,"x":43,"y":390},{"type":"mousemove","time":23247,"x":43,"y":374},{"type":"mousemove","time":23450,"x":41,"y":367},{"type":"mousemove","time":23677,"x":42,"y":357},{"type":"mousemove","time":23888,"x":43,"y":349},{"type":"mousemove","time":24101,"x":43,"y":343},{"type":"mousemove","time":24326,"x":44,"y":340},{"type":"mousemove","time":24544,"x":44,"y":364},{"type":"mousemove","time":24765,"x":46,"y":379},{"type":"mouseup","time":24896,"x":46,"y":379},{"time":24897,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":24928,"x":131,"y":435},{"type":"mousemove","time":25138,"x":197,"y":555},{"type":"mousemove","time":25345,"x":124,"y":550},{"type":"mousemove","time":25568,"x":116,"y":551},{"type":"mousedown","time":25973,"x":116,"y":551},{"type":"mousemove","time":26003,"x":118,"y":550},{"type":"mousemove","time":26226,"x":165,"y":547},{"type":"mousemove","time":26431,"x":169,"y":548},{"type":"mouseup","time":26525,"x":169,"y":548},{"time":26526,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":26543,"x":190,"y":548},{"type":"mousemove","time":26769,"x":250,"y":549},{"type":"mousemove","time":26985,"x":257,"y":554},{"type":"mousedown","time":27364,"x":257,"y":554},{"type":"mousemove","time":27391,"x":254,"y":554},{"type":"mousemove","time":27608,"x":209,"y":556},{"type":"mousemove","time":27822,"x":190,"y":556},{"type":"mousemove","time":28027,"x":173,"y":558},{"type":"mousemove","time":28239,"x":163,"y":557},{"type":"mousemove","time":28458,"x":160,"y":556},{"type":"mousemove","time":28685,"x":191,"y":557},{"type":"mousemove","time":28914,"x":208,"y":558},{"type":"mouseup","time":29043,"x":208,"y":558},{"time":29044,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":29060,"x":250,"y":546},{"type":"mousemove","time":29264,"x":387,"y":542},{"type":"mousemove","time":29470,"x":439,"y":552},{"type":"mousemove","time":29689,"x":448,"y":550},{"type":"mousemove","time":29895,"x":456,"y":552},{"type":"mousemove","time":30126,"x":457,"y":551},{"type":"mousedown","time":30341,"x":457,"y":551},{"type":"mousemove","time":30378,"x":456,"y":551},{"type":"mousemove","time":30591,"x":434,"y":551},{"type":"mousemove","time":30803,"x":416,"y":552},{"type":"mousemove","time":31003,"x":397,"y":554},{"type":"mouseup","time":31166,"x":397,"y":554},{"time":31167,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":31192,"x":364,"y":553},{"type":"mousemove","time":31399,"x":324,"y":556},{"type":"mousemove","time":31645,"x":322,"y":557},{"type":"mousemove","time":31976,"x":319,"y":557},{"type":"mousedown","time":32252,"x":319,"y":557},{"type":"mousemove","time":32291,"x":325,"y":557},{"type":"mousemove","time":32510,"x":350,"y":558},{"type":"mousemove","time":32722,"x":384,"y":557},{"type":"mousemove","time":32928,"x":409,"y":558},{"type":"mousemove","time":33146,"x":421,"y":558},{"type":"mousemove","time":33364,"x":419,"y":559},{"type":"mousemove","time":33579,"x":411,"y":560},{"type":"mousemove","time":33792,"x":403,"y":561},{"type":"mousemove","time":34011,"x":377,"y":561},{"type":"mouseup","time":34203,"x":377,"y":561},{"time":34204,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":34221,"x":319,"y":562},{"type":"mousemove","time":34433,"x":208,"y":554},{"type":"mousemove","time":34651,"x":208,"y":550},{"type":"mousemove","time":34913,"x":214,"y":554},{"type":"mousedown","time":35089,"x":214,"y":554},{"type":"mousemove","time":35128,"x":215,"y":554},{"type":"mousemove","time":35352,"x":253,"y":552},{"type":"mousemove","time":35582,"x":237,"y":552},{"type":"mousemove","time":35785,"x":232,"y":554},{"type":"mouseup","time":35836,"x":232,"y":554},{"time":35837,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":36001,"x":167,"y":553},{"type":"mousemove","time":36201,"x":162,"y":553},{"type":"mousemove","time":36484,"x":164,"y":553},{"type":"mousedown","time":36633,"x":164,"y":553},{"type":"mousemove","time":36670,"x":165,"y":553},{"type":"mousemove","time":36883,"x":232,"y":551},{"type":"mousemove","time":37085,"x":234,"y":551},{"type":"mousemove","time":37296,"x":244,"y":553},{"type":"mousemove","time":37513,"x":211,"y":557},{"type":"mousemove","time":37727,"x":170,"y":558},{"type":"mousemove","time":37948,"x":150,"y":557},{"type":"mousemove","time":38168,"x":139,"y":555},{"type":"mousemove","time":38386,"x":155,"y":555},{"type":"mousemove","time":38600,"x":162,"y":556},{"type":"mouseup","time":38633,"x":162,"y":556},{"time":38634,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":38904,"x":788,"y":252},{"type":"mousemove","time":39110,"x":756,"y":309},{"type":"mousemove","time":39311,"x":756,"y":315},{"type":"mousedown","time":39712,"x":756,"y":315},{"type":"mousemove","time":39742,"x":756,"y":318},{"type":"mousemove","time":39968,"x":756,"y":372},{"type":"mouseup","time":40193,"x":757,"y":373},{"time":40194,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":40211,"x":757,"y":407},{"type":"mousemove","time":40417,"x":756,"y":469},{"type":"mousemove","time":40661,"x":759,"y":456},{"type":"mousemove","time":40902,"x":759,"y":455},{"type":"mousedown","time":41088,"x":759,"y":455},{"type":"mousemove","time":41117,"x":760,"y":450},{"type":"mousemove","time":41340,"x":771,"y":413},{"type":"mousemove","time":41563,"x":772,"y":391},{"type":"mousemove","time":41785,"x":772,"y":377},{"type":"mousemove","time":41998,"x":771,"y":364},{"type":"mousemove","time":42204,"x":771,"y":347},{"type":"mousemove","time":42404,"x":772,"y":340},{"type":"mousemove","time":42640,"x":772,"y":344},{"type":"mousemove","time":42859,"x":769,"y":379},{"type":"mousemove","time":43076,"x":767,"y":410},{"type":"mousemove","time":43305,"x":767,"y":410},{"type":"mouseup","time":43323,"x":767,"y":410},{"time":43324,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":43506,"x":777,"y":151},{"type":"mousemove","time":43723,"x":763,"y":136},{"type":"mousemove","time":43937,"x":761,"y":123},{"type":"mousemove","time":44155,"x":761,"y":115},{"type":"mousemove","time":44356,"x":761,"y":115},{"type":"mousedown","time":44465,"x":761,"y":115},{"type":"mousemove","time":44496,"x":761,"y":118},{"type":"mousemove","time":44706,"x":762,"y":173},{"type":"mouseup","time":44839,"x":762,"y":173},{"time":44840,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":44914,"x":760,"y":209},{"type":"mousemove","time":45136,"x":759,"y":243},{"type":"mousemove","time":45367,"x":758,"y":251},{"type":"mousemove","time":45571,"x":757,"y":253},{"type":"mousedown","time":45827,"x":757,"y":253},{"type":"mousemove","time":45857,"x":757,"y":251},{"type":"mousemove","time":46081,"x":765,"y":191},{"type":"mousemove","time":46288,"x":764,"y":179},{"type":"mousemove","time":46629,"x":765,"y":177},{"type":"mouseup","time":46679,"x":765,"y":177},{"time":46680,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":46697,"x":768,"y":150},{"type":"mousemove","time":46909,"x":762,"y":198},{"type":"mousemove","time":47123,"x":762,"y":207},{"type":"mousemove","time":47360,"x":756,"y":202},{"type":"mousemove","time":47575,"x":757,"y":197},{"type":"mousedown","time":47991,"x":757,"y":197},{"type":"mousemove","time":48021,"x":757,"y":195},{"type":"mousemove","time":48255,"x":759,"y":140},{"type":"mousemove","time":48474,"x":759,"y":129},{"type":"mousemove","time":48695,"x":760,"y":107},{"type":"mousemove","time":48918,"x":761,"y":100},{"type":"mousemove","time":49123,"x":761,"y":101},{"type":"mousemove","time":49345,"x":761,"y":118},{"type":"mousemove","time":49568,"x":762,"y":132},{"type":"mousemove","time":49772,"x":762,"y":154},{"type":"mousemove","time":49974,"x":762,"y":124},{"type":"mousemove","time":50196,"x":761,"y":112},{"type":"mousemove","time":50418,"x":751,"y":197},{"type":"mousemove","time":50641,"x":751,"y":198},{"type":"mouseup","time":50657,"x":751,"y":198},{"time":50658,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":50675,"x":740,"y":199},{"type":"mousemove","time":50896,"x":719,"y":200},{"type":"mousedown","time":51272,"x":719,"y":200},{"type":"mouseup","time":51399,"x":719,"y":200},{"time":51400,"delay":400,"type":"screenshot-auto"}],"scrollY":2704.5,"scrollX":0,"timestamp":1780127387456},{"name":"Action 6","ops":[{"type":"mousemove","time":726,"x":554,"y":354},{"type":"mousemove","time":943,"x":508,"y":452},{"type":"mousemove","time":1159,"x":494,"y":504},{"type":"mousemove","time":1370,"x":490,"y":511},{"type":"mousemove","time":1589,"x":476,"y":517},{"type":"mousemove","time":1809,"x":473,"y":524},{"type":"mousemove","time":2009,"x":480,"y":524},{"type":"mousemove","time":2209,"x":480,"y":538},{"type":"mousemove","time":2419,"x":479,"y":539},{"type":"mousemove","time":2977,"x":479,"y":539},{"type":"mousemove","time":3177,"x":475,"y":526},{"type":"mousemove","time":3412,"x":475,"y":518},{"type":"mousedown","time":3827,"x":475,"y":518},{"type":"mousemove","time":3852,"x":473,"y":518},{"type":"mousemove","time":4056,"x":440,"y":514},{"type":"mouseup","time":4394,"x":440,"y":514},{"time":4395,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":4415,"x":439,"y":522},{"type":"mousemove","time":4637,"x":441,"y":539},{"type":"mousemove","time":4794,"x":441,"y":539},{"type":"mousewheel","time":5175,"x":441,"y":539,"deltaY":0},{"type":"mousewheel","time":5213,"x":449,"y":539,"deltaY":0},{"type":"mousewheel","time":5258,"x":449,"y":539,"deltaY":0},{"type":"mousewheel","time":5309,"x":449,"y":539,"deltaY":2},{"type":"mousewheel","time":5342,"x":449,"y":539,"deltaY":2},{"type":"mousewheel","time":5392,"x":449,"y":539,"deltaY":0},{"type":"mousewheel","time":5441,"x":449,"y":539,"deltaY":0},{"type":"mousewheel","time":5492,"x":449,"y":539,"deltaY":0},{"type":"mousewheel","time":5542,"x":449,"y":539,"deltaY":0},{"type":"mousewheel","time":5592,"x":449,"y":539,"deltaY":0},{"type":"mousewheel","time":5648,"x":449,"y":539,"deltaY":1},{"type":"mousedown","time":6007,"x":449,"y":539},{"type":"mousemove","time":6032,"x":449,"y":539},{"type":"mousemove","time":6256,"x":433,"y":537},{"type":"mousemove","time":6456,"x":425,"y":539},{"type":"mousemove","time":6666,"x":420,"y":539},{"type":"mousemove","time":6879,"x":427,"y":538},{"type":"mousemove","time":7100,"x":444,"y":538},{"type":"mousemove","time":7322,"x":459,"y":538},{"type":"mousemove","time":7544,"x":463,"y":538},{"type":"mouseup","time":7622,"x":463,"y":538},{"time":7623,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":7642,"x":452,"y":539},{"type":"mousemove","time":7849,"x":426,"y":540},{"type":"mousemove","time":8082,"x":422,"y":542},{"type":"mousedown","time":8342,"x":422,"y":542},{"type":"mousemove","time":8370,"x":425,"y":542},{"type":"mousemove","time":8581,"x":467,"y":541},{"type":"mousemove","time":8798,"x":481,"y":544},{"type":"mousemove","time":9027,"x":478,"y":544},{"type":"mousemove","time":9245,"x":439,"y":545},{"type":"mousemove","time":9449,"x":431,"y":542},{"type":"mouseup","time":9590,"x":431,"y":542},{"time":9591,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":9649,"x":456,"y":514},{"type":"mousemove","time":9866,"x":417,"y":473},{"type":"mousemove","time":10067,"x":426,"y":464},{"type":"mousemove","time":10290,"x":504,"y":461},{"type":"mousemove","time":10496,"x":535,"y":455},{"type":"mousemove","time":10696,"x":654,"y":413},{"type":"mousemove","time":10896,"x":566,"y":461},{"type":"mousemove","time":11116,"x":388,"y":564},{"type":"mousemove","time":11339,"x":360,"y":540},{"type":"mousemove","time":11568,"x":383,"y":538},{"type":"mousemove","time":11769,"x":391,"y":539},{"type":"mousemove","time":12008,"x":396,"y":540},{"type":"mousemove","time":12172,"x":397,"y":540},{"type":"mousemove","time":12373,"x":412,"y":544},{"type":"mousemove","time":12594,"x":433,"y":541},{"type":"mousemove","time":12810,"x":433,"y":542},{"type":"mousemove","time":13026,"x":433,"y":542}],"scrollY":3369,"scrollX":0,"timestamp":1780127988672},{"name":"Action 7","ops":[{"type":"mousemove","time":449,"x":657,"y":382},{"type":"mousemove","time":670,"x":596,"y":389},{"type":"mousemove","time":872,"x":589,"y":389},{"type":"mousemove","time":1091,"x":498,"y":404},{"type":"mousemove","time":1320,"x":491,"y":404},{"type":"mousemove","time":1582,"x":492,"y":404},{"type":"mousemove","time":1817,"x":556,"y":408},{"type":"mousemove","time":2036,"x":484,"y":553},{"type":"mousemove","time":2257,"x":480,"y":550},{"type":"mousemove","time":2479,"x":478,"y":550},{"type":"mousemove","time":2998,"x":484,"y":535},{"type":"mousemove","time":3205,"x":585,"y":430},{"type":"mousemove","time":3408,"x":597,"y":469},{"type":"mousemove","time":3618,"x":544,"y":577},{"type":"mousemove","time":4238,"x":483,"y":596},{"type":"mousemove","time":4443,"x":481,"y":570},{"type":"mousemove","time":4660,"x":480,"y":560},{"type":"mousemove","time":4871,"x":480,"y":554},{"type":"mousedown","time":5213,"x":480,"y":554},{"type":"mousemove","time":5237,"x":475,"y":554},{"type":"mousemove","time":5462,"x":442,"y":553},{"type":"mousemove","time":5685,"x":425,"y":554},{"type":"mousemove","time":5897,"x":406,"y":554},{"type":"mousemove","time":6124,"x":398,"y":554},{"type":"mouseup","time":6230,"x":398,"y":554},{"time":6231,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":6251,"x":400,"y":554},{"type":"mousemove","time":6458,"x":416,"y":554},{"type":"mousemove","time":6681,"x":506,"y":553},{"type":"mousemove","time":6915,"x":490,"y":553},{"type":"mousemove","time":7120,"x":487,"y":554},{"type":"mousemove","time":7323,"x":489,"y":554},{"type":"mousemove","time":7534,"x":490,"y":554},{"type":"mousedown","time":7703,"x":490,"y":554},{"type":"mousemove","time":7728,"x":489,"y":554},{"type":"mousemove","time":7949,"x":477,"y":554},{"type":"mousemove","time":8184,"x":470,"y":552},{"type":"mouseup","time":8433,"x":470,"y":552},{"time":8434,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":8455,"x":491,"y":558},{"type":"mousemove","time":8657,"x":560,"y":565},{"type":"mousemove","time":8915,"x":558,"y":564},{"type":"mousemove","time":9022,"x":558,"y":564},{"type":"mousemove","time":9223,"x":566,"y":573},{"type":"mousemove","time":9429,"x":518,"y":580},{"type":"mousemove","time":9636,"x":482,"y":565},{"type":"mousemove","time":9845,"x":472,"y":558},{"type":"mousemove","time":10046,"x":471,"y":557},{"type":"mousemove","time":10266,"x":468,"y":557},{"type":"mousemove","time":10474,"x":468,"y":556},{"type":"mousedown","time":10626,"x":468,"y":556},{"type":"mousemove","time":10654,"x":463,"y":556},{"type":"mousemove","time":10860,"x":436,"y":556},{"type":"mousemove","time":11064,"x":436,"y":556},{"type":"mousemove","time":11303,"x":433,"y":556},{"type":"mousemove","time":11518,"x":426,"y":559},{"type":"mousemove","time":11726,"x":421,"y":560},{"type":"mousemove","time":11956,"x":417,"y":560},{"type":"mousemove","time":12260,"x":414,"y":560},{"type":"mousemove","time":12429,"x":414,"y":560},{"type":"mousemove","time":12651,"x":417,"y":560},{"type":"mousemove","time":12864,"x":418,"y":560},{"type":"mouseup","time":12918,"x":418,"y":560},{"time":12919,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":12940,"x":455,"y":562},{"type":"mousemove","time":13224,"x":600,"y":556},{"type":"mousemove","time":13443,"x":451,"y":554},{"type":"mousemove","time":13647,"x":433,"y":554},{"type":"mousemove","time":13874,"x":410,"y":551},{"type":"mousemove","time":14081,"x":404,"y":555},{"type":"mousemove","time":14286,"x":404,"y":555},{"type":"mousedown","time":14444,"x":404,"y":555},{"type":"mousemove","time":14471,"x":403,"y":555},{"type":"mousemove","time":14681,"x":380,"y":560},{"type":"mousemove","time":14885,"x":372,"y":560},{"type":"mousemove","time":15122,"x":369,"y":559},{"type":"mouseup","time":15293,"x":369,"y":559},{"time":15294,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":15314,"x":360,"y":551},{"type":"mousemove","time":15534,"x":347,"y":535},{"type":"mousemove","time":15768,"x":345,"y":529},{"type":"mousedown","time":16065,"x":345,"y":529},{"type":"mousemove","time":16087,"x":348,"y":529},{"type":"mousemove","time":16312,"x":369,"y":530},{"type":"mousemove","time":16532,"x":376,"y":531},{"type":"mousemove","time":16736,"x":386,"y":530},{"type":"mousemove","time":16948,"x":392,"y":529},{"type":"mousemove","time":17191,"x":395,"y":530},{"type":"mouseup","time":17492,"x":395,"y":530},{"time":17493,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":17520,"x":550,"y":518},{"type":"mousemove","time":17724,"x":669,"y":519},{"type":"mousemove","time":17951,"x":639,"y":556},{"type":"mousemove","time":18167,"x":639,"y":557},{"type":"mousemove","time":18378,"x":570,"y":372},{"type":"mousemove","time":18596,"x":516,"y":344},{"type":"mousemove","time":18796,"x":469,"y":354},{"type":"mousemove","time":19006,"x":428,"y":366},{"type":"mousemove","time":19239,"x":411,"y":368},{"type":"mousemove","time":19451,"x":358,"y":376},{"type":"mousemove","time":19665,"x":370,"y":551},{"type":"mousemove","time":19865,"x":367,"y":551},{"type":"mousemove","time":20096,"x":338,"y":551},{"type":"mousemove","time":20470,"x":340,"y":551},{"type":"mousemove","time":20671,"x":364,"y":553},{"type":"mousemove","time":20902,"x":365,"y":553}],"scrollY":4020,"scrollX":0,"timestamp":1780127466579}] \ No newline at end of file diff --git a/test/visualMap-continuous.html b/test/visualMap-continuous.html index a89e241cf3..23bb6d22be 100644 --- a/test/visualMap-continuous.html +++ b/test/visualMap-continuous.html @@ -703,7 +703,7 @@ }); }); - createCase("Color HueRange handles: merge on overlap", 6, (chart) => { + createCase("Merge handles on overlap (default formatter)", 6, (chart) => { const data0 = []; const MAX_DIM1 = 100; @@ -784,7 +784,7 @@ }); }); - createCase("Color HueRange handles: dual drag when apart", 7, (chart) => { + createCase("Merge handles on overlap (user-provided formatter: xxx%)", 7, (chart) => { const data0 = []; const MAX_DIM1 = 100; @@ -834,7 +834,10 @@ min: 0, max: MAX_DIM1, calculable: true, - range: [50, 95], + range: [90, 95], + formatter: function (value) { + return value + '%'; + }, dimension: 0, inRange: { colorHue: [0, 300],