@visactor/vrender-components 0.18.0-alpha.1 → 0.18.0-alpha.2

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.
Files changed (67) hide show
  1. package/cjs/data-zoom/data-zoom.d.ts +1 -0
  2. package/cjs/data-zoom/data-zoom.js +59 -55
  3. package/cjs/data-zoom/data-zoom.js.map +1 -1
  4. package/cjs/data-zoom/type.d.ts +1 -0
  5. package/cjs/data-zoom/type.js.map +1 -1
  6. package/cjs/index.d.ts +1 -1
  7. package/cjs/index.js +1 -1
  8. package/cjs/index.js.map +1 -1
  9. package/cjs/legend/color/color.d.ts +7 -0
  10. package/cjs/legend/color/color.js +16 -2
  11. package/cjs/legend/color/color.js.map +1 -1
  12. package/cjs/legend/discrete/discrete.d.ts +20 -3
  13. package/cjs/legend/discrete/discrete.js +166 -75
  14. package/cjs/legend/discrete/discrete.js.map +1 -1
  15. package/cjs/legend/discrete/type.d.ts +18 -7
  16. package/cjs/legend/discrete/type.js.map +1 -1
  17. package/cjs/legend/register.js +2 -2
  18. package/cjs/legend/register.js.map +1 -1
  19. package/cjs/legend/size/size.d.ts +1 -0
  20. package/cjs/legend/size/size.js +4 -1
  21. package/cjs/legend/size/size.js.map +1 -1
  22. package/cjs/pager/pager.d.ts +2 -0
  23. package/cjs/pager/pager.js +13 -3
  24. package/cjs/pager/pager.js.map +1 -1
  25. package/cjs/pager/type.d.ts +1 -0
  26. package/cjs/pager/type.js.map +1 -1
  27. package/cjs/scrollbar/scrollbar.js +10 -2
  28. package/cjs/scrollbar/scrollbar.js.map +1 -1
  29. package/cjs/slider/slider.d.ts +27 -0
  30. package/cjs/slider/slider.js +101 -12
  31. package/cjs/slider/slider.js.map +1 -1
  32. package/cjs/slider/type.d.ts +9 -1
  33. package/cjs/slider/type.js.map +1 -1
  34. package/es/data-zoom/data-zoom.d.ts +1 -0
  35. package/es/data-zoom/data-zoom.js +59 -57
  36. package/es/data-zoom/data-zoom.js.map +1 -1
  37. package/es/data-zoom/type.d.ts +1 -0
  38. package/es/data-zoom/type.js.map +1 -1
  39. package/es/index.d.ts +1 -1
  40. package/es/index.js +1 -1
  41. package/es/index.js.map +1 -1
  42. package/es/legend/color/color.d.ts +7 -0
  43. package/es/legend/color/color.js +17 -3
  44. package/es/legend/color/color.js.map +1 -1
  45. package/es/legend/discrete/discrete.d.ts +20 -3
  46. package/es/legend/discrete/discrete.js +166 -74
  47. package/es/legend/discrete/discrete.js.map +1 -1
  48. package/es/legend/discrete/type.d.ts +18 -7
  49. package/es/legend/discrete/type.js.map +1 -1
  50. package/es/legend/register.js +3 -1
  51. package/es/legend/register.js.map +1 -1
  52. package/es/legend/size/size.d.ts +1 -0
  53. package/es/legend/size/size.js +4 -1
  54. package/es/legend/size/size.js.map +1 -1
  55. package/es/pager/pager.d.ts +2 -0
  56. package/es/pager/pager.js +14 -4
  57. package/es/pager/pager.js.map +1 -1
  58. package/es/pager/type.d.ts +1 -0
  59. package/es/pager/type.js.map +1 -1
  60. package/es/scrollbar/scrollbar.js +10 -2
  61. package/es/scrollbar/scrollbar.js.map +1 -1
  62. package/es/slider/slider.d.ts +27 -0
  63. package/es/slider/slider.js +101 -12
  64. package/es/slider/slider.js.map +1 -1
  65. package/es/slider/type.d.ts +9 -1
  66. package/es/slider/type.js.map +1 -1
  67. package/package.json +5 -5
@@ -1,5 +1,5 @@
1
1
  import { LegendBase } from '../base';
2
- import type { DiscreteLegendAttrs } from './type';
2
+ import type { DiscreteLegendAttrs, LegendItemDatum } from './type';
3
3
  import type { ComponentOptions } from '../../interface';
4
4
  export declare class DiscreteLegend extends LegendBase<DiscreteLegendAttrs> {
5
5
  name: string;
@@ -8,15 +8,32 @@ export declare class DiscreteLegend extends LegendBase<DiscreteLegendAttrs> {
8
8
  private _itemHeightByUser;
9
9
  private _itemHeight;
10
10
  private _itemMaxWidth;
11
- private _pager;
11
+ private _pagerComponent;
12
12
  private _lastActiveItem;
13
+ private _itemContext;
13
14
  static defaultAttributes: Partial<DiscreteLegendAttrs>;
14
15
  constructor(attributes: DiscreteLegendAttrs, options?: ComponentOptions);
15
16
  setSelected(selectedData: (string | number)[]): void;
17
+ protected _renderItems(): {
18
+ doWrap: boolean;
19
+ maxWidthInCol: number;
20
+ startX: number;
21
+ startY: number;
22
+ maxPages: number;
23
+ pages: number;
24
+ startIndex: number;
25
+ items: LegendItemDatum[];
26
+ isHorizontal: boolean;
27
+ currentPage: number;
28
+ totalPage: number;
29
+ };
16
30
  protected _renderContent(): void;
17
31
  protected _bindEvents(): void;
18
32
  private _renderEachItem;
19
- private _renderPager;
33
+ private _createPager;
34
+ private _updatePositionOfPager;
35
+ private _bindEventsOfPager;
36
+ private _renderPagerComponent;
20
37
  private _onHover;
21
38
  private _onUnHover;
22
39
  private _onClick;
@@ -14,7 +14,7 @@ Object.defineProperty(exports, "__esModule", {
14
14
  value: !0
15
15
  }), exports.DiscreteLegend = void 0;
16
16
 
17
- const vutils_1 = require("@visactor/vutils"), vrender_core_1 = require("@visactor/vrender-core"), base_1 = require("../base"), pager_1 = require("../../pager"), constant_1 = require("../constant"), register_1 = require("../register"), util_1 = require("../../util"), DEFAULT_STATES = {
17
+ const vutils_1 = require("@visactor/vutils"), vrender_core_1 = require("@visactor/vrender-core"), base_1 = require("../base"), pager_1 = require("../../pager"), constant_1 = require("../constant"), register_1 = require("../register"), util_1 = require("../../util"), scrollbar_1 = require("../../scrollbar"), DEFAULT_STATES = {
18
18
  [constant_1.LegendStateValue.focus]: {},
19
19
  [constant_1.LegendStateValue.selected]: {},
20
20
  [constant_1.LegendStateValue.selectedHover]: {},
@@ -86,39 +86,63 @@ class DiscreteLegend extends base_1.LegendBase {
86
86
  this._setLegendItemState(item, constant_1.LegendStateValue.unSelected));
87
87
  }));
88
88
  }
89
- _renderContent() {
90
- const {item: item = {}, items: items, reversed: reversed, maxCol: maxCol = 1, maxRow: maxRow = 2} = this.attribute;
91
- if (!1 === item.visible || (0, vutils_1.isEmpty)(items)) return;
92
- let legendItems = items;
93
- reversed && (legendItems = null == items ? void 0 : items.reverse());
94
- const itemsContainer = vrender_core_1.graphicCreator.group({
95
- x: 0,
96
- y: 0
97
- });
98
- this._itemsContainer = itemsContainer;
99
- const {layout: layout, maxWidth: maxWidth, maxHeight: maxHeight, defaultSelected: defaultSelected = [], autoPage: autoPage} = this.attribute, isHorizontal = "horizontal" === layout, {spaceCol: spaceCol = constant_1.DEFAULT_ITEM_SPACE_COL, spaceRow: spaceRow = constant_1.DEFAULT_ITEM_SPACE_ROW, maxWidth: maxItemWidth, width: itemWidth, height: itemHeight} = item;
100
- (0, vutils_1.isValid)(maxItemWidth) ? (0, vutils_1.isValid)(itemWidth) ? this._itemWidthByUser = Math.min(maxItemWidth, itemWidth) : this._itemWidthByUser = maxItemWidth : (0,
101
- vutils_1.isValid)(itemWidth) && (this._itemWidthByUser = itemWidth), (0, vutils_1.isValid)(itemHeight) && (this._itemHeightByUser = itemHeight);
102
- let doWrap = !1, maxWidthInCol = 0, startX = 0, startY = 0, maxPages = 1, pages = 1;
103
- legendItems.forEach(((item, index) => {
104
- item.id || (item.id = item.label), item.index = index;
89
+ _renderItems() {
90
+ const {item: itemAttrs = {}, maxCol: maxCol = 1, maxRow: maxRow = 2, maxWidth: maxWidth, maxHeight: maxHeight, defaultSelected: defaultSelected = [], lazyload: lazyload} = 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} = this._itemContext, maxPages = isHorizontal ? maxRow : maxCol;
91
+ let item, {doWrap: doWrap, maxWidthInCol: maxWidthInCol, startX: startX, startY: startY, pages: pages} = this._itemContext;
92
+ for (let index = startIndex, len = legendItems.length; index < len; index++) {
93
+ if (lazyload && pages > this._itemContext.currentPage * maxPages) {
94
+ this._itemContext.startIndex = index;
95
+ break;
96
+ }
97
+ item = legendItems[index], item.id || (item.id = item.label), item.index = index;
105
98
  const itemGroup = this._renderEachItem(item, !!(0, vutils_1.isEmpty)(defaultSelected) || (null == defaultSelected ? void 0 : defaultSelected.includes(item.label)), index, legendItems), itemWidth = itemGroup.attribute.width, itemHeight = itemGroup.attribute.height;
106
99
  this._itemHeight = Math.max(this._itemHeight, itemHeight), maxWidthInCol = Math.max(itemWidth, maxWidthInCol),
107
- this._itemMaxWidth = Math.max(itemWidth, this._itemMaxWidth), isHorizontal ? (maxPages = maxRow,
108
- (0, vutils_1.isValid)(maxWidth) && (itemWidth >= maxWidth ? (doWrap = !0, index > 0 && (startX = 0,
100
+ this._itemMaxWidth = Math.max(itemWidth, this._itemMaxWidth), isHorizontal ? ((0,
101
+ vutils_1.isValid)(maxWidth) && (itemWidth >= maxWidth ? (doWrap = !0, index > 0 && (startX = 0,
109
102
  startY += itemHeight + spaceRow, pages += 1)) : maxWidth < startX + itemWidth && (doWrap = !0,
110
103
  startX = 0, startY += itemHeight + spaceRow, pages += 1)), index > 0 && itemGroup.setAttributes({
111
104
  x: startX,
112
105
  y: startY
113
- }), startX += spaceCol + itemWidth) : (maxPages = maxCol, (0, vutils_1.isValid)(maxHeight) && maxHeight < startY + itemHeight && (doWrap = !0,
106
+ }), startX += spaceCol + itemWidth) : ((0, vutils_1.isValid)(maxHeight) && maxHeight < startY + itemHeight && (doWrap = !0,
114
107
  startY = 0, startX += maxWidthInCol + spaceCol, maxWidthInCol = 0, pages += 1),
115
108
  index > 0 && itemGroup.setAttributes({
116
109
  x: startX,
117
110
  y: startY
118
111
  }), startY += spaceRow + itemHeight), itemsContainer.add(itemGroup);
119
- }));
112
+ }
113
+ return this._itemContext.doWrap = doWrap, this._itemContext.startX = startX, this._itemContext.startY = startY,
114
+ this._itemContext.maxWidthInCol = maxWidthInCol, this._itemContext.pages = pages,
115
+ this._itemContext.maxPages = maxPages, lazyload || (this._itemContext.startIndex = legendItems.length),
116
+ this._itemContext;
117
+ }
118
+ _renderContent() {
119
+ const {item: item = {}, items: items, reversed: reversed} = this.attribute;
120
+ if (!1 === item.visible || (0, vutils_1.isEmpty)(items)) return;
121
+ let legendItems = items;
122
+ reversed && (legendItems = null == items ? void 0 : items.reverse());
123
+ const itemsContainer = vrender_core_1.graphicCreator.group({
124
+ x: 0,
125
+ y: 0
126
+ });
127
+ this._itemsContainer = itemsContainer;
128
+ const {layout: layout, autoPage: autoPage} = this.attribute, isHorizontal = "horizontal" === layout, {maxWidth: maxItemWidth, width: itemWidth, height: itemHeight} = item;
129
+ (0, vutils_1.isValid)(maxItemWidth) ? (0, vutils_1.isValid)(itemWidth) ? this._itemWidthByUser = Math.min(maxItemWidth, itemWidth) : this._itemWidthByUser = maxItemWidth : (0,
130
+ vutils_1.isValid)(itemWidth) && (this._itemWidthByUser = itemWidth), (0, vutils_1.isValid)(itemHeight) && (this._itemHeightByUser = itemHeight),
131
+ this._itemContext = {
132
+ currentPage: this.attribute.pager && this.attribute.pager.defaultCurrent || 1,
133
+ doWrap: !1,
134
+ maxWidthInCol: 0,
135
+ maxPages: 1,
136
+ pages: 1,
137
+ startX: 0,
138
+ startY: 0,
139
+ startIndex: 0,
140
+ items: legendItems,
141
+ isHorizontal: isHorizontal,
142
+ totalPage: 1 / 0
143
+ }, this._itemContext = this._renderItems();
120
144
  let pagerRendered = !1;
121
- doWrap && autoPage && pages > maxPages && (pagerRendered = this._renderPager(isHorizontal)),
145
+ this._itemContext.doWrap && autoPage && this._itemContext.pages > this._itemContext.maxPages && (pagerRendered = this._renderPagerComponent(isHorizontal)),
122
146
  pagerRendered || (itemsContainer.setAttribute("y", this._title ? this._title.AABBBounds.height() + (0,
123
147
  vutils_1.get)(this.attribute, "title.space", 8) : 0), this._innerView.add(itemsContainer));
124
148
  }
@@ -131,7 +155,7 @@ class DiscreteLegend extends base_1.LegendBase {
131
155
  }
132
156
  _renderEachItem(item, isSelected, index, items) {
133
157
  var _a, _b;
134
- const {id: id, label: label, value: value, shape: shape} = item, {padding: padding = 0, focus: focus, focusIconStyle: focusIconStyle} = this.attribute.item, {shape: shapeAttr, label: labelAttr, value: valueAttr, background: background} = this.attribute.item, shapeStyle = this._handleStyle(shapeAttr, item, isSelected, index, items), labelStyle = this._handleStyle(labelAttr, item, isSelected, index, items), valueStyle = this._handleStyle(valueAttr, item, isSelected, index, items), backgroundStyle = this._handleStyle(background, item, isSelected, index, items), parsedPadding = (0,
158
+ const {id: id, label: label, value: value, shape: shape} = item, {padding: padding = 0, focus: focus, focusIconStyle: focusIconStyle, align: align} = this.attribute.item, {shape: shapeAttr, label: labelAttr, value: valueAttr, background: background} = this.attribute.item, shapeStyle = this._handleStyle(shapeAttr, item, isSelected, index, items), labelStyle = this._handleStyle(labelAttr, item, isSelected, index, items), valueStyle = this._handleStyle(valueAttr, item, isSelected, index, items), backgroundStyle = this._handleStyle(background, item, isSelected, index, items), parsedPadding = (0,
135
159
  vutils_1.normalizePadding)(padding);
136
160
  let itemGroup;
137
161
  !1 === background.visible ? (itemGroup = vrender_core_1.graphicCreator.group({
@@ -224,83 +248,150 @@ class DiscreteLegend extends base_1.LegendBase {
224
248
  } else this._itemWidthByUser ? (labelShape.setAttribute("maxLineWidth", this._itemWidthByUser - parsedPadding[1] - parsedPadding[3] - shapeSize - shapeSpace - focusSpace),
225
249
  focusStartX = labelShape.AABBBounds.x2 + labelSpace) : focusStartX = labelShape.AABBBounds.x2 + labelSpace;
226
250
  focusShape && (focusShape.setAttribute("x", focusStartX), innerGroup.add(focusShape));
227
- const innerGroupBounds = innerGroup.AABBBounds, innerGroupWidth = innerGroupBounds.width(), innerGroupHeight = innerGroupBounds.height(), itemGroupWidth = (0,
228
- vutils_1.isValid)(this.attribute.item.width) ? this.attribute.item.width : innerGroupWidth + parsedPadding[1] + parsedPadding[3], itemGroupHeight = this._itemHeightByUser || innerGroupHeight + parsedPadding[0] + parsedPadding[2];
251
+ const innerGroupBounds = innerGroup.AABBBounds, innerGroupWidth = innerGroupBounds.width();
252
+ if ("right" === align) {
253
+ const x2 = innerGroupBounds.x2, x1 = innerGroupBounds.x1;
254
+ innerGroup.forEachChildren(((child, index) => {
255
+ "symbol" !== child.type && "right" !== child.attribute.textAlign || child === focusShape ? child.setAttribute("x", x1 + x2 - child.attribute.x - child.AABBBounds.width()) : "symbol" !== child.type ? child.setAttributes({
256
+ x: x1 + x2 - child.attribute.x,
257
+ textAlign: "left"
258
+ }) : child.setAttribute("x", x1 + x2 - child.attribute.x);
259
+ }));
260
+ }
261
+ const innerGroupHeight = innerGroupBounds.height(), itemGroupWidth = (0, vutils_1.isValid)(this.attribute.item.width) ? this.attribute.item.width : innerGroupWidth + parsedPadding[1] + parsedPadding[3], itemGroupHeight = this._itemHeightByUser || innerGroupHeight + parsedPadding[0] + parsedPadding[2];
229
262
  return itemGroup.attribute.width = itemGroupWidth, itemGroup.attribute.height = itemGroupHeight,
230
263
  focusShape && focusShape.setAttribute("visible", !1), innerGroup.translateTo(-innerGroupBounds.x1 + parsedPadding[3], -innerGroupBounds.y1 + parsedPadding[0]),
231
264
  itemGroup;
232
265
  }
233
- _renderPager(isHorizontal) {
234
- const renderStartY = this._title ? this._title.AABBBounds.height() + (0, vutils_1.get)(this.attribute, "title.space", 8) : 0, {maxWidth: maxWidth, maxHeight: maxHeight, maxCol: maxCol = 1, maxRow: maxRow = 2, item: item = {}, pager: pager = {}, disableTriggerEvent: disableTriggerEvent} = this.attribute, {spaceCol: spaceCol = constant_1.DEFAULT_ITEM_SPACE_COL, spaceRow: spaceRow = constant_1.DEFAULT_ITEM_SPACE_ROW} = item, itemsContainer = this._itemsContainer, {animation: animation = !0, animationDuration: animationDuration = 450, animationEasing: animationEasing = "quadIn", space: pagerSpace = constant_1.DEFAULT_PAGER_SPACE, position: position = "middle"} = pager, pageStyle = __rest(pager, [ "animation", "animationDuration", "animationEasing", "space", "position" ]);
235
- let pagerComp, pageHeight = 0, pageWidth = 0, startX = 0, startY = 0, pages = 1;
236
- if (isHorizontal) {
237
- if (pagerComp = new pager_1.Pager(Object.assign(Object.assign({
238
- layout: 1 === maxRow ? "horizontal" : "vertical",
239
- total: 99
240
- }, (0, vutils_1.merge)({
241
- handler: {
242
- preShape: "triangleUp",
243
- nextShape: "triangleDown"
266
+ _createPager(isScrollbar, isHorizontal, compStyle, compSize) {
267
+ var _a, _b;
268
+ const {disableTriggerEvent: disableTriggerEvent, maxRow: maxRow} = this.attribute;
269
+ return isScrollbar ? isHorizontal ? new scrollbar_1.ScrollBar(Object.assign(Object.assign({
270
+ direction: "vertical",
271
+ width: 12,
272
+ range: [ 0, .5 ]
273
+ }, compStyle), {
274
+ height: compSize,
275
+ disableTriggerEvent: disableTriggerEvent
276
+ })) : new scrollbar_1.ScrollBar(Object.assign(Object.assign({
277
+ direction: "horizontal",
278
+ disableTriggerEvent: disableTriggerEvent,
279
+ range: [ 0, .5 ],
280
+ height: 12
281
+ }, compStyle), {
282
+ width: compSize
283
+ })) : isHorizontal ? new pager_1.Pager(Object.assign(Object.assign({
284
+ layout: 1 === maxRow ? "horizontal" : "vertical",
285
+ total: 99
286
+ }, (0, vutils_1.merge)({
287
+ handler: {
288
+ preShape: "triangleUp",
289
+ nextShape: "triangleDown"
290
+ }
291
+ }, compStyle)), {
292
+ defaultCurrent: null === (_a = this.attribute.pager) || void 0 === _a ? void 0 : _a.defaultCurrent,
293
+ disableTriggerEvent: disableTriggerEvent
294
+ })) : new pager_1.Pager(Object.assign({
295
+ layout: "horizontal",
296
+ total: 99,
297
+ disableTriggerEvent: disableTriggerEvent,
298
+ defaultCurrent: null === (_b = this.attribute.pager) || void 0 === _b ? void 0 : _b.defaultCurrent
299
+ }, compStyle));
300
+ }
301
+ _updatePositionOfPager(isScrollbar, isHorizontal, contentSize, renderStartY, compSize) {
302
+ const {maxHeight: maxHeight, pager: pager} = this.attribute, {currentPage: currentPage, totalPage: totalPage} = this._itemContext;
303
+ if (isScrollbar) this._pagerComponent.setScrollRange([ (currentPage - 1) / totalPage, currentPage / totalPage ]),
304
+ isHorizontal ? this._pagerComponent.setAttributes({
305
+ x: contentSize,
306
+ y: renderStartY
307
+ }) : this._pagerComponent.setAttributes({
308
+ x: 0,
309
+ y: maxHeight - this._pagerComponent.AABBBounds.height()
310
+ }); else {
311
+ const position = pager && pager.position || "middle";
312
+ if (this._pagerComponent.setTotal(totalPage), isHorizontal) {
313
+ let y;
314
+ y = "start" === position ? renderStartY : "end" === position ? renderStartY + compSize - this._pagerComponent.AABBBounds.height() / 2 : renderStartY + compSize / 2 - this._pagerComponent.AABBBounds.height() / 2,
315
+ this._pagerComponent.setAttributes({
316
+ x: contentSize,
317
+ y: y
318
+ });
319
+ } else {
320
+ let x;
321
+ x = "start" === position ? 0 : "end" === position ? compSize - this._pagerComponent.AABBBounds.width() : (compSize - this._pagerComponent.AABBBounds.width()) / 2,
322
+ this._pagerComponent.setAttributes({
323
+ x: x,
324
+ y: maxHeight - this._pagerComponent.AABBBounds.height()
325
+ });
326
+ }
327
+ }
328
+ }
329
+ _bindEventsOfPager(isScrollbar, isHorizontal, compSize, spaceSize) {
330
+ const pager = this.attribute.pager || {}, {animation: animation = !0, animationDuration: animationDuration = 450, animationEasing: animationEasing = "quadIn"} = pager, pageParser = isScrollbar ? e => {
331
+ const {value: value} = e.detail;
332
+ let newPage = value[0] * this._itemContext.totalPage;
333
+ return pager.scrollByPosition ? newPage += 1 : newPage = Math.floor(newPage) + 1,
334
+ newPage;
335
+ } : e => e.detail.current, onPaging = e => {
336
+ const newPage = pageParser(e);
337
+ if (newPage !== this._itemContext.currentPage) {
338
+ if (this._itemContext.currentPage = newPage, this._itemContext && this._itemContext.startIndex < this._itemContext.items.length) {
339
+ this._renderItems();
340
+ const newTotalPage = Math.ceil(this._itemContext.pages / this._itemContext.maxPages);
341
+ this._itemContext.totalPage = newTotalPage, this._pagerComponent.setScrollRange([ (newPage - 1) / newTotalPage, newPage / newTotalPage ]);
244
342
  }
245
- }, pageStyle)), {
246
- disableTriggerEvent: disableTriggerEvent
247
- })), this._pager = pagerComp, this._innerView.add(pagerComp), pageHeight = (maxRow - 1) * spaceRow + this._itemHeight * maxRow,
248
- pageWidth = maxWidth - pagerComp.AABBBounds.width() - pagerSpace, pageWidth <= 0) return this._innerView.removeChild(pagerComp),
249
- !1;
250
- let y;
343
+ animation ? this._itemsContainer.animate().to(isHorizontal ? {
344
+ y: -(newPage - 1) * (compSize + spaceSize)
345
+ } : {
346
+ x: -(newPage - 1) * (compSize + spaceSize)
347
+ }, animationDuration, animationEasing) : isHorizontal ? this._itemsContainer.setAttribute("y", -(newPage - 1) * (compSize + spaceSize)) : this._itemsContainer.setAttribute("x", -(newPage - 1) * (compSize + spaceSize));
348
+ }
349
+ };
350
+ isScrollbar ? (this._pagerComponent.addEventListener("scrollDrag", onPaging), this._pagerComponent.addEventListener("scrollUp", onPaging)) : (this._pagerComponent.addEventListener("toPrev", onPaging),
351
+ this._pagerComponent.addEventListener("toNext", onPaging));
352
+ }
353
+ _renderPagerComponent(isHorizontal) {
354
+ const renderStartY = this._title ? this._title.AABBBounds.height() + (0, vutils_1.get)(this.attribute, "title.space", 8) : 0, {maxWidth: maxWidth, maxHeight: maxHeight, 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" ]), isScrollbar = "scrollbar" === pager.type;
355
+ let comp, compSize = 0, contentSize = 0, startX = 0, startY = 0, pages = 1;
356
+ if (isHorizontal) {
357
+ if (compSize = (maxRow - 1) * spaceRow + this._itemHeight * maxRow, comp = this._createPager(isScrollbar, isHorizontal, compStyle, compSize),
358
+ this._pagerComponent = comp, this._innerView.add(comp), contentSize = maxWidth - comp.AABBBounds.width() - pagerSpace,
359
+ contentSize <= 0) return this._innerView.removeChild(comp), !1;
251
360
  itemsContainer.getChildren().forEach(((item, index) => {
252
361
  const {width: width, height: height} = item.attribute;
253
- pageWidth < startX + width && (startX = 0, startY += height + spaceRow, pages += 1),
362
+ contentSize < startX + width && (startX = 0, startY += height + spaceRow, pages += 1),
254
363
  index > 0 && item.setAttributes({
255
364
  x: startX,
256
365
  y: startY
257
366
  }), startX += spaceCol + width;
258
- })), pagerComp.setAttribute("total", Math.ceil(pages / maxRow)), y = "start" === position ? renderStartY : "end" === position ? renderStartY + pageHeight - pagerComp.AABBBounds.height() / 2 : renderStartY + pageHeight / 2 - pagerComp.AABBBounds.height() / 2,
259
- pagerComp.setAttributes({
260
- x: pageWidth,
261
- y: y
262
- });
367
+ })), this._itemContext.startX = startX, this._itemContext.startY = startY, this._itemContext.pages = pages;
368
+ const total = Math.ceil(pages / maxRow);
369
+ this._itemContext.totalPage = total, this._updatePositionOfPager(isScrollbar, isHorizontal, contentSize, renderStartY, compSize);
263
370
  } else {
264
- if (pagerComp = new pager_1.Pager(Object.assign({
265
- layout: "horizontal",
266
- total: 99,
267
- disableTriggerEvent: disableTriggerEvent
268
- }, pageStyle)), this._pager = pagerComp, this._innerView.add(pagerComp), pageWidth = this._itemMaxWidth * maxCol + (maxCol - 1) * spaceCol,
269
- pageHeight = maxHeight - pagerComp.AABBBounds.height() - pagerSpace - renderStartY,
270
- pageHeight <= 0) return this._innerView.removeChild(pagerComp), !1;
271
- let x;
371
+ if (compSize = this._itemMaxWidth * maxCol + (maxCol - 1) * spaceCol, comp = this._createPager(isScrollbar, isHorizontal, compStyle, compSize),
372
+ this._pagerComponent = comp, this._innerView.add(comp), contentSize = maxHeight - comp.AABBBounds.height() - pagerSpace - renderStartY,
373
+ contentSize <= 0) return this._innerView.removeChild(comp), !1;
272
374
  itemsContainer.getChildren().forEach(((item, index) => {
273
375
  const {height: height} = item.attribute;
274
- pageHeight < startY + height && (startY = 0, startX += this._itemMaxWidth + spaceCol,
376
+ contentSize < startY + height && (startY = 0, startX += this._itemMaxWidth + spaceCol,
275
377
  pages += 1), index > 0 && item.setAttributes({
276
378
  x: startX,
277
379
  y: startY
278
380
  }), startY += spaceRow + height;
279
- })), pagerComp.setAttribute("total", Math.ceil(pages / maxCol)), x = "start" === position ? 0 : "end" === position ? pageWidth - pagerComp.AABBBounds.width() : (pageWidth - pagerComp.AABBBounds.width()) / 2,
280
- pagerComp.setAttributes({
281
- x: x,
282
- y: maxHeight - pagerComp.AABBBounds.height()
283
- });
381
+ }));
382
+ const total = Math.ceil(pages / maxCol);
383
+ this._itemContext.totalPage = total, this._updatePositionOfPager(isScrollbar, isHorizontal, contentSize, renderStartY, compSize);
284
384
  }
285
- pager.defaultCurrent > 1 && (isHorizontal ? itemsContainer.setAttribute("y", -(pager.defaultCurrent - 1) * (pageHeight + spaceRow)) : itemsContainer.setAttribute("x", -(pager.defaultCurrent - 1) * (pageWidth + spaceCol)));
385
+ defaultCurrent > 1 && (isHorizontal ? itemsContainer.setAttribute("y", -(defaultCurrent - 1) * (compSize + spaceRow)) : itemsContainer.setAttribute("x", -(defaultCurrent - 1) * (compSize + spaceCol)));
286
386
  const clipGroup = vrender_core_1.graphicCreator.group({
287
387
  x: 0,
288
388
  y: renderStartY,
289
- width: pageWidth,
290
- height: pageHeight,
389
+ width: isHorizontal ? contentSize : compSize,
390
+ height: isHorizontal ? compSize : contentSize,
291
391
  clip: !0,
292
392
  pickable: !1
293
393
  });
294
- clipGroup.add(itemsContainer), this._innerView.add(clipGroup);
295
- const onPaging = e => {
296
- const {current: current} = e.detail;
297
- animation ? itemsContainer.animate().to(isHorizontal ? {
298
- y: -(current - 1) * (pageHeight + spaceRow)
299
- } : {
300
- x: -(current - 1) * (pageWidth + spaceCol)
301
- }, animationDuration, animationEasing) : isHorizontal ? itemsContainer.setAttribute("y", -(current - 1) * (pageHeight + spaceRow)) : itemsContainer.setAttribute("x", -(current - 1) * (pageWidth + spaceCol));
302
- };
303
- return this._pager.addEventListener("toPrev", onPaging), this._pager.addEventListener("toNext", onPaging),
394
+ return clipGroup.add(itemsContainer), this._innerView.add(clipGroup), this._bindEventsOfPager(isScrollbar, isHorizontal, compSize, isHorizontal ? spaceRow : spaceCol),
304
395
  !0;
305
396
  }
306
397
  _hover(legendItem, e) {