@alifd/chat 0.3.36-beta.0 → 0.3.37-beta.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.
- package/es/ai-loading/__docs__/demo/basic/index.d.ts +8 -0
- package/es/ai-loading/__docs__/demo/basic/index.js +16 -0
- package/es/balloon/__docs__/demo/basic/index.d.ts +9 -0
- package/es/balloon/__docs__/demo/basic/index.js +16 -0
- package/es/button/__docs__/demo/size/index.d.ts +8 -0
- package/es/button/__docs__/demo/size/index.js +115 -0
- package/es/card/__docs__/demo/basic/index.d.ts +11 -0
- package/es/card/__docs__/demo/basic/index.js +39 -0
- package/es/card/__docs__/demo/demo-legal-affairs/index.d.ts +13 -0
- package/es/card/__docs__/demo/demo-legal-affairs/index.js +130 -0
- package/es/card-loading/__docs__/demo/basic/index.d.ts +8 -0
- package/es/card-loading/__docs__/demo/basic/index.js +13 -0
- package/es/checkbox-group/__docs__/demo/basic/index.d.ts +6 -0
- package/es/checkbox-group/__docs__/demo/basic/index.js +26 -0
- package/es/date-picker/__docs__/demo/basic/index.d.ts +8 -0
- package/es/date-picker/__docs__/demo/basic/index.js +13 -0
- package/es/drawer/__docs__/demo/basic/index.d.ts +9 -0
- package/es/drawer/__docs__/demo/basic/index.js +30 -0
- package/es/feedback/__docs__/demo/basic/index.d.ts +8 -0
- package/es/feedback/__docs__/demo/basic/index.js +12 -0
- package/es/feedback/__docs__/demo/size/index.d.ts +8 -0
- package/es/feedback/__docs__/demo/size/index.js +25 -0
- package/es/flip/__docs__/demo/basic/index.d.ts +8 -0
- package/es/flip/__docs__/demo/basic/index.js +23 -0
- package/es/float-button/__docs__/demo/basic/index.d.ts +7 -0
- package/es/float-button/__docs__/demo/basic/index.js +104 -0
- package/es/html-render/__docs__/demo/basic/index.js +95 -0
- package/es/icon/__docs__/demo/basic/index.d.ts +8 -0
- package/es/icon/__docs__/demo/basic/index.js +17 -0
- package/es/image-preview/__docs__/demo/basic/index.d.ts +8 -0
- package/es/image-preview/__docs__/demo/basic/index.js +14 -0
- package/es/img/__docs__/demo/basic/index.d.ts +8 -0
- package/es/img/__docs__/demo/basic/index.js +44 -0
- package/es/index.js +1 -1
- package/es/input/__docs__/demo/basic/index.d.ts +1 -0
- package/es/input/__docs__/demo/basic/index.js +12 -0
- package/es/list/__docs__/demo/basic/index.d.ts +8 -0
- package/es/list/__docs__/demo/basic/index.js +37 -0
- package/es/loading/__docs__/demo/basic/index.d.ts +8 -0
- package/es/loading/__docs__/demo/basic/index.js +34 -0
- package/es/markdown/__docs__/demo/baisc/index.d.ts +1 -0
- package/es/markdown/__docs__/demo/baisc/index.js +243 -0
- package/es/message/__docs__/demo/basic/index.d.ts +9 -0
- package/es/message/__docs__/demo/basic/index.js +25 -0
- package/es/origin/__docs__/demo/basic/index.d.ts +8 -0
- package/es/origin/__docs__/demo/basic/index.js +13 -0
- package/es/person-picker/__docs__/demo/basic/index.d.ts +8 -0
- package/es/person-picker/__docs__/demo/basic/index.js +13 -0
- package/es/radio-group/__docs__/demo/basic/index.d.ts +6 -0
- package/es/radio-group/__docs__/demo/basic/index.js +26 -0
- package/es/recommend/__docs__/demo/basic/index.d.ts +8 -0
- package/es/recommend/__docs__/demo/basic/index.js +51 -0
- package/es/reference/__docs__/demo/basic/index.d.ts +8 -0
- package/es/reference/__docs__/demo/basic/index.js +83 -0
- package/es/rich-text-input/__docs__/demo/basic/index.d.ts +8 -0
- package/es/rich-text-input/__docs__/demo/basic/index.js +19 -0
- package/es/select/__docs__/demo/basic/index.d.ts +1 -0
- package/es/select/__docs__/demo/basic/index.js +22 -0
- package/es/step/__docs__/demo/basic/index.d.ts +8 -0
- package/es/step/__docs__/demo/basic/index.js +29 -0
- package/es/stop-generate/__docs__/demo/basic/index.d.ts +8 -0
- package/es/stop-generate/__docs__/demo/basic/index.js +53 -0
- package/es/tag/__docs__/demo/basic/index.d.ts +8 -0
- package/es/tag/__docs__/demo/basic/index.js +16 -0
- package/es/text/__docs__/demo/basic/index.d.ts +21 -0
- package/es/text/__docs__/demo/basic/index.js +44 -0
- package/es/time-picker/__docs__/demo/basic/index.d.ts +8 -0
- package/es/time-picker/__docs__/demo/basic/index.js +13 -0
- package/es/tool-status/__docs__/demo/basic/index.d.ts +8 -0
- package/es/tool-status/__docs__/demo/basic/index.js +53 -0
- package/lib/ai-loading/__docs__/demo/basic/index.d.ts +8 -0
- package/lib/ai-loading/__docs__/demo/basic/index.js +19 -0
- package/lib/balloon/__docs__/demo/basic/index.d.ts +9 -0
- package/lib/balloon/__docs__/demo/basic/index.js +19 -0
- package/lib/button/__docs__/demo/size/index.d.ts +8 -0
- package/lib/button/__docs__/demo/size/index.js +118 -0
- package/lib/card/__docs__/demo/basic/index.d.ts +11 -0
- package/lib/card/__docs__/demo/basic/index.js +42 -0
- package/lib/card/__docs__/demo/demo-legal-affairs/index.d.ts +13 -0
- package/lib/card/__docs__/demo/demo-legal-affairs/index.js +133 -0
- package/lib/card-loading/__docs__/demo/basic/index.d.ts +8 -0
- package/lib/card-loading/__docs__/demo/basic/index.js +16 -0
- package/lib/checkbox-group/__docs__/demo/basic/index.d.ts +6 -0
- package/lib/checkbox-group/__docs__/demo/basic/index.js +29 -0
- package/lib/date-picker/__docs__/demo/basic/index.d.ts +8 -0
- package/lib/date-picker/__docs__/demo/basic/index.js +16 -0
- package/lib/drawer/__docs__/demo/basic/index.d.ts +9 -0
- package/lib/drawer/__docs__/demo/basic/index.js +33 -0
- package/lib/feedback/__docs__/demo/basic/index.d.ts +8 -0
- package/lib/feedback/__docs__/demo/basic/index.js +15 -0
- package/lib/feedback/__docs__/demo/size/index.d.ts +8 -0
- package/lib/feedback/__docs__/demo/size/index.js +28 -0
- package/lib/flip/__docs__/demo/basic/index.d.ts +8 -0
- package/lib/flip/__docs__/demo/basic/index.js +26 -0
- package/lib/float-button/__docs__/demo/basic/index.d.ts +7 -0
- package/lib/float-button/__docs__/demo/basic/index.js +107 -0
- package/lib/html-render/__docs__/demo/basic/index.d.ts +1 -0
- package/lib/html-render/__docs__/demo/basic/index.js +98 -0
- package/lib/icon/__docs__/demo/basic/index.d.ts +8 -0
- package/lib/icon/__docs__/demo/basic/index.js +20 -0
- package/lib/image-preview/__docs__/demo/basic/index.d.ts +8 -0
- package/lib/image-preview/__docs__/demo/basic/index.js +17 -0
- package/lib/img/__docs__/demo/basic/index.d.ts +8 -0
- package/lib/img/__docs__/demo/basic/index.js +47 -0
- package/lib/index.js +1 -1
- package/lib/input/__docs__/demo/basic/index.d.ts +1 -0
- package/lib/input/__docs__/demo/basic/index.js +15 -0
- package/lib/list/__docs__/demo/basic/index.d.ts +8 -0
- package/lib/list/__docs__/demo/basic/index.js +40 -0
- package/lib/loading/__docs__/demo/basic/index.d.ts +8 -0
- package/lib/loading/__docs__/demo/basic/index.js +37 -0
- package/lib/markdown/__docs__/demo/baisc/index.d.ts +1 -0
- package/lib/markdown/__docs__/demo/baisc/index.js +246 -0
- package/lib/message/__docs__/demo/basic/index.d.ts +9 -0
- package/lib/message/__docs__/demo/basic/index.js +28 -0
- package/lib/origin/__docs__/demo/basic/index.d.ts +8 -0
- package/lib/origin/__docs__/demo/basic/index.js +16 -0
- package/lib/person-picker/__docs__/demo/basic/index.d.ts +8 -0
- package/lib/person-picker/__docs__/demo/basic/index.js +16 -0
- package/lib/radio-group/__docs__/demo/basic/index.d.ts +6 -0
- package/lib/radio-group/__docs__/demo/basic/index.js +29 -0
- package/lib/recommend/__docs__/demo/basic/index.d.ts +8 -0
- package/lib/recommend/__docs__/demo/basic/index.js +54 -0
- package/lib/reference/__docs__/demo/basic/index.d.ts +8 -0
- package/lib/reference/__docs__/demo/basic/index.js +86 -0
- package/lib/rich-text-input/__docs__/demo/basic/index.d.ts +8 -0
- package/lib/rich-text-input/__docs__/demo/basic/index.js +22 -0
- package/lib/select/__docs__/demo/basic/index.d.ts +1 -0
- package/lib/select/__docs__/demo/basic/index.js +25 -0
- package/lib/step/__docs__/demo/basic/index.d.ts +8 -0
- package/lib/step/__docs__/demo/basic/index.js +32 -0
- package/lib/stop-generate/__docs__/demo/basic/index.d.ts +8 -0
- package/lib/stop-generate/__docs__/demo/basic/index.js +56 -0
- package/lib/tag/__docs__/demo/basic/index.d.ts +8 -0
- package/lib/tag/__docs__/demo/basic/index.js +19 -0
- package/lib/text/__docs__/demo/basic/index.d.ts +21 -0
- package/lib/text/__docs__/demo/basic/index.js +47 -0
- package/lib/time-picker/__docs__/demo/basic/index.d.ts +8 -0
- package/lib/time-picker/__docs__/demo/basic/index.js +16 -0
- package/lib/tool-status/__docs__/demo/basic/index.d.ts +8 -0
- package/lib/tool-status/__docs__/demo/basic/index.js +56 -0
- package/package.json +1 -1
- package/es/form/index.d.ts +0 -23
- package/es/form/index.js +0 -33
- package/es/form/main.scss +0 -5
- package/es/form/style.d.ts +0 -1
- package/es/form/style.js +0 -1
- package/es/form/types.d.ts +0 -518
- package/es/html-render/utils.d.ts +0 -2
- package/es/html-render/utils.js +0 -2
- package/es/icon/icon.css +0 -363
- package/lib/form/index.d.ts +0 -23
- package/lib/form/index.js +0 -35
- package/lib/form/main.scss +0 -5
- package/lib/form/style.d.ts +0 -1
- package/lib/form/style.js +0 -3
- package/lib/form/types.d.ts +0 -518
- package/lib/form/types.js +0 -2
- package/lib/html-render/utils.d.ts +0 -2
- package/lib/html-render/utils.js +0 -5
- package/lib/icon/icon.css +0 -363
- /package/es/{form/types.js → html-render/__docs__/demo/basic/index.d.ts} +0 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @demo 基本使用
|
|
3
|
+
* @en Basic usage
|
|
4
|
+
* @order 1
|
|
5
|
+
* @remarks remarks.- 111
|
|
6
|
+
*/
|
|
7
|
+
import React, { useState } from 'react';
|
|
8
|
+
import ReactDOM from 'react-dom';
|
|
9
|
+
import cs from 'classnames';
|
|
10
|
+
import { FloatButton } from '@alifd/chat';
|
|
11
|
+
import '@alifd/chat/es/float-button/style';
|
|
12
|
+
import { createGlobalStyle } from 'styled-components';
|
|
13
|
+
const GlobalStyle = createGlobalStyle `
|
|
14
|
+
.my-trigger {
|
|
15
|
+
width: 42px;
|
|
16
|
+
height: 42px;
|
|
17
|
+
border-radius: 50%;
|
|
18
|
+
overflow: hidden;
|
|
19
|
+
box-shadow: 0 2px 10px 0 rgba(31, 56, 88, 0.15);
|
|
20
|
+
cursor: pointer;
|
|
21
|
+
|
|
22
|
+
&--active {
|
|
23
|
+
background: linear-gradient(0deg, #ff6f00 0%, #ff9616 100%);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&-img {
|
|
27
|
+
width: 100%;
|
|
28
|
+
height: 100%;
|
|
29
|
+
background: url('https://img.alicdn.com/imgextra/i3/O1CN01HV78sy1Q8Rieq3nI2_!!6000000001931-0-tps-84-84.jpg')
|
|
30
|
+
center / contain no-repeat;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
&-close {
|
|
34
|
+
width: 100%;
|
|
35
|
+
height: 100%;
|
|
36
|
+
background: url('https://img.alicdn.com/tfs/TB1yEj_qhD1gK0jSZFsXXbldVXa-96-96.png') center /
|
|
37
|
+
contain no-repeat;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.my-popup {
|
|
42
|
+
width: 200px;
|
|
43
|
+
height: 200px;
|
|
44
|
+
display: flex;
|
|
45
|
+
justify-content: center;
|
|
46
|
+
align-items: center;
|
|
47
|
+
}
|
|
48
|
+
`;
|
|
49
|
+
// 关于 autoNestleEdge 的触发时机
|
|
50
|
+
// 首次渲染:不会触发,首次位置满足吸边后需求解决
|
|
51
|
+
// 点击:不会触发?
|
|
52
|
+
// 拖拽:拖拽结束触发
|
|
53
|
+
// 关于 autoHide 的触发时机
|
|
54
|
+
function App() {
|
|
55
|
+
const [active, setActive] = useState(false);
|
|
56
|
+
return (React.createElement("div", null,
|
|
57
|
+
React.createElement(GlobalStyle, null),
|
|
58
|
+
React.createElement("div", null, "dragable/autoAlign/[20,50,50,200]/[100, 200, 50, 10]"),
|
|
59
|
+
React.createElement("iframe", { src: 'https://work.alibaba-inc.com/', style: {
|
|
60
|
+
width: '600px',
|
|
61
|
+
height: '600px',
|
|
62
|
+
background: 'pink',
|
|
63
|
+
pointerEvents: 'none',
|
|
64
|
+
userSelect: 'none',
|
|
65
|
+
} }),
|
|
66
|
+
React.createElement("iframe", { src: 'https://work.alibaba-inc.com/', style: {
|
|
67
|
+
width: '600px',
|
|
68
|
+
height: '600px',
|
|
69
|
+
background: 'blue',
|
|
70
|
+
userSelect: 'none',
|
|
71
|
+
} }),
|
|
72
|
+
React.createElement("iframe", { src: 'https://work.alibaba-inc.com/', style: {
|
|
73
|
+
width: '600px',
|
|
74
|
+
height: '600px',
|
|
75
|
+
background: 'red',
|
|
76
|
+
userSelect: 'none'
|
|
77
|
+
} }),
|
|
78
|
+
React.createElement(FloatButton, { dragable: true, align: "bl", autoAlign // 这个是弹层的自动对齐,用于设置Balloon 组件中的align参数,根据弹层的内容有没有超出屏幕区域做相关的align调整
|
|
79
|
+
: true, onVisibleChange: v => setActive(v), safeAreaMargin: [0, 100, 50, 20], autoNestleEdge // 默认值是 true, 自动吸边,拖拽后自动贴边,safeAreaMargin 也同时影响自动吸边的边距,也影响点击后的位置重画
|
|
80
|
+
: true,
|
|
81
|
+
// interactiveEdges={['top']} // 默认值左右
|
|
82
|
+
autoHide // 这个配置比较诡异,感觉基本不太能用
|
|
83
|
+
: true, defaultPosition: {
|
|
84
|
+
right: 100,
|
|
85
|
+
bottom: 50,
|
|
86
|
+
// left: 220
|
|
87
|
+
}, trigger: React.createElement("div", { className: cs('my-trigger', { 'my-trigger--active': active }) }, active ? (React.createElement("div", { className: "my-trigger-close" })) : (React.createElement("div", { className: "my-trigger-img" }))),
|
|
88
|
+
// addonBefore={<div className="my-addon-before" style={{
|
|
89
|
+
// height: '150px',
|
|
90
|
+
// background: 'pink'
|
|
91
|
+
// }}>hello</div>}
|
|
92
|
+
// addonAfter={<div className="my-addon-after" style={{
|
|
93
|
+
// height: '100px',
|
|
94
|
+
// background: 'pink'
|
|
95
|
+
// }}>world</div>}
|
|
96
|
+
balloonProps: {
|
|
97
|
+
// offset: [0, 0],
|
|
98
|
+
// placementOffset: '-20px',
|
|
99
|
+
popupClassName: 'QIUQIU',
|
|
100
|
+
popupStyle: { height: 600 }
|
|
101
|
+
} },
|
|
102
|
+
React.createElement("div", { className: "my-popup", style: { height: '100%' } }, "Content"))));
|
|
103
|
+
}
|
|
104
|
+
ReactDOM.render(React.createElement(App, null), mountNode);
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @demo HTML 渲染示例
|
|
3
|
+
* @en HTML Rendering Example
|
|
4
|
+
* @order 1
|
|
5
|
+
* @remarks 这个示例展示了如何使用 `HTMLRenderer` 组件解析和渲染 HTML 字符串内容,并提供图片预览、发送文本、链接跳转和文本复制功能。
|
|
6
|
+
* - This demo shows how to use the `HTMLRenderer` component to parse and render HTML strings, with additional features such as image preview, send text message, link handling, and text copying.
|
|
7
|
+
*/
|
|
8
|
+
import React from 'react';
|
|
9
|
+
import ReactDOM from 'react-dom';
|
|
10
|
+
import { HtmlRender } from '@alifd/chat';
|
|
11
|
+
import copy from 'copy-to-clipboard';
|
|
12
|
+
import { Message } from '@alifd/next';
|
|
13
|
+
const htmlContent = `
|
|
14
|
+
<p>This is a paragraph with a <a href="https://www.dingtalk.com/">link</a>.</p>
|
|
15
|
+
<p>Click <a href="copy://Hello%20World">here</a> to copy text.</p>
|
|
16
|
+
<p>Click <a href="message://Hello%20World">here</a> to send a message.</p>
|
|
17
|
+
<img src="img.alicdn.com/imgextra/i4/O1CN01Xz0X3m1XzvXzvXzvX_!!6000000002991-2-tps-200-200.png" />
|
|
18
|
+
<img src="//img.alicdn.com/imgextra/i4/O1CN01Xz0X3m1XzvXzvXzvX_!!6000000002991-2-tps-200-200.png" />
|
|
19
|
+
<img src="https://img.alicdn.com/imgextra/i4/O1CN01Xz0X3m1XzvXzvXzvX_!!6000000002991-2-tps-200-200.png" />
|
|
20
|
+
|
|
21
|
+
<h1>一级标题 <img draggable="false" style="vertical-align: text-center; display: inline-block; pointer-events: none;" class="emoji" title="[[FullOfVitality]]" src="https://g.alicdn.com/dingding/emotion-assets/0.75.0/mobile/emotion_d0017.gif" alt="[FullOfVitality]" /></h1>
|
|
22
|
+
<h2>二级标题 <img draggable="false" style="vertical-align: text-center; display: inline-block; pointer-events: none;" class="emoji" title="[[FullOfVitality]]" src="https://g.alicdn.com/dingding/emotion-assets/0.75.0/mobile/emotion_d0017.gif" alt="[FullOfVitality]" /></h2>
|
|
23
|
+
<h3>三级标题 [魔法棒]</h3>
|
|
24
|
+
<h4>四级标题</h4>
|
|
25
|
+
<h5>五级标题</h5>
|
|
26
|
+
<p><span style="color: var(--common_red1_color)" class="markdownFont">彩色</span><br />
|
|
27
|
+
<span style="color: var(--common_green1_color)" class="markdownFont">文本</span><br />
|
|
28
|
+
<span style="color: var(--common_blue1_color)" class="markdownFont">内容</span></p>
|
|
29
|
+
<p>正文 <strong>加粗文本</strong> <em>斜体文本</em> <a href="https://www.dingtalk.com/">钉钉官网链接</a> <img draggable="false" style="vertical-align: text-center; display: inline-block; pointer-events: none;" class="emoji" title="[[FullOfVitality]]" src="https://g.alicdn.com/dingding/emotion-assets/0.75.0/mobile/emotion_d0017.gif" alt="[FullOfVitality]" /></p>
|
|
30
|
+
<p><a href="copy://testqiuqiu%E5%A4%8D%E5%88%B6">链接复制</a><br />
|
|
31
|
+
<a href="https://xn--testqiuqiu-s31qt07d">链接复制1</a></p>
|
|
32
|
+
<p><a href="dtmd://dingtalkclient/sendMessage?content=%E7%A7%8B%E7%A7%8B%E7%9A%84%E6%B5%8B%E8%AF%95%E6%8C%87%E4%BB%A4%E5%A4%A7%E5%85%A8&context=%7B%22allowToDingtalk%22%3Afalse%2C%22source%22%3A%22user_chat%22%2C%22value%22%3A%226abbe0cb38ee49b09b3d0762054df4b8%22%7D">链接发送消息</a><br />
|
|
33
|
+
<a href="https://dingtalkclient/sendMessage?content=%E7%A7%8B%E7%A7%8B%E7%9A%84%E6%B5%8B%E8%AF%95%E6%8C%87%E4%BB%A4%E5%A4%A7%E5%85%A8&context=%7B%22allowToDingtalk%22%3Afalse%2C%22source%22%3A%22user_chat%22%2C%22value%22%3A%226abbe0cb38ee49b09b3d0762054df4b8%22%7D">链接发送消息1</a></p>
|
|
34
|
+
<p><img src="https://static.dingtalk.com/media/lADPDetfXH_Pn3HNAbrNBDg_1080_442.jpg" alt="" /></p>
|
|
35
|
+
<h3 style="font-size: var(--common_h3_text_style__font_size); color: var(--common_blue1_color)" class="markdownFont">蓝色三级标题</h3>
|
|
36
|
+
<ol>
|
|
37
|
+
<li>第一个有序列表项
|
|
38
|
+
<ul>
|
|
39
|
+
<li>第一个无序列表项
|
|
40
|
+
<ul>
|
|
41
|
+
<li>第一个嵌套无序列表项</li>
|
|
42
|
+
<li>第二个嵌套无序列表项</li>
|
|
43
|
+
</ul>
|
|
44
|
+
</li>
|
|
45
|
+
<li>第二个无序列表项</li>
|
|
46
|
+
</ul>
|
|
47
|
+
</li>
|
|
48
|
+
<li>第二个有序列表项</li>
|
|
49
|
+
<li>第三个有序列表项</li>
|
|
50
|
+
</ol>
|
|
51
|
+
<table>
|
|
52
|
+
<thead>
|
|
53
|
+
<tr>
|
|
54
|
+
<th style="text-align:left">表格标题 1</th>
|
|
55
|
+
<th style="text-align:center">表格标题 2</th>
|
|
56
|
+
<th style="text-align:right">表格标题 3</th>
|
|
57
|
+
</tr>
|
|
58
|
+
</thead>
|
|
59
|
+
<tbody>
|
|
60
|
+
<tr>
|
|
61
|
+
<td style="text-align:left">左对齐内容 1</td>
|
|
62
|
+
<td style="text-align:center">剧中内容 1</td>
|
|
63
|
+
<td style="text-align:right">右对齐内容 1</td>
|
|
64
|
+
</tr>
|
|
65
|
+
<tr>
|
|
66
|
+
<td style="text-align:left">左对齐内容 2</td>
|
|
67
|
+
<td style="text-align:center">剧中内容 2</td>
|
|
68
|
+
<td style="text-align:right">右对齐内容 2</td>
|
|
69
|
+
</tr>
|
|
70
|
+
</tbody>
|
|
71
|
+
</table>
|
|
72
|
+
<pre><code class="language-javascript"><span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-string">"Hello, world!"</span>);
|
|
73
|
+
</code></pre>
|
|
74
|
+
`;
|
|
75
|
+
const handleOpenLink = (url) => {
|
|
76
|
+
window.open(url, '_blank');
|
|
77
|
+
};
|
|
78
|
+
const sendTextMessage = (message) => {
|
|
79
|
+
console.log(`Sending message`);
|
|
80
|
+
};
|
|
81
|
+
const copyText = (val) => {
|
|
82
|
+
return () => {
|
|
83
|
+
copy(val);
|
|
84
|
+
Message.success(i18n('common.button.copy'));
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
const i18n = (key) => {
|
|
88
|
+
const translations = {
|
|
89
|
+
'common.button.copy': 'Copied!'
|
|
90
|
+
};
|
|
91
|
+
return translations[key] || key;
|
|
92
|
+
};
|
|
93
|
+
ReactDOM.render(React.createElement("div", null,
|
|
94
|
+
React.createElement(HtmlRender, { className: "htmlRenderer-basic-demo", imagePreview: true, loose: true, handleOpenLink: handleOpenLink, sendTextMessage: sendTextMessage, i18n: i18n, copyText: copyText }, htmlContent),
|
|
95
|
+
React.createElement(HtmlRender, { className: "htmlRenderer-basic-demo", imagePreview: true, loose: true, handleOpenLink: handleOpenLink, sendTextMessage: sendTextMessage, i18n: i18n, copyText: copyText }, htmlContent)), mountNode);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @demo 基本使用
|
|
3
|
+
* @en Basic
|
|
4
|
+
* @order 1
|
|
5
|
+
* @remarks Icon 组件的基本用法。
|
|
6
|
+
* - Basic usage of `Icon`
|
|
7
|
+
*/
|
|
8
|
+
import React from 'react';
|
|
9
|
+
import ReactDOM from 'react-dom';
|
|
10
|
+
import { Icon } from '@alifd/chat';
|
|
11
|
+
import '@alifd/chat/es/icon/style';
|
|
12
|
+
ReactDOM.render(React.createElement("div", { className: "icon-basic-demo" },
|
|
13
|
+
React.createElement(Icon, { type: "atm" }),
|
|
14
|
+
React.createElement(Icon, { type: "smile" }),
|
|
15
|
+
React.createElement(Icon, { type: "success" }),
|
|
16
|
+
React.createElement(Icon, { type: "loading" }),
|
|
17
|
+
React.createElement(Icon, { type: "copy" })), mountNode);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @demo 图片预览
|
|
3
|
+
* @en ImagePreview
|
|
4
|
+
* @order 1
|
|
5
|
+
* @remarks 可以通过设置 `src` 属性控制图片的源地址,并且可以包含子元素来触发预览功能。
|
|
6
|
+
* - The source URL of an image is controlled by a `src` attribute, and you can include child elements to trigger the preview functionality.
|
|
7
|
+
*/
|
|
8
|
+
import '@alifd/chat/es/image-preview/style';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @demo 图片预览
|
|
3
|
+
* @en ImagePreview
|
|
4
|
+
* @order 1
|
|
5
|
+
* @remarks 可以通过设置 `src` 属性控制图片的源地址,并且可以包含子元素来触发预览功能。
|
|
6
|
+
* - The source URL of an image is controlled by a `src` attribute, and you can include child elements to trigger the preview functionality.
|
|
7
|
+
*/
|
|
8
|
+
import React from 'react';
|
|
9
|
+
import ReactDOM from 'react-dom';
|
|
10
|
+
import { ImagePreview } from '@alifd/chat';
|
|
11
|
+
import '@alifd/chat/es/image-preview/style';
|
|
12
|
+
ReactDOM.render(React.createElement("div", { className: "ImagePreview-basic-demo" },
|
|
13
|
+
React.createElement(ImagePreview, { src: "https://img.alicdn.com/imgextra/i2/O1CN01XG8prl1D9jro3BH1b_!!6000000000174-0-tps-600-600.jpg" },
|
|
14
|
+
React.createElement("img", { src: "https://img.alicdn.com/imgextra/i2/O1CN01XG8prl1D9jro3BH1b_!!6000000000174-0-tps-600-600.jpg", alt: "Preview" }))), mountNode);
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @demo 基本使用
|
|
3
|
+
* @en Basic
|
|
4
|
+
* @order 1
|
|
5
|
+
* @remarks Img 组件的基本用法。
|
|
6
|
+
* - Basic usage of `Img`
|
|
7
|
+
*/
|
|
8
|
+
import React from 'react';
|
|
9
|
+
import ReactDOM from 'react-dom';
|
|
10
|
+
import { Img } from '@alifd/chat';
|
|
11
|
+
import '@alifd/chat/es/img/style';
|
|
12
|
+
const IMAGE_MAX_HEIGHT = 'https://img.alicdn.com/imgextra/i1/O1CN01DRnlBv27xlh7dD3Zi_!!6000000007864-0-tps-1040-104.jpg';
|
|
13
|
+
const IMAGE_MAX_WIDTH = 'https://img.alicdn.com/imgextra/i4/O1CN01K1YBme1jne9cQqQHM_!!6000000004593-0-tps-2960-660.jpg';
|
|
14
|
+
const IMAGE_emoji = 'https://g.alicdn.com/dingding/emotion-assets/0.75.0/mobile/emotion_d0017.gif';
|
|
15
|
+
ReactDOM.render(React.createElement("div", { className: "origin-basic-demo" },
|
|
16
|
+
React.createElement("div", { style: {
|
|
17
|
+
width: '500px',
|
|
18
|
+
background: 'pink'
|
|
19
|
+
} },
|
|
20
|
+
React.createElement(Img, { src: IMAGE_MAX_HEIGHT }),
|
|
21
|
+
React.createElement(Img, { src: IMAGE_MAX_WIDTH }),
|
|
22
|
+
React.createElement(Img, { src: IMAGE_emoji, imageClassName: 'emoji', enablePreview: false })),
|
|
23
|
+
React.createElement("div", { style: {
|
|
24
|
+
width: '300px',
|
|
25
|
+
background: 'red'
|
|
26
|
+
} },
|
|
27
|
+
React.createElement(Img, { src: IMAGE_MAX_HEIGHT, enablePreview: false }),
|
|
28
|
+
React.createElement(Img, { src: IMAGE_MAX_WIDTH, enablePreview: false, onImageClick: (src, e) => {
|
|
29
|
+
console.log('AUTUMN image click src:', src);
|
|
30
|
+
console.log('AUTUMN image click e:', e);
|
|
31
|
+
} }),
|
|
32
|
+
React.createElement(Img, { src: IMAGE_emoji, imageClassName: 'emoji', enablePreview: false })),
|
|
33
|
+
React.createElement("div", { style: {
|
|
34
|
+
width: '600px',
|
|
35
|
+
background: 'green'
|
|
36
|
+
} },
|
|
37
|
+
React.createElement(Img, { src: IMAGE_MAX_HEIGHT }),
|
|
38
|
+
React.createElement(Img, { src: IMAGE_MAX_WIDTH, onImageLoad: (e) => {
|
|
39
|
+
console.log('AUTUMN image load e:', e);
|
|
40
|
+
}, onImageClick: (src, e) => {
|
|
41
|
+
console.log('AUTUMN image click src:', src);
|
|
42
|
+
console.log('AUTUMN image click e:', e);
|
|
43
|
+
} }),
|
|
44
|
+
React.createElement(Img, { src: IMAGE_emoji, imageClassName: 'emoji', enablePreview: false }))), mountNode);
|
package/es/index.js
CHANGED
|
@@ -32,4 +32,4 @@ export { default as CheckboxGroup } from './checkbox-group';
|
|
|
32
32
|
export { default as Select } from './select';
|
|
33
33
|
export { default as Flip } from './flip';
|
|
34
34
|
export { default as ToolStatus } from './tool-status';
|
|
35
|
-
export const version = '0.3.
|
|
35
|
+
export const version = '0.3.37-beta.0';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '@alifd/chat/es/input/style';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import ReactDOM from 'react-dom';
|
|
3
|
+
import { Input } from '@alifd/chat';
|
|
4
|
+
import '@alifd/chat/es/input/style';
|
|
5
|
+
const onChange = v => {
|
|
6
|
+
console.log(v);
|
|
7
|
+
};
|
|
8
|
+
ReactDOM.render(React.createElement("div", null,
|
|
9
|
+
React.createElement("div", { style: { marginBottom: 12 } },
|
|
10
|
+
React.createElement(Input, { placeholder: "Large", onChange: onChange, "aria-label": "Large" })),
|
|
11
|
+
React.createElement("div", null,
|
|
12
|
+
React.createElement(Input.TextArea, { rows: 4, placeholder: "Large", onChange: onChange, "aria-label": "Large" }))), mountNode);
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @demo 基本使用
|
|
3
|
+
* @en Basic example
|
|
4
|
+
* @order 0
|
|
5
|
+
* @remarks 最简单的用法。
|
|
6
|
+
* - Simple example of List component.
|
|
7
|
+
*/
|
|
8
|
+
import React from 'react';
|
|
9
|
+
import ReactDOM from 'react-dom';
|
|
10
|
+
import { List } from '@alifd/chat';
|
|
11
|
+
import '@alifd/chat/es/list/style';
|
|
12
|
+
const data = [
|
|
13
|
+
{
|
|
14
|
+
title: 'A Title',
|
|
15
|
+
img: 'https://img.alicdn.com/tfs/TB1QS.4l4z1gK0jSZSgXXavwpXa-1024-1024.png',
|
|
16
|
+
money: '$20',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
title: 'B Title',
|
|
20
|
+
img: 'https://img.alicdn.com/tfs/TB1QS.4l4z1gK0jSZSgXXavwpXa-1024-1024.png',
|
|
21
|
+
money: '$10',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
title: 'Title',
|
|
25
|
+
img: 'https://img.alicdn.com/tfs/TB1QS.4l4z1gK0jSZSgXXavwpXa-1024-1024.png',
|
|
26
|
+
money: '$20',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
title: 'Title',
|
|
30
|
+
img: 'https://img.alicdn.com/tfs/TB1QS.4l4z1gK0jSZSgXXavwpXa-1024-1024.png',
|
|
31
|
+
money: '$20',
|
|
32
|
+
},
|
|
33
|
+
];
|
|
34
|
+
ReactDOM.render(React.createElement("div", { style: { width: 288 } },
|
|
35
|
+
React.createElement(List, { size: "small", header: React.createElement("div", null, "Notifications"), dataSource: data, renderItem: (item, i) => (React.createElement(List.Item, { key: i, extra: item.money, title: item.title },
|
|
36
|
+
"List Item ",
|
|
37
|
+
i)) })), mountNode);
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @demo 基本使用
|
|
3
|
+
* @en Basic
|
|
4
|
+
* @order 1
|
|
5
|
+
* @remarks Loading 组件的基本用法。
|
|
6
|
+
* - Basic usage of `Loading`
|
|
7
|
+
*/
|
|
8
|
+
import React from 'react';
|
|
9
|
+
import ReactDOM from 'react-dom';
|
|
10
|
+
import { Loading } from '@alifd/chat';
|
|
11
|
+
import '@alifd/chat/es/loading/style';
|
|
12
|
+
ReactDOM.render(React.createElement("div", null,
|
|
13
|
+
React.createElement("div", { style: {
|
|
14
|
+
"display": "flex",
|
|
15
|
+
"justifyContent": "space-around",
|
|
16
|
+
"marginBottom": "50px"
|
|
17
|
+
} },
|
|
18
|
+
React.createElement(Loading, null,
|
|
19
|
+
React.createElement("div", null, "default")),
|
|
20
|
+
React.createElement(Loading, { shape: "dot" },
|
|
21
|
+
React.createElement("div", null, "dot")),
|
|
22
|
+
React.createElement(Loading, { shape: "bar" },
|
|
23
|
+
React.createElement("div", null, "bar"))),
|
|
24
|
+
React.createElement("div", { style: {
|
|
25
|
+
"display": "flex",
|
|
26
|
+
"justifyContent": "space-around"
|
|
27
|
+
} },
|
|
28
|
+
React.createElement(Loading, { size: 'medium' },
|
|
29
|
+
React.createElement("div", null, "default")),
|
|
30
|
+
React.createElement(Loading, { shape: "dot", size: 'medium' }),
|
|
31
|
+
React.createElement(Loading, { shape: "dot", size: 'medium' },
|
|
32
|
+
React.createElement("div", null, "dot")),
|
|
33
|
+
React.createElement(Loading, { shape: "bar", size: 'medium' },
|
|
34
|
+
React.createElement("div", null, "bar")))), mountNode);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '@alifd/chat/es/markdown/style';
|