@meta2d/core 1.0.61 → 1.0.63

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.
@@ -26,6 +26,8 @@ export interface Event {
26
26
  value?: EventValue;
27
27
  }[];
28
28
  timeout?: number;
29
+ confirm?: string;
30
+ confirmTitle?: string;
29
31
  }
30
32
  export declare enum EventAction {
31
33
  Link = 0,
@@ -45,7 +47,8 @@ export declare enum EventAction {
45
47
  Dialog = 14,
46
48
  SendData = 15,//数据源选择
47
49
  PostMessage = 16,//发送场景数据
48
- PostMessageToParent = 17
50
+ PostMessageToParent = 17,//向父窗口发送消息
51
+ Message = 18
49
52
  }
50
53
  export interface Where {
51
54
  type?: string | 'comparison';
@@ -104,4 +107,7 @@ export interface RealTime {
104
107
  value?: string;
105
108
  enableMock?: boolean;
106
109
  mock?: any;
110
+ productId?: string;
111
+ deviceId?: string;
112
+ propertyId?: string;
107
113
  }
@@ -18,5 +18,6 @@ export var EventAction;
18
18
  EventAction[EventAction["SendData"] = 15] = "SendData";
19
19
  EventAction[EventAction["PostMessage"] = 16] = "PostMessage";
20
20
  EventAction[EventAction["PostMessageToParent"] = 17] = "PostMessageToParent";
21
+ EventAction[EventAction["Message"] = 18] = "Message";
21
22
  })(EventAction || (EventAction = {}));
22
23
  //# sourceMappingURL=event.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event.js","sourceRoot":"","sources":["../../../../packages/core/src/event/event.ts"],"names":[],"mappings":"AA+CA,MAAM,CAAN,IAAY,WAmBX;AAnBD,WAAY,WAAW;IACrB,6CAAI,CAAA;IACJ,qDAAQ,CAAA;IACR,6DAAY,CAAA;IACZ,6DAAY,CAAA;IACZ,2DAAW,CAAA;IACX,yCAAE,CAAA;IACF,qDAAQ,CAAA;IACR,6CAAI,CAAA;IACJ,yDAAU,CAAA;IACV,yDAAU,CAAA;IACV,wDAAS,CAAA;IACT,8DAAY,CAAA;IACZ,4DAAW,CAAA;IACX,wDAAS,CAAA;IACT,kDAAM,CAAA;IACN,sDAAQ,CAAA;IACR,4DAAW,CAAA;IACX,4EAAmB,CAAA;AACrB,CAAC,EAnBW,WAAW,KAAX,WAAW,QAmBtB"}
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../../../../packages/core/src/event/event.ts"],"names":[],"mappings":"AAiDA,MAAM,CAAN,IAAY,WAoBX;AApBD,WAAY,WAAW;IACrB,6CAAI,CAAA;IACJ,qDAAQ,CAAA;IACR,6DAAY,CAAA;IACZ,6DAAY,CAAA;IACZ,2DAAW,CAAA;IACX,yCAAE,CAAA;IACF,qDAAQ,CAAA;IACR,6CAAI,CAAA;IACJ,yDAAU,CAAA;IACV,yDAAU,CAAA;IACV,wDAAS,CAAA;IACT,8DAAY,CAAA;IACZ,4DAAW,CAAA;IACX,wDAAS,CAAA;IACT,kDAAM,CAAA;IACN,sDAAQ,CAAA;IACR,4DAAW,CAAA;IACX,4EAAmB,CAAA;IACnB,oDAAO,CAAA;AACT,CAAC,EApBW,WAAW,KAAX,WAAW,QAoBtB"}
@@ -0,0 +1 @@
1
+ export * from './message';
@@ -0,0 +1,2 @@
1
+ export * from './message';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/core/src/message/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
@@ -0,0 +1,28 @@
1
+ export type Theme = 'success' | 'info' | 'warning' | 'error' | 'question';
2
+ export interface MessageOptions {
3
+ id?: string;
4
+ content?: string;
5
+ theme?: Theme;
6
+ placement?: string;
7
+ duration?: number;
8
+ closeBtn?: boolean;
9
+ }
10
+ export declare const messageList: {
11
+ [key: string]: Message;
12
+ };
13
+ export declare class Message {
14
+ parentElement: HTMLElement;
15
+ box: HTMLElement;
16
+ icon: HTMLElement;
17
+ text: HTMLElement;
18
+ closeBtn: HTMLElement;
19
+ duration: number;
20
+ content: string;
21
+ theme: Theme;
22
+ placement: string;
23
+ id: string;
24
+ constructor(parentElement: HTMLElement, options: MessageOptions);
25
+ init(): void;
26
+ setPosition(placement: string, index?: number): void;
27
+ close(): void;
28
+ }
@@ -0,0 +1,162 @@
1
+ import { s8 } from '../utils';
2
+ const status = {
3
+ success: {
4
+ color: '#2ba471',
5
+ icon: '<svg fill="none" viewBox="0 0 24 24"><path d="M12 23a11 11 0 100-22 11 11 0 000 22zM7.5 10.59l3 3 6-6L17.91 9l-7.41 7.41L6.09 12l1.41-1.41z"></path></svg>',
6
+ },
7
+ info: {
8
+ color: '#0052d9',
9
+ icon: '<svg fill="none" viewBox="0 0 24 24"><path d="M12 23a11 11 0 100-22 11 11 0 000 22zM11 8.5v-2h2v2h-2zm2 1.5v7.5h-2V10h2z"></path></svg>',
10
+ },
11
+ warning: {
12
+ color: '#e37318',
13
+ icon: '<svg fill="none" viewBox="0 0 24 24"><path d="M12 1a11 11 0 110 22 11 11 0 010-22zm-1 13h2V6.5h-2V14zm2 1.5h-2v2h2v-2z"></path></svg>',
14
+ },
15
+ error: {
16
+ color: '#d54941',
17
+ icon: '<svg fill="none" viewBox="0 0 24 24"><path d="M12 1a11 11 0 110 22 11 11 0 010-22zm-1 13h2V6.5h-2V14zm2 1.5h-2v2h2v-2z"></path></svg>',
18
+ },
19
+ question: {
20
+ color: '#0052d9',
21
+ icon: '<svg fill="none" viewBox="0 0 24 24"><path d="M12 23a11 11 0 100-22 11 11 0 000 22zm-.17-11.11c.43-.53.97-.97 1.4-1.32A2 2 0 0012 7a2 2 0 00-1.89 1.33l-.33.95L7.9 8.6l.34-.94a4 4 0 116.24 4.47 7 7 0 00-1.1 1.01c-.27.34-.37.61-.37.85v1.25h-2V14c0-.87.39-1.57.83-2.11zM11 18.25v-2h2v2h-2z"></path></svg>',
22
+ },
23
+ };
24
+ export const messageList = {};
25
+ export class Message {
26
+ parentElement;
27
+ box;
28
+ icon;
29
+ text;
30
+ closeBtn;
31
+ duration; //定时销毁时间
32
+ content;
33
+ theme; //主题
34
+ placement; //位置
35
+ id;
36
+ constructor(parentElement, options) {
37
+ this.parentElement = parentElement;
38
+ this.box = document.createElement('div');
39
+ this.icon = document.createElement('div');
40
+ this.text = document.createElement('div');
41
+ this.box.className = 'meta2d-message';
42
+ this.icon.className = 'icon';
43
+ this.text.className = 'text';
44
+ this.icon.innerHTML = status[options.theme || 'info'].icon;
45
+ this.text.innerHTML = options.content;
46
+ this.box.appendChild(this.icon);
47
+ this.box.appendChild(this.text);
48
+ if (options.closeBtn) {
49
+ this.closeBtn = document.createElement('div');
50
+ this.closeBtn.className = 'close';
51
+ this.closeBtn.innerHTML = 'x';
52
+ this.closeBtn.onclick = () => {
53
+ this.close();
54
+ };
55
+ this.box.appendChild(this.closeBtn);
56
+ }
57
+ parentElement.appendChild(this.box);
58
+ let sheet;
59
+ for (let i = 0; i < document.styleSheets.length; i++) {
60
+ if (document.styleSheets[i].title === 'le5le.com/message') {
61
+ sheet = document.styleSheets[i];
62
+ }
63
+ }
64
+ if (!sheet) {
65
+ let style = document.createElement('style');
66
+ style.type = 'text/css';
67
+ style.title = 'le5le.com/message';
68
+ document.head.appendChild(style);
69
+ style = document.createElement('style');
70
+ style.type = 'text/css';
71
+ document.head.appendChild(style);
72
+ sheet = style.sheet;
73
+ sheet.insertRule(`.meta2d-message{
74
+ position:absolute;
75
+ z-index:999;
76
+ transform: translateX(-50%);
77
+ padding:12px 16px;
78
+ max-width:400px;
79
+ background:#fff;
80
+ border-radius:6px;
81
+ box-shadow:0 3px 14px 2px rgba(0, 0, 0, .05),0 8px 10px 1px rgba(0, 0, 0, 6%),0 5px 5px -3px rgba(0, 0, 0, 10%);
82
+ display:flex;
83
+ animation: fadein .5s;}`);
84
+ sheet.insertRule(`
85
+ @keyframes fadein {
86
+ 0% {
87
+ transform: translate(-50%, -100%);
88
+ }
89
+ 100% {
90
+ transform: translate(-50%,0);
91
+ }
92
+ }`);
93
+ sheet.insertRule('.meta2d-message .icon{width:20px;height:20px;}');
94
+ sheet.insertRule('.meta2d-message .text{color:rgba(0, 0, 0, 0.9);font-size:12px;margin-left:8px;line-height:20px;}');
95
+ sheet.insertRule('.meta2d-message .close{width:20px;height:20px;padding-left: 16px; cursor: pointer;}');
96
+ }
97
+ this.id = options.id || s8();
98
+ this.duration = options.duration ?? 3000;
99
+ this.placement = options.placement || 'top';
100
+ this.theme = options.theme || 'info';
101
+ // this.init();
102
+ }
103
+ init() {
104
+ messageList[this.id] = this;
105
+ if (this.duration) {
106
+ setTimeout(() => {
107
+ this.close();
108
+ }, this.duration);
109
+ }
110
+ let idx = -1;
111
+ Object.keys(messageList).forEach((key) => {
112
+ if (messageList[key]?.placement === this.placement) {
113
+ idx++;
114
+ }
115
+ });
116
+ this.setPosition(this.placement, idx);
117
+ this.icon.children[0].style.fill =
118
+ status[this.theme].color;
119
+ }
120
+ setPosition(placement, index = 0) {
121
+ switch (placement) {
122
+ case 'top':
123
+ this.box.style.top = `${30 + index * 60}px`;
124
+ this.box.style.left = '50%';
125
+ break;
126
+ case 'bottom':
127
+ this.box.style.bottom = `${30 + index * 60}px`;
128
+ this.box.style.left = '50%';
129
+ break;
130
+ case 'left':
131
+ this.box.style.top = `${30 + index * 60}px`;
132
+ this.box.style.left = '30px';
133
+ break;
134
+ case 'right':
135
+ this.box.style.top = `${30 + index * 60}px`;
136
+ this.box.style.right = '30px';
137
+ break;
138
+ }
139
+ }
140
+ close() {
141
+ Object.keys(messageList).forEach((key) => {
142
+ if (messageList[key]?.placement === this.placement) {
143
+ switch (this.placement) {
144
+ case 'top':
145
+ case 'left':
146
+ case 'right':
147
+ messageList[key].box.style.top =
148
+ parseInt(messageList[key].box.style.top) - 60 + 'px';
149
+ break;
150
+ case 'bottom':
151
+ messageList[key].box.style.bottom =
152
+ parseInt(messageList[key].box.style.bottom) - 60 + 'px';
153
+ break;
154
+ }
155
+ }
156
+ });
157
+ messageList[this.id] = null;
158
+ delete messageList[this.id];
159
+ this.box.remove();
160
+ }
161
+ }
162
+ //# sourceMappingURL=message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../../packages/core/src/message/message.ts"],"names":[],"mappings":"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"}
@@ -117,6 +117,10 @@ export interface Pen extends Rect {
117
117
  */
118
118
  lineGradientAngle?: number;
119
119
  gradientColors?: string;
120
+ switch?: boolean;
121
+ checked?: boolean;
122
+ onBackground?: string;
123
+ onGradientColors?: string;
120
124
  lineGradientColors?: string;
121
125
  lineCap?: CanvasLineCap;
122
126
  fromLineCap?: CanvasLineCap;
@@ -205,6 +209,7 @@ export interface Pen extends Rect {
205
209
  animateShadowColor?: string;
206
210
  animateShadowBlur?: number;
207
211
  input?: boolean;
212
+ autofocus?: boolean;
208
213
  dropdownList?: Dropdown[];
209
214
  dropdownBackground?: string;
210
215
  dropdownColor?: string;
@@ -270,6 +275,7 @@ export interface Pen extends Rect {
270
275
  disabledBackground?: string;
271
276
  disabledTextColor?: string;
272
277
  inputType?: string;
278
+ productId?: string;
273
279
  deviceId?: string;
274
280
  pivot?: Point;
275
281
  noOnBinds?: boolean;
@@ -286,6 +292,7 @@ export interface Pen extends Rect {
286
292
  progress?: number;
287
293
  progressColor?: string;
288
294
  progressGradientColors?: string;
295
+ verticalProgress?: boolean;
289
296
  worldRect?: Rect;
290
297
  worldAnchors?: Point[];
291
298
  worldIconRect?: Rect;
@@ -422,6 +429,9 @@ export interface Pen extends Rect {
422
429
  onended?: (pen: Pen) => void;
423
430
  singleton?: any;
424
431
  gradientColors?: string;
432
+ onBackground?: string;
433
+ onGradientColors?: string;
434
+ checked?: boolean;
425
435
  lineGradientColors?: string;
426
436
  gradient?: CanvasGradient;
427
437
  lineGradient?: CanvasGradient;
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../packages/core/src/pen/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../packages/core/src/pen/model.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ export declare function drawImage(ctx: CanvasRenderingContext2D | OffscreenCanva
19
19
  */
20
20
  export declare function getTextColor(pen: Pen, store: Meta2dStore): string;
21
21
  export declare function drawIcon(ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, pen: Pen): void;
22
+ export declare function drawDropdown(ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, pen: Pen): void;
22
23
  /**
23
24
  * canvas2svg 中对 font 的解析规则比 canvas 中简单,能识别的类型很少
24
25
  * @returns ctx.font
package/src/pen/render.js CHANGED
@@ -109,6 +109,10 @@ function getBkRadialGradient(ctx, pen) {
109
109
  if (!gradientColors) {
110
110
  return;
111
111
  }
112
+ let color = pen.calculative.gradientColors;
113
+ if (pen.calculative.checked) {
114
+ color = pen.calculative.onGradientColors;
115
+ }
112
116
  const { width, height, center } = worldRect;
113
117
  const { x: centerX, y: centerY } = center;
114
118
  let r = width;
@@ -116,7 +120,7 @@ function getBkRadialGradient(ctx, pen) {
116
120
  r = height;
117
121
  }
118
122
  r *= 0.5;
119
- const { colors } = formatGradient(gradientColors);
123
+ const { colors } = formatGradient(color);
120
124
  const grd = ctx.createRadialGradient(centerX, centerY, r * (gradientRadius || 0), centerX, centerY, r);
121
125
  colors.forEach((stop) => {
122
126
  grd.addColorStop(stop.i, stop.color);
@@ -129,7 +133,11 @@ function getBkGradient(ctx, pen) {
129
133
  { x: ex, y: y + height / 2 },
130
134
  { x: x, y: y + height / 2 },
131
135
  ];
132
- const { angle, colors } = formatGradient(pen.calculative.gradientColors);
136
+ let color = pen.calculative.gradientColors;
137
+ if (pen.calculative.checked) {
138
+ color = pen.calculative.onGradientColors;
139
+ }
140
+ const { angle, colors } = formatGradient(color);
133
141
  let r = getGradientR(angle, width, height);
134
142
  points.forEach((point) => {
135
143
  rotatePoint(point, angle, center);
@@ -994,6 +1002,25 @@ export function drawIcon(ctx, pen) {
994
1002
  ctx.fillText(pen.calculative.icon, x, y);
995
1003
  ctx.restore();
996
1004
  }
1005
+ export function drawDropdown(ctx, pen) {
1006
+ const scale = pen.calculative.canvas.store.data.scale;
1007
+ const inputPenId = pen.calculative.canvas.inputDiv.dataset.penId;
1008
+ const { x, y, width, height } = pen.calculative.worldRect;
1009
+ ctx.save();
1010
+ ctx.beginPath();
1011
+ if (pen.id === inputPenId) {
1012
+ ctx.moveTo(x + width - 20 * scale, y + height / 2 + 2 * scale);
1013
+ ctx.lineTo(x + width - 14 * scale, y + height / 2 - 4 * scale);
1014
+ ctx.lineTo(x + width - 8 * scale, y + height / 2 + 2 * scale);
1015
+ }
1016
+ else {
1017
+ ctx.moveTo(x + width - 20 * scale, y + height / 2 - 4 * scale);
1018
+ ctx.lineTo(x + width - 14 * scale, y + height / 2 + 2 * scale);
1019
+ ctx.lineTo(x + width - 8 * scale, y + height / 2 - 4 * scale);
1020
+ }
1021
+ ctx.stroke();
1022
+ ctx.restore();
1023
+ }
997
1024
  /**
998
1025
  * canvas2svg 中对 font 的解析规则比 canvas 中简单,能识别的类型很少
999
1026
  * @returns ctx.font
@@ -1072,6 +1099,11 @@ export function renderPen(ctx, pen, download) {
1072
1099
  pen.mouseDownBackground ||
1073
1100
  pSBC(-0.4, pen.calculative.background || store.data.penBackground);
1074
1101
  }
1102
+ else if (pen.switch && pen.calculative.checked) {
1103
+ if (!pen.calculative.bkType) {
1104
+ fill = pen.onBackground;
1105
+ }
1106
+ }
1075
1107
  else if (pen.calculative.hover) {
1076
1108
  _stroke = pen.hoverColor || store.options.hoverColor;
1077
1109
  fill = pen.hoverBackground || store.options.hoverBackground;
@@ -1201,6 +1233,9 @@ export function renderPen(ctx, pen, download) {
1201
1233
  if (!(pen.image && pen.calculative.img) && pen.calculative.icon) {
1202
1234
  drawIcon(ctx, pen);
1203
1235
  }
1236
+ if (pen.dropdownList) {
1237
+ drawDropdown(ctx, pen);
1238
+ }
1204
1239
  if (!textFlip || !textRotate) {
1205
1240
  ctx.restore();
1206
1241
  }
@@ -1366,6 +1401,9 @@ export function renderPenRaw(ctx, pen, rect, download) {
1366
1401
  else if (pen.calculative.icon) {
1367
1402
  drawIcon(ctx, pen);
1368
1403
  }
1404
+ if (pen.dropdownList) {
1405
+ drawDropdown(ctx, pen);
1406
+ }
1369
1407
  if (!textFlip || !textRotate) {
1370
1408
  ctx.restore();
1371
1409
  }
@@ -1485,7 +1523,7 @@ export function ctxDrawPath(canUsePath = true, ctx, pen, store, fill) {
1485
1523
  ctx.save();
1486
1524
  const { ex, x, y, width, height, ey } = pen.calculative.worldRect;
1487
1525
  let grd = null;
1488
- if (!pen.verticalProgress) {
1526
+ if (!pen.calculative.verticalProgress) {
1489
1527
  grd = !pen.reverseProgress
1490
1528
  ? ctx.createLinearGradient(x, y, x + width * progress, y)
1491
1529
  : ctx.createLinearGradient(ex, y, x + width * (1 - progress), y);