@ray-js/t-agent-ui-ray 0.2.2-beta-1 → 0.2.3-beta-1

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 (51) hide show
  1. package/dist/ChatContainer/index.js +1 -9
  2. package/dist/EchartsBlockRender/index.js +8 -10
  3. package/dist/LazyScrollView/LazyItem/index.d.ts +18 -0
  4. package/dist/LazyScrollView/LazyItem/index.js +51 -0
  5. package/dist/LazyScrollView/LazyItem/index.json +3 -0
  6. package/dist/LazyScrollView/LazyItem/index.tyml +16 -0
  7. package/dist/LazyScrollView/index.d.ts +26 -0
  8. package/dist/LazyScrollView/index.js +27 -0
  9. package/dist/LazyScrollView/index.json +3 -0
  10. package/dist/LazyScrollView/index.tyml +15 -0
  11. package/dist/LazyScrollView/lazy-scroll-view.sjs +317 -0
  12. package/dist/LazyScrollView/weak-ref.sjs +45 -0
  13. package/dist/MessageInput/MessageInputAIStream/AsrInput.js +2 -2
  14. package/dist/MessageInput/MessageInputAIStream/Waveform/index.d.ts +9 -0
  15. package/dist/MessageInput/MessageInputAIStream/Waveform/index.js +52 -0
  16. package/dist/MessageInput/MessageInputAIStream/Waveform/index.json +3 -0
  17. package/dist/MessageInput/MessageInputAIStream/Waveform/index.tyml +9 -0
  18. package/dist/MessageInput/MessageInputAIStream/index.d.ts +1 -0
  19. package/dist/MessageInput/MessageInputAIStream/index.js +2 -4
  20. package/dist/MessageList/ScrollBottomView.d.ts +21 -20
  21. package/dist/MessageList/ScrollBottomView.js +59 -135
  22. package/dist/MessageList/index.d.ts +6 -8
  23. package/dist/MessageList/index.js +91 -11
  24. package/dist/MessageList/index.less +1 -2
  25. package/dist/MessageRender/index.d.ts +6 -1
  26. package/dist/MessageRender/index.js +49 -17
  27. package/dist/MessageRender/index.less +5 -3
  28. package/dist/TileRender/index.d.ts +2 -1
  29. package/dist/TileRender/index.js +3 -3
  30. package/dist/contexts.d.ts +1 -5
  31. package/dist/hooks/context.d.ts +0 -2
  32. package/dist/hooks/context.js +0 -6
  33. package/dist/tiles/BubbleTile/index.js +2 -1
  34. package/dist/tiles/CardTile/index.less +1 -1
  35. package/dist/tiles/ExecuteCardTile/index.d.ts +1 -8
  36. package/dist/tiles/ExecuteCardTile/index.js +8 -15
  37. package/dist/tiles/ExecuteCardTile/index.less +177 -151
  38. package/dist/tiles/OperateCardTile/Expand.d.ts +2 -1
  39. package/dist/tiles/OperateCardTile/Expand.js +4 -2
  40. package/dist/tiles/OperateCardTile/index.d.ts +2 -6
  41. package/dist/tiles/OperateCardTile/index.js +6 -9
  42. package/dist/tiles/types.d.ts +31 -0
  43. package/dist/tiles/types.js +5 -0
  44. package/dist/utils/index.js +1 -1
  45. package/dist/utils/object.d.ts +8 -0
  46. package/dist/utils/object.js +57 -0
  47. package/package.json +2 -2
  48. package/dist/MessageInput/MessageInputAIStream/WaveformVisualizer.d.ts +0 -4
  49. package/dist/MessageInput/MessageInputAIStream/WaveformVisualizer.js +0 -54
  50. package/dist/MessageList/LazyView.d.ts +0 -9
  51. package/dist/MessageList/LazyView.js +0 -57
@@ -5,14 +5,23 @@ import "core-js/modules/web.dom-collections.iterator.js";
5
5
  import './index.less';
6
6
  import { View } from '@ray-js/components';
7
7
  import React, { useState } from 'react';
8
+ import { ChatMessageStatus } from '@ray-js/t-agent';
8
9
  import TileRender from '../TileRender';
9
10
  import { useChatAgent, useOnEvent } from '../hooks';
11
+ import LazyItem from '../LazyScrollView/LazyItem/index.js';
12
+ import { objectsId } from '../utils/object';
13
+ import { useStableCallback } from '../hooks/useStableCallback';
10
14
  export default function MessageRender(_ref) {
11
15
  let {
12
16
  message,
13
17
  isLatestMessage,
14
18
  side,
15
- showSelect
19
+ showSelect,
20
+ notifyHeightChanged,
21
+ scrollViewId = '',
22
+ index,
23
+ onShowChange,
24
+ show = true
16
25
  } = _ref;
17
26
  const {
18
27
  id,
@@ -32,36 +41,59 @@ export default function MessageRender(_ref) {
32
41
  setIsSelected(!!(value !== null && value !== void 0 && value.includes(id)));
33
42
  }
34
43
  });
44
+ const [_tick, setTick] = useState(() => "".concat(Math.random()));
45
+ const _notifyHeightChanged = useStableCallback(() => {
46
+ notifyHeightChanged();
47
+ setTick("".concat(Math.random()));
48
+ });
49
+ const tick = objectsId(message, _tick);
35
50
  if (tiles.length === 0) {
36
- return /*#__PURE__*/React.createElement(View, {
51
+ return /*#__PURE__*/React.createElement(LazyItem, {
52
+ scrollViewId: scrollViewId,
53
+ itemId: id,
37
54
  key: id,
55
+ update: tick,
56
+ index: index,
57
+ ready: message.status === ChatMessageStatus.FINISH,
38
58
  className: "t-agent-message-list-row-empty t-agent-message-list-row-".concat(side)
39
59
  });
40
60
  }
41
- return /*#__PURE__*/React.createElement(View, {
42
- key: id,
43
- className: "t-agent-message-list-row-container",
44
- onClick: () => {
45
- if (showSelect) {
46
- const prev = agent.session.get("UIRay.multiSelect.selected") || [];
47
- isSelected ? agent.session.set("UIRay.multiSelect.selected", prev.filter(i => i !== id)) : agent.session.set("UIRay.multiSelect.selected", [...prev, id]);
48
- }
49
- }
50
- }, showSelect && /*#__PURE__*/React.createElement(View, {
51
- className: "t-agent-message-list-row-check"
61
+ const children = [showSelect ? /*#__PURE__*/React.createElement(View, {
62
+ className: "t-agent-message-list-row-check",
63
+ key: "checkbox"
52
64
  }, /*#__PURE__*/React.createElement(View, {
53
65
  className: "t-agent-message-list-checkbox-container ".concat(isSelected ? 't-agent-message-list-checkbox-selected' : '')
54
66
  }, /*#__PURE__*/React.createElement(View, {
55
67
  className: "t-agent-message-list-checkbox-check"
56
- }))), /*#__PURE__*/React.createElement(View, {
57
- className: "t-agent-message-list-row t-agent-message-list-row-".concat(side)
68
+ }))) : null, /*#__PURE__*/React.createElement(View, {
69
+ className: "t-agent-message-list-row t-agent-message-list-row-".concat(side),
70
+ key: "tiles"
58
71
  }, tiles.map(tile => {
59
72
  return /*#__PURE__*/React.createElement(TileRender, {
60
73
  tile: tile,
61
74
  message: message,
62
75
  side: side,
63
76
  key: tile.id,
64
- isLatestMessage: isLatestMessage
77
+ isLatestMessage: isLatestMessage,
78
+ notifyHeightChanged: _notifyHeightChanged
65
79
  });
66
- })));
80
+ }))];
81
+ return /*#__PURE__*/React.createElement(LazyItem, {
82
+ key: id,
83
+ itemId: id,
84
+ index: index,
85
+ className: "t-agent-message-list-row-container",
86
+ update: tick,
87
+ scrollViewId: scrollViewId,
88
+ bindshow: event => {
89
+ onShowChange === null || onShowChange === void 0 || onShowChange(event.detail.show);
90
+ },
91
+ ready: message.status === ChatMessageStatus.FINISH,
92
+ bindclick: () => {
93
+ if (showSelect) {
94
+ const prev = agent.session.get("UIRay.multiSelect.selected") || [];
95
+ isSelected ? agent.session.set("UIRay.multiSelect.selected", prev.filter(i => i !== id)) : agent.session.set("UIRay.multiSelect.selected", [...prev, id]);
96
+ }
97
+ }
98
+ }, show && children);
67
99
  }
@@ -5,15 +5,17 @@
5
5
  .t-agent-message-list-row-check {
6
6
  display: flex;
7
7
  align-items: flex-end;
8
- margin-bottom: calc(var(--t-agent-y-gap) + 24rpx);
8
+ padding-bottom: calc(var(--t-agent-y-gap) + 24rpx);
9
9
  margin-right: 28rpx;
10
10
  }
11
11
 
12
12
  .t-agent-message-list-row {
13
- margin-bottom: var(--t-agent-y-gap);
13
+ padding-bottom: var(--t-agent-y-gap);
14
14
  display: flex;
15
15
  flex-direction: column;
16
- flex: 1 0 auto;
16
+ flex: 1;
17
+ width: 100%;
18
+ min-width: 0;
17
19
  }
18
20
 
19
21
  .t-agent-message-list-row-start {
@@ -6,6 +6,7 @@ interface Props {
6
6
  message: ChatMessageObject;
7
7
  side: 'start' | 'end' | string;
8
8
  isLatestMessage?: boolean;
9
+ notifyHeightChanged: () => void;
9
10
  }
10
- declare const _default: React.MemoExoticComponent<({ tile, message, isLatestMessage, side }: Props) => React.JSX.Element>;
11
+ declare const _default: React.MemoExoticComponent<({ tile, message, isLatestMessage, side, notifyHeightChanged }: Props) => React.JSX.Element>;
11
12
  export default _default;
@@ -1,17 +1,17 @@
1
1
  import './index.less';
2
2
  import React, { useCallback, useMemo } from 'react';
3
- import { useChatAgent, useNotifyHeightChanged, useRenderOptions } from '../hooks';
3
+ import { useChatAgent, useRenderOptions } from '../hooks';
4
4
  import { TilePropsContext } from '../contexts';
5
5
  const TileRender = _ref => {
6
6
  let {
7
7
  tile,
8
8
  message,
9
9
  isLatestMessage,
10
- side
10
+ side,
11
+ notifyHeightChanged
11
12
  } = _ref;
12
13
  const agent = useChatAgent();
13
14
  const emitTileEvent = useCallback(async payload => agent.emitTileEvent(tile.id, payload), [agent, tile.id]);
14
- const notifyHeightChanged = useNotifyHeightChanged();
15
15
  const {
16
16
  renderTileAs
17
17
  } = useRenderOptions();
@@ -13,15 +13,11 @@ declare const SharedProvider: ({ value, children }: import("react").PropsWithChi
13
13
  messages: ChatMessageObject[];
14
14
  keyboardHeight: number;
15
15
  renderOptions: RenderOptions;
16
- notifyHeightChanged: () => void;
17
- tickValue: number;
18
16
  };
19
- }>) => import("react").JSX.Element, useSharedState: <K extends "agent" | "messages" | "keyboardHeight" | "renderOptions" | "notifyHeightChanged" | "tickValue">(key: K) => {
17
+ }>) => import("react").JSX.Element, useSharedState: <K extends "agent" | "messages" | "keyboardHeight" | "renderOptions">(key: K) => {
20
18
  agent: UIChatAgent;
21
19
  messages: ChatMessageObject[];
22
20
  keyboardHeight: number;
23
21
  renderOptions: RenderOptions;
24
- notifyHeightChanged: () => void;
25
- tickValue: number;
26
22
  }[K];
27
23
  export { SharedProvider, useSharedState };
@@ -1,8 +1,6 @@
1
1
  import { Dispatch, SetStateAction } from 'react';
2
2
  import { TTTAction } from '../types';
3
3
  export declare const useChatAgent: () => import("../contexts").UIChatAgent;
4
- export declare const useTick: () => number;
5
- export declare const useNotifyHeightChanged: () => () => void;
6
4
  export declare const useAgentMessage: () => import("@ray-js/t-agent").ChatMessageObject[];
7
5
  export declare const useRenderOptions: () => import("../types").RenderOptions;
8
6
  export declare const useKeyboardHeight: () => number;
@@ -4,12 +4,6 @@ import { TilePropsContext, useSharedState } from '../contexts';
4
4
  export const useChatAgent = () => {
5
5
  return useSharedState('agent');
6
6
  };
7
- export const useTick = () => {
8
- return useSharedState('tickValue');
9
- };
10
- export const useNotifyHeightChanged = () => {
11
- return useSharedState('notifyHeightChanged');
12
- };
13
7
  export const useAgentMessage = () => {
14
8
  return useSharedState('messages');
15
9
  };
@@ -113,7 +113,8 @@ const BubbleTile = props => {
113
113
  tile: t,
114
114
  message: message,
115
115
  key: t.id,
116
- isLatestMessage: isLatestMessage
116
+ isLatestMessage: isLatestMessage,
117
+ notifyHeightChanged: props.notifyHeightChanged
117
118
  }));
118
119
  })(), /*#__PURE__*/React.createElement(LoadingIndicator, {
119
120
  status: status
@@ -1,3 +1,3 @@
1
1
  .t-agent-card-tile {
2
-
2
+ width: 100%;
3
3
  }
@@ -1,17 +1,10 @@
1
1
  import React from 'react';
2
2
  import './index.less';
3
3
  import { TileProps } from '../../types';
4
- export declare enum SceneType {
5
- EXECUTE = 1,
6
- AUTO = 2
7
- }
8
- type DeviceInfoItem = any;
9
- type SceneInfoItem = any;
10
- type ChangeInfoItem = any;
4
+ import { ChangeInfoItem, DeviceInfoItem, SceneInfoItem } from '../types';
11
5
  export interface ExecuteCardTileData {
12
6
  deviceInfo: DeviceInfoItem[];
13
7
  sceneInfo: SceneInfoItem[];
14
8
  deviceShareInfo: ChangeInfoItem[];
15
9
  }
16
10
  export default function ExecuteCardTile(props: TileProps<ExecuteCardTileData>): React.JSX.Element | null;
17
- export {};
@@ -4,23 +4,13 @@ import "core-js/modules/esnext.iterator.for-each.js";
4
4
  import "core-js/modules/esnext.iterator.map.js";
5
5
  import { Image, Switch, Text, View } from '@ray-js/components';
6
6
  import React, { useMemo } from 'react';
7
- // import {
8
- // ChangeInfoItem,
9
- // DeviceInfoItem,
10
- // SceneInfoItem,
11
- // SceneType,
12
- // } from '@ray-js/t-agent-plugin-assistant';
13
7
  import './index.less';
14
8
  import { triggerRule } from '@ray-js/ray';
15
9
  import { routeScene } from '../../utils';
16
10
  import lockPng from '../OperateCardTile/lock.png';
17
11
  import bookmark from './bookmark.png';
18
12
  import { useTranslate } from '../../hooks';
19
- export let SceneType = /*#__PURE__*/function (SceneType) {
20
- SceneType[SceneType["EXECUTE"] = 1] = "EXECUTE";
21
- SceneType[SceneType["AUTO"] = 2] = "AUTO";
22
- return SceneType;
23
- }({});
13
+ import { SceneType } from '../types';
24
14
  export default function ExecuteCardTile(props) {
25
15
  const {
26
16
  tile
@@ -101,7 +91,7 @@ export default function ExecuteCardTile(props) {
101
91
  } = card;
102
92
  if (intent === 'shareDevice') {
103
93
  ty.router({
104
- url: "tuyaSmart://thing_single_device_share?devId=".concat(deviceId),
94
+ url: "thingSmart://thing_single_device_share?devId=".concat(deviceId),
105
95
  fail(err) {
106
96
  console.error('router thing_single_device_share fail', err);
107
97
  }
@@ -130,7 +120,7 @@ export default function ExecuteCardTile(props) {
130
120
  sceneId
131
121
  } = card;
132
122
  ty.router({
133
- url: "tuyaSmart://editScene?sceneId=".concat(sceneId, "&biz_type=ai_smart&action=delete"),
123
+ url: "thingSmart://editScene?sceneId=".concat(sceneId, "&biz_type=ai_smart&action=delete"),
134
124
  fail: console.error
135
125
  });
136
126
  };
@@ -171,9 +161,10 @@ export default function ExecuteCardTile(props) {
171
161
  return /*#__PURE__*/React.createElement(View, {
172
162
  className: "t-agent-execute-card-tile"
173
163
  }, cards.map(card => {
164
+ const key = "".concat(card.displayType, "-").concat(card.deviceId || card.sceneId);
174
165
  return /*#__PURE__*/React.createElement(View, {
175
166
  className: "t-agent-execute-card-tile-card",
176
- key: card.id
167
+ key: key
177
168
  }, card.displayType === 'device' && /*#__PURE__*/React.createElement(View, {
178
169
  className: "t-agent-execute-card-tile-device",
179
170
  onClick: () => handleTap(card)
@@ -181,7 +172,9 @@ export default function ExecuteCardTile(props) {
181
172
  src: card.icon,
182
173
  mode: "widthFix",
183
174
  className: "t-agent-execute-card-tile-device-icon"
184
- }), /*#__PURE__*/React.createElement(View, null, card.name)), card.displayType === 'energy' && /*#__PURE__*/React.createElement(View, {
175
+ }), /*#__PURE__*/React.createElement(View, {
176
+ className: "t-agent-execute-card-tile-device-title"
177
+ }, card.name)), card.displayType === 'energy' && /*#__PURE__*/React.createElement(View, {
185
178
  className: "t-agent-execute-card-tile-energy",
186
179
  onClick: () => handleTap(card)
187
180
  }, /*#__PURE__*/React.createElement(Image, {
@@ -1,154 +1,180 @@
1
1
  .t-agent-execute-card-tile {
2
- .t-agent-execute-card-tile-card {
3
- .t-agent-execute-card-tile-device {
4
- display: flex;
5
- align-items: center;
6
- min-height: 44px;
7
- background-color: var(--app-B1);
8
- padding: 12px;
9
- border-radius: var(--app-C1_1);
10
- margin-top: 8px;
11
-
12
- .t-agent-execute-card-tile-device-icon {
13
- width: 40px;
14
- height: 40px;
15
- margin-right: 10px;
16
- }
17
- }
18
-
19
- .t-agent-execute-card-tile-energy {
20
- display: flex;
21
- align-items: center;
22
- min-height: 44px;
23
- background-color: var(--app-B1);
24
- padding: 12px;
25
- border-radius: var(--app-C1_1);
26
- margin-top: 8px;
27
-
28
- .t-agent-execute-card-tile-energy-icon {
29
- width: 32px;
30
- height: 32px;
31
- border-radius: 4px;
32
- }
33
-
34
- .t-agent-execute-card-tile-energy-content {
35
- margin-left: 8px;
36
- flex: 1;
37
- .t-agent-execute-card-tile-energy-content-title {
38
- font-size: 16px;
39
- color: var(--app-C1);
40
- line-height: 22px;
41
- overflow: hidden;
42
- text-overflow: ellipsis;
43
- display: -webkit-box;
44
- -webkit-line-clamp: 2;
45
- -webkit-box-orient: vertical;
46
- }
47
-
48
- .t-agent-execute-card-tile-energy-content-desc {
49
- font-size: 13px;
50
- color: var(--app-B1-N3);
51
- line-height: 18px;
52
- overflow: hidden;
53
- text-overflow: ellipsis;
54
- display: -webkit-box;
55
- -webkit-line-clamp: 2;
56
- -webkit-box-orient: vertical;
57
- }
58
- }
59
- }
60
-
61
- .t-agent-execute-card-tile-scene {
62
- min-height: 44px;
63
- background-color: var(--app-B1);
64
- display: flex;
65
- align-items: center;
66
- padding: 12px;
67
- border-radius: var(--app-C1_1);
68
- margin-top: 8px;
69
-
70
- .t-agent-execute-card-tile-scene-icon-wrapper {
71
- display: flex;
72
- justify-content: center;
73
- align-items: center;
74
- width: 32px;
75
- height: 32px;
76
- border-radius: 10px;
77
- margin-right: 8px;
78
- .t-agent-execute-card-tile-scene-icon {
79
- width: 20px;
80
- height: 20px;
81
- filter: brightness(100);
82
- }
83
- }
84
-
85
- .t-agent-execute-card-tile-scene-name {
86
- flex: 1;
87
- font-size: 16px;
88
- line-height: 22px;
89
- color: var(--app-C1);
90
- }
91
-
92
- .t-agent-execute-card-tile-scene-switch {
93
- margin-left: auto;
94
- }
95
-
96
- .t-agent-execute-card-tile-scene-delete {
97
- display: flex;
98
- align-items: center;
99
- height: 24px;
100
- padding-right: 12px;
101
- padding-left: 12px;
102
- color: var(--app-M2);
103
- background: #fff;
104
- border-radius: var(--app-C1_1);
105
- font-size: 12px;
106
- }
107
- }
108
-
109
- .t-agent-execute-card-tile-execute {
110
- display: flex;
111
- align-items: center;
112
- min-height: 44px;
113
- background-color: #e36468;
114
- padding: 12px;
115
- border-radius: var(--app-C1_1);
116
- margin-top: 8px;
117
-
118
- &.t-agent-execute-card-tile-execute-disabled {
119
- opacity: 0.3;
120
- }
121
-
122
- .t-agent-execute-card-tile-execute-icon {
123
- width: 40px;
124
- height: 40px;
125
- margin-right: 10px;
126
- }
127
-
128
- .t-agent-execute-card-tile-execute-name {
129
- font-size: 16px;
130
- line-height: 22px;
131
- color: #ffffff;
132
- overflow: hidden;
133
- text-overflow: ellipsis;
134
- display: -webkit-box;
135
- -webkit-line-clamp: 2;
136
- -webkit-box-orient: vertical;
137
- }
138
-
139
- .t-agent-execute-card-tile-execute-button {
140
- margin-left: auto;
141
- line-height: 18px;
142
- padding: 3px 12px;
143
- font-size: 12px;
144
- font-weight: 600;
145
- color: #e36468;
146
- background-color: #ffffff;
147
- display: flex;
148
- justify-content: center;
149
- align-items: center;
150
- border-radius: 18px;
151
- }
152
- }
2
+
3
+ }
4
+
5
+ .t-agent-execute-card-tile-card {
6
+
7
+ }
8
+
9
+ .t-agent-execute-card-tile-device {
10
+ display: flex;
11
+ align-items: center;
12
+ min-height: 44px;
13
+ background-color: var(--app-B1);
14
+ padding: 12px;
15
+ border-radius: var(--app-C1_1);
16
+ margin-top: 8px;
17
+ }
18
+
19
+ .t-agent-execute-card-tile-device-icon {
20
+ width: 40px;
21
+ height: 40px;
22
+ margin-right: 10px;
23
+ flex-shrink: 0;
24
+ }
25
+
26
+ .t-agent-execute-card-tile-device-title {
27
+ font-size: 16px;
28
+ line-height: 22px;
29
+ color: var(--app-C1);
30
+ overflow: hidden;
31
+ text-overflow: ellipsis;
32
+ display: -webkit-box;
33
+ -webkit-line-clamp: 2;
34
+ -webkit-box-orient: vertical;
35
+ word-break: normal;
36
+ min-width: 200rpx;
37
+ overflow-wrap: break-word;
38
+ }
39
+
40
+ .t-agent-execute-card-tile-energy {
41
+ display: flex;
42
+ align-items: center;
43
+ min-height: 44px;
44
+ background-color: var(--app-B1);
45
+ padding: 12px;
46
+ border-radius: var(--app-C1_1);
47
+ margin-top: 8px;
48
+ }
49
+
50
+ .t-agent-execute-card-tile-energy-icon {
51
+ width: 32px;
52
+ height: 32px;
53
+ border-radius: 4px;
54
+ }
55
+
56
+ .t-agent-execute-card-tile-energy-content {
57
+ margin-left: 8px;
58
+ flex: 1;
59
+ }
60
+
61
+ .t-agent-execute-card-tile-energy-content-title {
62
+ font-size: 16px;
63
+ color: var(--app-C1);
64
+ line-height: 22px;
65
+ overflow: hidden;
66
+ text-overflow: ellipsis;
67
+ display: -webkit-box;
68
+ -webkit-line-clamp: 2;
69
+ -webkit-box-orient: vertical;
70
+ }
71
+
72
+ .t-agent-execute-card-tile-energy-content-desc {
73
+ font-size: 13px;
74
+ color: var(--app-B1-N3);
75
+ line-height: 18px;
76
+ overflow: hidden;
77
+ text-overflow: ellipsis;
78
+ display: -webkit-box;
79
+ -webkit-line-clamp: 2;
80
+ -webkit-box-orient: vertical;
81
+ }
82
+
83
+ .t-agent-execute-card-tile-scene {
84
+ min-height: 44px;
85
+ background-color: var(--app-B1);
86
+ display: flex;
87
+ align-items: center;
88
+ padding: 12px;
89
+ border-radius: var(--app-C1_1);
90
+ margin-top: 8px;
91
+ }
92
+
93
+ .t-agent-execute-card-tile-scene-icon-wrapper {
94
+ display: flex;
95
+ justify-content: center;
96
+ align-items: center;
97
+ width: 32px;
98
+ height: 32px;
99
+ border-radius: 10px;
100
+ margin-right: 8px;
101
+ }
102
+
103
+ .t-agent-execute-card-tile-scene-icon {
104
+ width: 20px;
105
+ height: 20px;
106
+ filter: brightness(100);
107
+ }
108
+
109
+ .t-agent-execute-card-tile-scene-name {
110
+ flex: 1;
111
+ font-size: 16px;
112
+ line-height: 22px;
113
+ color: var(--app-C1);
114
+ }
115
+
116
+ .t-agent-execute-card-tile-scene-switch {
117
+ margin-left: auto;
118
+ }
119
+
120
+ .t-agent-execute-card-tile-scene-delete {
121
+ display: flex;
122
+ align-items: center;
123
+ height: 24px;
124
+ padding-right: 12px;
125
+ padding-left: 12px;
126
+ color: var(--app-M2);
127
+ background: #fff;
128
+ border-radius: var(--app-C1_1);
129
+ font-size: 12px;
130
+ }
131
+
132
+ .t-agent-execute-card-tile-execute {
133
+ display: flex;
134
+ align-items: center;
135
+ min-height: 44px;
136
+ background-color: #e36468;
137
+ padding: 12px;
138
+ border-radius: var(--app-C1_1);
139
+ margin-top: 8px;
140
+
141
+ &.t-agent-execute-card-tile-execute-disabled {
142
+ opacity: 0.3;
153
143
  }
154
144
  }
145
+
146
+ .t-agent-execute-card-tile-execute-icon {
147
+ width: 40px;
148
+ height: 40px;
149
+ margin-right: 10px;
150
+ flex-shrink: 0;
151
+ }
152
+
153
+ .t-agent-execute-card-tile-execute-name {
154
+ font-size: 16px;
155
+ line-height: 22px;
156
+ color: #ffffff;
157
+ overflow: hidden;
158
+ text-overflow: ellipsis;
159
+ display: -webkit-box;
160
+ -webkit-line-clamp: 2;
161
+ -webkit-box-orient: vertical;
162
+ min-width: 200rpx;
163
+ word-break: normal;
164
+ overflow-wrap: break-word;
165
+ }
166
+
167
+ .t-agent-execute-card-tile-execute-button {
168
+ margin-left: auto;
169
+ line-height: 18px;
170
+ padding: 3px 12px;
171
+ font-size: 12px;
172
+ font-weight: 600;
173
+ color: #e36468;
174
+ background-color: #ffffff;
175
+ display: flex;
176
+ justify-content: center;
177
+ align-items: center;
178
+ border-radius: 18px;
179
+ flex-shrink: 0;
180
+ }
@@ -18,6 +18,7 @@ interface ExpandProps {
18
18
  operations?: IOperations;
19
19
  tapDevice?: (e: any) => void;
20
20
  tapScene?: (e: any) => void;
21
+ onChangeTab?: (key: string) => void;
21
22
  }
22
- export default function Expand({ operations, tapDevice, tapScene, }: ExpandProps): React.JSX.Element;
23
+ export default function Expand({ operations, tapDevice, tapScene, onChangeTab, }: ExpandProps): React.JSX.Element;
23
24
  export {};
@@ -30,7 +30,8 @@ export default function Expand(_ref) {
30
30
  more: []
31
31
  },
32
32
  tapDevice,
33
- tapScene
33
+ tapScene,
34
+ onChangeTab
34
35
  } = _ref;
35
36
  const t = useTranslate();
36
37
  const deviceCount = (((_operations$device = operations.device) === null || _operations$device === void 0 ? void 0 : _operations$device.length) || 0) + (((_operations$moreDevic = operations.moreDevice) === null || _operations$moreDevic === void 0 ? void 0 : _operations$moreDevic.length) || 0);
@@ -170,7 +171,8 @@ export default function Expand(_ref) {
170
171
  className: "t-agent-expand-container"
171
172
  }, tabs.length > 0 ? /*#__PURE__*/React.createElement(Tabs, {
172
173
  tabs: tabs,
173
- defaultActiveKey: tabs[0].key
174
+ defaultActiveKey: tabs[0].key,
175
+ onChange: onChangeTab
174
176
  }) : /*#__PURE__*/React.createElement(View, {
175
177
  className: "t-agent-expand-empty"
176
178
  }, /*#__PURE__*/React.createElement(Text, null, t('t-agent.expand.no.details'))));