@visactor/vrender-components 0.21.2-vstory.3 → 0.21.3-alpha.0

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 (90) hide show
  1. package/cjs/axis/overlap/util.d.ts +2 -2
  2. package/cjs/axis/overlap/util.js +4 -4
  3. package/cjs/axis/overlap/util.js.map +1 -1
  4. package/cjs/axis/util.js +6 -3
  5. package/cjs/axis/util.js.map +1 -1
  6. package/cjs/core/base.d.ts +0 -1
  7. package/cjs/core/base.js +3 -3
  8. package/cjs/core/base.js.map +1 -1
  9. package/cjs/index.d.ts +1 -3
  10. package/cjs/index.js +2 -3
  11. package/cjs/index.js.map +1 -1
  12. package/cjs/interface.d.ts +1 -2
  13. package/cjs/interface.js.map +1 -1
  14. package/cjs/legend/discrete/discrete.js +15 -5
  15. package/cjs/legend/discrete/discrete.js.map +1 -1
  16. package/cjs/poptip/poptip.d.ts +2 -14
  17. package/cjs/poptip/poptip.js +51 -137
  18. package/cjs/poptip/poptip.js.map +1 -1
  19. package/cjs/poptip/type.d.ts +0 -6
  20. package/cjs/poptip/type.js.map +1 -1
  21. package/dist/index.es.js +5062 -5828
  22. package/es/axis/overlap/util.d.ts +2 -2
  23. package/es/axis/overlap/util.js +4 -4
  24. package/es/axis/overlap/util.js.map +1 -1
  25. package/es/axis/util.js +7 -2
  26. package/es/axis/util.js.map +1 -1
  27. package/es/core/base.d.ts +0 -1
  28. package/es/core/base.js +3 -4
  29. package/es/core/base.js.map +1 -1
  30. package/es/index.d.ts +1 -3
  31. package/es/index.js +1 -5
  32. package/es/index.js.map +1 -1
  33. package/es/interface.d.ts +1 -2
  34. package/es/interface.js.map +1 -1
  35. package/es/legend/discrete/discrete.js +15 -5
  36. package/es/legend/discrete/discrete.js.map +1 -1
  37. package/es/poptip/poptip.d.ts +2 -14
  38. package/es/poptip/poptip.js +49 -136
  39. package/es/poptip/poptip.js.map +1 -1
  40. package/es/poptip/type.d.ts +0 -6
  41. package/es/poptip/type.js.map +1 -1
  42. package/package.json +5 -5
  43. package/cjs/label-item/index.d.ts +0 -2
  44. package/cjs/label-item/index.js +0 -21
  45. package/cjs/label-item/index.js.map +0 -1
  46. package/cjs/label-item/label-item.d.ts +0 -29
  47. package/cjs/label-item/label-item.js +0 -265
  48. package/cjs/label-item/label-item.js.map +0 -1
  49. package/cjs/label-item/register.d.ts +0 -1
  50. package/cjs/label-item/register.js +0 -15
  51. package/cjs/label-item/register.js.map +0 -1
  52. package/cjs/label-item/type.d.ts +0 -31
  53. package/cjs/label-item/type.js +0 -6
  54. package/cjs/label-item/type.js.map +0 -1
  55. package/cjs/weather/index.d.ts +0 -1
  56. package/cjs/weather/index.js +0 -21
  57. package/cjs/weather/index.js.map +0 -1
  58. package/cjs/weather/register.d.ts +0 -1
  59. package/cjs/weather/register.js +0 -14
  60. package/cjs/weather/register.js.map +0 -1
  61. package/cjs/weather/type.d.ts +0 -24
  62. package/cjs/weather/type.js +0 -6
  63. package/cjs/weather/type.js.map +0 -1
  64. package/cjs/weather/weather-box.d.ts +0 -13
  65. package/cjs/weather/weather-box.js +0 -129
  66. package/cjs/weather/weather-box.js.map +0 -1
  67. package/es/label-item/index.d.ts +0 -2
  68. package/es/label-item/index.js +0 -4
  69. package/es/label-item/index.js.map +0 -1
  70. package/es/label-item/label-item.d.ts +0 -29
  71. package/es/label-item/label-item.js +0 -263
  72. package/es/label-item/label-item.js.map +0 -1
  73. package/es/label-item/register.d.ts +0 -1
  74. package/es/label-item/register.js +0 -6
  75. package/es/label-item/register.js.map +0 -1
  76. package/es/label-item/type.d.ts +0 -31
  77. package/es/label-item/type.js +0 -2
  78. package/es/label-item/type.js.map +0 -1
  79. package/es/weather/index.d.ts +0 -1
  80. package/es/weather/index.js +0 -2
  81. package/es/weather/index.js.map +0 -1
  82. package/es/weather/register.d.ts +0 -1
  83. package/es/weather/register.js +0 -6
  84. package/es/weather/register.js.map +0 -1
  85. package/es/weather/type.d.ts +0 -24
  86. package/es/weather/type.js +0 -2
  87. package/es/weather/type.js.map +0 -1
  88. package/es/weather/weather-box.d.ts +0 -13
  89. package/es/weather/weather-box.js +0 -127
  90. package/es/weather/weather-box.js.map +0 -1
@@ -1,265 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- }), exports.StoryLabelItem = void 0;
6
-
7
- const vrender_core_1 = require("@visactor/vrender-core"), base_1 = require("../core/base"), vutils_1 = require("@visactor/vutils");
8
-
9
- class StoryLabelItem extends base_1.AbstractComponent {
10
- constructor(attributes, options) {
11
- super((null == options ? void 0 : options.skipDefault) ? attributes : (0, vutils_1.merge)({}, StoryLabelItem.defaultAttributes, attributes));
12
- }
13
- render() {
14
- const {contentOffsetX: contentOffsetX, contentOffsetY: contentOffsetY, lineStyle: lineStyle, symbolStartStyle: symbolStartStyle, symbolEndStyle: symbolEndStyle, symbolStartOuterStyle: symbolStartOuterStyle, titleTop: titleTopText, titleBottom: titleBottomText, titleTopStyle: titleTopStyle, titleBottomStyle: titleBottomStyle, titleSpace: titleSpace, titleTopPanelStyle: titleTopPanelStyle, titleBottomPanelStyle: titleBottomPanelStyle, theme: theme} = this.attribute, group = this.createOrUpdateChild("label-item-container", {
15
- x: 0,
16
- y: 0,
17
- zIndex: 1
18
- }, "group"), symbolStart = group.createOrUpdateChild("label-item-symbol-start", Object.assign({
19
- x: 0,
20
- y: 0
21
- }, symbolStartStyle), "symbol"), symbolEnd = group.createOrUpdateChild("label-item-symbol-end", Object.assign({
22
- x: contentOffsetX,
23
- y: contentOffsetY
24
- }, symbolEndStyle), "symbol"), symbolStartOut = group.createOrUpdateChild("label-item-symbol-start-out", Object.assign({
25
- x: 0,
26
- y: 0
27
- }, symbolStartOuterStyle), "symbol"), spaceW = titleSpace[0], spaceH = titleSpace[1], titleTopGroup = group.createOrUpdateChild("label-item-title-top-group", {
28
- x: contentOffsetX,
29
- y: contentOffsetY,
30
- clip: !0
31
- }, "group"), titleTop = titleTopGroup.createOrUpdateChild("label-item-title-top", Object.assign(Object.assign({
32
- x: spaceW,
33
- y: -spaceH,
34
- text: titleTopText
35
- }, titleTopStyle), {
36
- textBaseline: "bottom",
37
- textAlign: "left",
38
- zIndex: 10
39
- }), "text"), titleTopBounds = titleTop.AABBBounds;
40
- contentOffsetX > 0 && titleTopGroup.setAttributes({
41
- x: contentOffsetX - titleTopBounds.width() - 2 * spaceW
42
- }), titleTopGroup.setAttributes({
43
- width: titleTopBounds.width() + 2 * spaceW,
44
- height: -titleTopBounds.height() - 2 * spaceH
45
- });
46
- const titleTopPanel = titleTopGroup.createOrUpdateChild("label-item-title-top-panel", Object.assign(Object.assign({}, titleTopPanelStyle), {
47
- x: titleTopPanelStyle.padding.left,
48
- y: (titleTopGroup.attribute.height > 0 ? 0 : titleTopGroup.attribute.height) + titleTopPanelStyle.padding.top,
49
- width: titleTopGroup.attribute.width - titleTopPanelStyle.padding.left - titleTopPanelStyle.padding.right,
50
- height: (titleTopGroup.attribute.height > 0 ? 1 : -1) * titleTopGroup.attribute.height - titleTopPanelStyle.padding.bottom - titleTopPanelStyle.padding.top,
51
- scaleCenter: [ titleTopGroup.attribute.width / 2, titleTopGroup.attribute.height / 2 ]
52
- }), "rect");
53
- this._titleTopPanel = titleTopPanel;
54
- const titleBottomGroup = group.createOrUpdateChild("label-item-title-bottom-group", {
55
- x: contentOffsetX,
56
- y: contentOffsetY,
57
- clip: !0
58
- }, "group"), titleBottom = titleBottomGroup.createOrUpdateChild("label-item-title-bottom", Object.assign(Object.assign({
59
- x: spaceW,
60
- y: spaceH,
61
- text: titleBottomText
62
- }, titleBottomStyle), {
63
- textBaseline: "top",
64
- textAlign: "left",
65
- zIndex: 10
66
- }), "text"), titleBottomBounds = titleBottom.AABBBounds;
67
- contentOffsetX > 0 && titleBottomGroup.setAttributes({
68
- x: contentOffsetX - titleBottomBounds.width() - 2 * spaceW
69
- }), titleBottomGroup.setAttributes({
70
- width: titleBottomBounds.width() + 2 * spaceW,
71
- height: titleTopBounds.height() + 2 * spaceH
72
- });
73
- const titleBottomPanel = titleBottomGroup.createOrUpdateChild("label-item-title-bottom-panel", Object.assign(Object.assign({}, titleBottomPanelStyle), {
74
- x: titleBottomPanelStyle.padding.left,
75
- y: (titleBottomGroup.attribute.height > 0 ? 0 : titleBottomGroup.attribute.height) + titleBottomPanelStyle.padding.top,
76
- width: titleBottomGroup.attribute.width - titleBottomPanelStyle.padding.left - titleBottomPanelStyle.padding.right,
77
- height: (titleBottomGroup.attribute.height > 0 ? 1 : -1) * titleBottomGroup.attribute.height - titleBottomPanelStyle.padding.bottom - titleBottomPanelStyle.padding.top,
78
- scaleCenter: [ titleBottomGroup.attribute.width / 2, titleBottomGroup.attribute.height / 2 ]
79
- }), "rect");
80
- this._titleBottomPanel = titleBottomPanel;
81
- const maxTextWidth = Math.max(titleTop.AABBBounds.width(), titleBottom.AABBBounds.width()) + 2 * spaceW, points = [ {
82
- x: 0,
83
- y: 0
84
- }, contentOffsetX > 0 ? {
85
- x: contentOffsetX - maxTextWidth,
86
- y: contentOffsetY
87
- } : {
88
- x: contentOffsetX + maxTextWidth,
89
- y: contentOffsetY
90
- }, {
91
- x: contentOffsetX,
92
- y: contentOffsetY
93
- } ];
94
- if ("simple" === theme) {
95
- points.pop();
96
- const p = points[1];
97
- symbolEnd.setAttributes(p);
98
- }
99
- const line = group.createOrUpdateChild("label-item-line", Object.assign(Object.assign({
100
- x: 0,
101
- y: 0
102
- }, lineStyle), {
103
- points: points
104
- }), "line");
105
- this._symbolEnd = symbolEnd, this._symbolStart = symbolStart, this._symbolStartOuter = symbolStartOut,
106
- this._titleTop = titleTop, this._titleBottom = titleBottom, this._line = line;
107
- }
108
- appearAnimate(animateConfig) {
109
- const {duration: duration = 1e3, easing: easing = "quadOut", symbolStartOuterType: symbolStartOuterType = "scale", titleType: titleType = "typewriter", titlePanelType: titlePanelType = "scale"} = animateConfig, symbolTime = duration / 10;
110
- let symbolStartOuterFrom, symbolStartOuterTo;
111
- if (this._symbolStart.setAttributes({
112
- scaleX: 0,
113
- scaleY: 0
114
- }), this._symbolStart.animate().to({
115
- scaleX: 1,
116
- scaleY: 1
117
- }, 5 * symbolTime, easing), "scale" === symbolStartOuterType ? (symbolStartOuterFrom = {
118
- scaleX: 0,
119
- scaleY: 0
120
- }, symbolStartOuterTo = {
121
- scaleX: 1,
122
- scaleY: 1
123
- }) : (symbolStartOuterFrom = {
124
- clipRange: 0
125
- }, symbolStartOuterTo = {
126
- clipRange: 1
127
- }), this._symbolStartOuter.setAttributes(symbolStartOuterFrom), this._symbolStartOuter.animate().to(symbolStartOuterTo, 5 * symbolTime, easing),
128
- this._symbolEnd.setAttributes({
129
- scaleX: 0,
130
- scaleY: 0
131
- }), this._symbolEnd.animate().wait(8 * symbolTime).to({
132
- scaleX: 1,
133
- scaleY: 1
134
- }, 2 * symbolTime, easing), this._line.setAttributes({
135
- clipRange: 0
136
- }), this._line.animate().to({
137
- clipRange: 1
138
- }, 9 * symbolTime, easing), "typewriter" === titleType) {
139
- const titleTopText = this._titleTop.attribute.text;
140
- this._titleTop.setAttributes({
141
- text: ""
142
- }), this._titleTop.animate().wait(5 * symbolTime).play(new vrender_core_1.InputText({
143
- text: ""
144
- }, {
145
- text: titleTopText
146
- }, 4 * symbolTime, "linear"));
147
- const titleBottomText = this._titleBottom.attribute.text;
148
- this._titleBottom.setAttributes({
149
- text: ""
150
- }), this._titleBottom.animate().wait(5 * symbolTime).play(new vrender_core_1.InputText({
151
- text: ""
152
- }, {
153
- text: titleBottomText
154
- }, 4 * symbolTime, "linear"));
155
- } else this._titleTop.setAttributes({
156
- dy: this._titleTop.AABBBounds.height() + 10
157
- }), this._titleTop.animate().wait(5 * symbolTime).to({
158
- dy: 0
159
- }, 4 * symbolTime, "linear"), this._titleBottom.setAttributes({
160
- dy: -(10 + this._titleBottom.AABBBounds.height())
161
- }), this._titleBottom.animate().wait(5 * symbolTime).to({
162
- dy: 0
163
- }, 4 * symbolTime, "linear");
164
- "scale" === titlePanelType ? [ this._titleTopPanel, this._titleBottomPanel ].forEach((panel => {
165
- const scaleX = panel.attribute.scaleX;
166
- panel.setAttributes({
167
- scaleX: 0
168
- }), panel.animate().to({
169
- scaleX: scaleX
170
- }, duration, "circInOut");
171
- })) : "stroke" === titlePanelType && [ this._titleTopPanel, this._titleBottomPanel ].forEach((panel => {
172
- const b = panel.AABBBounds, totalLen = 2 * (b.width() + b.height());
173
- panel.setAttributes({
174
- lineDash: [ 0, 10 * totalLen ]
175
- }), panel.animate().to({
176
- lineDash: [ totalLen, 10 * totalLen ]
177
- }, duration, "quadOut");
178
- }));
179
- }
180
- disappearAnimate(animateConfig) {
181
- if ("scale" === animateConfig.mode) {
182
- const {duration: duration = 1e3, easing: easing = "quadOut"} = animateConfig;
183
- this.animate().to({
184
- scaleX: 0,
185
- scaleY: 0
186
- }, duration, easing);
187
- } else {
188
- const {duration: duration = 1e3, easing: easing = "quadOut"} = animateConfig;
189
- this._line.animate().to({
190
- clipRange: 0
191
- }, duration, easing), this._symbolStart.animate().wait(duration / 2).to({
192
- scaleX: 0,
193
- scaleY: 0
194
- }, duration / 2, easing), this._symbolEnd.animate().to({
195
- scaleX: 0,
196
- scaleY: 0
197
- }, duration, easing), this._titleTop.animate().to({
198
- dy: this._titleTop.AABBBounds.height() + 10
199
- }, duration / 2, easing), this._titleBottom.animate().to({
200
- dy: -(10 + this._titleBottom.AABBBounds.height())
201
- }, duration / 2, easing), this._symbolStartOuter.animate().wait(duration / 2).to({
202
- clipRange: 0
203
- }, duration / 2, easing), this._titleTopPanel.animate().to({
204
- scaleX: 0
205
- }, duration, "circInOut"), this._titleBottomPanel.animate().to({
206
- scaleX: 0
207
- }, duration, "circInOut");
208
- }
209
- }
210
- }
211
-
212
- exports.StoryLabelItem = StoryLabelItem, StoryLabelItem.defaultAttributes = {
213
- contentOffsetX: 100,
214
- contentOffsetY: -60,
215
- titleTopStyle: {
216
- fontSize: 12,
217
- fill: "white"
218
- },
219
- titleBottomStyle: {
220
- fontSize: 12,
221
- fill: "white"
222
- },
223
- lineStyle: {
224
- stroke: "white",
225
- lineWidth: 1
226
- },
227
- symbolStartStyle: {
228
- symbolType: "circle",
229
- size: 3,
230
- fill: "white"
231
- },
232
- symbolEndStyle: {
233
- symbolType: "circle",
234
- size: 3,
235
- fill: "white"
236
- },
237
- symbolStartOuterStyle: {
238
- symbolType: "M0.5,0A0.5,0.5,0,1,1,-0.5,0A0.5,0.5,0,1,1,0.5,0",
239
- size: 8,
240
- stroke: "white"
241
- },
242
- titleSpace: [ 2, 2 ],
243
- titleTopPanelStyle: {
244
- visible: !1,
245
- padding: {
246
- left: 0,
247
- right: 0,
248
- bottom: 2,
249
- top: 2
250
- },
251
- cornerRadius: 3
252
- },
253
- titleBottomPanelStyle: {
254
- visible: !1,
255
- padding: {
256
- left: 0,
257
- right: 0,
258
- bottom: 2,
259
- top: 2
260
- },
261
- cornerRadius: 3
262
- },
263
- theme: "default"
264
- };
265
- //# sourceMappingURL=label-item.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/label-item/label-item.ts"],"names":[],"mappings":";;;AASA,yDAAqF;AACrF,uCAAiD;AAGjD,6CAA8C;AAE9C,MAAa,cAAe,SAAQ,wBAAiD;IA6DnF,YAAY,UAAgC,EAAE,OAA0B;QACtE,KAAK,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAA,cAAK,EAAC,EAAE,EAAE,cAAc,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;IACrG,CAAC;IAES,MAAM;QACd,MAAM,EACJ,cAAc,EACd,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,eAAe,EAC5B,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,EACN,GAAG,IAAI,CAAC,SAAS,CAAC;QAEnB,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,OAAO,CAAW,CAAC;QAE7G,MAAM,WAAW,GAAG,KAAK,CAAC,mBAAmB,CAC3C,yBAAyB,kBACvB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAK,gBAAgB,GACjC,QAAQ,CACE,CAAC;QACb,MAAM,SAAS,GAAG,KAAK,CAAC,mBAAmB,CACzC,uBAAuB,kBACrB,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,cAAc,IAAK,cAAc,GACzD,QAAQ,CACE,CAAC;QACb,MAAM,cAAc,GAAG,KAAK,CAAC,mBAAmB,CAC9C,6BAA6B,kBAC3B,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAK,qBAAqB,GACtC,QAAQ,CACE,CAAC;QAEb,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAE7B,MAAM,aAAa,GAAG,KAAK,CAAC,mBAAmB,CAC7C,4BAA4B,EAC5B,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,EACpD,OAAO,CACE,CAAC;QACZ,MAAM,QAAQ,GAAG,aAAa,CAAC,mBAAmB,CAChD,sBAAsB,gCAEpB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,CAAC,MAAM,EACV,IAAI,EAAE,YAAY,IACf,aAAa,KAChB,YAAY,EAAE,QAAQ,EACtB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,EAAE,KAEZ,MAAM,CACE,CAAC;QACX,MAAM,cAAc,GAAG,QAAQ,CAAC,UAAU,CAAC;QAC3C,IAAI,cAAc,GAAG,CAAC,EAAE;YACtB,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,cAAc,GAAG,cAAc,CAAC,KAAK,EAAE,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;SAC1F;QACD,aAAa,CAAC,aAAa,CAAC;YAC1B,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,GAAG,MAAM,GAAG,CAAC;YAC1C,MAAM,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC;SAC9C,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,aAAa,CAAC,mBAAmB,CACrD,4BAA4B,kCAEvB,kBAAkB,KACrB,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAClC,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAC7G,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,EACzG,MAAM,EACJ,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM;gBAC9E,kBAAkB,CAAC,OAAO,CAAC,MAAM;gBACjC,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAChC,WAAW,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,KAEtF,MAAM,CACE,CAAC;QACX,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QAEpC,MAAM,gBAAgB,GAAG,KAAK,CAAC,mBAAmB,CAChD,+BAA+B,EAC/B,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,EACpD,OAAO,CACE,CAAC;QACZ,MAAM,WAAW,GAAG,gBAAgB,CAAC,mBAAmB,CACtD,yBAAyB,gCAEvB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,eAAe,IAClB,gBAAgB,KACnB,YAAY,EAAE,KAAK,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,EAAE,KAEZ,MAAM,CACE,CAAC;QACX,MAAM,iBAAiB,GAAG,WAAW,CAAC,UAAU,CAAC;QACjD,IAAI,cAAc,GAAG,CAAC,EAAE;YACtB,gBAAgB,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,cAAc,GAAG,iBAAiB,CAAC,KAAK,EAAE,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;SAChG;QACD,gBAAgB,CAAC,aAAa,CAAC;YAC7B,KAAK,EAAE,iBAAiB,CAAC,KAAK,EAAE,GAAG,MAAM,GAAG,CAAC;YAC7C,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC;SAC7C,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,mBAAmB,CAC3D,+BAA+B,kCAE1B,qBAAqB,KACxB,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,IAAI,EACrC,CAAC,EACC,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC/E,qBAAqB,CAAC,OAAO,CAAC,GAAG,EACnC,KAAK,EACH,gBAAgB,CAAC,SAAS,CAAC,KAAK,GAAG,qBAAqB,CAAC,OAAO,CAAC,IAAI,GAAG,qBAAqB,CAAC,OAAO,CAAC,KAAK,EAC7G,MAAM,EACJ,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,SAAS,CAAC,MAAM;gBACpF,qBAAqB,CAAC,OAAO,CAAC,MAAM;gBACpC,qBAAqB,CAAC,OAAO,CAAC,GAAG,EACnC,WAAW,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,KAE5F,MAAM,CACE,CAAC;QACX,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;QAE1C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;QACxG,MAAM,MAAM,GAAG;YACb,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;YACd,cAAc,GAAG,CAAC;gBAChB,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,GAAG,YAAY,EAAE,CAAC,EAAE,cAAc,EAAE;gBACzD,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,GAAG,YAAY,EAAE,CAAC,EAAE,cAAc,EAAE;YAC3D,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,cAAc,EAAE;SACzC,CAAC;QAEF,IAAI,KAAK,KAAK,QAAQ,EAAE;YACtB,MAAM,CAAC,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SAC5B;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,mBAAmB,CAAC,iBAAiB,gCAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAK,SAAS,KAAE,MAAM,KAAI,MAAM,CAAU,CAAC;QAEjH,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,iBAAiB,GAAG,cAAc,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,aAAa,CAAC,aAMb;QACC,MAAM,EACJ,QAAQ,GAAG,IAAI,EACf,MAAM,GAAG,SAAS,EAClB,oBAAoB,GAAG,OAAO,EAC9B,SAAS,GAAG,YAAY,EACxB,cAAc,GAAG,OAAO,EACzB,GAAG,aAAa,CAAC;QAClB,MAAM,UAAU,GAAG,QAAQ,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,UAAU,GAAG,CAAC,EAAE,MAAa,CAAC,CAAC;QAExF,IAAI,oBAA6C,CAAC;QAClD,IAAI,kBAA2C,CAAC;QAChD,IAAI,oBAAoB,KAAK,OAAO,EAAE;YACpC,oBAAoB,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YAChD,kBAAkB,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;SAC/C;aAAM;YACL,oBAAoB,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;YACxC,kBAAkB,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;SACvC;QACD,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;QAC3D,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,kBAAkB,EAAE,UAAU,GAAG,CAAC,EAAE,MAAa,CAAC,CAAC;QAEvF,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU;aACZ,OAAO,EAAE;aACT,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;aACpB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,UAAU,GAAG,CAAC,EAAE,MAAa,CAAC,CAAC;QAE/D,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,UAAU,GAAG,CAAC,EAAE,MAAa,CAAC,CAAC;QAEzE,IAAI,SAAS,KAAK,YAAY,EAAE;YAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAc,CAAC;YAC7D,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC,SAAS;iBACX,OAAO,EAAE;iBACT,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;iBACpB,IAAI,CAAC,IAAI,wBAAS,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,UAAU,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;YAEvF,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAc,CAAC;YACnE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9C,IAAI,CAAC,YAAY;iBACd,OAAO,EAAE;iBACT,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;iBACpB,IAAI,CAAC,IAAI,wBAAS,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,UAAU,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;SAC3F;aAAM;YACL,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YAC9E,IAAI,CAAC,SAAS;iBACX,OAAO,EAAE;iBACT,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;iBACpB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;YAE3C,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YACvF,IAAI,CAAC,YAAY;iBACd,OAAO,EAAE;iBACT,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;iBACpB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;SAC5C;QAED,IAAI,cAAc,KAAK,OAAO,EAAE;YAC9B,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;gBACtC,KAAK,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;gBACnC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,cAAc,KAAK,QAAQ,EAAE;YACtC,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC5D,MAAM,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC;gBAC3B,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;gBAC9C,KAAK,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBACtD,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YACnF,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,gBAAgB,CAAC,aAAiF;QAChG,IAAI,aAAa,CAAC,IAAI,KAAK,OAAO,EAAE;YAClC,MAAM,EAAE,QAAQ,GAAG,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,aAAa,CAAC;YAC9D,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAa,CAAC,CAAC;SACtE;aAAM;YACL,MAAM,EAAE,QAAQ,GAAG,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,aAAa,CAAC;YAC9D,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAa,CAAC,CAAC;YACnE,IAAI,CAAC,YAAY;iBACd,OAAO,EAAE;iBACT,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;iBAClB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,QAAQ,GAAG,CAAC,EAAE,MAAa,CAAC,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAa,CAAC,CAAC;YAChF,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,GAAG,CAAC,EAAE,MAAa,CAAC,CAAC;YAC1G,IAAI,CAAC,YAAY;iBACd,OAAO,EAAE;iBACT,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,QAAQ,GAAG,CAAC,EAAE,MAAa,CAAC,CAAC;YAC1F,IAAI,CAAC,iBAAiB;iBACnB,OAAO,EAAE;iBACT,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;iBAClB,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,QAAQ,GAAG,CAAC,EAAE,MAAa,CAAC,CAAC;YACrD,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YACvE,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;SAC3E;IACH,CAAC;;AArUH,wCAsUC;AA3TQ,gCAAiB,GAAkC;IAExD,cAAc,EAAE,GAAG;IAEnB,cAAc,EAAE,CAAC,EAAE;IACnB,aAAa,EAAE;QACb,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,OAAO;KACd;IACD,gBAAgB,EAAE;QAChB,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,OAAO;KACd;IACD,SAAS,EAAE;QACT,MAAM,EAAE,OAAO;QACf,SAAS,EAAE,CAAC;KACY;IAE1B,gBAAgB,EAAE;QAChB,UAAU,EAAE,QAAQ;QACpB,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,OAAO;KACsB;IAErC,cAAc,EAAE;QACd,UAAU,EAAE,QAAQ;QACpB,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,OAAO;KACsB;IAErC,qBAAqB,EAAE;QACrB,UAAU,EAAE,iDAAiD;QAC7D,IAAI,EAAE,CAAC;QACP,MAAM,EAAE,OAAO;KACoB;IACrC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClB,kBAAkB,EAAE;QAClB,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;QACjD,YAAY,EAAE,CAAC;KAChB;IACD,qBAAqB,EAAE;QACrB,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;QACjD,YAAY,EAAE,CAAC;KAChB;IAED,KAAK,EAAE,SAAS;CACjB,CAAC","file":"label-item.js","sourcesContent":["import type {\n IGroup,\n ILine,\n ILineGraphicAttribute,\n IRect,\n ISymbol,\n ISymbolGraphicAttribute,\n IText\n} from '@visactor/vrender-core';\nimport { ILineAttribute, InputText, ISymbolAttribute } from '@visactor/vrender-core';\nimport { AbstractComponent } from '../core/base';\nimport type { IStoryLabelItemAttrs } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { max, merge } from '@visactor/vutils';\n\nexport class StoryLabelItem extends AbstractComponent<Required<IStoryLabelItemAttrs>> {\n name: 'labelItem';\n private _line?: ILine;\n private _symbolStart: ISymbol;\n private _symbolEnd: ISymbol;\n private _symbolStartOuter: ISymbol;\n private _titleTop: IText;\n private _titleBottom: IText;\n private _titleTopPanel: IRect;\n private _titleBottomPanel: IRect;\n\n static defaultAttributes: Partial<IStoryLabelItemAttrs> = {\n // 内容在X上的偏移量\n contentOffsetX: 100,\n // 内容在Y上的偏移量\n contentOffsetY: -60,\n titleTopStyle: {\n fontSize: 12,\n fill: 'white'\n },\n titleBottomStyle: {\n fontSize: 12,\n fill: 'white'\n },\n lineStyle: {\n stroke: 'white',\n lineWidth: 1\n } as ILineGraphicAttribute,\n // 线段开始端点的样式\n symbolStartStyle: {\n symbolType: 'circle',\n size: 3,\n fill: 'white'\n } as Partial<ISymbolGraphicAttribute>,\n // 线段结束端点的样式\n symbolEndStyle: {\n symbolType: 'circle',\n size: 3,\n fill: 'white'\n } as Partial<ISymbolGraphicAttribute>,\n // 线段开始端点外面包裹symbol的样式\n symbolStartOuterStyle: {\n symbolType: 'M0.5,0A0.5,0.5,0,1,1,-0.5,0A0.5,0.5,0,1,1,0.5,0',\n size: 8,\n stroke: 'white'\n } as Partial<ISymbolGraphicAttribute>,\n titleSpace: [2, 2],\n titleTopPanelStyle: {\n visible: false,\n padding: { left: 0, right: 0, bottom: 2, top: 2 },\n cornerRadius: 3\n },\n titleBottomPanelStyle: {\n visible: false,\n padding: { left: 0, right: 0, bottom: 2, top: 2 },\n cornerRadius: 3\n },\n // 默认和简约两套主题\n theme: 'default'\n };\n\n constructor(attributes: IStoryLabelItemAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, StoryLabelItem.defaultAttributes, attributes));\n }\n\n protected render(): void {\n const {\n contentOffsetX,\n contentOffsetY,\n lineStyle,\n symbolStartStyle,\n symbolEndStyle,\n symbolStartOuterStyle,\n titleTop: titleTopText,\n titleBottom: titleBottomText,\n titleTopStyle,\n titleBottomStyle,\n titleSpace,\n titleTopPanelStyle,\n titleBottomPanelStyle,\n theme\n } = this.attribute;\n\n const group = this.createOrUpdateChild('label-item-container', { x: 0, y: 0, zIndex: 1 }, 'group') as IGroup;\n\n const symbolStart = group.createOrUpdateChild(\n 'label-item-symbol-start',\n { x: 0, y: 0, ...symbolStartStyle },\n 'symbol'\n ) as ISymbol;\n const symbolEnd = group.createOrUpdateChild(\n 'label-item-symbol-end',\n { x: contentOffsetX, y: contentOffsetY, ...symbolEndStyle },\n 'symbol'\n ) as ISymbol;\n const symbolStartOut = group.createOrUpdateChild(\n 'label-item-symbol-start-out',\n { x: 0, y: 0, ...symbolStartOuterStyle },\n 'symbol'\n ) as ISymbol;\n\n const spaceW = titleSpace[0];\n const spaceH = titleSpace[1];\n // 逻辑:group占满,title在group内做偏移\n const titleTopGroup = group.createOrUpdateChild(\n 'label-item-title-top-group',\n { x: contentOffsetX, y: contentOffsetY, clip: true },\n 'group'\n ) as IGroup;\n const titleTop = titleTopGroup.createOrUpdateChild(\n 'label-item-title-top',\n {\n x: spaceW,\n y: -spaceH,\n text: titleTopText,\n ...titleTopStyle,\n textBaseline: 'bottom',\n textAlign: 'left',\n zIndex: 10\n },\n 'text'\n ) as IText;\n const titleTopBounds = titleTop.AABBBounds;\n if (contentOffsetX > 0) {\n titleTopGroup.setAttributes({ x: contentOffsetX - titleTopBounds.width() - spaceW * 2 });\n }\n titleTopGroup.setAttributes({\n width: titleTopBounds.width() + spaceW * 2,\n height: -titleTopBounds.height() - spaceH * 2\n });\n // 添加panel\n const titleTopPanel = titleTopGroup.createOrUpdateChild(\n 'label-item-title-top-panel',\n {\n ...titleTopPanelStyle,\n x: titleTopPanelStyle.padding.left,\n y: (titleTopGroup.attribute.height > 0 ? 0 : titleTopGroup.attribute.height) + titleTopPanelStyle.padding.top,\n width: titleTopGroup.attribute.width - titleTopPanelStyle.padding.left - titleTopPanelStyle.padding.right,\n height:\n (titleTopGroup.attribute.height > 0 ? 1 : -1) * titleTopGroup.attribute.height -\n titleTopPanelStyle.padding.bottom -\n titleTopPanelStyle.padding.top,\n scaleCenter: [titleTopGroup.attribute.width / 2, titleTopGroup.attribute.height / 2]\n },\n 'rect'\n ) as IRect;\n this._titleTopPanel = titleTopPanel;\n\n const titleBottomGroup = group.createOrUpdateChild(\n 'label-item-title-bottom-group',\n { x: contentOffsetX, y: contentOffsetY, clip: true },\n 'group'\n ) as IGroup;\n const titleBottom = titleBottomGroup.createOrUpdateChild(\n 'label-item-title-bottom',\n {\n x: spaceW,\n y: spaceH,\n text: titleBottomText,\n ...titleBottomStyle,\n textBaseline: 'top',\n textAlign: 'left',\n zIndex: 10\n },\n 'text'\n ) as IText;\n const titleBottomBounds = titleBottom.AABBBounds;\n if (contentOffsetX > 0) {\n titleBottomGroup.setAttributes({ x: contentOffsetX - titleBottomBounds.width() - spaceW * 2 });\n }\n titleBottomGroup.setAttributes({\n width: titleBottomBounds.width() + spaceW * 2,\n height: titleTopBounds.height() + spaceH * 2\n });\n // 添加panel\n const titleBottomPanel = titleBottomGroup.createOrUpdateChild(\n 'label-item-title-bottom-panel',\n {\n ...titleBottomPanelStyle,\n x: titleBottomPanelStyle.padding.left,\n y:\n (titleBottomGroup.attribute.height > 0 ? 0 : titleBottomGroup.attribute.height) +\n titleBottomPanelStyle.padding.top,\n width:\n titleBottomGroup.attribute.width - titleBottomPanelStyle.padding.left - titleBottomPanelStyle.padding.right,\n height:\n (titleBottomGroup.attribute.height > 0 ? 1 : -1) * titleBottomGroup.attribute.height -\n titleBottomPanelStyle.padding.bottom -\n titleBottomPanelStyle.padding.top,\n scaleCenter: [titleBottomGroup.attribute.width / 2, titleBottomGroup.attribute.height / 2]\n },\n 'rect'\n ) as IRect;\n this._titleBottomPanel = titleBottomPanel;\n\n const maxTextWidth = Math.max(titleTop.AABBBounds.width(), titleBottom.AABBBounds.width()) + spaceW * 2;\n const points = [\n { x: 0, y: 0 },\n contentOffsetX > 0\n ? { x: contentOffsetX - maxTextWidth, y: contentOffsetY }\n : { x: contentOffsetX + maxTextWidth, y: contentOffsetY },\n { x: contentOffsetX, y: contentOffsetY }\n ];\n // simple风格,不绘制终点,同时文字也要居中\n if (theme === 'simple') {\n points.pop();\n const p = points[1];\n symbolEnd.setAttributes(p);\n }\n const line = group.createOrUpdateChild('label-item-line', { x: 0, y: 0, ...lineStyle, points }, 'line') as ILine;\n\n this._symbolEnd = symbolEnd;\n this._symbolStart = symbolStart;\n this._symbolStartOuter = symbolStartOut;\n this._titleTop = titleTop;\n this._titleBottom = titleBottom;\n this._line = line;\n }\n\n appearAnimate(animateConfig: {\n duration?: number;\n easing?: string;\n symbolStartOuterType?: 'scale' | 'clipRange';\n titleType?: 'typewriter' | 'move';\n titlePanelType?: 'scale' | 'stroke';\n }) {\n const {\n duration = 1000,\n easing = 'quadOut',\n symbolStartOuterType = 'scale',\n titleType = 'typewriter',\n titlePanelType = 'scale'\n } = animateConfig;\n const symbolTime = duration / 10;\n this._symbolStart.setAttributes({ scaleX: 0, scaleY: 0 });\n this._symbolStart.animate().to({ scaleX: 1, scaleY: 1 }, symbolTime * 5, easing as any);\n\n let symbolStartOuterFrom: ISymbolGraphicAttribute;\n let symbolStartOuterTo: ISymbolGraphicAttribute;\n if (symbolStartOuterType === 'scale') {\n symbolStartOuterFrom = { scaleX: 0, scaleY: 0 };\n symbolStartOuterTo = { scaleX: 1, scaleY: 1 };\n } else {\n symbolStartOuterFrom = { clipRange: 0 };\n symbolStartOuterTo = { clipRange: 1 };\n }\n this._symbolStartOuter.setAttributes(symbolStartOuterFrom);\n this._symbolStartOuter.animate().to(symbolStartOuterTo, symbolTime * 5, easing as any);\n\n this._symbolEnd.setAttributes({ scaleX: 0, scaleY: 0 });\n this._symbolEnd\n .animate()\n .wait(symbolTime * 8)\n .to({ scaleX: 1, scaleY: 1 }, symbolTime * 2, easing as any);\n\n this._line.setAttributes({ clipRange: 0 });\n this._line.animate().to({ clipRange: 1 }, symbolTime * 9, easing as any);\n\n if (titleType === 'typewriter') {\n const titleTopText = this._titleTop.attribute.text as string;\n this._titleTop.setAttributes({ text: '' });\n this._titleTop\n .animate()\n .wait(symbolTime * 5)\n .play(new InputText({ text: '' }, { text: titleTopText }, symbolTime * 4, 'linear'));\n\n const titleBottomText = this._titleBottom.attribute.text as string;\n this._titleBottom.setAttributes({ text: '' });\n this._titleBottom\n .animate()\n .wait(symbolTime * 5)\n .play(new InputText({ text: '' }, { text: titleBottomText }, symbolTime * 4, 'linear'));\n } else {\n this._titleTop.setAttributes({ dy: this._titleTop.AABBBounds.height() + 10 });\n this._titleTop\n .animate()\n .wait(symbolTime * 5)\n .to({ dy: 0 }, symbolTime * 4, 'linear');\n\n this._titleBottom.setAttributes({ dy: -(10 + this._titleBottom.AABBBounds.height()) });\n this._titleBottom\n .animate()\n .wait(symbolTime * 5)\n .to({ dy: 0 }, symbolTime * 4, 'linear');\n }\n\n if (titlePanelType === 'scale') {\n [this._titleTopPanel, this._titleBottomPanel].forEach(panel => {\n const scaleX = panel.attribute.scaleX;\n panel.setAttributes({ scaleX: 0 });\n panel.animate().to({ scaleX }, duration, 'circInOut');\n });\n } else if (titlePanelType === 'stroke') {\n [this._titleTopPanel, this._titleBottomPanel].forEach(panel => {\n const b = panel.AABBBounds;\n const totalLen = (b.width() + b.height()) * 2;\n panel.setAttributes({ lineDash: [0, totalLen * 10] });\n panel.animate().to({ lineDash: [totalLen, totalLen * 10] }, duration, 'quadOut');\n });\n }\n }\n\n disappearAnimate(animateConfig: { duration?: number; easing?: string; mode?: 'scale' | 'default' }) {\n if (animateConfig.mode === 'scale') {\n const { duration = 1000, easing = 'quadOut' } = animateConfig;\n this.animate().to({ scaleX: 0, scaleY: 0 }, duration, easing as any);\n } else {\n const { duration = 1000, easing = 'quadOut' } = animateConfig;\n this._line.animate().to({ clipRange: 0 }, duration, easing as any);\n this._symbolStart\n .animate()\n .wait(duration / 2)\n .to({ scaleX: 0, scaleY: 0 }, duration / 2, easing as any);\n this._symbolEnd.animate().to({ scaleX: 0, scaleY: 0 }, duration, easing as any);\n this._titleTop.animate().to({ dy: this._titleTop.AABBBounds.height() + 10 }, duration / 2, easing as any);\n this._titleBottom\n .animate()\n .to({ dy: -(10 + this._titleBottom.AABBBounds.height()) }, duration / 2, easing as any);\n this._symbolStartOuter\n .animate()\n .wait(duration / 2)\n .to({ clipRange: 0 }, duration / 2, easing as any);\n this._titleTopPanel.animate().to({ scaleX: 0 }, duration, 'circInOut');\n this._titleBottomPanel.animate().to({ scaleX: 0 }, duration, 'circInOut');\n }\n }\n}\n"]}
@@ -1 +0,0 @@
1
- export declare function loadLabelItemComponent(): void;
@@ -1,15 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- }), exports.loadLabelItemComponent = void 0;
6
-
7
- const vrender_kits_1 = require("@visactor/vrender-kits");
8
-
9
- function loadLabelItemComponent() {
10
- (0, vrender_kits_1.registerGroup)(), (0, vrender_kits_1.registerText)(), (0, vrender_kits_1.registerSymbol)(),
11
- (0, vrender_kits_1.registerLine)();
12
- }
13
-
14
- exports.loadLabelItemComponent = loadLabelItemComponent;
15
- //# sourceMappingURL=register.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/label-item/register.ts"],"names":[],"mappings":";;;AAAA,yDAAmG;AAEnG,SAAgB,sBAAsB;IACpC,IAAA,4BAAa,GAAE,CAAC;IAChB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,6BAAc,GAAE,CAAC;IACjB,IAAA,2BAAY,GAAE,CAAC;AACjB,CAAC;AALD,wDAKC","file":"register.js","sourcesContent":["import { registerGroup, registerSymbol, registerLine, registerText } from '@visactor/vrender-kits';\n\nexport function loadLabelItemComponent() {\n registerGroup();\n registerText();\n registerSymbol();\n registerLine();\n}\n"]}
@@ -1,31 +0,0 @@
1
- import type { IGroupGraphicAttribute, ILineGraphicAttribute, IRectGraphicAttribute, ISymbolGraphicAttribute, ITextGraphicAttribute } from '@visactor/vrender-core';
2
- export interface IStoryLabelItemAttrs extends IGroupGraphicAttribute {
3
- contentOffsetX: number;
4
- contentOffsetY: number;
5
- lineStyle?: ILineGraphicAttribute;
6
- symbolStartStyle?: ISymbolGraphicAttribute;
7
- symbolEndStyle?: ISymbolGraphicAttribute;
8
- symbolStartOuterStyle?: ISymbolGraphicAttribute;
9
- theme?: 'default' | 'simple';
10
- titleTop?: string | string[];
11
- titleBottom?: string | string[];
12
- titleTopStyle?: ITextGraphicAttribute;
13
- titleBottomStyle?: ITextGraphicAttribute;
14
- titleSpace?: [number, number];
15
- titleTopPanelStyle?: IRectGraphicAttribute & {
16
- padding: {
17
- left: number;
18
- right: number;
19
- top: number;
20
- bottom: number;
21
- };
22
- };
23
- titleBottomPanelStyle?: IRectGraphicAttribute & {
24
- padding: {
25
- left: number;
26
- right: number;
27
- top: number;
28
- bottom: number;
29
- };
30
- };
31
- }
@@ -1,6 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- });
6
- //# sourceMappingURL=type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/label-item/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type {\n IGroupGraphicAttribute,\n ILineGraphicAttribute,\n IRectGraphicAttribute,\n ISymbolGraphicAttribute,\n ITextGraphicAttribute\n} from '@visactor/vrender-core';\nimport { ILineAttribute, ISymbolAttribute } from '@visactor/vrender-core';\n\nexport interface IStoryLabelItemAttrs extends IGroupGraphicAttribute {\n // 内容在X上的偏移量\n contentOffsetX: number;\n // 内容在Y上的偏移量\n contentOffsetY: number;\n lineStyle?: ILineGraphicAttribute;\n // 线段开始端点的样式\n symbolStartStyle?: ISymbolGraphicAttribute;\n // 线段结束端点的样式\n symbolEndStyle?: ISymbolGraphicAttribute;\n // 线段开始端点外面包裹symbol的样式\n symbolStartOuterStyle?: ISymbolGraphicAttribute;\n // 默认和简约两套主题\n theme?: 'default' | 'simple';\n // 顶部文字内容\n titleTop?: string | string[];\n // 底部文字内容\n titleBottom?: string | string[];\n // 顶部文字样式\n titleTopStyle?: ITextGraphicAttribute;\n // 底部文字样式\n titleBottomStyle?: ITextGraphicAttribute;\n // 水平和垂直方向的边距\n titleSpace?: [number, number];\n // 顶部的panel\n titleTopPanelStyle?: IRectGraphicAttribute & {\n padding: { left: number; right: number; top: number; bottom: number };\n };\n // 底部的panel\n titleBottomPanelStyle?: IRectGraphicAttribute & {\n padding: { left: number; right: number; top: number; bottom: number };\n };\n}\n"]}
@@ -1 +0,0 @@
1
- export * from './weather-box';
@@ -1,21 +0,0 @@
1
- "use strict";
2
-
3
- var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
4
- void 0 === k2 && (k2 = k);
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- desc && !("get" in desc ? !m.__esModule : desc.writable || desc.configurable) || (desc = {
7
- enumerable: !0,
8
- get: function() {
9
- return m[k];
10
- }
11
- }), Object.defineProperty(o, k2, desc);
12
- } : function(o, m, k, k2) {
13
- void 0 === k2 && (k2 = k), o[k2] = m[k];
14
- }), __exportStar = this && this.__exportStar || function(m, exports) {
15
- for (var p in m) "default" === p || Object.prototype.hasOwnProperty.call(exports, p) || __createBinding(exports, m, p);
16
- };
17
-
18
- Object.defineProperty(exports, "__esModule", {
19
- value: !0
20
- }), __exportStar(require("./weather-box"), exports);
21
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/weather/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B","file":"index.js","sourcesContent":["export * from './weather-box';\n"]}
@@ -1 +0,0 @@
1
- export declare function loadWeatherComponent(): void;
@@ -1,14 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- }), exports.loadWeatherComponent = void 0;
6
-
7
- const vrender_kits_1 = require("@visactor/vrender-kits");
8
-
9
- function loadWeatherComponent() {
10
- (0, vrender_kits_1.registerGroup)(), (0, vrender_kits_1.registerSymbol)();
11
- }
12
-
13
- exports.loadWeatherComponent = loadWeatherComponent;
14
- //# sourceMappingURL=register.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/weather/register.ts"],"names":[],"mappings":";;;AAAA,yDAAuE;AAEvE,SAAgB,oBAAoB;IAClC,IAAA,4BAAa,GAAE,CAAC;IAChB,IAAA,6BAAc,GAAE,CAAC;AACnB,CAAC;AAHD,oDAGC","file":"register.js","sourcesContent":["import { registerGroup, registerSymbol } from '@visactor/vrender-kits';\n\nexport function loadWeatherComponent() {\n registerGroup();\n registerSymbol();\n}\n"]}
@@ -1,24 +0,0 @@
1
- import type { IGroupGraphicAttribute, ISymbolGraphicAttribute } from '@visactor/vrender-core';
2
- export interface IWeatherBoxAttrs extends IGroupGraphicAttribute {
3
- rainIconPath?: string;
4
- snowIconPath?: string;
5
- windIconPath?: string;
6
- width: number;
7
- height: number;
8
- rainSizeRange?: [number, number];
9
- snowSizeRange?: [number, number];
10
- windSize?: number;
11
- rainSpeed?: number;
12
- snowSpeed?: number;
13
- windSpeed?: number;
14
- snowRainBottomPadding?: number;
15
- rainRatio?: number;
16
- rainCountThreshold?: number;
17
- snowRatio?: number;
18
- snowCountThreshold?: number;
19
- windRatio?: number;
20
- windAnimateEffect?: 'fade' | 'clipRange';
21
- rainStyle?: ISymbolGraphicAttribute;
22
- snowStyle?: ISymbolGraphicAttribute;
23
- windStyle?: ISymbolGraphicAttribute;
24
- }
@@ -1,6 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- });
6
- //# sourceMappingURL=type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/weather/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type { IGroupGraphicAttribute, IRectGraphicAttribute, ISymbolGraphicAttribute } from '@visactor/vrender-core';\n\nexport interface IWeatherBoxAttrs extends IGroupGraphicAttribute {\n rainIconPath?: string;\n snowIconPath?: string;\n windIconPath?: string;\n width: number;\n height: number;\n rainSizeRange?: [number, number];\n snowSizeRange?: [number, number];\n windSize?: number;\n rainSpeed?: number;\n snowSpeed?: number;\n windSpeed?: number;\n\n snowRainBottomPadding?: number;\n\n rainRatio?: number;\n rainCountThreshold?: number;\n snowRatio?: number;\n snowCountThreshold?: number;\n windRatio?: number;\n\n windAnimateEffect?: 'fade' | 'clipRange';\n\n rainStyle?: ISymbolGraphicAttribute;\n snowStyle?: ISymbolGraphicAttribute;\n windStyle?: ISymbolGraphicAttribute;\n}\n"]}
@@ -1,13 +0,0 @@
1
- import { AbstractComponent } from '../core/base';
2
- import type { IWeatherBoxAttrs } from './type';
3
- import type { ComponentOptions } from '../interface';
4
- import { type IGroup, type ITimeline } from '@visactor/vrender-core';
5
- export declare class WeatherBox extends AbstractComponent<Required<IWeatherBoxAttrs>> {
6
- name: string;
7
- static defaultAttributes: Partial<IWeatherBoxAttrs>;
8
- timeline: ITimeline;
9
- constructor(attributes: IWeatherBoxAttrs, options?: ComponentOptions);
10
- protected render(): void;
11
- protected generateWind(windRatio: number, windIconPath: string, group: IGroup, size: number, speed: number): void;
12
- protected generateRainOrSnow(type: string, ratio: number, threshold: number, windRatio: number, group: IGroup, path: string, windAngle: number, sizeRange: [number, number], speed: number): void;
13
- }
@@ -1,129 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- }), exports.WeatherBox = void 0;
6
-
7
- const base_1 = require("../core/base"), vutils_1 = require("@visactor/vutils"), vrender_core_1 = require("@visactor/vrender-core");
8
-
9
- function random() {
10
- return Math.random();
11
- }
12
-
13
- function createUniformRandom(count) {
14
- const result = [], step = 1 / count;
15
- for (let i = 0; i < count; i++) result.push((random() - .5) * step / 2 + step * i);
16
- result.sort((() => Math.random() - .5));
17
- let idx = 0;
18
- return function(i) {
19
- return idx > count - 1 && (idx = 0), void 0 === i && (i = idx, idx++), result[i];
20
- };
21
- }
22
-
23
- class WeatherBox extends base_1.AbstractComponent {
24
- constructor(attributes, options) {
25
- var _a;
26
- super((null == options ? void 0 : options.skipDefault) ? attributes : (0, vutils_1.merge)({}, WeatherBox.defaultAttributes, attributes)),
27
- this.name = "weatherBox", this.timeline = null !== (_a = null == options ? void 0 : options.timeline) && void 0 !== _a ? _a : new vrender_core_1.DefaultTimeline;
28
- }
29
- render() {
30
- const {rainRatio: rainRatio, rainIconPath: rainIconPath, snowRatio: snowRatio, snowIconPath: snowIconPath, rainCountThreshold: rainCountThreshold, snowCountThreshold: snowCountThreshold, windRatio: windRatio, rainSizeRange: rainSizeRange, snowSizeRange: snowSizeRange, rainSpeed: rainSpeed, snowSpeed: snowSpeed, width: width, height: height, windIconPath: windIconPath, windSize: windSize, windSpeed: windSpeed} = this.attribute;
31
- this.attribute.clip = !0;
32
- const windAngle = -windRatio * Math.PI / 4, rainGroup = this.createOrUpdateChild("rain-container", {
33
- zIndex: 1,
34
- width: width,
35
- height: height
36
- }, "group");
37
- rainRatio > 0 && this.generateRainOrSnow("rain", rainRatio, rainCountThreshold, windRatio, rainGroup, rainIconPath, windAngle, rainSizeRange, rainSpeed);
38
- const snowGroup = this.createOrUpdateChild("snow-container", {
39
- zIndex: 1,
40
- width: width,
41
- height: height
42
- }, "group");
43
- snowRatio > 0 && this.generateRainOrSnow("snow", snowRatio, snowCountThreshold, windRatio, snowGroup, snowIconPath, windAngle, snowSizeRange, snowSpeed);
44
- const windGroup = this.createOrUpdateChild("wind-container", {
45
- zIndex: 0,
46
- width: width,
47
- height: height
48
- }, "group");
49
- windRatio > 0 && this.generateWind(windRatio, windIconPath, windGroup, windSize, windSpeed);
50
- }
51
- generateWind(windRatio, windIconPath, group, size, speed) {
52
- const {width: width, height: height} = group.attribute, {windAnimateEffect: windAnimateEffect, windStyle: windStyle = {}} = this.attribute;
53
- let fromAttribute = {
54
- opacity: 0,
55
- clipRange: 1
56
- }, toAttribute = {
57
- opacity: 1,
58
- clipRange: 1
59
- };
60
- "clipRange" === windAnimateEffect && (fromAttribute = {
61
- clipRange: 0,
62
- opacity: 1
63
- }, toAttribute = {
64
- clipRange: 1,
65
- opacity: 1
66
- });
67
- const wind = group.createOrUpdateChild("wind", Object.assign(Object.assign({
68
- x: (width - size) / 2,
69
- y: (height - size) / 2,
70
- symbolType: windIconPath,
71
- size: size,
72
- stroke: "white",
73
- lineWidth: 2,
74
- dx: -size / 2,
75
- dy: -size / 2
76
- }, windStyle), fromAttribute), "symbol"), duration = speed / 4 * 1e3;
77
- new vrender_core_1.Animate(void 0, this.timeline).bind(wind).to(fromAttribute, duration, "linear").to(toAttribute, duration, "linear").wait(duration / 2).loop(1 / 0);
78
- }
79
- generateRainOrSnow(type, ratio, threshold, windRatio, group, path, windAngle, sizeRange, speed) {
80
- let {width: width} = group.attribute;
81
- const {height: height} = group.attribute, {snowRainBottomPadding: snowRainBottomPadding, rainStyle: rainStyle = {}, snowStyle: snowStyle = {}} = this.attribute;
82
- let maxCount = Math.round(ratio * threshold);
83
- windRatio > 0 && (maxCount *= Math.round(1 + windRatio)), width *= Math.round(1 + windRatio);
84
- const uniformRandomX = createUniformRandom(maxCount), uniformRandomY = createUniformRandom(maxCount);
85
- for (let i = 0; i < maxCount; i++) {
86
- const x = uniformRandomX(), y = uniformRandomY(), size = sizeRange[0] + random() * (sizeRange[1] - sizeRange[0]), startX = x * width - (windAngle ? height * Math.tan(Math.abs(windAngle)) : 0), startY = -y * height, particle = group.createOrUpdateChild(`${type}-${i}`, Object.assign({
87
- x: startX,
88
- y: startY,
89
- symbolType: path,
90
- size: size,
91
- fill: "white",
92
- angle: windAngle
93
- }, "rain" === type ? rainStyle : snowStyle), "symbol"), duration = 1 / speed / 2 * (1 + y) * 1e3;
94
- let endX = x * width;
95
- "rain" === type && windAngle && (endX = startX + (1 + y) * height * Math.tan(Math.abs(windAngle))),
96
- new vrender_core_1.Animate(void 0, this.timeline).bind(particle).to({
97
- x: endX,
98
- y: height - snowRainBottomPadding
99
- }, duration, "linear").loop(1 / 0), new vrender_core_1.Animate(void 0, this.timeline).bind(particle).to({
100
- opacity: 0
101
- }, duration, "quintIn").loop(1 / 0);
102
- }
103
- }
104
- }
105
-
106
- exports.WeatherBox = WeatherBox, WeatherBox.defaultAttributes = {
107
- snowIconPath: "M512 64c24.7 0 44.8 20.1 44.8 44.8v43.1l29.3-15.5c21.9-11.6 49-3.2 60.5 18.7s3.2 49-18.7 60.5l-71.2 37.6v85.2c32 8.2 60.6 25.1 83.1 48l73.8-42.6-3-80.4c-0.9-24.7 18.4-45.5 43.1-46.4 24.7-0.9 45.5 18.4 46.4 43.1l1.2 33.1 37.3-21.5c21.4-12.4 48.8-5 61.2 16.4 12.4 21.4 5 48.8-16.4 61.2l-37.3 21.5 28.1 17.6c21 13.2 27.3 40.8 14.1 61.8-13.2 20.9-40.8 27.3-61.8 14.1l-68.2-42.8-73.6 42.5c4.2 15.3 6.5 31.4 6.5 48s-2.3 32.7-6.5 48l73.8 42.6 68.2-42.8c20.9-13.2 48.6-6.8 61.8 14.1 13.2 21 6.8 48.6-14.1 61.8l-28.1 17.6 37.3 21.5c21.4 12.4 28.8 39.8 16.4 61.2-12.4 21.4-39.8 28.8-61.2 16.4l-37.3-21.5-1.2 33.1c-0.9 24.7-21.7 44-46.4 43.1-24.7-0.9-44-21.7-43.1-46.4l3-80.4-73.8-42.6c-22.5 22.9-51 39.8-83.1 48v85.2l71.2 37.6c21.9 11.6 30.2 38.7 18.7 60.5-11.6 21.9-38.7 30.2-60.5 18.7L557 872.2v43.1c0 24.7-20.1 44.8-44.8 44.8-24.7 0-44.8-20.1-44.8-44.8v-43.1l-29.3 15.5c-21.9 11.6-49 3.2-60.5-18.7-11.6-21.9-3.2-49 18.7-60.5l71.2-37.6v-85.2c-32-8.2-60.6-25.1-83.1-48l-73.8 42.6 3 80.4c0.9 24.7-18.4 45.5-43.1 46.4-24.7 0.9-45.5-18.4-46.4-43.1l-1.2-33.1-37.3 21.5c-21.4 12.4-48.8 5-61.2-16.4s-5-48.8 16.4-61.2l37.3-21.5-28.1-17.6c-21-13.2-27.3-40.8-14.1-61.8 13.2-20.9 40.8-27.3 61.8-14.1l68.2 42.8 73.8-42.6c-4.2-15.3-6.5-31.4-6.5-48s2.3-32.7 6.5-48l-73.8-42.6-68.2 42.8c-21 13.2-48.6 6.8-61.8-14.1-13.2-21-6.8-48.6 14.1-61.8l28.1-17.6-37.3-21.5C119 336.8 111.7 309.4 124 288c12.4-21.4 39.8-28.8 61.2-16.4l37.3 21.5 1.2-33.1c0.9-24.7 21.7-44 46.4-43.1 24.7 0.9 44 21.7 43.1 46.4l-3 80.4 73.8 42.6c22.5-22.9 51-39.8 83.1-48v-85.2L396 215.6c-21.9-11.6-30.2-38.7-18.7-60.5 11.6-21.9 38.7-30.2 60.5-18.7l29.3 15.5v-43.1C467.2 84.1 487.3 64 512 64z m0 537.6c49.5 0 89.6-40.1 89.6-89.6s-40.1-89.6-89.6-89.6-89.6 40.1-89.6 89.6 40.1 89.6 89.6 89.6z",
108
- rainIconPath: "M802.94208 583.04c19.328 38.016 29.056 78.336 29.056 120.96a313.216 313.216 0 0 1-44.032 161.536 324.48 324.48 0 0 1-114.56 114.944c-23.552 13.696-49.024 24.32-76.416 32-27.264 7.68-55.68 11.52-84.992 11.52-29.44 0-57.6-3.84-84.992-11.52a331.136 331.136 0 0 1-76.544-32 337.536 337.536 0 0 1-65.024-49.92 337.536 337.536 0 0 1-49.92-65.024 331.136 331.136 0 0 1-32-76.544A313.216 313.216 0 0 1 191.99808 704c0-42.24 9.344-82.56 28.032-120.448L509.43808 0l293.504 583.04z",
109
- windIconPath: '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path d="M 4.0003 14.0002 L 12.0003 14.0008 M 12.0003 14.0008 C 13.1049 14.0009 14.0003 14.8964 14.0002 16.001 C 14.0001 17.1055 13.1046 18.0009 12 18.0008 L 10.5 18.0007" stroke-linecap="round" stroke-linejoin="round"/>\n <path d="M 7 10.0002 L 14.5 10.0008 C 15.6046 10.0009 16.5001 9.1055 16.5002 8.001 C 16.5003 6.8964 15.6049 6.0009 14.5003 6.0008 L 13.0003 6.0007" stroke-linecap="round" stroke-linejoin="round"/>\n </svg>',
110
- windRatio: 0,
111
- rainRatio: 0,
112
- snowRatio: 0,
113
- rainCountThreshold: 10,
114
- snowCountThreshold: 10,
115
- rainSizeRange: [ 5, 10 ],
116
- snowSizeRange: [ 5, 13 ],
117
- windSize: 30,
118
- rainSpeed: 1,
119
- snowSpeed: .5,
120
- windSpeed: 1,
121
- windAnimateEffect: "fade",
122
- rainStyle: {},
123
- snowStyle: {},
124
- windStyle: {
125
- opacity: .8
126
- },
127
- snowRainBottomPadding: 0
128
- };
129
- //# sourceMappingURL=weather-box.js.map