升级package, 以及更新声明文件
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
import { SuperComponent, ComponentsOptionsType } from '../../../../components/common/src/index';
|
||||
export default class ChatMarkdownCode extends SuperComponent {
|
||||
options: ComponentsOptionsType;
|
||||
properties: {
|
||||
node: {
|
||||
type: ObjectConstructor;
|
||||
value: () => {};
|
||||
};
|
||||
};
|
||||
data: {
|
||||
classPrefix: string;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../../common/src/index";import config from"../../common/config";const{prefix:prefix}=config,name=`${prefix}-chat-markdown-code`;let ChatMarkdownCode=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.properties={node:{type:Object,value:()=>({})}},this.data={classPrefix:name}}};ChatMarkdownCode=__decorate([wxComponent()],ChatMarkdownCode);export default ChatMarkdownCode;
|
||||
@@ -0,0 +1 @@
|
||||
{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
|
||||
@@ -0,0 +1 @@
|
||||
<view class="{{classPrefix}}"><view class="{{classPrefix}}__header" wx:if="{{node.lang}}"><text class="{{classPrefix}}__lang">{{node.lang}}</text></view><scroll-view class="{{classPrefix}}__content" scroll-x="{{true}}"><text class="{{classPrefix}}__text" decode="{{true}}">{{node.text}}</text></scroll-view></view>
|
||||
@@ -0,0 +1,7 @@
|
||||
@import '../../common/style/index.wxss';.t-chat-markdown-code{margin:16rpx 0;border-radius:8rpx;background-color:#f6f8fa;border:1rpx solid #e1e4e8;overflow:hidden;}
|
||||
.t-chat-markdown-code__header{padding:8rpx 16rpx;background-color:#e1e4e8;border-bottom:1rpx solid #d0d7de;}
|
||||
.t-chat-markdown-code__lang{font-size:24rpx;color:#656d76;font-weight:500;}
|
||||
.t-chat-markdown-code__content{padding:16rpx;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;white-space:nowrap;height:auto;}
|
||||
.t-chat-markdown-code__text{font:var(--td-font-body-medium,28rpx / 44rpx var(--td-font-family,PingFang SC,Microsoft YaHei,Arial Regular));font-family:'SF Mono',Monaco,'Cascadia Code','Roboto Mono',Consolas,'Courier New',monospace;color:#24292f;white-space:pre;word-wrap:normal;word-break:normal;overflow-wrap:normal;display:inline-block;vertical-align:top;min-width:100%;}
|
||||
.t-chat-markdown-code-light .t-chat-markdown-code-block{background-color:#fff;border-color:#d0d7de;}
|
||||
.t-chat-markdown-code-light .t-chat-markdown-code-header{background-color:#f6f8fa;border-bottom-color:#d0d7de;}
|
||||
@@ -0,0 +1,23 @@
|
||||
import { SuperComponent, ComponentsOptionsType } from '../../../../components/common/src/index';
|
||||
export default class ChatMarkdownNode extends SuperComponent {
|
||||
options: ComponentsOptionsType;
|
||||
properties: {
|
||||
nodes: {
|
||||
type: ArrayConstructor;
|
||||
value: () => any[];
|
||||
};
|
||||
};
|
||||
data: {
|
||||
classPrefix: string;
|
||||
};
|
||||
methods: {
|
||||
linkClick(e: any): void;
|
||||
getCareMarkdown(): any;
|
||||
handleClick(event: any, type: any, token: any): void;
|
||||
};
|
||||
lifetimes: {
|
||||
created(): void;
|
||||
attached(): void;
|
||||
detached(): void;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../../common/src/index";import config from"../../common/config";const{prefix:prefix}=config,name=`${prefix}-chat-markdown`;let ChatMarkdownNode=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.properties={nodes:{type:Array,value:()=>[]}},this.data={classPrefix:name},this.methods={linkClick(t){var e;const{index:a}=t.currentTarget.dataset||{},r=null===(e=this.data.nodes)||void 0===e?void 0:e[a];this.handleClick(t,"link-tap",r)},getCareMarkdown(){if(this.data.careMarkdown)return this.data.careMarkdown;for(this.setData({careMarkdown:this.selectOwnerComponent()});this.data.careMarkdown.__data__.name!==name;this.setData({careMarkdown:this.data.careMarkdown.selectOwnerComponent()}));return this.data.careMarkdown},handleClick(t,e,a){this.data.getCareMarkdown().triggerEvent("click",{event:t,node:a})}},this.lifetimes={created(){this.data.getCareMarkdown=this.getCareMarkdown.bind(this),this.data.handleClick=this.handleClick.bind(this)},attached(){},detached(){}}}};ChatMarkdownNode=__decorate([wxComponent()],ChatMarkdownNode);export default ChatMarkdownNode;
|
||||
@@ -0,0 +1 @@
|
||||
{"component":true,"styleIsolation":"apply-shared","usingComponents":{"chat-markdown-table":"../chat-markdown-table/chat-markdown-table","chat-markdown-code":"../chat-markdown-code/chat-markdown-code","chat-markdown-node":"./chat-markdown-node"}}
|
||||
@@ -0,0 +1 @@
|
||||
<block wx:for="{{nodes}}" wx:for-item="item" wx:for-index="i" wx:key="i"><block wx:if="{{item.type==='heading'}}"><view class="{{classPrefix}}-h {{ classPrefix}}-h{{item.depth}}"><chat-markdown-node nodes="{{item.tokens}}"/></view></block><block wx:elif="{{item.type==='list'}}"><view class="{{classPrefix}}-list {{item.ordered ? classPrefix + '-list__decimal' : ''}}" data-type="{{item.ordered}}"><block wx:for="{{item.items}}" wx:for-item="li" wx:for-index="j" wx:key="j"><view class="{{classPrefix}}-list-item"><block wx:if="{{li.tokens && li.tokens.length}}"><chat-markdown-node nodes="{{li.tokens}}"/></block><block wx:else>{{''+item.text+''}}</block></view></block></view></block><block wx:elif="{{item.type==='paragraph'}}"><view class="{{classPrefix}}-p"><chat-markdown-node nodes="{{item.tokens}}"/></view></block><block wx:elif="{{item.type==='image'}}"><view class="{{classPrefix}}-image"><image src="{{item.href}}" alt="{{item.title}}" mode="widthFix"/></view></block><block wx:elif="{{item.type==='table'}}"><chat-markdown-table node="{{item}}"/></block><block wx:elif="{{item.type==='blockquote'}}"><view class="{{classPrefix}}-blockquote"><chat-markdown-node nodes="{{item.tokens}}"/></view></block><block wx:elif="{{item.type==='code'}}"><chat-markdown-code node="{{item}}" theme="{{theme}}"/></block><block wx:elif="{{item.type==='text'}}"><view class="{{classPrefix}}-text {{classPrefix}}-inline" data-raw="{{item.raw}}"><block wx:if="{{item.tokens && item.tokens.length}}"><chat-markdown-node nodes="{{item.tokens}}"/></block><block wx:else>{{''+item.raw+''}}</block></view></block><block wx:elif="{{item.type==='strong'}}"><view class="{{classPrefix}}-strong {{classPrefix}}-inline"><block wx:if="{{item.tokens && item.tokens.length}}"><chat-markdown-node nodes="{{item.tokens}}"/></block><block wx:else>{{''+item.text+''}}</block></view></block><block wx:elif="{{item.type==='em'}}"><view class="{{classPrefix}}-em {{classPrefix}}-inline"><block wx:if="{{item.tokens && item.tokens.length}}"><chat-markdown-node nodes="{{item.tokens}}"/></block><block wx:else>{{''+item.text+''}}</block></view></block><block wx:elif="{{item.type==='del'}}"><view class="{{classPrefix}}-del {{classPrefix}}-inline"><block wx:if="{{item.tokens && item.tokens.length}}"><chat-markdown-node nodes="{{item.tokens}}"/></block><block wx:else>{{''+item.text+''}}</block></view></block><block wx:elif="{{item.type==='link'}}"><view class="{{classPrefix}}-link {{classPrefix}}-inline" data-index="{{i}}" bindtap="linkClick"><block wx:if="{{item.tokens && item.tokens.length}}"><chat-markdown-node nodes="{{item.tokens}}"/></block></view></block><block wx:elif="{{item.type==='ref'}}"><view class="{{classPrefix}}-ref {{classPrefix}}-inline"><text class="{{classPrefix}}-ref-txt">{{''+item.text+''}}</text></view></block><block wx:elif="{{item.type==='space'}}"><view class="{{classPrefix}}-space"></view></block><block wx:elif="{{item.type==='br'}}"><view class="{{classPrefix}}-br"></view></block><block wx:elif="{{item.type==='hr'}}"><view class="{{classPrefix}}-hr"></view></block><block wx:elif="{{item.type==='codespan'}}"><view class="{{classPrefix}}-codespan {{classPrefix}}-inline" data-type="{{item.type}}">{{''+(item.text||item.raw)+''}}</view></block><block wx:else><view class="{{classPrefix}}-raw {{classPrefix}}-inline" data-type="{{item.type}}">{{''+(item.text||item.raw)+''}}</view></block></block>
|
||||
@@ -0,0 +1 @@
|
||||
@import '../../common/style/index.wxss';
|
||||
@@ -0,0 +1,13 @@
|
||||
import { SuperComponent, ComponentsOptionsType } from '../../../../components/common/src/index';
|
||||
export default class ChatMarkdownTable extends SuperComponent {
|
||||
options: ComponentsOptionsType;
|
||||
properties: {
|
||||
node: {
|
||||
type: ObjectConstructor;
|
||||
value: {};
|
||||
};
|
||||
};
|
||||
data: {
|
||||
classPrefix: string;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../../common/src/index";import config from"../../common/config";const{prefix:prefix}=config,name=`${prefix}-chat-markdown-table`;let ChatMarkdownTable=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.properties={node:{type:Object,value:{}}},this.data={classPrefix:name}}};ChatMarkdownTable=__decorate([wxComponent()],ChatMarkdownTable);export default ChatMarkdownTable;
|
||||
@@ -0,0 +1 @@
|
||||
{"component":true,"styleIsolation":"apply-shared","usingComponents":{"chat-markdown-node":"../chat-markdown-node/chat-markdown-node"}}
|
||||
@@ -0,0 +1 @@
|
||||
<view class="{{classPrefix}}"><view class="{{classPrefix}}__container"><view class="{{classPrefix}}__thead"><view class="{{classPrefix}}__tr"><block wx:for="{{node.header}}" wx:for-item="th" wx:for-index="j" wx:key="j"><view class="{{classPrefix}}__th" style="{{('text-align:'+node.align[j]||'left'+';')}}"><chat-markdown-node nodes="{{th.tokens}}"></chat-markdown-node></view></block></view></view><view class="{{classPrefix}}__tbody"><block wx:for="{{node.rows}}" wx:for-item="row" wx:for-index="k" wx:key="k"><view class="{{classPrefix}}__tr"><block wx:for="{{row}}" wx:for-item="cell" wx:for-index="l" wx:key="l"><view class="{{classPrefix}}__td" style="{{('text-align:'+node.align[l]||'left'+';')}}"><chat-markdown-node nodes="{{cell.tokens}}"></chat-markdown-node></view></block></view></block></view></view></view>
|
||||
@@ -0,0 +1,12 @@
|
||||
@import '../../common/style/index.wxss';.t-chat-markdown-table{width:100%;overflow-y:hidden;overflow-x:auto;border:1rpx solid var(--td-component-border,var(--td-gray-color-4,#dcdcdc));}
|
||||
.t-chat-markdown-table__container{display:table;min-width:100%;max-width:max-content;border-collapse:collapse;white-space:nowrap;}
|
||||
.t-chat-markdown-table__thead{display:table-header-group;}
|
||||
.t-chat-markdown-table__tbody{display:table-row-group;}
|
||||
.t-chat-markdown-table__tr{display:table-row;border-bottom:1rpx solid var(--td-component-border,var(--td-gray-color-4,#dcdcdc));}
|
||||
.t-chat-markdown-table__tr:last-child{border-bottom:none;}
|
||||
.t-chat-markdown-table__tr:nth-child(2n+1){background-color:var(--td-bg-color-container,var(--td-font-white-1,#fff));}
|
||||
.t-chat-markdown-table__tr:nth-child(2n){background-color:var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3));}
|
||||
.t-chat-markdown-table__th{display:table-cell;vertical-align:middle;background-color:var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3));padding:5rpx 10rpx;color:var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6)));border-right:1rpx solid var(--td-component-border,var(--td-gray-color-4,#dcdcdc));}
|
||||
.t-chat-markdown-table__th:last-child{border-right:none;}
|
||||
.t-chat-markdown-table__td{display:table-cell;vertical-align:middle;padding:5rpx 10rpx;border-right:1rpx solid var(--td-component-border,var(--td-gray-color-4,#dcdcdc));}
|
||||
.t-chat-markdown-table__td:last-child{border-right:none;}
|
||||
22
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-markdown/chat-markdown.d.ts
vendored
Normal file
22
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-markdown/chat-markdown.d.ts
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
import { SuperComponent, ComponentsOptionsType } from '../../../components/common/src/index';
|
||||
import { TdChatMarkdownProps } from './type';
|
||||
export interface ChatMarkdownProps extends TdChatMarkdownProps {
|
||||
}
|
||||
export default class ChatMarkdown extends SuperComponent {
|
||||
options: ComponentsOptionsType;
|
||||
properties: TdChatMarkdownProps;
|
||||
data: {
|
||||
classPrefix: string;
|
||||
nodes: any[];
|
||||
name: string;
|
||||
};
|
||||
observers: {
|
||||
content: (markdown: string) => void;
|
||||
};
|
||||
methods: {
|
||||
parseMarkdown(markdown: string): void;
|
||||
};
|
||||
lifetimes: {
|
||||
attached(): void;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
import{__decorate}from"tslib";import{Lexer}from"marked";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-chat-markdown`;let ChatMarkdown=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.properties=props,this.data={classPrefix:name,nodes:[],name:name},this.observers={content:function(o){this.parseMarkdown(o)}},this.methods={parseMarkdown(o){try{const t=new Lexer(this.data.options).lex(o);this.setData({nodes:t})}catch(t){console.error("Markdown parsing error:",t),this.setData({nodes:[{type:"text",raw:o,text:o}]})}}},this.lifetimes={attached(){}}}};ChatMarkdown=__decorate([wxComponent()],ChatMarkdown);export default ChatMarkdown;
|
||||
@@ -0,0 +1 @@
|
||||
{"component":true,"styleIsolation":"shared","usingComponents":{"chat-markdown-node":"./chat-markdown-node/chat-markdown-node"}}
|
||||
@@ -0,0 +1 @@
|
||||
<wxs src="../common/utils.wxs" module="_"/><view class="class {{classPrefix}} {{classPrefix}}--normal" style="{{_._style([style, customStyle])}}"><chat-markdown-node nodes="{{nodes}}"></chat-markdown-node></view>
|
||||
@@ -0,0 +1,28 @@
|
||||
@import '../common/style/index.wxss';.t-chat-markdown{color:var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9)));word-wrap:break-word;word-break:break-word;line-height:1.75;}
|
||||
.t-chat-markdown-inline{display:inline;}
|
||||
.t-chat-markdown-p{-webkit-margin-before:var(--td-spacer-1,24rpx);margin-block-start:var(--td-spacer-1,24rpx);-webkit-margin-after:var(--td-spacer-1,24rpx);margin-block-end:var(--td-spacer-1,24rpx);}
|
||||
.t-chat-markdown-p:first-child{-webkit-margin-before:0;margin-block-start:0;}
|
||||
.t-chat-markdown-p:last-child{-webkit-margin-after:0;margin-block-end:0;}
|
||||
.t-chat-markdown-blockquote{padding:0 .75em;color:var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9)));background-color:var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3));border-left:4rpx solid var(--td-component-border,var(--td-gray-color-4,#dcdcdc));margin-bottom:var(--td-spacer-1,24rpx);}
|
||||
.t-chat-markdown-h{font-size:1em;margin:var(--td-spacer-1,24rpx) 0;font-weight:700;}
|
||||
.t-chat-markdown-h1{font-size:2em;}
|
||||
.t-chat-markdown-h2{font-size:1.75em;}
|
||||
.t-chat-markdown-h3{font-size:1.5em;}
|
||||
.t-chat-markdown-h4{font-size:1.25em;}
|
||||
.t-chat-markdown-h5{font-size:1em;}
|
||||
.t-chat-markdown-h6{font-size:.75em;}
|
||||
.t-chat-markdown-em{font-style:italic;}
|
||||
.t-chat-markdown-strong{font-weight:700;}
|
||||
.t-chat-markdown-hr{height:6rpx;padding:0;margin:var(--td-spacer-1,24rpx) 0;background-color:var(--td-component-border,var(--td-gray-color-4,#dcdcdc));border:0;}
|
||||
.t-chat-markdown-list{display:block;padding:0;margin:0 0 var(--td-spacer,16rpx) 1.5em;}
|
||||
.t-chat-markdown-list__decimal{list-style-type:decimal;}
|
||||
.t-chat-markdown-list-item{display:list-item;margin-bottom:var(--td-spacer-1,24rpx);}
|
||||
.t-chat-markdown-link{color:var(--td-brand-color,var(--td-primary-color-7,#0052d9));}
|
||||
.t-chat-markdown-del{text-decoration:line-through;}
|
||||
.t-chat-markdown-codespan{padding:4rpx 8rpx;margin:0 4rpx;border-radius:8rpx;font-size:.8em;overflow-x:auto;background-color:var(--td-bg-color-page,var(--td-gray-color-1,#f3f3f3));border:1rpx solid var(--td-component-border,var(--td-gray-color-4,#dcdcdc));}
|
||||
.t-chat-markdown .t-chat-markdown-table__container{display:table;width:100%;border-collapse:collapse;}
|
||||
.t-chat-markdown .t-chat-markdown-table__container-thead{display:table-header-group;}
|
||||
.t-chat-markdown .t-chat-markdown-table__container-tbody{display:table-row-group;}
|
||||
.t-chat-markdown .t-chat-markdown-table__container-tr{display:table-row;}
|
||||
.t-chat-markdown .t-chat-markdown-table__container-th{display:table-cell;vertical-align:middle;background-color:var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7));font-weight:700;padding:5rpx 10rpx;border:1rpx solid var(--td-component-border,var(--td-gray-color-4,#dcdcdc));}
|
||||
.t-chat-markdown .t-chat-markdown-table__container-td{display:table-cell;vertical-align:middle;padding:5rpx 10rpx;border:1rpx solid var(--td-component-border,var(--td-gray-color-4,#dcdcdc));}
|
||||
3
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-markdown/index.d.ts
vendored
Normal file
3
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-markdown/index.d.ts
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
export * from './props';
|
||||
export * from './type';
|
||||
export * from './chat-markdown';
|
||||
@@ -0,0 +1 @@
|
||||
export*from"./props";export*from"./type";export*from"./chat-markdown";
|
||||
3
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-markdown/props.d.ts
vendored
Normal file
3
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-markdown/props.d.ts
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
import { TdChatMarkdownProps } from './type';
|
||||
declare const props: TdChatMarkdownProps;
|
||||
export default props;
|
||||
@@ -0,0 +1 @@
|
||||
const props={content:{type:String,value:"",required:!0},options:{type:Object,value:{gfm:!0,pedantic:!1,breaks:!0}}};export default props;
|
||||
17
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-markdown/type.d.ts
vendored
Normal file
17
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-markdown/type.d.ts
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
export interface TdChatMarkdownProps {
|
||||
content: {
|
||||
type: StringConstructor;
|
||||
value?: string;
|
||||
required?: boolean;
|
||||
};
|
||||
options?: {
|
||||
type: ObjectConstructor;
|
||||
value?: TdChatContentMDOptions;
|
||||
};
|
||||
}
|
||||
export interface TdChatContentMDOptions {
|
||||
gfm?: boolean;
|
||||
pedantic?: boolean;
|
||||
smartLists?: boolean;
|
||||
breaks?: boolean;
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export{};
|
||||
Reference in New Issue
Block a user