升级package, 以及更新声明文件
This commit is contained in:
@@ -1 +1 @@
|
||||
<wxs src="./action-sheet.wxs" module="_this"/><wxs src="../common/utils.wxs" module="_"/><import src="./template/list.wxml"/><import src="./template/grid.wxml"/><view id="{{classPrefix}}" style="{{_._style([style, customStyle])}}" class="{{classPrefix}} class {{prefix}}-class"><t-popup visible="{{visible}}" placement="bottom" usingCustomNavbar="{{usingCustomNavbar}}" bind:visible-change="onPopupVisibleChange" show-overlay="{{showOverlay}}" z-index="{{ popupProps.zIndex || defaultPopUpzIndex }}" overlay-props="{{ popupProps.overlayProps || defaultPopUpProps }}"><view class="{{_.cls(classPrefix + '__content', [['grid', gridThemeItems.length]])}} {{prefix}}-class-content" tabindex="0"><view wx:if="{{description}}" tabindex="0" class="{{_.cls(classPrefix + '__description', [align])}}">{{description}}</view><block wx:if="{{gridThemeItems.length}}"><template is="grid" data="{{classPrefix, prefix, gridThemeItems, count, currentSwiperIndex}}"/></block><view wx:elif="{{items && items.length}}" class="{{classPrefix}}__list"><block wx:for="{{ items }}" wx:key="index"><template is="list" data="{{index, classPrefix, listThemeItemClass: _.cls(classPrefix + '__list-item', [align, [disabled, item.disabled]]), item}}"/></block></view></view><slot/><view wx:if="{{showCancel}}" class="{{classPrefix}}__footer"><view class="{{classPrefix}}__gap-{{theme}}"/><view class="{{classPrefix}}__cancel {{prefix}}-class-cancel" hover-class="{{classPrefix}}__cancel--hover" hover-stay-time="70" bind:tap="onCancel" aria-role="button">{{ cancelText || '取消' }}</view></view></t-popup></view>
|
||||
<wxs src="./action-sheet.wxs" module="_this"/><wxs src="../common/utils.wxs" module="_"/><import src="./template/list.wxml"/><import src="./template/grid.wxml"/><view id="{{classPrefix}}" style="{{_._style([style, customStyle])}}" class="{{_.cls(classPrefix, [align, theme, ['no-description', !description]])}} class {{prefix}}-class"><t-popup visible="{{visible}}" placement="bottom" usingCustomNavbar="{{usingCustomNavbar}}" bind:visible-change="onPopupVisibleChange" show-overlay="{{showOverlay}}" z-index="{{ popupProps.zIndex || defaultPopUpzIndex }}" overlay-props="{{ popupProps.overlayProps || defaultPopUpProps }}"><view class="{{classPrefix}}__content {{prefix}}-class-content" tabindex="0"><view wx:if="{{description}}" tabindex="0" class="{{classPrefix}}__description">{{description}}</view><block wx:if="{{gridThemeItems.length}}"><template is="grid" data="{{classPrefix, prefix, gridThemeItems, count, currentSwiperIndex}}"/></block><view wx:elif="{{items && items.length}}" class="{{classPrefix}}__list"><block wx:for="{{ items }}" wx:key="index"><template is="list" data="{{index, classPrefix, listThemeItemClass: _.cls(classPrefix + '__list-item', [['disabled', item.disabled]]), item}}"/></block></view></view><slot/><view wx:if="{{showCancel}}" class="{{classPrefix}}__footer"><view class="{{classPrefix}}__gap-{{theme}}"/><view class="{{classPrefix}}__cancel {{prefix}}-class-cancel" hover-class="{{classPrefix}}__cancel--hover" hover-stay-time="70" bind:tap="onCancel" aria-role="button">{{ cancelText || '取消' }}</view></view></t-popup></view>
|
||||
@@ -1,29 +1,33 @@
|
||||
@import '../common/style/index.wxss';.t-action-sheet__content{color:var(--td-action-sheet-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));border-top-left-radius:var(--td-action-sheet-border-radius,var(--td-radius-extraLarge,24rpx));border-top-right-radius:var(--td-action-sheet-border-radius,var(--td-radius-extraLarge,24rpx));background-color:var(--td-bg-color-container,var(--td-font-white-1,#fff));overflow:hidden;}
|
||||
.t-action-sheet__content--grid{padding-top:16rpx;}
|
||||
.t-action-sheet__content:focus{outline:0;}
|
||||
.t-action-sheet--grid{padding-top:var(--td-spacer,16rpx);}
|
||||
.t-action-sheet--grid .t-action-sheet__description::after{display:none;}
|
||||
.t-action-sheet--left .t-action-sheet__description{text-align:left;}
|
||||
.t-action-sheet--left .t-action-sheet__list-item-content,.t-action-sheet--left .t-action-sheet__list-item-desc{justify-content:start;}
|
||||
.t-action-sheet--left .t-action-sheet__list-item-icon--suffix{margin-left:auto;}
|
||||
.t-action-sheet__grid{padding-bottom:16rpx;}
|
||||
.t-action-sheet__grid--swiper{padding-bottom:48rpx;}
|
||||
.t-action-sheet__description{color:var(--td-action-sheet-description-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));line-height:44rpx;font-size:28rpx;text-align:var(--td-action-sheet-text-align,center);padding:24rpx 32rpx;position:relative;}
|
||||
.t-action-sheet__description{color:var(--td-action-sheet-description-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));font:var(--td-action-sheet-description-font,var(--td-font-body-medium,28rpx / 44rpx var(--td-font-family,PingFang SC,Microsoft YaHei,Arial Regular)));text-align:center;padding:var(--td-spacer-1,24rpx) var(--td-spacer-2,32rpx);position:relative;}
|
||||
.t-action-sheet__description:focus{outline:0;}
|
||||
.t-action-sheet__description::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-action-sheet-border-color,var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7)));}
|
||||
.t-action-sheet__description::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-action-sheet-border-color,var(--td-component-stroke,var(--td-gray-color-3,#e7e7e7)));}
|
||||
.t-action-sheet__description::after{height:1px;left:0;right:0;transform:scaleY(.5);}
|
||||
.t-action-sheet__description--left{text-align:left;}
|
||||
.t-action-sheet__description--left::after{left:32rpx;}
|
||||
.t-action-sheet__list-item{display:flex;align-items:center;justify-content:center;position:relative;height:var(--td-action-sheet-list-item-height,112rpx);padding:0 32rpx;}
|
||||
.t-action-sheet__list-item::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-action-sheet-border-color,var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7)));}
|
||||
.t-action-sheet__list-item::after{height:1px;left:0;right:0;transform:scaleY(.5);}
|
||||
.t-action-sheet__list-item{flex-direction:column;padding:var(--td-spacer-2,32rpx);display:flex;align-items:center;justify-content:center;}
|
||||
.t-action-sheet__list-item:not(:last-child){position:relative;}
|
||||
.t-action-sheet__list-item:not(:last-child)::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-action-sheet-border-color,var(--td-component-stroke,var(--td-gray-color-3,#e7e7e7)));}
|
||||
.t-action-sheet__list-item:not(:last-child)::after{height:1px;left:0;right:0;transform:scaleY(.5);}
|
||||
.t-action-sheet__list-item:focus{outline:0;}
|
||||
.t-action-sheet__list-item--left{justify-content:start;}
|
||||
.t-action-sheet__list-item--left::after{left:32rpx;}
|
||||
.t-action-sheet__list-item--disabled{color:var(--td-action-sheet-list-item-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))));}
|
||||
.t-action-sheet__list-item-text{font-size:var(--td-font-size-m,32rpx);word-wrap:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
|
||||
.t-action-sheet__list-item-icon{margin-right:16rpx;}
|
||||
.t-action-sheet__list-item-icon--suffix{margin-left:auto;}
|
||||
.t-action-sheet__list-item--disabled{color:var(--td-action-sheet-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))));}
|
||||
.t-action-sheet__list-item-content,.t-action-sheet__list-item-desc{width:100%;display:flex;align-items:center;justify-content:center;}
|
||||
.t-action-sheet__list-item-text{font:var(--td-font-body-large,32rpx / 48rpx var(--td-font-family,PingFang SC,Microsoft YaHei,Arial Regular));}
|
||||
.t-action-sheet__list-item-desc{font:var(--td-font-body-small,24rpx / 40rpx var(--td-font-family,PingFang SC,Microsoft YaHei,Arial Regular));color:var(--td-action-sheet-description-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));margin-top:var(--td-spacer,16rpx);}
|
||||
.t-action-sheet__list-item-desc,.t-action-sheet__list-item-text{word-wrap:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
|
||||
.t-action-sheet__list-item-icon{font-size:48rpx;margin-right:var(--td-spacer,16rpx);}
|
||||
.t-action-sheet__list-item-icon--suffix{margin-right:0;margin-left:var(--td-spacer,16rpx);}
|
||||
.t-action-sheet__swiper-wrap{margin-top:8rpx;position:relative;}
|
||||
.t-action-sheet__footer{background-color:var(--td-bg-color-container,var(--td-font-white-1,#fff));}
|
||||
.t-action-sheet__gap-list{height:16rpx;background-color:var(--td-action-sheet-gap-color,var(--td-bg-color-page,var(--td-gray-color-1,#f3f3f3)));}
|
||||
.t-action-sheet__gap-grid{height:1rpx;background-color:var(--td-action-sheet-border-color,var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7)));}
|
||||
.t-action-sheet__cancel{display:flex;align-items:center;justify-content:center;color:var(--td-action-sheet-cancel-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));height:var(--td-action-sheet-cancel-height,96rpx);}
|
||||
.t-action-sheet__dots{position:absolute;left:50%;bottom:32rpx;transform:translateX(-50%);display:flex;flex-direction:row;}
|
||||
.t-action-sheet__dots-item{width:16rpx;height:16rpx;background-color:#dcdcdc;border-radius:50%;margin:0 16rpx;transition:all .4s ease-in;}
|
||||
.t-action-sheet__dots-item.t-is-active{background-color:#0052d9;}
|
||||
.t-action-sheet__gap-grid{height:1rpx;background-color:var(--td-action-sheet-border-color,var(--td-component-stroke,var(--td-gray-color-3,#e7e7e7)));}
|
||||
.t-action-sheet__cancel{padding:var(--td-spacer-1,24rpx) var(--td-spacer-2,32rpx);font:var(--td-font-body-large,32rpx / 48rpx var(--td-font-family,PingFang SC,Microsoft YaHei,Arial Regular));color:var(--td-action-sheet-cancel-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));display:flex;align-items:center;justify-content:center;}
|
||||
.t-action-sheet__dots{position:absolute;left:50%;bottom:var(--td-spacer-2,32rpx);transform:translateX(-50%);display:flex;flex-direction:row;}
|
||||
.t-action-sheet__dots-item{width:var(--td-action-sheet-dot-size,16rpx);height:var(--td-action-sheet-dot-size,16rpx);background-color:var(--td-action-sheet-dot-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))));border-radius:50%;margin:0 var(--td-spacer,16rpx);transition:all .4s ease-in;}
|
||||
.t-action-sheet__dots-item.t-is-active{background-color:var(--td-action-sheet-dot-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));}
|
||||
@@ -1 +1 @@
|
||||
<template name="grid"><block wx:if="{{gridThemeItems.length === 1}}"><t-grid align="center" t-class="{{classPrefix}}__grid" column="{{count / 2}}" class="{{classPrefix}}__single-wrap"><t-grid-item t-class="{{classPrefix}}__grid-item" class="{{classPrefix}}__square" wx:for="{{gridThemeItems[0]}}" wx:key="index" bind:tap="onSelect" data-index="{{index}}" icon="{{ { name: item.icon, color: item.color } }}" text="{{item.label || ''}}" image="{{item.image || ''}}" style="--td-grid-item-text-color: {{item.color}}"></t-grid-item></t-grid></block><block wx:elif="{{gridThemeItems.length > 1}}"><view class="{{classPrefix}}__swiper-wrap"><swiper style="height: 456rpx" autoplay="{{false}}" current="{{currentSwiperIndex}}" bindchange="onSwiperChange"><swiper-item wx:for="{{gridThemeItems}}" wx:key="index"><t-grid align="center" t-class="{{classPrefix}}__grid {{classPrefix}}__grid--swiper" column="{{count / 2}}"><t-grid-item t-class="{{classPrefix}}__grid-item" class="{{classPrefix}}__square" wx:for="{{item}}" wx:key="index" data-index="{{index}}" bind:tap="onSelect" icon="{{ { name: item.icon, color: item.color } }}" text="{{item.label || ''}}" image="{{item.image || ''}}" style="--td-grid-item-text-color: {{item.color}}"></t-grid-item></t-grid></swiper-item></swiper><view class="{{classPrefix}}__nav"><view class="{{classPrefix}}__dots"><view wx:for="{{gridThemeItems.length}}" wx:key="index" class="{{classPrefix}}__dots-item {{index === currentSwiperIndex ? prefix + '-is-active' : ''}}"/></view></view></view></block></template>
|
||||
<template name="grid"><block wx:if="{{gridThemeItems.length === 1}}"><t-grid align="center" t-class="{{classPrefix}}__grid" column="{{count / 2}}" class="{{classPrefix}}__single-wrap"><t-grid-item t-class="{{classPrefix}}__grid-item" class="{{classPrefix}}__square" wx:for="{{gridThemeItems[0]}}" wx:key="index" bind:tap="onSelect" data-index="{{index}}" icon="{{ { name: item.icon, color: item.color } }}" text="{{item.label || ''}}" description="{{item.description || ''}}" image="{{item.image || ''}}" style="--td-grid-item-text-color: {{item.color}}"></t-grid-item></t-grid></block><block wx:elif="{{gridThemeItems.length > 1}}"><view class="{{classPrefix}}__swiper-wrap"><swiper style="height: 456rpx" autoplay="{{false}}" current="{{currentSwiperIndex}}" bindchange="onSwiperChange"><swiper-item wx:for="{{gridThemeItems}}" wx:key="index"><t-grid align="center" t-class="{{classPrefix}}__grid {{classPrefix}}__grid--swiper" column="{{count / 2}}"><t-grid-item t-class="{{classPrefix}}__grid-item" class="{{classPrefix}}__square" wx:for="{{item}}" wx:key="index" data-index="{{index}}" bind:tap="onSelect" icon="{{ { name: item.icon, color: item.color } }}" text="{{item.label || ''}}" description="{{item.description || ''}}" image="{{item.image || ''}}" style="--td-grid-item-text-color: {{item.color}}"></t-grid-item></t-grid></swiper-item></swiper><view class="{{classPrefix}}__nav"><view class="{{classPrefix}}__dots"><view wx:for="{{gridThemeItems.length}}" wx:key="index" class="{{classPrefix}}__dots-item {{index === currentSwiperIndex ? prefix + '-is-active' : ''}}"/></view></view></view></block></template>
|
||||
@@ -1 +1 @@
|
||||
<template name="list"><view data-index="{{index}}" style="{{ item.color ? 'color: ' + item.color : '' }}" class="{{listThemeItemClass}}" bind:tap="onSelect" aria-role="{{ariaRole || 'button'}}" aria-label="{{item.label || item}}" tabindex="0"><t-icon wx:if="{{item.icon}}" name="{{item.icon}}" class="{{classPrefix}}__list-item-icon" size="48rpx"></t-icon><view class="{{classPrefix}}__list-item-text">{{item.label || item}}</view><t-icon wx:if="{{item.suffixIcon}}" name="{{item.suffixIcon}}" class="{{classPrefix}}__list-item-icon {{classPrefix}}__list-item-icon--suffix" size="48rpx"></t-icon></view></template>
|
||||
<template name="list"><view data-index="{{index}}" style="{{ item.color ? 'color: ' + item.color : '' }}" class="{{listThemeItemClass}}" bind:tap="onSelect" aria-role="{{ariaRole || 'button'}}" aria-label="{{item.label || item}}" tabindex="0"><view class="{{classPrefix}}__list-item-content"><t-icon wx:if="{{item.icon}}" name="{{item.icon}}" class="{{classPrefix}}__list-item-icon"/><view class="{{classPrefix}}__list-item-text">{{item.label || item}}</view><t-icon wx:if="{{item.suffixIcon}}" name="{{item.suffixIcon}}" class="{{classPrefix}}__list-item-icon {{classPrefix}}__list-item-icon--suffix"/></view><view wx:if="{{item.description}}" class="{{classPrefix}}__list-item-desc">{{item.description}}</view></view></template>
|
||||
@@ -52,6 +52,7 @@ export interface TdActionSheetProps {
|
||||
}
|
||||
export interface ActionSheetItem {
|
||||
label: string;
|
||||
description?: string;
|
||||
color?: string;
|
||||
disabled?: boolean;
|
||||
icon?: string;
|
||||
|
||||
53
miniprogram/miniprogram_npm/tdesign-miniprogram/attachments/attachments.d.ts
vendored
Normal file
53
miniprogram/miniprogram_npm/tdesign-miniprogram/attachments/attachments.d.ts
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
import { SuperComponent, ComponentsOptionsType } from '../../../components/common/src/index';
|
||||
import { TdAttachmentsProps } from './type';
|
||||
export interface AttachmentsProps extends TdAttachmentsProps {
|
||||
}
|
||||
export default class Attachments extends SuperComponent {
|
||||
options: ComponentsOptionsType;
|
||||
properties: {
|
||||
inChat: {
|
||||
type: BooleanConstructor;
|
||||
value: boolean;
|
||||
};
|
||||
addable?: {
|
||||
type: BooleanConstructor;
|
||||
value?: boolean;
|
||||
};
|
||||
imageViewer?: {
|
||||
type: BooleanConstructor;
|
||||
value?: boolean;
|
||||
};
|
||||
items: {
|
||||
type: ArrayConstructor;
|
||||
value?: import("./type").FileItem[];
|
||||
required?: boolean;
|
||||
};
|
||||
removable?: {
|
||||
type: BooleanConstructor;
|
||||
value?: boolean;
|
||||
};
|
||||
};
|
||||
data: {
|
||||
classPrefix: string;
|
||||
files: any[];
|
||||
};
|
||||
observers: {
|
||||
items(): void;
|
||||
};
|
||||
methods: {
|
||||
onFileWrapTap(e: any): void;
|
||||
onRemoveTap(e: any): void;
|
||||
handleFileClick(item: any): void;
|
||||
handleRemove(item: any, index: any): void;
|
||||
renderDesc(item: any): string;
|
||||
renderIcon(item: any): any;
|
||||
renderFileType(item: any): any;
|
||||
renderExtension(item: any): any;
|
||||
setFiles(): 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";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-attachments`;let Attachments=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.properties=Object.assign(Object.assign({},props),{inChat:{type:Boolean,value:!1}}),this.data={classPrefix:name,files:[]},this.observers={items(){this.setFiles()}},this.methods={onFileWrapTap(e){var i;const{index:t}=e.currentTarget.dataset||{},o=null===(i=this.data.files)||void 0===i?void 0:i[t];o&&this.handleFileClick(o)},onRemoveTap(e){var i;const{index:t}=e.currentTarget.dataset||{},o=null===(i=this.data.files)||void 0===i?void 0:i[t];"function"==typeof(null==e?void 0:e.stopPropagation)&&e.stopPropagation(),void 0!==o&&this.handleRemove(o,t)},handleFileClick(e){this.data.imageViewer&&"image"===e.fileType&&wx.previewImage({urls:[e.url]}),this.triggerEvent("fileClick",{item:e})},handleRemove(e,i){this.triggerEvent("remove",{item:e,index:i})},renderDesc(e){const i=e.size||0;let t,o;if(i<1024)t=i,o="B";else if(i<1048576){const e=i/1024;t=e%1==0?e:e.toFixed(2),o="KB"}else{const e=i/1048576;t=e%1==0?e:e.toFixed(2),o="MB"}return`${t} ${o}`},renderIcon(e){const i={file:{name:"file-zip-filled",color:"#E37318"},video:{name:"video-filled",color:"#D54941"},pdf:{name:"file-pdf-filled",color:"#D54941"},doc:{name:"file-word-filled",color:"#0052d9"},excel:{name:"file-excel-filled",color:"#2BA471"},ppt:{name:"file-powerpoint-filled",color:"#E37318"},audio:{name:"video-filled",color:"#D54941"}};return i[e.fileType]||i.file},renderFileType(e){if(e.fileType)return e.fileType;if(["image","video","audio","pdf","doc","ppt","txt","excel"].includes(e.type))return e.fileType;const i=e.url||"",t=i.lastIndexOf(".");return{jpg:"image",jpeg:"image",png:"image",gif:"image",bmp:"image",webp:"image",mp4:"video",mov:"video",avi:"video",mkv:"video",webm:"video",mp3:"audio",wav:"audio",ogg:"audio",aac:"audio",pdf:"pdf",doc:"doc",docx:"doc",ppt:"ppt",pptx:"ppt",xls:"excel",xlsx:"excel",txt:"txt"}[-1!==t?i.substring(t+1).toLowerCase():""]||""},renderExtension(e){if(e.extension)return e.extension;return e.extension||(e.url?e.url.split(".").pop().toLowerCase():"")},setFiles(){this.setData({files:this.properties.items.map(e=>Object.assign(Object.assign({},e),{fileType:this.data.renderFileType(e),desc:this.data.renderDesc(e),fileIcon:this.data.renderIcon(e)}))})}},this.lifetimes={created(){this.data.handleFileClick=this.handleFileClick.bind(this),this.data.handleRemove=this.handleRemove.bind(this),this.data.renderDesc=this.renderDesc.bind(this),this.data.renderIcon=this.renderIcon.bind(this),this.data.renderFileType=this.renderFileType.bind(this),this.data.renderExtension=this.renderExtension.bind(this)},attached(){this.setFiles()},detached(){}}}};Attachments=__decorate([wxComponent()],Attachments);export default Attachments;
|
||||
@@ -0,0 +1 @@
|
||||
{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-image":"../image/image","t-loading":"../loading/loading"}}
|
||||
@@ -0,0 +1 @@
|
||||
<wxs src="./attachments.wxs" module="_this"/><wxs src="../common/utils.wxs" module="_"/><view class="{{classPrefix}} {{[inChat ? classPrefix + '--chatting' : '', _this.getFileTypeClass(inChat, files)]}}" style="{{_._style([style, customStyle])}}"><view class="{{classPrefix}}__left"><view class="{{classPrefix}}__scrollable scroll-x"><block wx:for="{{files}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view class="{{classPrefix}}__files" bindtap="onFileWrapTap" data-index="{{index}}"><block wx:if="{{item.fileType==='image'}}"><view class="file-image {{classPrefix}}__file {{removable ? classPrefix + '__file--removable' : ''}}"><block wx:if="{{item.status==='pending' || item.status==='fail' || item.status==='error'}}"><view class="{{item.status}} {{classPrefix}}__file--{{item.status}}"><t-loading theme="circular" size="48rpx"/></view></block><block wx:else><image class="image" src="{{item.url}}" mode="{{_this.getImageMode(item)}}" lazy-load="false" style="{{inChat ? _this.imageStyle(item) : ''}}"></image></block><view wx:if="{{removable}}" class="{{classPrefix}}__remove"><t-icon data-index="{{index}}" name="multiply" size="16px" catchtap="onRemoveTap"/></view></view></block><block wx:else><view class="file {{classPrefix}}__file {{removable ? classPrefix + '__file--removable' : ''}}"><view class="image"><block wx:if="{{item.status==='pending'}}"><view class="loading {{classPrefix}}__file--pending"><t-loading theme="circular" size="48rpx"/></view></block><block wx:elif="{{item.status==='fail'}}"><view class="fail {{classPrefix}}__file--fail"><t-loading theme="circular" size="48rpx"/></view></block><block wx:elif="{{item.status==='error'}}"><view class="error {{classPrefix}}__file--error"><t-loading theme="circular" size="48rpx"/></view></block><block wx:else><t-icon name="{{item.fileIcon.name}}" color="{{item.fileIcon.color}}" size="48rpx"></t-icon></block></view><view class="{{classPrefix}}__content"><view class="{{classPrefix}}__title">{{item.name}}</view><block><view wx:if="{{item.status==='pending'}}" class="{{classPrefix}}__desc">上传中...{{item.progress || 0+"%"}}</view><view wx:elif="{{item.status==='fail'}}" class="{{classPrefix}}__desc">上传失败</view><view wx:elif="{{item.status==='error'}}" class="{{classPrefix}}__desc">{{item.errorMessage}}</view><view wx:else class="{{classPrefix}}__desc">{{item.desc}}</view></block></view><view wx:if="{{removable}}" class="{{classPrefix}}__remove"><t-icon data-index="{{index}}" name="multiply" size="16px" catchtap="onRemoveTap"/></view></view></block></view></block></view></view></view>
|
||||
@@ -0,0 +1,53 @@
|
||||
var utils = require('../common/utils.wxs');
|
||||
|
||||
function imageStyle(imageProps) {
|
||||
if (imageProps && imageProps.width && imageProps.height) {
|
||||
return utils._style({
|
||||
width: utils.addUnit(imageProps.width),
|
||||
height: utils.addUnit(imageProps.height),
|
||||
});
|
||||
}
|
||||
// 兜底逻辑:没有传入 width 和 height 时,使用默认最大宽高尺寸
|
||||
return utils._style({
|
||||
width: '400rpx',
|
||||
height: '400rpx',
|
||||
});
|
||||
}
|
||||
|
||||
function getImageMode(imageProps) {
|
||||
if (imageProps && imageProps.width && imageProps.height) {
|
||||
return imageProps.width > imageProps.height ? 'widthFix' : 'heightFix';
|
||||
}
|
||||
// 兜底逻辑:没有传入 width 和 height 时,使用 aspectFit 保持图片比例
|
||||
return imageProps && imageProps.mode ? imageProps.mode : 'scaleToFill';
|
||||
}
|
||||
|
||||
function getFileTypeClass(inChat, files) {
|
||||
// 如果 inChat 不为 true,返回空字符串
|
||||
if (!inChat) {
|
||||
return '';
|
||||
}
|
||||
|
||||
// 如果 files 为空或不存在,返回空字符串
|
||||
if (!files || files.length === 0) {
|
||||
return '';
|
||||
}
|
||||
|
||||
// 检查是否所有文件的 fileType 都是 'image'
|
||||
var allImages = true;
|
||||
for (var i = 0; i < files.length; i++) {
|
||||
if (files[i].fileType !== 'image') {
|
||||
allImages = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 根据判断结果返回相应的类名
|
||||
return allImages ? 'all_images' : 'all_files';
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
imageStyle: imageStyle,
|
||||
getImageMode: getImageMode,
|
||||
getFileTypeClass: getFileTypeClass,
|
||||
};
|
||||
@@ -0,0 +1,33 @@
|
||||
@import '../common/style/index.wxss';.t-attachments{display:flex;width:100%;height:auto;}
|
||||
.t-attachments__scrollable{height:100%;display:flex;align-items:center;justify-content:flex-start;}
|
||||
.t-attachments .scroll-x{white-space:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;}
|
||||
.t-attachments .scroll-x::-webkit-scrollbar{display:none;}
|
||||
.t-attachments .wrap{flex-wrap:wrap;overflow-x:hidden;}
|
||||
.t-attachments__left{flex:1;overflow:hidden;}
|
||||
.t-attachments__file--error,.t-attachments__file--fail,.t-attachments__file--pending,.t-attachments__file--success{position:absolute;width:100%;height:100%;top:0;left:0;border-radius:var(--td-radius-extraLarge,24rpx);display:flex;flex-direction:column;align-items:center;justify-content:center;}
|
||||
.t-attachments__files{box-sizing:border-box;margin-left:16rpx;}
|
||||
.t-attachments__files:first-of-type{margin-left:0;}
|
||||
.t-attachments__file{border-radius:var(--td-radius-extraLarge,24rpx);display:block;position:relative;background-color:var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3));overflow:visible;}
|
||||
.t-attachments__file--removable{margin-top:12rpx;margin-right:8rpx;}
|
||||
.t-attachments__file .t-attachments__remove{background-color:var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9)));color:var(--td-bg-color-container,var(--td-font-white-1,#fff));border-radius:var(--td-radius-circle,50%);position:absolute;right:-8rpx;top:-8rpx;}
|
||||
.t-attachments__file.file-image{width:104rpx;height:104rpx;}
|
||||
.t-attachments__file.file-image .image{width:100%;height:100%;border-radius:var(--td-radius-extraLarge,24rpx);}
|
||||
.t-attachments__file.file{width:256rpx;height:104rpx;display:flex;align-items:stretch;justify-content:flex-start;padding:0 24rpx;}
|
||||
.t-attachments__file.file .image{width:64rpx;height:auto;box-sizing:border-box;overflow:hidden;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;}
|
||||
.t-attachments__file.file .image image{width:100%;height:100%;}
|
||||
.t-attachments__file.file .t-attachments__content{flex:1;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;margin-left:16rpx;}
|
||||
.t-attachments__file.file .t-attachments__content .t-attachments__title{width:100%;color:var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9)));font:var(--td-font-body-medium,28rpx / 44rpx var(--td-font-family,PingFang SC,Microsoft YaHei,Arial Regular));font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:-2rpx;padding:0;}
|
||||
.t-attachments__file.file .t-attachments__content .t-attachments__desc{width:100%;color:var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4)));font:var(--td-font-body-small,24rpx / 40rpx var(--td-font-family,PingFang SC,Microsoft YaHei,Arial Regular));font-style:normal;margin-top:-4rpx;}
|
||||
.t-attachments--chatting.all_images{width:100%;}
|
||||
.t-attachments--chatting.all_images .file-image.t-attachments__file{background-color:transparent!important;}
|
||||
.t-attachments--chatting.all_images .file-image{width:auto;height:auto;}
|
||||
.t-attachments--chatting.all_images .file-image .image{max-width:400rpx;max-height:400rpx;border-radius:var(--td-radius-extraLarge,24rpx);}
|
||||
.t-attachments--chatting.all_files{width:auto;}
|
||||
.t-attachments--chatting.all_files .t-attachments__files:not(:last-child){margin-bottom:16rpx;}
|
||||
.t-attachments--chatting.all_files .file-image.t-attachments__file{background-color:transparent!important;}
|
||||
.t-attachments--chatting.all_files .file-image{width:auto;height:auto;}
|
||||
.t-attachments--chatting.all_files .file-image .image{max-width:400rpx;max-height:400rpx;border-radius:var(--td-radius-extraLarge,24rpx);}
|
||||
.t-attachments--chatting.all_files .t-attachments__files{margin-left:0;}
|
||||
.t-attachments--chatting.all_files .t-attachments__scrollable{display:contents;}
|
||||
.t-attachments--chatting.all_files .file.t-attachments__file{width:352rpx;}
|
||||
.t-chat__inner.right .t-attachments--chatting .file-image.t-attachments__file{text-align:right;}
|
||||
3
miniprogram/miniprogram_npm/tdesign-miniprogram/attachments/index.d.ts
vendored
Normal file
3
miniprogram/miniprogram_npm/tdesign-miniprogram/attachments/index.d.ts
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
export * from './props';
|
||||
export * from './type';
|
||||
export * from './attachments';
|
||||
@@ -0,0 +1 @@
|
||||
export*from"./props";export*from"./type";export*from"./attachments";
|
||||
3
miniprogram/miniprogram_npm/tdesign-miniprogram/attachments/props.d.ts
vendored
Normal file
3
miniprogram/miniprogram_npm/tdesign-miniprogram/attachments/props.d.ts
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
import { TdAttachmentsProps } from './type';
|
||||
declare const props: TdAttachmentsProps;
|
||||
export default props;
|
||||
@@ -0,0 +1 @@
|
||||
const props={addable:{type:Boolean,value:!0},imageViewer:{type:Boolean,value:!0},items:{type:Array,value:[],required:!0},removable:{type:Boolean,value:!0}};export default props;
|
||||
32
miniprogram/miniprogram_npm/tdesign-miniprogram/attachments/type.d.ts
vendored
Normal file
32
miniprogram/miniprogram_npm/tdesign-miniprogram/attachments/type.d.ts
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
export interface TdAttachmentsProps {
|
||||
addable?: {
|
||||
type: BooleanConstructor;
|
||||
value?: boolean;
|
||||
};
|
||||
imageViewer?: {
|
||||
type: BooleanConstructor;
|
||||
value?: boolean;
|
||||
};
|
||||
items: {
|
||||
type: ArrayConstructor;
|
||||
value?: FileItem[];
|
||||
required?: boolean;
|
||||
};
|
||||
removable?: {
|
||||
type: BooleanConstructor;
|
||||
value?: boolean;
|
||||
};
|
||||
}
|
||||
export interface FileItem {
|
||||
fileType: 'image' | 'video' | 'audio' | 'pdf' | 'doc' | 'ppt' | 'txt';
|
||||
name: string;
|
||||
url: string;
|
||||
size: number;
|
||||
status?: 'success' | 'fail' | 'pending' | 'error';
|
||||
progress?: number;
|
||||
errorMessage?: string;
|
||||
fileIcon?: string;
|
||||
width?: number;
|
||||
height?: number;
|
||||
mode?: 'aspectFit' | 'aspectFill' | 'widthFix' | 'heightFix' | 'scaleToFill';
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export{};
|
||||
@@ -9,7 +9,7 @@ export default class Avatar extends SuperComponent {
|
||||
classPrefix: string;
|
||||
isShow: boolean;
|
||||
zIndex: number;
|
||||
systemInfo: WechatMiniprogram.WindowInfo | WechatMiniprogram.SystemInfo;
|
||||
windowWidth: number;
|
||||
};
|
||||
relations: RelationsOptions;
|
||||
observers: {
|
||||
|
||||
@@ -1 +1 @@
|
||||
import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import avatarProps from"./props";import{setIcon,systemInfo}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-avatar`;let Avatar=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.externalClasses=[`${prefix}-class`,`${prefix}-class-image`,`${prefix}-class-icon`,`${prefix}-class-alt`,`${prefix}-class-content`],this.properties=avatarProps,this.data={prefix:prefix,classPrefix:name,isShow:!0,zIndex:0,systemInfo:systemInfo},this.relations={"../avatar-group/avatar-group":{type:"ancestor",linked(t){this.parent=t,this.setData({shape:this.data.shape||t.data.shape||"circle",size:this.data.size||t.data.size,bordered:!0})}}},this.observers={icon(t){const s=setIcon("icon",t,"");this.setData(Object.assign({},s))}},this.methods={hide(){this.setData({isShow:!1})},onLoadError(t){this.properties.hideOnLoadFailed&&this.setData({isShow:!1}),this.triggerEvent("error",t.detail)}}}};Avatar=__decorate([wxComponent()],Avatar);export default Avatar;
|
||||
import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import avatarProps from"./props";import{setIcon,systemInfo}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-avatar`;let Avatar=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.externalClasses=[`${prefix}-class`,`${prefix}-class-image`,`${prefix}-class-icon`,`${prefix}-class-alt`,`${prefix}-class-content`],this.properties=avatarProps,this.data={prefix:prefix,classPrefix:name,isShow:!0,zIndex:0,windowWidth:systemInfo.windowWidth},this.relations={"../avatar-group/avatar-group":{type:"ancestor",linked(t){this.parent=t,this.setData({shape:this.data.shape||t.data.shape||"circle",size:this.data.size||t.data.size,bordered:!0})}}},this.observers={icon(t){const e=setIcon("icon",t,"");this.setData(Object.assign({},e))}},this.methods={hide(){this.setData({isShow:!1})},onLoadError(t){this.properties.hideOnLoadFailed&&this.setData({isShow:!1}),this.triggerEvent("error",t.detail)}}}};Avatar=__decorate([wxComponent()],Avatar);export default Avatar;
|
||||
@@ -1 +1 @@
|
||||
<import src="../common/template/icon.wxml"/><wxs src="../common/utils.wxs" module="_"/><wxs src="./avatar.wxs" module="_this"/><view class="{{classPrefix}}__wrapper class {{prefix}}-class" style="{{_._style([_this.getStyles(isShow), style, customStyle])}}"><t-badge color="{{badgeProps.color || ''}}" content="{{badgeProps.content || ''}}" count="{{badgeProps.count || 0}}" dot="{{badgeProps.dot || false}}" max-count="{{badgeProps.maxCount || 99}}" offset="{{badgeProps.offset || []}}" shape="{{badgeProps.shape || 'circle'}}" show-zero="{{badgeProps.showZero || false}}" size="{{badgeProps.size || 'medium'}}" t-class="{{badgeProps.tClass}}" t-class-content="{{badgeProps.tClassContent}}" t-class-count="{{badgeProps.tClassCount}}"><view class="{{_this.getClass(classPrefix, size || 'medium', shape, bordered)}} {{prefix}}-class-image" style="{{_this.getSize(size, systemInfo)}}" aria-label="{{ ariaLabel || alt ||'头像'}}" aria-role="{{ ariaRole || 'img'}}" aria-hidden="{{ ariaHidden }}"><t-image wx:if="{{image}}" t-class="{{prefix}}-image {{classPrefix}}__image" t-class-load="{{prefix}}-class-alt" style="{{imageProps && imageProps.style || ''}}" src="{{image}}" mode="{{imageProps && imageProps.mode || 'aspectFill'}}" lazy="{{imageProps && imageProps.lazy || false}}" loading="{{imageProps && imageProps.loading || 'default'}}" shape="{{imageProps && imageProps.shape || 'round'}}" webp="{{imageProps && imageProps.webp || false}}" error="{{alt || 'default'}}" bind:error="onLoadError"/><template wx:elif="{{iconName || _.isNoEmptyObj(iconData)}}" is="icon" data="{{tClass: classPrefix + '__icon ' + prefix + '-class-icon', name: iconName, ...iconData}}"/><view wx:else class="{{classPrefix}}__text {{prefix}}-class-content"><slot/></view></view></t-badge></view>
|
||||
<import src="../common/template/icon.wxml"/><wxs src="../common/utils.wxs" module="_"/><wxs src="./avatar.wxs" module="_this"/><view class="{{classPrefix}}__wrapper class {{prefix}}-class" style="{{_._style([_this.getStyles(isShow), style, customStyle])}}"><t-badge color="{{badgeProps.color || ''}}" content="{{badgeProps.content || ''}}" count="{{badgeProps.count || 0}}" dot="{{badgeProps.dot || false}}" max-count="{{badgeProps.maxCount || 99}}" offset="{{badgeProps.offset || []}}" shape="{{badgeProps.shape || 'circle'}}" show-zero="{{badgeProps.showZero || false}}" size="{{badgeProps.size || 'medium'}}" t-class="{{badgeProps.tClass}}" t-class-content="{{badgeProps.tClassContent}}" t-class-count="{{badgeProps.tClassCount}}"><view class="{{_this.getClass(classPrefix, size || 'medium', shape, bordered)}} {{prefix}}-class-image" style="{{_this.getSize(size, windowWidth)}}" aria-label="{{ ariaLabel || alt ||'头像'}}" aria-role="{{ ariaRole || 'img'}}" aria-hidden="{{ ariaHidden }}"><t-image wx:if="{{image}}" t-class="{{prefix}}-image {{classPrefix}}__image" t-class-load="{{prefix}}-class-alt" style="{{imageProps && imageProps.style || ''}}" src="{{image}}" mode="{{imageProps && imageProps.mode || 'aspectFill'}}" lazy="{{imageProps && imageProps.lazy || false}}" loading="{{imageProps && imageProps.loading || 'default'}}" shape="{{imageProps && imageProps.shape || 'round'}}" webp="{{imageProps && imageProps.webp || false}}" error="{{alt || 'default'}}" bind:error="onLoadError"/><template wx:elif="{{iconName || _.isNoEmptyObj(iconData)}}" is="icon" data="{{tClass: classPrefix + '__icon ' + prefix + '-class-icon', name: iconName, ...iconData}}"/><view wx:else class="{{classPrefix}}__text {{prefix}}-class-content"><slot/></view></view></t-badge></view>
|
||||
@@ -11,13 +11,13 @@ module.exports = {
|
||||
return classNames.join(' ');
|
||||
},
|
||||
|
||||
getSize: function (size = 'medium', systemInfo) {
|
||||
getSize: function (size = 'medium', windowWidth) {
|
||||
var res = getRegExp('^([0-9]+)(px|rpx)$').exec(size);
|
||||
|
||||
if (res && res.length >= 3) {
|
||||
var px = res[1];
|
||||
if (res[2] === 'rpx') {
|
||||
px = Math.floor((systemInfo.windowWidth * res[1]) / 750);
|
||||
px = Math.floor((windowWidth * res[1]) / 750);
|
||||
}
|
||||
|
||||
return 'width:' + size + ';height:' + size + ';font-size:' + ((px / 8) * 3 + 2) + 'px';
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
.t-back-top--half-round,.t-back-top--round{color:var(--td-back-top-round-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));border:1rpx solid var(--td-back-top-round-border-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)));background-color:var(--td-back-top-round-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));}
|
||||
.t-back-top--half-round-dark,.t-back-top--round-dark{color:var(--td-back-top-round-dark-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));background-color:var(--td-back-top-round-dark-bg-color,var(--td-gray-color-13,#242424));}
|
||||
.t-back-top--half-round,.t-back-top--half-round-dark{width:120rpx;height:80rpx;border-radius:0;border-top-left-radius:var(--td-back-top-half-round-border-radius,var(--td-radius-round,999px));border-bottom-left-radius:var(--td-back-top-half-round-border-radius,var(--td-radius-round,999px));flex-direction:row;right:0;}
|
||||
.t-back-top__text--half-round,.t-back-top__text--half-round-dark,.t-back-top__text--round,.t-back-top__text--round-dark{font-size:var(--td-font-size,20rpx);line-height:24rpx;}
|
||||
.t-back-top__text--half-round,.t-back-top__text--half-round-dark,.t-back-top__text--round,.t-back-top__text--round-dark{font-weight:600;font-size:var(--td-font-size,20rpx);line-height:24rpx;}
|
||||
.t-back-top__text--half-round,.t-back-top__text--half-round-dark{width:48rpx;}
|
||||
.t-back-top__icon:not(:empty)+.t-back-top__text--half-round,.t-back-top__icon:not(:empty)+.t-back-top__text--half-round-dark{margin-left:8rpx;}
|
||||
.t-back-top__icon{display:flex;justify-content:center;align-items:center;font-size:44rpx;}
|
||||
@@ -14,8 +14,12 @@ export default class Badge extends SuperComponent {
|
||||
value: string;
|
||||
labelID: string;
|
||||
descriptionID: string;
|
||||
useOuterClass: boolean;
|
||||
};
|
||||
lifetimes: {
|
||||
ready(): void;
|
||||
};
|
||||
methods: {
|
||||
checkForActualContent(): Promise<void>;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{uniqueFactory}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-badge`,getUniqueID=uniqueFactory("badge");let Badge=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.externalClasses=[`${prefix}-class`,`${prefix}-class-count`,`${prefix}-class-content`],this.properties=props,this.data={prefix:prefix,classPrefix:name,value:"",labelID:"",descriptionID:""},this.lifetimes={ready(){const e=getUniqueID();this.setData({labelID:`${e}_label`,descriptionID:`${e}_description`})}}}};Badge=__decorate([wxComponent()],Badge);export default Badge;
|
||||
import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{uniqueFactory,getRect}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-badge`,getUniqueID=uniqueFactory("badge");let Badge=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.externalClasses=[`${prefix}-class`,`${prefix}-class-count`,`${prefix}-class-content`],this.properties=props,this.data={prefix:prefix,classPrefix:name,value:"",labelID:"",descriptionID:"",useOuterClass:!1},this.lifetimes={ready(){const e=getUniqueID();this.setData({labelID:`${e}_label`,descriptionID:`${e}_description`}),this.checkForActualContent()}},this.methods={checkForActualContent(){if(!this.properties.content&&["ribbon","ribbon-right","ribbon-left","triangle-right","triangle-left"].includes(this.properties.shape))return getRect(this,`.${name}__content`).then(e=>{const t=e.width>0||e.height>0;this.setData({useOuterClass:!t})});this.setData({useOuterClass:!1})}}}};Badge=__decorate([wxComponent()],Badge);export default Badge;
|
||||
@@ -1 +1 @@
|
||||
<wxs src="./badge.wxs" module="_this"/><wxs src="../common/utils.wxs" module="_"/><view style="{{_._style([style, customStyle])}}" class="{{_this.getBadgeOuterClass({shape})}} class {{prefix}}-class" aria-labelledby="{{labelID}}" aria-describedby="{{descriptionID}}" aria-role="{{ ariaRole || 'option'}}"><view id="{{labelID}}" class="{{classPrefix}}__content {{prefix}}-class-content" aria-hidden="true"><slot wx:if="{{!content}}" class="{{classPrefix}}__content-slot"/><text wx:else class="{{classPrefix}}__content-text">{{content}}</text></view><view aria-hidden="true" aria-label="{{ ariaLabel || _.getBadgeAriaLabel({dot, count, maxCount}) }}" wx:if="{{_this.isShowBadge({dot,count,showZero})}}" id="{{descriptionID}}" class="{{_this.getBadgeInnerClass({dot, size, shape, count})}} {{prefix}}-has-count {{prefix}}-class-count" style="{{_._style([_this.getBadgeStyles({color, offset})])}}" aria-hidden="true" aria-label="{{ ariaLabel || _.getBadgeAriaLabel({dot, count, maxCount}) }}">{{ _this.getBadgeValue({dot, count, maxCount}) }}</view><slot name="count"/></view>
|
||||
<wxs src="./badge.wxs" module="_this"/><wxs src="../common/utils.wxs" module="_"/><view style="{{_._style([style, customStyle])}}" class="{{classPrefix}} {{ useOuterClass? classPrefix + '__' + shape + '-outer': '' }} class {{prefix}}-class" aria-labelledby="{{labelID}}" aria-describedby="{{descriptionID}}" aria-role="{{ ariaRole || 'option'}}"><view id="{{labelID}}" class="{{classPrefix}}__content {{prefix}}-class-content" aria-hidden="true"><slot wx:if="{{!content}}" class="{{classPrefix}}__content-slot"/><text wx:else class="{{classPrefix}}__content-text">{{content}}</text></view><view aria-hidden="true" aria-label="{{ ariaLabel || _.getBadgeAriaLabel({dot, count, maxCount}) }}" wx:if="{{_this.isShowBadge({dot,count,showZero}) || count === null}}" id="{{descriptionID}}" class="{{_this.getBadgeInnerClass({classPrefix, dot, size, shape, count})}} {{prefix}}-has-count {{prefix}}-class-count" style="{{_._style([_this.getBadgeStyles({color, offset})])}}" aria-hidden="true" aria-label="{{ ariaLabel || _.getBadgeAriaLabel({dot, count, maxCount}) }}"><view class="{{classPrefix}}__count"><block wx:if="{{_this.isShowBadge({dot,count,showZero})}}">{{ _this.getBadgeValue({dot, count, maxCount}) }}</block><slot else name="count"/></view></view></view>
|
||||
@@ -35,20 +35,14 @@ var getBadgeStyles = function (props) {
|
||||
return styleStr;
|
||||
};
|
||||
|
||||
var getBadgeOuterClass = function (props) {
|
||||
var baseClass = 't-badge';
|
||||
var classNames = [baseClass, props.shape === 'ribbon' ? baseClass + '__ribbon-outer' : ''];
|
||||
return classNames.join(' ');
|
||||
};
|
||||
|
||||
var getBadgeInnerClass = function (props) {
|
||||
var baseClass = 't-badge';
|
||||
var baseClass = props.classPrefix;
|
||||
var classNames = [
|
||||
baseClass + '--basic',
|
||||
props.dot ? baseClass + '--dot' : '',
|
||||
baseClass + '--' + props.size,
|
||||
baseClass + '--' + props.shape,
|
||||
!props.dot && props.count ? baseClass + '--count' : '',
|
||||
!props.dot ? baseClass + '--count' : '',
|
||||
];
|
||||
return classNames.join(' ');
|
||||
};
|
||||
@@ -66,6 +60,5 @@ var isShowBadge = function (props) {
|
||||
|
||||
module.exports.getBadgeValue = getBadgeValue;
|
||||
module.exports.getBadgeStyles = getBadgeStyles;
|
||||
module.exports.getBadgeOuterClass = getBadgeOuterClass;
|
||||
module.exports.getBadgeInnerClass = getBadgeInnerClass;
|
||||
module.exports.isShowBadge = isShowBadge;
|
||||
|
||||
@@ -1,15 +1,26 @@
|
||||
@import '../common/style/index.wxss';.t-badge{position:relative;display:inline-flex;align-items:start;}
|
||||
.t-badge--basic{z-index:100;padding:0 var(--td-badge-basic-padding,8rpx);font-size:var(--td-badge-font-size,var(--td-font-size-xs,var(--td-font-size,20rpx)));color:var(--td-badge-text-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));background-color:var(--td-badge-bg-color,var(--td-error-color,var(--td-error-color-6,#d54941)));text-align:center;height:var(--td-badge-basic-height,32rpx);line-height:var(--td-badge-basic-height,32rpx);font-weight:var(--td-badge-font-weight,600);border-radius:var(--td-badge-border-radius,4rpx);}
|
||||
.t-badge--basic{z-index:100;padding:0 var(--td-badge-basic-padding,8rpx);font:var(--td-badge-font,var(--td-font-mark-extraSmall,600 20rpx / 32rpx var(--td-font-family,PingFang SC,Microsoft YaHei,Arial Regular)));color:var(--td-badge-text-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));background-color:var(--td-badge-bg-color,var(--td-error-color,var(--td-error-color-6,#d54941)));text-align:center;height:var(--td-badge-basic-height,32rpx);border-radius:var(--td-badge-border-radius,4rpx);}
|
||||
.t-badge--dot{height:var(--td-badge-dot-size,16rpx);border-radius:50%;min-width:var(--td-badge-dot-size,16rpx);padding:0;}
|
||||
.t-badge--count{min-width:var(--td-badge-basic-width,32rpx);white-space:nowrap;box-sizing:border-box;}
|
||||
.t-badge--circle{border-radius:calc(var(--td-badge-basic-height,32rpx)/ 2);}
|
||||
.t-badge__ribbon-outer{position:absolute;top:0;right:0;}
|
||||
.t-badge--ribbon{position:relative;display:inline-block;transform-origin:center center;transform:translate(calc(50% - var(--td-badge-basic-height,32rpx) + 1rpx),calc(-50% + var(--td-badge-basic-height,32rpx) - 1rpx)) rotate(45deg);border-radius:0;}
|
||||
.t-badge--ribbon::after,.t-badge--ribbon::before{content:'';position:absolute;width:0;height:0;bottom:0;border-bottom:var(--td-badge-basic-height,32rpx) solid var(--td-badge-bg-color,var(--td-error-color,var(--td-error-color-6,#d54941)));font-size:0;}
|
||||
.t-badge--ribbon::before{left:calc(-1 * var(--td-badge-basic-height,32rpx) + 1rpx);border-left:var(--td-badge-basic-height,32rpx) solid transparent;}
|
||||
.t-badge--ribbon::after{right:calc(-1 * var(--td-badge-basic-height,32rpx) + 1rpx);border-right:var(--td-badge-basic-height,32rpx) solid transparent;}
|
||||
.t-badge__ribbon-left-outer,.t-badge__ribbon-outer,.t-badge__ribbon-right-outer,.t-badge__triangle-left-outer,.t-badge__triangle-right-outer{position:absolute;top:0;}
|
||||
.t-badge__ribbon-outer,.t-badge__ribbon-right-outer,.t-badge__triangle-right-outer{right:0;}
|
||||
.t-badge__ribbon-left-outer,.t-badge__triangle-left-outer{left:0;}
|
||||
.t-badge--bubble{border-radius:var(--td-badge-bubble-border-radius,20rpx 20rpx 20rpx 1px);}
|
||||
.t-badge--large{font-size:var(--td-badge-large-font-size,var(--td-font-size-s,24rpx));height:var(--td-badge-large-height,40rpx);min-width:var(--td-badge-large-height,40rpx);line-height:var(--td-badge-large-height,40rpx);padding:0 var(--td-badge-large-padding,10rpx);}
|
||||
.t-badge--ribbon,.t-badge--ribbon-left,.t-badge--ribbon-right,.t-badge--triangle-left,.t-badge--triangle-right{width:calc(var(--td-badge-basic-height,32rpx) * 2);height:calc(var(--td-badge-basic-height,32rpx) * 2);border-radius:0;padding:0;position:absolute;top:0;display:flex;align-items:center;justify-content:center;overflow:hidden;}
|
||||
.t-badge--ribbon,.t-badge--ribbon-right{background:linear-gradient(45deg,transparent 50%,var(--td-badge-bg-color,var(--td-error-color,var(--td-error-color-6,#d54941))) 50%,var(--td-badge-bg-color,var(--td-error-color,var(--td-error-color-6,#d54941))) 85%,transparent 85%);}
|
||||
.t-badge--triangle-right{background:linear-gradient(45deg,transparent 50%,var(--td-badge-bg-color,var(--td-error-color,var(--td-error-color-6,#d54941))) 50%);}
|
||||
.t-badge--ribbon,.t-badge--ribbon-right,.t-badge--triangle-right{right:0;}
|
||||
.t-badge--ribbon .t-badge__count,.t-badge--ribbon-right .t-badge__count,.t-badge--triangle-right .t-badge__count{transform:rotate(45deg) translateY(calc(-1 * var(--td-line-height-mark-extraSmall,32rpx)/ 2 + 1rpx));}
|
||||
.t-badge--ribbon-left{background:linear-gradient(-45deg,transparent 50%,var(--td-badge-bg-color,var(--td-error-color,var(--td-error-color-6,#d54941))) 50%,var(--td-badge-bg-color,var(--td-error-color,var(--td-error-color-6,#d54941))) 85%,transparent 85%);}
|
||||
.t-badge--triangle-left{background:linear-gradient(-45deg,transparent 50%,var(--td-badge-bg-color,var(--td-error-color,var(--td-error-color-6,#d54941))) 50%);}
|
||||
.t-badge--ribbon-left,.t-badge--triangle-left{left:0;}
|
||||
.t-badge--ribbon-left .t-badge__count,.t-badge--triangle-left .t-badge__count{transform:rotate(-45deg) translateY(calc(-1 * var(--td-line-height-mark-extraSmall,32rpx)/ 2 + 1rpx));}
|
||||
.t-badge--large{font:var(--td-badge-large-font,var(--td-font-mark-small,600 24rpx / 40rpx var(--td-font-family,PingFang SC,Microsoft YaHei,Arial Regular)));height:var(--td-badge-large-height,40rpx);min-width:var(--td-badge-large-height,40rpx);padding:0 var(--td-badge-large-padding,10rpx);}
|
||||
.t-badge--large.t-badge--circle{border-radius:calc(var(--td-badge-large-height,40rpx)/ 2);}
|
||||
.t-badge__content:not(:empty)+.t-has-count{transform-origin:center center;transform:translate(-50%,-50%);position:absolute;left:100%;top:0;}
|
||||
.t-badge__content-text{display:block;line-height:48rpx;color:var(--td-badge-content-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));}
|
||||
.t-badge--large.t-badge--ribbon,.t-badge--large.t-badge--ribbon-left,.t-badge--large.t-badge--ribbon-right,.t-badge--large.t-badge--triangle-left,.t-badge--large.t-badge--triangle-right{width:calc(var(--td-badge-large-height,40rpx) * 2);height:calc(var(--td-badge-large-height,40rpx) * 2);padding:0;}
|
||||
.t-badge--large.t-badge--ribbon .t-badge__count,.t-badge--large.t-badge--ribbon-right .t-badge__count,.t-badge--large.t-badge--triangle-right .t-badge__count{transform:rotate(45deg) translateY(calc(-1 * var(--td-line-height-mark-small,40rpx)/ 2 + 3rpx));}
|
||||
.t-badge--large.t-badge--ribbon-left .t-badge__count,.t-badge--large.t-badge--triangle-left .t-badge__count{transform:rotate(-45deg) translateY(calc(-1 * var(--td-line-height-mark-small,40rpx)/ 2 + 3rpx));}
|
||||
.t-badge__content:not(:empty)+.t-badge--bubble.t-has-count,.t-badge__content:not(:empty)+.t-badge--circle.t-has-count,.t-badge__content:not(:empty)+.t-badge--square.t-has-count{transform-origin:center center;transform:translate(-50%,-50%);position:absolute;top:0;left:100%;}
|
||||
.t-badge__content-text{display:block;font:var(--td-font-body-large,32rpx / 48rpx var(--td-font-family,PingFang SC,Microsoft YaHei,Arial Regular));color:var(--td-badge-content-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));}
|
||||
.t-badge__count:empty{display:none;}
|
||||
@@ -25,7 +25,7 @@ export interface TdBadgeProps {
|
||||
};
|
||||
shape?: {
|
||||
type: StringConstructor;
|
||||
value?: 'circle' | 'square' | 'bubble' | 'ribbon';
|
||||
value?: 'circle' | 'square' | 'bubble' | 'ribbon' | 'ribbon-right' | 'ribbon-left' | 'triangle-right' | 'triangle-left';
|
||||
};
|
||||
showZero?: {
|
||||
type: BooleanConstructor;
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
@import '../common/style/index.wxss';.t-button--size-extra-small{font-size:var(--td-button-extra-small-font-size,var(--td-font-size-base,28rpx));padding-left:var(--td-button-extra-small-padding-horizontal,16rpx);padding-right:var(--td-button-extra-small-padding-horizontal,16rpx);height:var(--td-button-extra-small-height,56rpx);line-height:var(--td-button-extra-small-height,56rpx);}
|
||||
.t-button--size-extra-small .t-button__icon{font-size:var(--td-button-extra-small-icon-font-size,36rpx);}
|
||||
.t-button--size-extra-small .t-button__icon{font-size:var(--td-button-extra-small-icon-size,36rpx);}
|
||||
.t-button--size-small{font-size:var(--td-button-small-font-size,var(--td-font-size-base,28rpx));padding-left:var(--td-button-small-padding-horizontal,24rpx);padding-right:var(--td-button-small-padding-horizontal,24rpx);height:var(--td-button-small-height,64rpx);line-height:var(--td-button-small-height,64rpx);}
|
||||
.t-button--size-small .t-button__icon{font-size:var(--td-button-small-icon-font-size,36rpx);}
|
||||
.t-button--size-small .t-button__icon{font-size:var(--td-button-small-icon-size,36rpx);}
|
||||
.t-button--size-medium{font-size:var(--td-button-medium-font-size,var(--td-font-size-m,32rpx));padding-left:var(--td-button-medium-padding-horizontal,32rpx);padding-right:var(--td-button-medium-padding-horizontal,32rpx);height:var(--td-button-medium-height,80rpx);line-height:var(--td-button-medium-height,80rpx);}
|
||||
.t-button--size-medium .t-button__icon{font-size:var(--td-button-medium-icon-font-size,40rpx);}
|
||||
.t-button--size-medium .t-button__icon{font-size:var(--td-button-medium-icon-size,40rpx);}
|
||||
.t-button--size-large{font-size:var(--td-button-large-font-size,var(--td-font-size-m,32rpx));padding-left:var(--td-button-large-padding-horizontal,40rpx);padding-right:var(--td-button-large-padding-horizontal,40rpx);height:var(--td-button-large-height,96rpx);line-height:var(--td-button-large-height,96rpx);}
|
||||
.t-button--size-large .t-button__icon{font-size:var(--td-button-large-icon-font-size,48rpx);}
|
||||
.t-button--size-large .t-button__icon{font-size:var(--td-button-large-icon-size,48rpx);}
|
||||
.t-button--default{color:var(--td-button-default-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));background-color:var(--td-button-default-bg-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));border-color:var(--td-button-default-border-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));}
|
||||
.t-button--default::after{border-width:var(--td-button-border-width,4rpx);border-color:var(--td-button-default-border-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));}
|
||||
.t-button--default.t-button--hover{z-index:0;}
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
@import '../common/style/index.wxss';.t-calendar{width:inherit;position:relative;z-index:9999;background:var(--td-calendar-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));overflow-x:hidden;}
|
||||
.t-calendar--popup{border-top-left-radius:var(--td-calendar-radius,24rpx);border-top-right-radius:var(--td-calendar-radius,24rpx);}
|
||||
.t-calendar__title{display:flex;align-items:center;justify-content:center;font-size:var(--td-calendar-title-font-size,18px);font-weight:600;color:var(--td-calendar-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));height:52rpx;padding:32rpx;}
|
||||
.t-calendar__title{display:flex;align-items:center;justify-content:center;font:var(--td-calendar-title-font,var(--td-font-title-large,600 36rpx / 52rpx var(--td-font-family,PingFang SC,Microsoft YaHei,Arial Regular)));color:var(--td-calendar-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));padding:var(--td-spacer-2,32rpx);}
|
||||
.t-calendar__title:focus{outline:0;}
|
||||
.t-calendar__close-btn{position:absolute;top:32rpx;right:32rpx;margin:-24rpx;padding:24rpx;color:var(--td-calendar-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));}
|
||||
.t-calendar__close-btn{position:absolute;top:var(--td-spacer-2,32rpx);right:var(--td-spacer-2,32rpx);margin:calc(-1 * var(--td-spacer-1,24rpx));padding:var(--td-spacer-1,24rpx);color:var(--td-calendar-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));}
|
||||
.t-calendar__days{display:grid;grid-template-columns:repeat(7,1fr);grid-column-gap:8rpx;padding:0 32rpx;text-align:center;line-height:92rpx;}
|
||||
.t-calendar__days-item{height:92rpx;font-size:28rpx;color:var(--td-calendar-days-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))));}
|
||||
.t-calendar__content{min-height:400rpx;display:flex;flex-direction:column;}
|
||||
.t-calendar__month{font-size:28rpx;color:var(--td-calendar-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-weight:600;padding:32rpx 0 0;}
|
||||
.t-calendar__month{font:var(--td-font-title-small,600 28rpx / 44rpx var(--td-font-family,PingFang SC,Microsoft YaHei,Arial Regular));color:var(--td-calendar-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));padding:32rpx 0 0;}
|
||||
.t-calendar__months{height:712rpx;padding:0 32rpx 32rpx;box-sizing:border-box;}
|
||||
.t-calendar__months::-webkit-scrollbar{display:none;}
|
||||
.t-calendar__dates{flex:1;display:grid;grid-template-columns:repeat(7,1fr);grid-column-gap:8rpx;}
|
||||
.t-calendar__dates-item{position:relative;display:flex;align-items:center;justify-content:center;font-size:32rpx;border-radius:var(--td-calendar-selected-border-radius,var(--td-radius-default,12rpx));height:120rpx;line-height:48rpx;font-weight:600;margin-top:16rpx;color:var(--td-calendar-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;}
|
||||
.t-calendar__dates-item-prefix,.t-calendar__dates-item-suffix{position:absolute;font-size:20rpx;line-height:32rpx;width:100%;text-align:center;font-weight:400;}
|
||||
.t-calendar__dates-item{position:relative;display:flex;align-items:center;justify-content:center;font:var(--td-font-title-medium,600 32rpx / 48rpx var(--td-font-family,PingFang SC,Microsoft YaHei,Arial Regular));border-radius:var(--td-calendar-selected-border-radius,var(--td-radius-default,12rpx));height:120rpx;margin-top:16rpx;color:var(--td-calendar-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;}
|
||||
.t-calendar__dates-item-prefix,.t-calendar__dates-item-suffix{position:absolute;font:var(--td-font-body-extraSmall,20rpx / 32rpx var(--td-font-family,PingFang SC,Microsoft YaHei,Arial Regular));width:100%;text-align:center;}
|
||||
.t-calendar__dates-item-prefix{top:8rpx;}
|
||||
.t-calendar__dates-item-suffix{bottom:8rpx;color:var(--td-calendar-item-suffix-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));}
|
||||
.t-calendar__dates-item-suffix--end,.t-calendar__dates-item-suffix--selected,.t-calendar__dates-item-suffix--start{color:var(--td-calendar-selected-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));}
|
||||
@@ -28,11 +28,11 @@
|
||||
.t-calendar__dates-item--disabled{color:var(--td-calendar-item-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))));cursor:default;}
|
||||
.t-calendar__footer{padding:32rpx;}
|
||||
.t-calendar-switch-mode--none>.t-calendar__months{height:60vh;}
|
||||
.t-calendar-header{display:flex;justify-content:space-between;align-items:center;line-height:44rpx;}
|
||||
.t-calendar-header{display:flex;justify-content:space-between;align-items:center;}
|
||||
.t-calendar-header__with-action{padding:0rpx 32rpx 16rpx 32rpx;box-sizing:border-box;position:relative;}
|
||||
.t-calendar-header__with-action::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-border-color,var(--td-gray-color-3,#e7e7e7));}
|
||||
.t-calendar-header__with-action::after{height:1px;left:0;right:0;transform:scaleY(.5);}
|
||||
.t-calendar-header__with-action .t-calendar-header__title{flex:1;text-align:center;font-size:28rpx;font-weight:600;}
|
||||
.t-calendar-header__with-action .t-calendar-header__title{flex:1;text-align:center;font:var(--td-font-title-small,600 28rpx / 44rpx var(--td-font-family,PingFang SC,Microsoft YaHei,Arial Regular));}
|
||||
.t-calendar-header__action{display:flex;font-size:40rpx;color:var(--td-calendar-switch-mode-icon-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))));}
|
||||
.t-calendar-header__icon{padding:16rpx;}
|
||||
.t-calendar-header__icon--disabled{color:var(--td-calendar-switch-mode-icon-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))));}
|
||||
|
||||
@@ -70,7 +70,7 @@ export interface TdCalendarProps {
|
||||
};
|
||||
}
|
||||
export declare type CalendarFormatType = (day: TDate) => TDate;
|
||||
export declare type TDateType = 'selected' | 'disabled' | 'start' | 'centre' | 'end' | '';
|
||||
export declare type TDateType = 'selected' | 'disabled' | 'start' | 'start-end' | 'centre' | 'end' | '';
|
||||
export interface TDate {
|
||||
date: Date;
|
||||
day: number;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
@import '../common/style/index.wxss';.t-cascader{display:flex;flex-direction:column;background-color:var(--td-cascader-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));color:var(--td-cascader-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));border-radius:var(--td-radius-extraLarge,24rpx) var(--td-radius-extraLarge,24rpx) 0 0;--td-radio-icon-checked-color:var(--td-cascader-active-color, var(--td-brand-color, var(--td-primary-color-7, #0052d9)));--td-tab-item-active-color:var(--td-cascader-active-color, var(--td-brand-color, var(--td-primary-color-7, #0052d9)));--td-tab-track-color:var(--td-cascader-active-color, var(--td-brand-color, var(--td-primary-color-7, #0052d9)));}
|
||||
.t-cascader__close-btn{right:32rpx;top:24rpx;position:absolute;}
|
||||
.t-cascader__title{position:relative;font-weight:700;text-align:center;line-height:var(--td-cascader-title-height,26rpx);padding:var(--td-cascader-title-padding,var(--td-spacer-2,32rpx));font-size:var(--td-cascader-title-font-size,36rpx);}
|
||||
.t-cascader__close-btn{right:var(--td-spacer-2,32rpx);top:var(--td-spacer-2,32rpx);position:absolute;}
|
||||
.t-cascader__title{position:relative;font:var(--td-cascader-title-font,var(--td-font-title-large,600 36rpx / 52rpx var(--td-font-family,PingFang SC,Microsoft YaHei,Arial Regular)));text-align:center;padding:var(--td-cascader-title-padding,var(--td-spacer-2,32rpx));}
|
||||
.t-cascader__content{width:100%;height:var(--td-cascader-content-height,78vh);display:flex;flex-direction:column;}
|
||||
.t-cascader__options{width:100vw;}
|
||||
.t-cascader__options-title{color:var(--td-cascader-options-title-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));font-size:var(--td-font-size-base,28rpx);line-height:44rpx;padding-top:40rpx;padding-left:var(--td-spacer-2,32rpx);box-sizing:border-box;}
|
||||
.t-cascader__options-title{color:var(--td-cascader-options-title-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));font:var(--td-font-body-medium,28rpx / 44rpx var(--td-font-family,PingFang SC,Microsoft YaHei,Arial Regular));padding-top:40rpx;padding-left:var(--td-spacer-2,32rpx);box-sizing:border-box;}
|
||||
.t-cascader__options-container{flex:1;display:flex;transition:all ease .3s;}
|
||||
.t-cascader__step{display:flex;align-items:center;height:var(--td-cascader-step-height,88rpx);}
|
||||
.t-cascader__steps{padding:0 32rpx 10rpx;position:relative;}
|
||||
@@ -12,6 +12,6 @@
|
||||
.t-cascader__step-dot{position:relative;width:var(--td-cascader-step-dot-size,16rpx);height:var(--td-cascader-step-dot-size,16rpx);border-radius:50%;border:2rpx solid var(--td-cascader-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));box-sizing:border-box;}
|
||||
.t-cascader__step-dot:not(.t-cascader__step-dot--last)::after{content:'';display:block;position:absolute;left:50%;top:calc(var(--td-cascader-step-dot-size,16rpx) + 14rpx);height:36rpx;width:2rpx;background:var(--td-cascader-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));transform:translateX(-50%);}
|
||||
.t-cascader__step-dot--active{background:var(--td-cascader-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-color:var(--td-cascader-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));}
|
||||
.t-cascader__step-label{padding-left:var(--td-spacer-2,32rpx);font-size:var(--td-font-size-m,32rpx);}
|
||||
.t-cascader__step-label{padding-left:var(--td-spacer-2,32rpx);font:var(--td-font-body-medium,28rpx / 44rpx var(--td-font-family,PingFang SC,Microsoft YaHei,Arial Regular));}
|
||||
.t-cascader__step-label--active{color:var(--td-cascader-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));font-weight:600;}
|
||||
.t-cascader__step-arrow{color:var(--td-cascader-step-arrow-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));margin-left:auto;}
|
||||
@@ -1,19 +1,19 @@
|
||||
@import '../common/style/index.wxss';.t-cell{position:relative;display:flex;box-sizing:border-box;width:100%;padding:var(--td-cell-vertical-padding,32rpx) var(--td-cell-horizontal-padding,32rpx);line-height:var(--td-cell-line-height,48rpx);height:var(--td-cell-height,auto);background-color:var(--td-cell-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));}
|
||||
@import '../common/style/index.wxss';.t-cell{position:relative;display:flex;box-sizing:border-box;width:100%;padding:var(--td-cell-vertical-padding,32rpx) var(--td-cell-horizontal-padding,32rpx);height:var(--td-cell-height,auto);background-color:var(--td-cell-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));}
|
||||
.t-cell--bordered::after{position:absolute;box-sizing:border-box;content:' ';pointer-events:none;right:0;left:0;bottom:0;border-bottom:var(--td-cell-border-width,1px) solid var(--td-cell-border-color,var(--td-component-stroke,var(--td-gray-color-3,#e7e7e7)));transform:scaleY(.5);transform-origin:bottom;left:var(--td-cell-border-left-space,var(--td-cell-horizontal-padding,32rpx));right:var(--td-cell-border-right-space,0);}
|
||||
.t-cell__description{font-size:var(--td-cell-description-font-size,var(--td-font-size-base,28rpx));line-height:var(--td-cell-description-line-height,44rpx);color:var(--td-cell-description-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))));}
|
||||
.t-cell__description{font:var(--td-cell-description-font,var(--td-font-body-medium,28rpx / 44rpx var(--td-font-family,PingFang SC,Microsoft YaHei,Arial Regular)));color:var(--td-cell-description-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))));}
|
||||
.t-cell__description-text{margin-top:calc(var(--td-spacer,16rpx)/ 2);}
|
||||
.t-cell__note{display:flex;align-items:center;justify-content:flex-end;color:var(--td-cell-note-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));font-size:var(--td-cell-note-font-size,var(--td-font-size-m,32rpx));}
|
||||
.t-cell__title{margin-right:var(--td-spacer-2,32rpx);}
|
||||
.t-cell__note,.t-cell__title{flex:1 1 auto;}
|
||||
.t-cell__note:empty,.t-cell__title:empty{display:none;}
|
||||
.t-cell__title-text{display:flex;font-size:var(--td-cell-title-font-size,var(--td-font-size-m,32rpx));color:var(--td-cell-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-weight:400;}
|
||||
.t-cell__title-text{display:flex;font:var(--td-cell-title-font,var(--td-font-body-large,32rpx / 48rpx var(--td-font-family,PingFang SC,Microsoft YaHei,Arial Regular)));color:var(--td-cell-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));}
|
||||
.t-cell__left,.t-cell__right{align-self:stretch;}
|
||||
.t-cell__left:not(:empty){margin-right:var(--td-spacer-1,24rpx);}
|
||||
.t-cell__left-icon{color:var(--td-cell-left-icon-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));font-size:var(--td-cell-left-icon-font-size,48rpx);}
|
||||
.t-cell__left-icon{color:var(--td-cell-left-icon-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));font-size:var(--td-cell-left-icon-size,48rpx);}
|
||||
.t-cell__left-image{height:var(--td-cell-image-height,96rpx);width:var(--td-cell-image-width,96rpx);}
|
||||
.t-cell__note:not(:empty)+.t-cell__right{margin-left:calc(var(--td-spacer,16rpx)/ 2);}
|
||||
.t-cell__right{display:flex;}
|
||||
.t-cell__right-icon{color:var(--td-cell-right-icon-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));font-size:var(--td-cell-right-icon-font-size,48rpx);}
|
||||
.t-cell__right-icon{color:var(--td-cell-right-icon-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));font-size:var(--td-cell-right-icon-size,48rpx);}
|
||||
.t-cell__right--middle{align-items:center;}
|
||||
.t-cell__right--top{align-items:flex-start;}
|
||||
.t-cell__right--bottom{align-items:flex-end;}
|
||||
|
||||
36
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-actionbar/chat-actionbar.d.ts
vendored
Normal file
36
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-actionbar/chat-actionbar.d.ts
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
import { SuperComponent, ComponentsOptionsType } from '../../../components/common/src/index';
|
||||
export default class ChatActionbar extends SuperComponent {
|
||||
options: ComponentsOptionsType;
|
||||
properties: import("./type").TdChatActionbarProps;
|
||||
data: {
|
||||
actions: any[];
|
||||
classPrefix: string;
|
||||
pComment: string;
|
||||
iconMap: {
|
||||
good: string;
|
||||
bad: string;
|
||||
replay: string;
|
||||
copy: string;
|
||||
share: string;
|
||||
};
|
||||
iconActiveMap: {
|
||||
good: string;
|
||||
bad: string;
|
||||
};
|
||||
};
|
||||
observers: {
|
||||
comment(newVal: any): void;
|
||||
'actionBar, pComment'(): void;
|
||||
};
|
||||
methods: {
|
||||
filterSpecialChars(content: string): string;
|
||||
handleActionClick(e: any): void;
|
||||
handleCopy(): void;
|
||||
setActions(): 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";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-chat-actionbar`;let ChatActionbar=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.properties=props,this.data={actions:[],classPrefix:name,pComment:"",iconMap:{good:"thumb-up",bad:"thumb-down",replay:"refresh",copy:"copy",share:"share-1"},iconActiveMap:{good:"thumb-up-filled",bad:"thumb-down-filled"}},this.observers={comment(t){this.setData({pComment:t||""})},"actionBar, pComment"(){this.setActions()}},this.methods={filterSpecialChars(t){let e=t;const a=[];e=e.replace(/^(\s*\|.*\|.*\n\s*\|[-: ]+\|.*\n(\s*\|.*\|.*\n)*)/gm,t=>{const e=t.replace(/\[\d+(?:,\d+)*\]\(@ref\)/g,"").replace(/(\*\*|__)(.*?)\1|(\*|_)(.*?)\3/g,"$2$4").replace(/<br\s*\/?>/gi,"\n");return a.push(e),`%%TABLE${a.length-1}%%`}),e=e.replace(/^(\s*)#{1,6}\s+/gm,"$1"),e=e.replace(/(\*\*|__)(.*?)\1|(\*|_)(.*?)\3/g,"$2$4"),e=e.replace(/!\[.*?\]\(.*?\)/g,""),e=e.replace(/\[\d+(?:,\d+)*\]\(@ref\)/g,"");return e=e.replace(/(\\|`|\{|\}|\[|\]|\(|\)|\||!|@ref|\([@#]\w+\))/g,""),e=e.replace(/\[\d+\]/g,""),e=e.replace(/<br\s*\/?>/gi,"\n"),e=e.replace(/%%TABLE(\d+)%%/g,(t,e)=>a[parseInt(e,10)]||""),e.replace(/\n{3,}/g,"\n\n").trim()},handleActionClick(t){const{name:e}=t.currentTarget.dataset;if("copy"===e&&this.data.content)this.data.handleCopy();else if("good"===e){const t="good"===this.data.pComment;this.setData({pComment:t?void 0:"good"}),this.triggerEvent("actions",{name:e,active:!t})}else if("bad"===e){const t="bad"===this.data.pComment;this.setData({pComment:t?void 0:"bad"}),this.triggerEvent("actions",{name:e,active:!t})}else this.triggerEvent("actions",{name:e})},handleCopy(){if(!this.data.content)return;const t="markdown"===this.data.copyMode?this.data.content:this.data.filterSpecialChars(this.data.content);this.triggerEvent("actions",{name:"copy",data:t})},setActions(){const t=[];Array.isArray(this.properties.actionBar)&&this.properties.actionBar.forEach(e=>{"good"===e||"bad"===e?t.push({name:e,isActive:this.data.pComment===e}):t.push({name:e,isActive:!1})}),this.setData({actions:t})}},this.lifetimes={created(){this.data.filterSpecialChars=this.filterSpecialChars.bind(this),this.data.handleActionClick=this.handleActionClick.bind(this),this.data.handleCopy=this.handleCopy.bind(this)},attached(){this.setData({pComment:this.properties.comment||""}),this.setActions()},detached(){}}}};ChatActionbar=__decorate([wxComponent()],ChatActionbar);export default ChatActionbar;
|
||||
@@ -0,0 +1 @@
|
||||
{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
|
||||
@@ -0,0 +1 @@
|
||||
<wxs src="../common/utils.wxs" module="_"/><view class="class {{[classPrefix, placement==='longpress' ? classPrefix+'__inner--popover' : '', computedPlacement]}}" style="{{_._style([style, customStyle])}}"><view class="{{classPrefix}}__inner {{classPrefix}}__inner--column"><view class="{{classPrefix}}__item {{classPrefix}}__left"><slot name="prefix"/></view><block wx:for="{{actions}}" wx:for-item="item" wx:for-index="index" wx:key="index"><button wx:if="{{item.name === 'share'}}" data-name="{{item.name}}" class="{{_.cls(classPrefix + '__item', [['active', item.isActive]])}}" open-type="{{content ? 'share' : 'none'}}" data-chat-id="{{chatId}}" bindtap="handleActionClick"><t-icon name="{{item.isActive ? iconActiveMap[item.name] : iconMap[item.name]}}" size="40rpx"/></button><view wx:else data-name="{{item.name}}" class="{{_.cls(classPrefix + '__item', [['active', item.isActive]])}}" bindtap="handleActionClick"><t-icon name="{{item.isActive ? iconActiveMap[item.name] : iconMap[item.name]}}" size="40rpx"/></view></block></view></view>
|
||||
@@ -0,0 +1,11 @@
|
||||
@import '../common/style/index.wxss';.t-chat-actionbar{display:flex;padding:var(--chat-actionbar-padding,0);}
|
||||
.t-chat-actionbar.start{justify-content:flex-start;}
|
||||
.t-chat-actionbar.end{justify-content:flex-end;}
|
||||
.t-chat-actionbar__inner{background-color:var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3));border:2rpx solid var(--td-component-border,var(--td-gray-color-4,#dcdcdc));box-sizing:border-box;border-radius:var(--td-radius-default,12rpx);display:inline-flex;flex-direction:row;flex-wrap:nowrap;align-items:center;}
|
||||
.t-chat-actionbar__inner--column{display:flex;align-items:center;justify-content:space-between;}
|
||||
.t-chat-actionbar__inner--popover{padding:45rpx;background-color:var(--td-mask-active,rgba(0,0,0,.6));border-radius:32rpx;color:var(--td-font-white-1,#fff);}
|
||||
.t-chat-actionbar__left:empty{display:none;}
|
||||
.t-chat-actionbar__item{color:var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9)));margin:12rpx 0;padding:4rpx 28rpx;border-right:2rpx solid var(--td-component-stroke,var(--td-gray-color-3,#e7e7e7));background-color:unset;outline:0;}
|
||||
.t-chat-actionbar__item:after{display:none;}
|
||||
.t-chat-actionbar__item:last-child{border-right:none;}
|
||||
.t-chat-actionbar__item--active{color:var(--td-brand-color,var(--td-primary-color-7,#0052d9));}
|
||||
3
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-actionbar/props.d.ts
vendored
Normal file
3
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-actionbar/props.d.ts
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
import { TdChatActionbarProps } from './type';
|
||||
declare const props: TdChatActionbarProps;
|
||||
export default props;
|
||||
@@ -0,0 +1 @@
|
||||
const props={actionBar:{type:Array,value:["replay","copy","good","bad","share"]},chatId:{type:String,value:""},comment:{type:String,value:""},content:{type:String,value:""},copyMode:{type:String,value:"markdown"},disabled:{type:Boolean,value:!1},placement:{type:String,value:"start"}};export default props;
|
||||
30
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-actionbar/type.d.ts
vendored
Normal file
30
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-actionbar/type.d.ts
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
export interface TdChatActionbarProps {
|
||||
actionBar?: {
|
||||
type: ArrayConstructor;
|
||||
value?: Array<'replay' | 'copy' | 'good' | 'bad' | 'share'>;
|
||||
};
|
||||
chatId?: {
|
||||
type: StringConstructor;
|
||||
value?: string;
|
||||
};
|
||||
comment?: {
|
||||
type: StringConstructor;
|
||||
value?: string;
|
||||
};
|
||||
content?: {
|
||||
type: StringConstructor;
|
||||
value?: string;
|
||||
};
|
||||
copyMode?: {
|
||||
type: StringConstructor;
|
||||
value?: 'markdown' | 'text';
|
||||
};
|
||||
disabled?: {
|
||||
type: BooleanConstructor;
|
||||
value?: boolean;
|
||||
};
|
||||
placement?: {
|
||||
type: StringConstructor;
|
||||
value?: 'start' | 'end' | 'space-around' | 'space-between';
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export{};
|
||||
25
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-content/chat-content.d.ts
vendored
Normal file
25
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-content/chat-content.d.ts
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
import { SuperComponent, ComponentsOptionsType } from '../../../components/common/src/index';
|
||||
import { TdChatContentProps } from './type';
|
||||
export interface ChatContentProps extends TdChatContentProps {
|
||||
}
|
||||
export default class ChatContent extends SuperComponent {
|
||||
options: ComponentsOptionsType;
|
||||
properties: TdChatContentProps;
|
||||
data: {
|
||||
classPrefix: string;
|
||||
textInfo: string;
|
||||
};
|
||||
observers: {
|
||||
content(): void;
|
||||
};
|
||||
methods: {
|
||||
getEscapeReplacement(ch: any): any;
|
||||
escape(html: any, encode?: boolean): any;
|
||||
setTextInfo(): 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";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-chat-content`;let ChatContent=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.properties=props,this.data={classPrefix:name,textInfo:""},this.observers={content(){this.setTextInfo()}},this.methods={getEscapeReplacement:t=>({"&":"&","<":"<",">":">",'"':""","'":"'"}[t]),escape(t,e=!1){const s=/[&<>"']/,o=new RegExp(s.source,"g"),n=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,a=new RegExp(n.source,"g");if(e){if(s.test(t))return t.replace(o,this.data.getEscapeReplacement)}else if(n.test(t))return t.replace(a,this.data.getEscapeReplacement);return t},setTextInfo(){"text"===this.properties.content.type||"error"===this.properties.status?this.setData({textInfo:this.escape(this.properties.content.data||"")}):this.setData({textInfo:this.properties.content.data})}},this.lifetimes={created(){this.data.getEscapeReplacement=this.getEscapeReplacement.bind(this),this.data.escape=this.escape.bind(this)},attached(){this.setTextInfo()},detached(){}}}};ChatContent=__decorate([wxComponent()],ChatContent);export default ChatContent;
|
||||
@@ -0,0 +1 @@
|
||||
{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-chat-markdown":"../chat-markdown/chat-markdown"}}
|
||||
@@ -0,0 +1 @@
|
||||
<wxs src="../common/utils.wxs" module="_"/><view class="class {{classPrefix}}" style="{{_._style([style, customStyle])}}"><block wx:if="{{status === 'error' || content.type === 'text'}}"><view class="{{classPrefix}}__{{role}} {{classPrefix}}__{{status}}"><view class="_pre"><rich-text nodes="{{textInfo}}"/></view></view></block><block wx:else><view class="{{classPrefix}}__assistant"><t-chat-markdown content="{{textInfo}}" options="{{markdownProps && markdownProps.options}}"></t-chat-markdown></view></block></view>
|
||||
@@ -0,0 +1,8 @@
|
||||
@import '../common/style/index.wxss';.t-chat-content{font:var(--td-font-body-large,32rpx / 48rpx var(--td-font-family,PingFang SC,Microsoft YaHei,Arial Regular));word-break:break-all;word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box;width:fit-content;}
|
||||
.t-chat-content__system,.t-chat-content__user{color:var(--td-chat-content-user-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));}
|
||||
.t-chat-content__system ._pre,.t-chat-content__user ._pre{margin:0;white-space:pre-wrap;}
|
||||
.t-chat-content__assistant{color:var(--td-chat-content-assistant-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));}
|
||||
.t-chat-content__assistant ._ol{-webkit-padding-start:40rpx;padding-inline-start:40rpx;}
|
||||
.t-chat-content__assistant ._ol ._li{list-style:decimal;}
|
||||
.t-chat-content__assistant ._img{max-width:100%;margin:8rpx 0;border-radius:var(--td-radius-small,6rpx);}
|
||||
.t-chat-content__error{color:var(--td-chat-content-error-text-color,var(--td-error-color,var(--td-error-color-6,#d54941)));}
|
||||
3
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-content/index.d.ts
vendored
Normal file
3
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-content/index.d.ts
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
export * from './props';
|
||||
export * from './type';
|
||||
export * from './chat-content';
|
||||
@@ -0,0 +1 @@
|
||||
export*from"./props";export*from"./type";export*from"./chat-content";
|
||||
3
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-content/props.d.ts
vendored
Normal file
3
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-content/props.d.ts
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
import { TdChatContentProps } from './type';
|
||||
declare const props: TdChatContentProps;
|
||||
export default props;
|
||||
@@ -0,0 +1 @@
|
||||
const props={content:{type:Object,required:!0},markdownProps:{type:Object},role:{type:String,required:!0},status:{type:String}};export default props;
|
||||
25
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-content/type.d.ts
vendored
Normal file
25
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-content/type.d.ts
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
import { ChatMarkdownProps } from '../chat-markdown/index';
|
||||
export interface TdChatContentProps {
|
||||
content: {
|
||||
type: ObjectConstructor;
|
||||
value?: TdChatContentType;
|
||||
required?: boolean;
|
||||
};
|
||||
markdownProps?: {
|
||||
type: ObjectConstructor;
|
||||
value?: ChatMarkdownProps;
|
||||
};
|
||||
role: {
|
||||
type: StringConstructor;
|
||||
value?: 'user' | 'assistant' | 'system';
|
||||
required?: boolean;
|
||||
};
|
||||
status?: {
|
||||
type: StringConstructor;
|
||||
value?: 'error' | '';
|
||||
};
|
||||
}
|
||||
export interface TdChatContentType {
|
||||
type: 'text' | 'markdown';
|
||||
data: string;
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export{};
|
||||
53
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-list/chat-list.d.ts
vendored
Normal file
53
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-list/chat-list.d.ts
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
import { SuperComponent, ComponentsOptionsType } from '../../../components/common/src/index';
|
||||
export default class Chat extends SuperComponent {
|
||||
options: ComponentsOptionsType;
|
||||
properties: {
|
||||
virtualList: {
|
||||
type: BooleanConstructor;
|
||||
value: boolean;
|
||||
};
|
||||
fragmentLen: {
|
||||
type: NumberConstructor;
|
||||
value: number;
|
||||
};
|
||||
animation?: {
|
||||
type: StringConstructor;
|
||||
value?: "skeleton" | "moving" | "gradient" | "dot";
|
||||
};
|
||||
data?: {
|
||||
type: ArrayConstructor;
|
||||
value?: import("./type").TdChatItemMeta[];
|
||||
};
|
||||
layout?: {
|
||||
type: StringConstructor;
|
||||
value?: "both" | "single";
|
||||
};
|
||||
reverse?: {
|
||||
type: BooleanConstructor;
|
||||
value?: boolean;
|
||||
};
|
||||
};
|
||||
data: {
|
||||
classPrefix: string;
|
||||
scrollViewTop: number;
|
||||
classes: any[];
|
||||
listClasses: any[];
|
||||
startIndex: number;
|
||||
endIndex: number;
|
||||
};
|
||||
observers: {
|
||||
data(): void;
|
||||
};
|
||||
methods: {
|
||||
setScrollTop(scrollTop?: number): void;
|
||||
scrollToBottom(): void;
|
||||
onScroll(e: any): void;
|
||||
handlerScrollToUpper(): void;
|
||||
handlerScrollToLower(): void;
|
||||
resetFragments(): void;
|
||||
addFragment(count?: number): void;
|
||||
};
|
||||
lifetimes: {
|
||||
created(): void;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-chat-list`;let Chat=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.properties=Object.assign(Object.assign({},props),{virtualList:{type:Boolean,value:!1},fragmentLen:{type:Number,value:8}}),this.data={classPrefix:name,scrollViewTop:0,classes:[],listClasses:[],startIndex:0,endIndex:0},this.observers={data(){const t=this.properties.data.length;this.properties.virtualList&&this.oldDataLen!==t&&(this.oldDataLen=t,this.resetFragments())}},this.methods={setScrollTop(t=0){t===this.data.scrollViewTop&&(t-=1),this.setData({scrollViewTop:t})},scrollToBottom(){this.setScrollTop()},onScroll(t){this.triggerEvent("scroll",t)},handlerScrollToUpper(){!this.properties.reverse&&this.properties.virtualList&&this.addFragment()},handlerScrollToLower(){this.properties.reverse&&this.properties.virtualList&&this.addFragment()},resetFragments(){const t=this.properties.data.length;if(t){const{fragmentLen:e}=this.properties;this.properties.reverse?this.setData({startIndex:0,endIndex:Math.min(t-1,e-1)}):this.setData({startIndex:Math.max(t-e,0),endIndex:Math.max(t-1,0)})}},addFragment(t=4){const e=this.properties.data.length;e&&(this.properties.reverse?this.setData({endIndex:Math.min(e-1,this.data.endIndex+t)}):this.setData({startIndex:Math.max(this.data.startIndex-t,0)}))}},this.lifetimes={created(){this.data.setScrollTop=this.setScrollTop.bind(this),this.data.scrollToBottom=this.scrollToBottom.bind(this)}}}};Chat=__decorate([wxComponent()],Chat);export default Chat;
|
||||
@@ -0,0 +1 @@
|
||||
{"component":true,"styleIsolation":"apply-shared","usingComponents":{"chat-message":"../chat-message/chat-message"}}
|
||||
@@ -0,0 +1 @@
|
||||
<wxs src="../common/utils.wxs" module="_"/><view class="class {{classPrefix}} {{[classes]}}" style="{{_._style([style, customStyle])}}"><scroll-view class="{{_.cls(classPrefix + '__content', [['reverse' , reverse]])}}" scroll-y="{{true}}" enable-flex="{{true}}" enhanced="{{true}}" scroll-with-animation="{{true}}" scroll-top="{{scrollViewTop}}" data-ref="chatListRef" bindscroll="onScroll" bindscrolltoupper="handlerScrollToUpper" bindscrolltolower="handlerScrollToLower"><block wx:if="{{reverse}}"><view class="placeholder"></view></block><block wx:if="{{data.length > 0}}"><block wx:for="{{data}}" wx:for-index="index" wx:for-item="item" wx:key="index"><chat-message wx:if="{{virtualList ? index >= startIndex && index <= endIndex : true}}" avatar="{{item.avatar || ''}}" name="{{item.name || ''}}" datetime="{{item.datetime || ''}}" content="{{item.content}}" role="{{item.role}}" placement="{{ layout === 'both' ? (item.role === 'user' ? 'right' : 'left') : 'left' }}" animation="{{animation}}" status="{{item.status || ''}}"/></block></block><slot wx:else/></scroll-view><view class="{{classPrefix}}__footer"><slot name="footer"/></view></view>
|
||||
@@ -0,0 +1,5 @@
|
||||
@import '../common/style/index.wxss';.t-chat-list{display:flex;flex-direction:column;height:100%;width:100%;color:var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9)));}
|
||||
.t-chat-list__content{flex:1;overflow-y:auto;overflow-x:hidden;width:100%;}
|
||||
.t-chat-list__content--reverse{display:flex;flex-direction:column;transform:scaleY(-1);}
|
||||
.t-chat-list__content--reverse::-webkit-scrollbar{transform:scaleY(-1);}
|
||||
.t-chat-list__content .placeholder{flex-grow:1;flex-shrink:1;}
|
||||
3
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-list/props.d.ts
vendored
Normal file
3
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-list/props.d.ts
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
import { TdChatListProps } from './type';
|
||||
declare const props: TdChatListProps;
|
||||
export default props;
|
||||
@@ -0,0 +1 @@
|
||||
const props={animation:{type:String,value:"skeleton"},data:{type:Array},layout:{type:String,value:"both"},reverse:{type:Boolean,value:!0}};export default props;
|
||||
26
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-list/type.d.ts
vendored
Normal file
26
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-list/type.d.ts
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
export interface TdChatListProps {
|
||||
animation?: {
|
||||
type: StringConstructor;
|
||||
value?: 'skeleton' | 'moving' | 'gradient' | 'dot';
|
||||
};
|
||||
data?: {
|
||||
type: ArrayConstructor;
|
||||
value?: Array<TdChatItemMeta>;
|
||||
};
|
||||
layout?: {
|
||||
type: StringConstructor;
|
||||
value?: 'both' | 'single';
|
||||
};
|
||||
reverse?: {
|
||||
type: BooleanConstructor;
|
||||
value?: boolean;
|
||||
};
|
||||
}
|
||||
export interface TdChatItemMeta {
|
||||
avatar?: string;
|
||||
name?: string;
|
||||
role?: string;
|
||||
datetime?: string;
|
||||
content?: string;
|
||||
status?: string;
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export{};
|
||||
8
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-loading/chat-loading.d.ts
vendored
Normal file
8
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-loading/chat-loading.d.ts
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
import { SuperComponent, ComponentsOptionsType } from '../../../components/common/src/index';
|
||||
export default class ChatLoading extends SuperComponent {
|
||||
options: ComponentsOptionsType;
|
||||
properties: import("./type").TdChatLoadingProps;
|
||||
data: {
|
||||
classPrefix: string;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-chat-loading`;let ChatLoading=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.properties=props,this.data={classPrefix:name}}};ChatLoading=__decorate([wxComponent()],ChatLoading);export default ChatLoading;
|
||||
@@ -0,0 +1 @@
|
||||
{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-skeleton":"../skeleton/skeleton","t-loading":"../loading/loading"}}
|
||||
@@ -0,0 +1 @@
|
||||
<wxs src="../common/utils.wxs" module="_"/><view class="class {{[classPrefix]}}" style="{{_._style([style, customStyle])}}"><view wx:if="{{animation !== 'skeleton'}}" class="{{classPrefix}}__icon {{ animation === 'dots' ? '' : classPrefix + '__icon--with-padding' }}"><block wx:if="{{animation === 'moving'}}"><view class="{{classPrefix}}__moving"><view class="{{classPrefix}}__moving--top"/><view class="{{classPrefix}}__moving--left"/><view class="{{classPrefix}}__moving--right"/></view></block><block wx:if="{{animation === 'gradient'}}"><view class="{{classPrefix}}__gradient"/></block><view wx:if="{{animation === 'dots'}}" class="{{classPrefix}}__dots"><t-loading theme="dots" size="60rpx"/></view></view><block wx:if="{{animation === 'skeleton'}}"><view class="{{classPrefix}}__skeleton"><t-skeleton rowCol="{{[1, 1, 1, {width: '80%'}]}}" theme="paragraph" animation="gradient" loading/></view></block><view wx:if="{{text}}" class="{{classPrefix}}__text">{{text}}</view></view>
|
||||
@@ -0,0 +1,36 @@
|
||||
@import '../common/style/index.wxss';.t-chat-loading{display:flex;align-items:center;}
|
||||
.t-chat-loading::after,.t-chat-loading::before{box-sizing:border-box;}
|
||||
.t-chat-loading__icon--with-padding{padding:6rpx;box-sizing:border-box;}
|
||||
.t-chat-loading__icon .t-chat-loading__skeleton{width:100%;}
|
||||
.t-chat-loading__text{color:var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4)));font-size:var(--td-font-size-base,28rpx);}
|
||||
.t-chat-loading__text:not(:empty){margin-left:var(--td-spacer,16rpx);}
|
||||
.t-chat-loading__moving{position:relative;width:28rpx;height:28rpx;}
|
||||
.t-chat-loading__moving--left,.t-chat-loading__moving--right,.t-chat-loading__moving--top{position:absolute;width:14rpx;height:14rpx;border-radius:50%;background-color:var(--td-brand-color,var(--td-primary-color-7,#0052d9));}
|
||||
.t-chat-loading__moving--top{top:-6rpx;left:7rpx;animation:dot-moving-top .6s ease-in-out alternate infinite;}
|
||||
.t-chat-loading__moving--left{bottom:-6rpx;left:-6rpx;animation:dot-moving-left .6s ease-in-out alternate infinite;}
|
||||
.t-chat-loading__moving--right{bottom:-6rpx;right:-6rpx;animation:dot-moving-right .6s ease-in-out alternate infinite;}
|
||||
.t-chat-loading__gradient{width:28rpx;height:28rpx;background-color:transparent;border-radius:50%;border:3rpx solid var(--td-brand-color,var(--td-primary-color-7,#0052d9));animation:border-gradient-color .6s ease-in-out alternate infinite;box-sizing:border-box;padding:0 6rpx;}
|
||||
.t-chat-loading__dots{width:100%;height:100%;display:flex;align-items:center;justify-content:center;}
|
||||
.t-chat-loading__skeleton{width:100%;}
|
||||
@keyframes dot-moving-top{
|
||||
0%{transform:scale(1);top:-6rpx;}
|
||||
to{transform:scale(2);top:7rpx;}}
|
||||
@keyframes dot-moving-left{
|
||||
0%{transform:scale(1);bottom:-6rpx;left:-6rpx;}
|
||||
to{transform:scale(2);bottom:7rpx;left:7rpx;}}
|
||||
@keyframes dot-moving-right{
|
||||
0%{transform:scale(1);bottom:-6rpx;right:-6rpx;}
|
||||
to{transform:scale(2);bottom:7rpx;right:7rpx;}}
|
||||
@keyframes border-gradient-color{
|
||||
0%{border-color:var(--td-brand-color,var(--td-primary-color-7,#0052d9));border-width:1.5px;}
|
||||
50%{border-color:var(--td-brand-color-active,var(--td-primary-color-8,#003cab));border-width:3px;}
|
||||
100%{border-color:var(--td-primary-color-6,#366ef4);border-width:4px;}}
|
||||
@keyframes a_tick{
|
||||
0%{width:0;}
|
||||
100%{width:14rpx;}}
|
||||
@keyframes a_tick-1{
|
||||
0%{transform:rotate(45deg) scale(0,1);}
|
||||
100%{transform:rotate(45deg) scale(1,1);}}
|
||||
@keyframes a_tick-2{
|
||||
0%{transform:rotate(-45deg) scale(0,1);}
|
||||
100%{transform:rotate(-45deg) scale(1,1);}}
|
||||
3
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-loading/props.d.ts
vendored
Normal file
3
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-loading/props.d.ts
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
import { TdChatLoadingProps } from './type';
|
||||
declare const props: TdChatLoadingProps;
|
||||
export default props;
|
||||
@@ -0,0 +1 @@
|
||||
const props={animation:{type:String,value:"moving"},text:{type:String,value:""}};export default props;
|
||||
10
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-loading/type.d.ts
vendored
Normal file
10
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-loading/type.d.ts
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
export interface TdChatLoadingProps {
|
||||
animation?: {
|
||||
type: StringConstructor;
|
||||
value?: 'skeleton' | 'moving' | 'gradient' | 'dot';
|
||||
};
|
||||
text?: {
|
||||
type: StringConstructor;
|
||||
value?: string;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export{};
|
||||
@@ -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{};
|
||||
34
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-message/chat-message.d.ts
vendored
Normal file
34
miniprogram/miniprogram_npm/tdesign-miniprogram/chat-message/chat-message.d.ts
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
import { SuperComponent, ComponentsOptionsType } from '../../../components/common/src/index';
|
||||
export default class ChatMessage extends SuperComponent {
|
||||
options: ComponentsOptionsType;
|
||||
properties: import("./type").TdChatMessageProps;
|
||||
data: {
|
||||
classPrefix: string;
|
||||
article: string;
|
||||
showAvatar: any;
|
||||
showName: any;
|
||||
showDateTime: any;
|
||||
contentClasses: any[];
|
||||
chatItemClass: any[];
|
||||
};
|
||||
observers: {
|
||||
avatar(): void;
|
||||
name(): void;
|
||||
datetime(): void;
|
||||
classPrefix(): void;
|
||||
'classPrefix, variant, placement, showDateTime'(): void;
|
||||
};
|
||||
methods: {
|
||||
handleLongPress(e: any): void;
|
||||
setShowAvatar(): void;
|
||||
setShowName(): void;
|
||||
setShowDateTime(): void;
|
||||
setContentClasses(): void;
|
||||
setChatItemClass(): void;
|
||||
};
|
||||
lifetimes: {
|
||||
created(): void;
|
||||
attached(): void;
|
||||
detached(): void;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import props from"./props";import config from"../common/config";const{prefix:prefix}=config,name=`${prefix}-chat-message`;let ChatMessage=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.properties=props,this.data={classPrefix:name,article:"",showAvatar:null,showName:null,showDateTime:null,contentClasses:[],chatItemClass:[]},this.observers={avatar(){this.setShowAvatar()},name(){this.setShowName()},datetime(){this.setShowDateTime()},classPrefix(){this.setContentClasses()},"classPrefix, variant, placement, showDateTime"(){this.setChatItemClass()}},this.methods={handleLongPress(t){this.triggerEvent("longpress",{e:t,id:this.data.chatId})},setShowAvatar(){var t;this.setData({showAvatar:(null===(t=this.properties)||void 0===t?void 0:t.avatar)||""})},setShowName(){var t;this.setData({showName:(null===(t=this.properties)||void 0===t?void 0:t.name)||""})},setShowDateTime(){var t;this.setData({showDateTime:(null===(t=this.properties)||void 0===t?void 0:t.datetime)||""})},setContentClasses(){this.setData({contentClasses:[`${this.data.classPrefix}__content`]})},setChatItemClass(){const{classPrefix:t,showDateTime:e}=this.data,{variant:s,role:a,placement:i}=this.properties,o=[`${t}`,`${t}--${s}`,a,i];e&&o.push(`${t}__header`),this.setData({chatItemClass:o})}},this.lifetimes={created(){this.data.handleLongPress=this.handleLongPress.bind(this)},attached(){this.setShowAvatar(),this.setShowName(),this.setShowDateTime(),this.setContentClasses(),this.setChatItemClass()},detached(){}}}};ChatMessage=__decorate([wxComponent()],ChatMessage);export default ChatMessage;
|
||||
@@ -0,0 +1 @@
|
||||
{"component":true,"styleIsolation":"shared","usingComponents":{"chat-content":"../chat-content/chat-content","chat-thinking":"../chat-thinking/chat-thinking","chat-loading":"../chat-loading/chat-loading","attachments":"../attachments/attachments"}}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user