@visactor/vrender-components 0.21.0-alpha.1 → 0.21.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/axis/circle.js +3 -3
- package/cjs/axis/circle.js.map +1 -1
- package/cjs/axis/overlap/auto-hide.js +2 -2
- package/cjs/axis/overlap/auto-hide.js.map +1 -1
- package/cjs/axis/overlap/auto-limit.js +7 -9
- package/cjs/axis/overlap/auto-limit.js.map +1 -1
- package/cjs/axis/overlap/auto-wrap.js +21 -8
- package/cjs/axis/overlap/auto-wrap.js.map +1 -1
- package/cjs/axis/tick-data/continuous.js +3 -3
- package/cjs/axis/tick-data/continuous.js.map +1 -1
- package/cjs/axis/type.d.ts +6 -2
- package/cjs/axis/type.js.map +1 -1
- package/cjs/data-zoom/type.d.ts +1 -1
- package/cjs/data-zoom/type.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/indicator/index.js +1 -1
- package/cjs/indicator/indicator.js +1 -1
- package/cjs/indicator/register.js +1 -1
- package/cjs/indicator/type.js +1 -1
- package/cjs/interface.js.map +1 -1
- package/cjs/label/arc.js +3 -2
- package/cjs/label/arc.js.map +1 -1
- package/cjs/label/base.d.ts +4 -2
- package/cjs/label/base.js +48 -11
- package/cjs/label/base.js.map +1 -1
- package/cjs/label/line.js +1 -2
- package/cjs/label/overlap/place.d.ts +6 -1
- package/cjs/label/overlap/place.js +7 -5
- package/cjs/label/overlap/place.js.map +1 -1
- package/cjs/label/overlap/scaler.d.ts +6 -0
- package/cjs/label/overlap/scaler.js +16 -14
- package/cjs/label/overlap/scaler.js.map +1 -1
- package/cjs/label/overlap/shiftY.d.ts +9 -0
- package/cjs/label/overlap/shiftY.js +101 -0
- package/cjs/label/overlap/shiftY.js.map +1 -0
- package/cjs/label/register.js +1 -1
- package/cjs/label/symbol.js +1 -1
- package/cjs/label/type.d.ts +8 -1
- package/cjs/label/type.js +1 -1
- package/cjs/label/type.js.map +1 -1
- package/cjs/label/util.js +1 -1
- package/cjs/legend/base.d.ts +1 -0
- package/cjs/legend/base.js +7 -6
- package/cjs/legend/base.js.map +1 -1
- package/cjs/legend/color/type.d.ts +2 -2
- package/cjs/legend/color/type.js.map +1 -1
- package/cjs/legend/discrete/discrete.d.ts +8 -0
- package/cjs/legend/discrete/discrete.js +122 -32
- package/cjs/legend/discrete/discrete.js.map +1 -1
- package/cjs/legend/discrete/type.d.ts +16 -4
- package/cjs/legend/discrete/type.js.map +1 -1
- package/cjs/marker/type.d.ts +2 -2
- package/cjs/marker/type.js.map +1 -1
- package/cjs/player/type/discrete-player.d.ts +3 -3
- package/cjs/player/type/discrete-player.js.map +1 -1
- package/cjs/player/type/index.d.ts +2 -2
- package/cjs/player/type/index.js.map +1 -1
- package/cjs/scrollbar/index.d.ts +1 -0
- package/cjs/scrollbar/index.js +2 -1
- package/cjs/scrollbar/index.js.map +1 -1
- package/cjs/scrollbar/scrollbar-plugin.d.ts +18 -15
- package/cjs/scrollbar/scrollbar-plugin.js +109 -97
- package/cjs/scrollbar/scrollbar-plugin.js.map +1 -1
- package/cjs/timeline/type.js.map +1 -1
- package/dist/index.es.js +1425 -664
- package/es/axis/circle.js +3 -3
- package/es/axis/circle.js.map +1 -1
- package/es/axis/overlap/auto-hide.js +2 -2
- package/es/axis/overlap/auto-hide.js.map +1 -1
- package/es/axis/overlap/auto-limit.js +5 -8
- package/es/axis/overlap/auto-limit.js.map +1 -1
- package/es/axis/overlap/auto-wrap.js +20 -8
- package/es/axis/overlap/auto-wrap.js.map +1 -1
- package/es/axis/tick-data/continuous.js +3 -3
- package/es/axis/tick-data/continuous.js.map +1 -1
- package/es/axis/type.d.ts +6 -2
- package/es/axis/type.js.map +1 -1
- package/es/data-zoom/type.d.ts +1 -1
- package/es/data-zoom/type.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/indicator/index.js +1 -1
- package/es/indicator/indicator.js +1 -1
- package/es/indicator/register.js +1 -1
- package/es/indicator/type.js +1 -1
- package/es/interface.js.map +1 -1
- package/es/label/arc.js +3 -2
- package/es/label/arc.js.map +1 -1
- package/es/label/base.d.ts +4 -2
- package/es/label/base.js +48 -8
- package/es/label/base.js.map +1 -1
- package/es/label/line.js +1 -2
- package/es/label/overlap/place.d.ts +6 -1
- package/es/label/overlap/place.js +8 -6
- package/es/label/overlap/place.js.map +1 -1
- package/es/label/overlap/scaler.d.ts +6 -0
- package/es/label/overlap/scaler.js +11 -10
- package/es/label/overlap/scaler.js.map +1 -1
- package/es/label/overlap/shiftY.d.ts +9 -0
- package/es/label/overlap/shiftY.js +94 -0
- package/es/label/overlap/shiftY.js.map +1 -0
- package/es/label/register.js +1 -1
- package/es/label/symbol.js +1 -1
- package/es/label/type.d.ts +8 -1
- package/es/label/type.js +1 -1
- package/es/label/type.js.map +1 -1
- package/es/label/util.js +1 -1
- package/es/legend/base.d.ts +1 -0
- package/es/legend/base.js +7 -5
- package/es/legend/base.js.map +1 -1
- package/es/legend/color/type.d.ts +2 -2
- package/es/legend/color/type.js.map +1 -1
- package/es/legend/discrete/discrete.d.ts +8 -0
- package/es/legend/discrete/discrete.js +122 -33
- package/es/legend/discrete/discrete.js.map +1 -1
- package/es/legend/discrete/type.d.ts +16 -4
- package/es/legend/discrete/type.js.map +1 -1
- package/es/marker/type.d.ts +2 -2
- package/es/marker/type.js.map +1 -1
- package/es/player/type/discrete-player.d.ts +3 -3
- package/es/player/type/discrete-player.js.map +1 -1
- package/es/player/type/index.d.ts +2 -2
- package/es/player/type/index.js.map +1 -1
- package/es/scrollbar/index.d.ts +1 -0
- package/es/scrollbar/index.js +2 -0
- package/es/scrollbar/index.js.map +1 -1
- package/es/scrollbar/scrollbar-plugin.d.ts +18 -15
- package/es/scrollbar/scrollbar-plugin.js +111 -94
- package/es/scrollbar/scrollbar-plugin.js.map +1 -1
- package/es/timeline/type.js.map +1 -1
- package/package.json +10 -9
|
@@ -28,7 +28,7 @@ class DiscreteLegend extends base_1.LegendBase {
|
|
|
28
28
|
constructor(attributes, options) {
|
|
29
29
|
super((null == options ? void 0 : options.skipDefault) ? attributes : (0, vutils_1.merge)({}, DiscreteLegend.defaultAttributes, attributes)),
|
|
30
30
|
this.name = "discreteLegend", this._itemsContainer = null, this._itemHeightByUser = void 0,
|
|
31
|
-
this._itemHeight = 0, this._itemMaxWidth = 0, this._onHover = e => {
|
|
31
|
+
this._itemHeight = 0, this._itemMaxWidth = 0, this._contentMaxHeight = 0, this._onHover = e => {
|
|
32
32
|
const target = e.target;
|
|
33
33
|
if (target && target.name && target.name.startsWith(constant_1.LEGEND_ELEMENT_NAME.item)) {
|
|
34
34
|
const legendItem = target.delegate;
|
|
@@ -90,7 +90,7 @@ class DiscreteLegend extends base_1.LegendBase {
|
|
|
90
90
|
}));
|
|
91
91
|
}
|
|
92
92
|
_renderItems() {
|
|
93
|
-
const {item: itemAttrs = {}, maxCol: maxCol = 1, maxRow: maxRow = 2, maxWidth: maxWidth,
|
|
93
|
+
const {item: itemAttrs = {}, maxCol: maxCol = 1, maxRow: maxRow = 2, maxWidth: maxWidth, defaultSelected: defaultSelected, lazyload: lazyload, autoPage: autoPage} = this.attribute, {spaceCol: spaceCol = constant_1.DEFAULT_ITEM_SPACE_COL, spaceRow: spaceRow = constant_1.DEFAULT_ITEM_SPACE_ROW} = itemAttrs, itemsContainer = this._itemsContainer, {items: legendItems, isHorizontal: isHorizontal, startIndex: startIndex, isScrollbar: isScrollbar} = this._itemContext, maxPages = isScrollbar ? 1 : isHorizontal ? maxRow : maxCol, maxHeight = this._contentMaxHeight;
|
|
94
94
|
let item, {doWrap: doWrap, maxWidthInCol: maxWidthInCol, startX: startX, startY: startY, pages: pages} = this._itemContext, lastItemWidth = 0;
|
|
95
95
|
for (let index = startIndex, len = legendItems.length; index < len && !(lazyload && pages > this._itemContext.currentPage * maxPages); index++) {
|
|
96
96
|
lazyload && (this._itemContext.startIndex = index + 1), item = legendItems[index],
|
|
@@ -120,10 +120,10 @@ class DiscreteLegend extends base_1.LegendBase {
|
|
|
120
120
|
lazyload || (this._itemContext.startIndex = legendItems.length), this._itemContext;
|
|
121
121
|
}
|
|
122
122
|
_renderContent() {
|
|
123
|
-
const {item: item = {}, items: items, reversed: reversed, maxWidth: maxWidth} = this.attribute;
|
|
123
|
+
const {item: item = {}, items: items, reversed: reversed, maxWidth: maxWidth, maxHeight: maxHeight} = this.attribute;
|
|
124
124
|
if (!1 === item.visible || (0, vutils_1.isEmpty)(items)) return;
|
|
125
125
|
let legendItems = items;
|
|
126
|
-
reversed && (legendItems = null == items ? void 0 : items.reverse());
|
|
126
|
+
reversed && (legendItems = null == items ? void 0 : items.reverse()), this._contentMaxHeight = Math.max(0, maxHeight - this._parsedPadding[0] - this._parsedPadding[2]);
|
|
127
127
|
const itemsContainer = vrender_core_1.graphicCreator.group({
|
|
128
128
|
x: 0,
|
|
129
129
|
y: 0
|
|
@@ -146,7 +146,8 @@ class DiscreteLegend extends base_1.LegendBase {
|
|
|
146
146
|
items: legendItems,
|
|
147
147
|
isHorizontal: isHorizontal,
|
|
148
148
|
totalPage: 1 / 0,
|
|
149
|
-
isScrollbar: pager && "scrollbar" === pager.type
|
|
149
|
+
isScrollbar: pager && "scrollbar" === pager.type,
|
|
150
|
+
clipContainer: void 0
|
|
150
151
|
}, this._itemContext = this._renderItems();
|
|
151
152
|
let pagerRendered = !1;
|
|
152
153
|
this._itemContext.doWrap && autoPage && this._itemContext.pages > this._itemContext.maxPages && (pagerRendered = this._renderPagerComponent()),
|
|
@@ -157,8 +158,16 @@ class DiscreteLegend extends base_1.LegendBase {
|
|
|
157
158
|
if (this.attribute.disableTriggerEvent) return;
|
|
158
159
|
if (!this._itemsContainer) return;
|
|
159
160
|
const {hover: hover = !0, select: select = !0} = this.attribute;
|
|
160
|
-
|
|
161
|
-
|
|
161
|
+
if (hover) {
|
|
162
|
+
let trigger = "pointermove", triggerOff = "pointerleave";
|
|
163
|
+
(0, vutils_1.isObject)(hover) && (hover.trigger && (trigger = hover.trigger), hover.triggerOff && (triggerOff = hover.triggerOff)),
|
|
164
|
+
this._itemsContainer.addEventListener(trigger, this._onHover), this._itemsContainer.addEventListener(triggerOff, this._onUnHover);
|
|
165
|
+
}
|
|
166
|
+
if (select) {
|
|
167
|
+
let trigger = "pointerdown";
|
|
168
|
+
(0, vutils_1.isObject)(select) && select.trigger && (trigger = select.trigger),
|
|
169
|
+
this._itemsContainer.addEventListener(trigger, this._onClick);
|
|
170
|
+
}
|
|
162
171
|
}
|
|
163
172
|
_autoEllipsis(autoEllipsisStrategy, layoutWidth, labelShape, valueShape) {
|
|
164
173
|
var _a, _b;
|
|
@@ -301,12 +310,12 @@ class DiscreteLegend extends base_1.LegendBase {
|
|
|
301
310
|
direction: "horizontal",
|
|
302
311
|
disableTriggerEvent: disableTriggerEvent,
|
|
303
312
|
range: [ 0, .5 ],
|
|
304
|
-
height: 12
|
|
313
|
+
height: !1 === compStyle.visible ? 0 : 12
|
|
305
314
|
}, compStyle), {
|
|
306
315
|
width: compSize
|
|
307
316
|
})) : new scrollbar_1.ScrollBar(Object.assign(Object.assign({
|
|
308
317
|
direction: "vertical",
|
|
309
|
-
width: 12,
|
|
318
|
+
width: !1 === compStyle.visible ? 0 : 12,
|
|
310
319
|
range: [ 0, .5 ]
|
|
311
320
|
}, compStyle), {
|
|
312
321
|
height: compSize,
|
|
@@ -331,9 +340,15 @@ class DiscreteLegend extends base_1.LegendBase {
|
|
|
331
340
|
});
|
|
332
341
|
}
|
|
333
342
|
}
|
|
343
|
+
_computeScrollbarDelta() {
|
|
344
|
+
const {isHorizontal: isHorizontal, clipContainer: clipContainer} = this._itemContext, itemContainerBounds = this._itemsContainer.AABBBounds, clipContainerBounds = clipContainer.AABBBounds;
|
|
345
|
+
let delta, innerViewSize;
|
|
346
|
+
return isHorizontal ? (innerViewSize = clipContainerBounds.width(), delta = innerViewSize / itemContainerBounds.width()) : (innerViewSize = clipContainerBounds.height(),
|
|
347
|
+
delta = innerViewSize / itemContainerBounds.height()), delta;
|
|
348
|
+
}
|
|
334
349
|
_updatePositionOfScrollbar(contentWidth, contentHeight, renderStartY) {
|
|
335
|
-
const {currentPage: currentPage, totalPage: totalPage
|
|
336
|
-
this._pagerComponent.setScrollRange([
|
|
350
|
+
const {isHorizontal: isHorizontal, currentPage: currentPage, totalPage: totalPage} = this._itemContext, start = (currentPage - 1) / totalPage;
|
|
351
|
+
this._pagerComponent.setScrollRange([ start, start + this._computeScrollbarDelta() ]),
|
|
337
352
|
isHorizontal ? this._pagerComponent.setAttributes({
|
|
338
353
|
x: 0,
|
|
339
354
|
y: renderStartY + contentHeight
|
|
@@ -346,20 +361,32 @@ class DiscreteLegend extends base_1.LegendBase {
|
|
|
346
361
|
const pager = this.attribute.pager || {}, {animation: animation = !0, animationDuration: animationDuration = 450, animationEasing: animationEasing = "quadIn"} = pager, pageParser = this._itemContext.isScrollbar ? e => {
|
|
347
362
|
const {value: value} = e.detail;
|
|
348
363
|
let newPage;
|
|
349
|
-
return 0 === value[0] ?
|
|
350
|
-
|
|
364
|
+
return newPage = 0 === value[0] ? 1 : 1 === value[1] ? this._itemContext.totalPage : value[0] * this._itemContext.totalPage + 1,
|
|
365
|
+
newPage;
|
|
351
366
|
} : e => e.detail.current, onScroll = e => {
|
|
352
367
|
const scrollComponent = this._pagerComponent, preScrollRange = scrollComponent.getScrollRange(), {direction: direction} = scrollComponent.attribute, {width: width, height: height} = scrollComponent.getSliderRenderBounds(), currentScrollValue = "vertical" === direction ? e.deltaY / height : e.deltaX / width;
|
|
353
|
-
scrollComponent.setScrollRange([ preScrollRange[0] + currentScrollValue, preScrollRange[1] + currentScrollValue ], !0)
|
|
368
|
+
scrollComponent.setScrollRange([ preScrollRange[0] + currentScrollValue, preScrollRange[1] + currentScrollValue ], !0),
|
|
369
|
+
this.updateScrollMask();
|
|
354
370
|
}, onPaging = e => {
|
|
355
371
|
const newPage = pageParser(e);
|
|
356
372
|
if (newPage !== this._itemContext.currentPage) {
|
|
357
373
|
if (this._itemContext.currentPage = newPage, this._itemContext && this._itemContext.startIndex < this._itemContext.items.length) {
|
|
358
374
|
this._renderItems();
|
|
359
375
|
const newTotalPage = Math.ceil(this._itemContext.pages / this._itemContext.maxPages);
|
|
360
|
-
this._itemContext.totalPage = newTotalPage, this.
|
|
376
|
+
if (this._itemContext.totalPage = newTotalPage, this._itemContext.isScrollbar && this._pagerComponent) {
|
|
377
|
+
const newDelta = this._computeScrollbarDelta(), [start] = this._pagerComponent.getScrollRange();
|
|
378
|
+
this._pagerComponent.setScrollRange([ start, start + newDelta ]);
|
|
379
|
+
}
|
|
361
380
|
}
|
|
362
|
-
|
|
381
|
+
if (this._itemContext.isScrollbar) {
|
|
382
|
+
const [start] = this._pagerComponent.getScrollRange();
|
|
383
|
+
let containerSize;
|
|
384
|
+
containerSize = this._itemContext.isHorizontal ? this._itemsContainer.AABBBounds.width() : this._itemsContainer.AABBBounds.height();
|
|
385
|
+
const startOffset = containerSize * start;
|
|
386
|
+
this.updateScrollMask(), animation ? this._itemsContainer.animate().to({
|
|
387
|
+
[channel]: -startOffset
|
|
388
|
+
}, animationDuration, animationEasing) : this._itemsContainer.setAttribute(channel, -startOffset);
|
|
389
|
+
} else animation ? this._itemsContainer.animate().to({
|
|
363
390
|
[channel]: -(newPage - 1) * pageSize
|
|
364
391
|
}, animationDuration, animationEasing) : this._itemsContainer.setAttribute(channel, -(newPage - 1) * pageSize);
|
|
365
392
|
}
|
|
@@ -374,7 +401,7 @@ class DiscreteLegend extends base_1.LegendBase {
|
|
|
374
401
|
} else this._pagerComponent.addEventListener("toPrev", onPaging), this._pagerComponent.addEventListener("toNext", onPaging);
|
|
375
402
|
}
|
|
376
403
|
_renderPager() {
|
|
377
|
-
const renderStartY = this._title ? this._title.AABBBounds.height() + (0, vutils_1.get)(this.attribute, "title.space", 8) : 0, {maxWidth: maxWidth,
|
|
404
|
+
const renderStartY = this._title ? this._title.AABBBounds.height() + (0, vutils_1.get)(this.attribute, "title.space", 8) : 0, {maxWidth: maxWidth, maxCol: maxCol = 1, maxRow: maxRow = 2, item: item = {}, pager: pager = {}} = this.attribute, {spaceCol: spaceCol = constant_1.DEFAULT_ITEM_SPACE_COL, spaceRow: spaceRow = constant_1.DEFAULT_ITEM_SPACE_ROW} = item, itemsContainer = this._itemsContainer, {space: pagerSpace = constant_1.DEFAULT_PAGER_SPACE, defaultCurrent: defaultCurrent = 1} = pager, compStyle = __rest(pager, [ "space", "defaultCurrent" ]), {isHorizontal: isHorizontal} = this._itemContext, maxHeight = this._contentMaxHeight;
|
|
378
405
|
let comp, compWidth = 0, compHeight = 0, contentWidth = 0, contentHeight = 0, startX = 0, startY = 0, pages = 1;
|
|
379
406
|
if (isHorizontal) {
|
|
380
407
|
if (compHeight = (maxRow - 1) * spaceRow + this._itemHeight * maxRow, compWidth = maxWidth,
|
|
@@ -416,24 +443,39 @@ class DiscreteLegend extends base_1.LegendBase {
|
|
|
416
443
|
clip: !0,
|
|
417
444
|
pickable: !1
|
|
418
445
|
});
|
|
419
|
-
return clipGroup.add(itemsContainer), this._innerView.add(clipGroup), this.
|
|
446
|
+
return clipGroup.add(itemsContainer), this._innerView.add(clipGroup), this._itemContext.clipContainer = clipGroup,
|
|
447
|
+
this._bindEventsOfPager(isHorizontal ? compHeight + spaceRow : compWidth + spaceCol, isHorizontal ? "y" : "x"),
|
|
420
448
|
!0;
|
|
421
449
|
}
|
|
422
450
|
_renderScrollbar() {
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
comp = this._createScrollbar(compStyle,
|
|
427
|
-
this.
|
|
428
|
-
if (
|
|
429
|
-
this.
|
|
430
|
-
contentHeight <= 0) return this._innerView.removeChild(comp),
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
451
|
+
var _a;
|
|
452
|
+
const renderStartY = this._title ? this._title.AABBBounds.height() + (0, vutils_1.get)(this.attribute, "title.space", 8) : 0, {maxWidth: maxWidth, item: item = {}, pager: pager = {}} = this.attribute, {spaceCol: spaceCol = constant_1.DEFAULT_ITEM_SPACE_COL, spaceRow: spaceRow = constant_1.DEFAULT_ITEM_SPACE_ROW} = item, itemsContainer = this._itemsContainer, {space: pagerSpace = constant_1.DEFAULT_PAGER_SPACE, defaultCurrent: defaultCurrent = 1} = pager, compStyle = __rest(pager, [ "space", "defaultCurrent" ]), {isHorizontal: isHorizontal} = this._itemContext, maxHeight = this._contentMaxHeight;
|
|
453
|
+
let comp, contentWidth = 0, contentHeight = 0, startY = 0, pages = 1;
|
|
454
|
+
if (isHorizontal) contentWidth = maxWidth, contentHeight = this._itemHeight, comp = this._createScrollbar(compStyle, contentWidth),
|
|
455
|
+
this._pagerComponent = comp, this._innerView.add(comp); else {
|
|
456
|
+
if (contentHeight = maxHeight - renderStartY, contentWidth = this._itemMaxWidth,
|
|
457
|
+
comp = this._createScrollbar(compStyle, contentHeight), this._pagerComponent = comp,
|
|
458
|
+
this._innerView.add(comp), contentHeight <= 0) return this._innerView.removeChild(comp),
|
|
459
|
+
!1;
|
|
460
|
+
const items = itemsContainer.getChildren(), itemsHeightArr = items.map((item => item.attribute.height));
|
|
461
|
+
if (1 === itemsHeightArr.length || itemsHeightArr.every((entry => entry === itemsHeightArr[0]))) {
|
|
462
|
+
const itemHeight = itemsHeightArr[0], maxContentHeight = contentHeight, pageItemsCount = Math.floor(maxContentHeight / (spaceRow + itemHeight));
|
|
463
|
+
contentHeight = pageItemsCount * (spaceRow + itemHeight), pages = Math.ceil(items.length / pageItemsCount);
|
|
464
|
+
} else items.forEach(((item, index) => {
|
|
465
|
+
const {height: height} = item.attribute, prePages = pages, preStartY = startY;
|
|
466
|
+
pages = Math.floor((startY + height) / contentHeight) + 1, startY += spaceRow + height,
|
|
467
|
+
prePages !== pages && index === itemsContainer.getChildren().length - 1 && startY - contentHeight >= 1 / 3 * height && (contentHeight = preStartY + height,
|
|
468
|
+
pages -= 1);
|
|
469
|
+
}));
|
|
470
|
+
this._itemContext.totalPage = pages, this._itemContext.pages = pages;
|
|
471
|
+
}
|
|
472
|
+
if (defaultCurrent > 1) if (isHorizontal) {
|
|
473
|
+
const maxOffset = this._itemsContainer.AABBBounds.width() - contentWidth;
|
|
474
|
+
itemsContainer.setAttribute("x", -Math.min((defaultCurrent - 1) * (contentWidth + spaceCol), maxOffset));
|
|
475
|
+
} else {
|
|
476
|
+
const maxOffset = this._itemsContainer.AABBBounds.height() - contentHeight;
|
|
477
|
+
itemsContainer.setAttribute("y", -Math.min((defaultCurrent - 1) * (contentHeight + spaceRow), maxOffset));
|
|
435
478
|
}
|
|
436
|
-
defaultCurrent > 1 && (isHorizontal ? itemsContainer.setAttribute("x", -(defaultCurrent - 1) * (contentWidth + spaceCol)) : itemsContainer.setAttribute("y", -(defaultCurrent - 1) * (contentHeight + spaceRow)));
|
|
437
479
|
const clipGroup = vrender_core_1.graphicCreator.group({
|
|
438
480
|
x: 0,
|
|
439
481
|
y: renderStartY,
|
|
@@ -442,9 +484,57 @@ class DiscreteLegend extends base_1.LegendBase {
|
|
|
442
484
|
clip: !0,
|
|
443
485
|
pickable: !1
|
|
444
486
|
});
|
|
445
|
-
return clipGroup.add(itemsContainer), this._innerView.add(clipGroup), this.
|
|
487
|
+
return clipGroup.add(itemsContainer), this._innerView.add(clipGroup), this._itemContext.clipContainer = clipGroup,
|
|
488
|
+
this._updatePositionOfScrollbar(contentWidth, contentHeight, renderStartY), (null === (_a = pager.scrollMask) || void 0 === _a ? void 0 : _a.visible) && this.renderScrollMask(clipGroup),
|
|
489
|
+
this._bindEventsOfPager(isHorizontal ? contentWidth : contentHeight, isHorizontal ? "x" : "y"),
|
|
446
490
|
!0;
|
|
447
491
|
}
|
|
492
|
+
renderScrollMask(clipGroup) {
|
|
493
|
+
const {scrollMask: scrollMask = {}} = this.attribute.pager, {visible: visible = !0, gradientLength: gradientLength = 16, gradientStops: gradientStops} = scrollMask;
|
|
494
|
+
if (!visible || !gradientStops) return;
|
|
495
|
+
const width = clipGroup.AABBBounds.width(), height = clipGroup.AABBBounds.height(), totalLength = this._itemContext.isHorizontal ? width : height, startStops = gradientStops.map((stop => ({
|
|
496
|
+
offset: gradientLength * stop.offset / totalLength,
|
|
497
|
+
color: stop.color
|
|
498
|
+
}))), endStops = gradientStops.map((stop => ({
|
|
499
|
+
offset: (totalLength - gradientLength * stop.offset) / totalLength,
|
|
500
|
+
color: stop.color
|
|
501
|
+
}))), mask = vrender_core_1.graphicCreator.rect({
|
|
502
|
+
x: 0,
|
|
503
|
+
y: 0,
|
|
504
|
+
width: width,
|
|
505
|
+
height: height
|
|
506
|
+
});
|
|
507
|
+
this._scrollMask = mask, this._scrollMaskContext = {
|
|
508
|
+
startStops: startStops,
|
|
509
|
+
endStops: endStops
|
|
510
|
+
}, this.updateScrollMask(), clipGroup.add(mask);
|
|
511
|
+
}
|
|
512
|
+
updateScrollMask() {
|
|
513
|
+
if (!this._scrollMask || !this._pagerComponent) return;
|
|
514
|
+
if (!this._itemContext.isScrollbar) return;
|
|
515
|
+
const [start, end] = this._pagerComponent.getScrollRange(), stops = [];
|
|
516
|
+
(0, vutils_1.isNumberClose)((0, vutils_1.clamp)(end, 0, 1), 1) || stops.push(...this._scrollMaskContext.endStops),
|
|
517
|
+
(0, vutils_1.isNumberClose)((0, vutils_1.clamp)(start, 0, 1), 0) || stops.push(...this._scrollMaskContext.startStops),
|
|
518
|
+
stops.length && (this._itemContext.isHorizontal ? this._scrollMask.setAttributes({
|
|
519
|
+
fill: {
|
|
520
|
+
gradient: "linear",
|
|
521
|
+
x0: 0,
|
|
522
|
+
y0: 0,
|
|
523
|
+
x1: 1,
|
|
524
|
+
y1: 0,
|
|
525
|
+
stops: stops
|
|
526
|
+
}
|
|
527
|
+
}) : this._scrollMask.setAttributes({
|
|
528
|
+
fill: {
|
|
529
|
+
gradient: "linear",
|
|
530
|
+
x0: 0,
|
|
531
|
+
y0: 0,
|
|
532
|
+
x1: 0,
|
|
533
|
+
y1: 1,
|
|
534
|
+
stops: stops
|
|
535
|
+
}
|
|
536
|
+
}));
|
|
537
|
+
}
|
|
448
538
|
_renderPagerComponent() {
|
|
449
539
|
return this._itemContext.isScrollbar ? this._renderScrollbar() : this._renderPager(),
|
|
450
540
|
!0;
|